tesis funes marcos

255
MULTIPLICACI ´ ON SECUENCIAL EN DISPOSITIVOS L ´ OGICOS PROGRAMABLES Ing. Marcos Funes Este Trabajo de Tesis fue presentado al Departamento de Electr´onica de la Facultad de Ingenier´ ıa de la Universidad Nacional de Mar del Plata el 8 de Octubre de 2007, como requisito parcial para la obtenci´on del t´ ıtulo de Doctor en Ingenier´ ıa. Menci´on Electr´ onica Director: Dr. Daniel Carrica Co-Director: Ing. Mario Benedetti

Upload: teamgti

Post on 23-Jul-2015

78 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Tesis Funes Marcos

MULTIPLICACION SECUENCIAL EN

DISPOSITIVOS LOGICOS

PROGRAMABLES

Ing. Marcos Funes

Este Trabajo de Tesis fue presentado al Departamento de Electronica

de la Facultad de Ingenierıa de la Universidad Nacional de Mar del Plata

el 8 de Octubre de 2007, como requisito parcial para la obtencion del tıtulo de

Doctor en Ingenierıa. Mencion Electronica

Director: Dr. Daniel Carrica

Co-Director: Ing. Mario Benedetti

Page 2: Tesis Funes Marcos

A mis Padres.

A Andrea.

A Nicolas, Alejandro y Fernando

Page 3: Tesis Funes Marcos

Indice general

Agradecimientos XVII

Resumen XVIII

Nomenclatura XX

1. Introduccion 1

1.1. Estructuras de Multiplicadores . . . . . . . . . . . . . . . . . . . . 2

1.2. Objetivos de la tesis . . . . . . . . . . . . . . . . . . . . . . . . . 4

1.3. Organizacion de la tesis . . . . . . . . . . . . . . . . . . . . . . . 4

2. Arquitecturas de Multiplicadores 6

2.1. Introduccion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2.2. Algoritmo de la Multiplicacion . . . . . . . . . . . . . . . . . . . . 7

2.2.1. Operandos en punto fijo . . . . . . . . . . . . . . . . . . . 7

2.2.2. Operandos en punto flotante . . . . . . . . . . . . . . . . . 9

2.3. Adicion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2.3.1. Semisumador . . . . . . . . . . . . . . . . . . . . . . . . . 12

2.3.2. Sumador Total . . . . . . . . . . . . . . . . . . . . . . . . 13

2.3.3. Suma por Propagacion de Acarreo . . . . . . . . . . . . . . 15

2.3.4. Suma Carry-Save . . . . . . . . . . . . . . . . . . . . . . . 16

iii

Page 4: Tesis Funes Marcos

2.3.5. Suma Multi-operandos . . . . . . . . . . . . . . . . . . . . 17

2.4. Multiplicadores Paralelos . . . . . . . . . . . . . . . . . . . . . . . 19

2.4.1. Multiplicador por Tabla de Look-up . . . . . . . . . . . . . 19

2.4.2. Multiplicador Ripple Carry . . . . . . . . . . . . . . . . . 20

2.4.3. Multiplicador Carry Save . . . . . . . . . . . . . . . . . . . 22

2.4.4. Multiplicador Guild . . . . . . . . . . . . . . . . . . . . . . 23

2.4.5. Multipicador McCanny-McWhinter . . . . . . . . . . . . . 25

2.5. Consumo de recursos logicos . . . . . . . . . . . . . . . . . . . . . 25

2.5.1. Operandos en Punto Fijo . . . . . . . . . . . . . . . . . . . 25

2.5.2. Operandos en punto flotante . . . . . . . . . . . . . . . . . 31

2.6. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

3. Nuevas Arquitecturas de Multiplicadores 33

3.1. Introduccion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

3.2. Multiplicacion Secuencial . . . . . . . . . . . . . . . . . . . . . . . 34

3.2.1. Algoritmo . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

3.2.2. Implementacion . . . . . . . . . . . . . . . . . . . . . . . . 37

3.2.3. Multiplicador Secuencial de Base 4 . . . . . . . . . . . . . 45

3.3. Arquitecturas Propuestas en Punto Fijo . . . . . . . . . . . . . . 56

3.3.1. Multiplicador Secuencial Sin Entradas Registradas . . . . . 56

3.3.2. Multiplicador Secuencial Fraccionado . . . . . . . . . . . . 61

3.3.3. Multiplicador de Sumas Consecutivas . . . . . . . . . . . . 67

3.4. Comparacion de los multiplicadores . . . . . . . . . . . . . . . . . 75

3.4.1. Multiplicadores optimizados en consumo de recursos . . . . 75

3.4.2. Multiplicadores optimizados en velocidad . . . . . . . . . . 76

3.4.3. Performance de los multiplicadores . . . . . . . . . . . . . 78

3.5. Arquitecturas Propuestas en Punto Flotante . . . . . . . . . . . . 80

iv

Page 5: Tesis Funes Marcos

3.5.1. Variante Multiplicador Secuencial Sin Entradas Registradas 80

3.5.2. Variante Multiplicador Secuencial de Sumas Consecutivas . 86

3.6. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90

4. Resultados Experimentales 92

4.1. Introduccion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92

4.2. Parametros de interes . . . . . . . . . . . . . . . . . . . . . . . . . 92

4.3. Multiplicacion en Punto Fijo . . . . . . . . . . . . . . . . . . . . . 93

4.3.1. Consumo de recursos logicos . . . . . . . . . . . . . . . . . 93

4.3.2. Comportamiento temporal . . . . . . . . . . . . . . . . . . 98

4.3.3. Comparacion de los multiplicadores . . . . . . . . . . . . . 101

4.4. Multiplicacion en Punto Flotante . . . . . . . . . . . . . . . . . . 114

4.4.1. Consumo de recursos logicos . . . . . . . . . . . . . . . . . 114

4.4.2. Comportamiento temporal . . . . . . . . . . . . . . . . . . 115

4.4.3. Performance . . . . . . . . . . . . . . . . . . . . . . . . . . 116

4.5. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119

5. Conclusiones 121

5.0.1. Trabajos futuros . . . . . . . . . . . . . . . . . . . . . . . 127

Bibliografıa 129

A. Dispositivos Logicos Programables 137

A.1. Introduccion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137

A.2. PLD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138

A.3. CPLD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139

A.4. FPGA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141

A.4.1. Celdas Logicas . . . . . . . . . . . . . . . . . . . . . . . . 143

A.4.2. Recursos dedicados . . . . . . . . . . . . . . . . . . . . . . 145

v

Page 6: Tesis Funes Marcos

A.5. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149

B. Sistemas numericos 150

B.1. Introduccion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150

B.2. Representacion numerica . . . . . . . . . . . . . . . . . . . . . . . 150

B.2.1. Punto fijo . . . . . . . . . . . . . . . . . . . . . . . . . . . 151

B.2.2. Punto flotante . . . . . . . . . . . . . . . . . . . . . . . . . 154

B.2.3. No-convencionales . . . . . . . . . . . . . . . . . . . . . . . 157

C. Multiplicacion Secuencial aplicada al Control de Movimiento 159

C.1. Introduccion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159

C.2. Accionamientos paso a paso . . . . . . . . . . . . . . . . . . . . . 161

C.2.1. Generacion de perfiles de velocidad Off-line . . . . . . . . . 162

C.2.2. Generacion de perfiles de velocidad On-line . . . . . . . . . 162

C.3. Generacion de perfiles de velocidad mediante FPGA . . . . . . . . 167

C.3.1. Implementacion del producto Vr · nk . . . . . . . . . . . . 169

C.4. Resultados experimentales . . . . . . . . . . . . . . . . . . . . . . 172

C.4.1. Modo de funcionamiento en pasos . . . . . . . . . . . . . . 172

C.4.2. Modo de funcionamiento en micropasos . . . . . . . . . . . 174

C.5. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178

D. Publicaciones 179

D.1. Introduccion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179

D.2. Multiplicadores secuenciales en FPGA: Evaluacion y Comparacion

de Parametros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181

D.3. Estudio comparativo de multiplicadores secuenciales implementa-

dos en FPGA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193

D.4. Floating Point Multipliers with Reduced FPGA Area . . . . . . . 199

vi

Page 7: Tesis Funes Marcos

D.5. Performance Evaluation of FPGA Floating Point Multipliers . . . 207

D.6. Novel FPGA based Floating Point Multiplier: Consecutive-Sums

Sequential Multiplier . . . . . . . . . . . . . . . . . . . . . . . . . 211

D.7. Novel Stepper Motor Controller Based on FPGA Hardware Imple-

mentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220

D.8. FPGA based stepper motor controller . . . . . . . . . . . . . . . . 225

vii

Page 8: Tesis Funes Marcos

Indice de Tablas

2.1. Producto de dos operandos de 4 bits . . . . . . . . . . . . . . . . 7

2.2. Implementacion de multiplicadores en FPGA. . . . . . . . . . . . 29

3.1. Producto de dos operandos de 4 bits, acumulacion de productos

parciales. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

3.2. Multiplicacion secuencial con desplazamiento a la izquierda para

operandos de 4 bits. . . . . . . . . . . . . . . . . . . . . . . . . . 35

3.3. Multiplicacion con desplazamiento a la derecha para operandos de

4 bits. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

3.4. Estimacion de consumo de recursos logicos de un SM. . . . . . . . 40

3.5. Retardos de una FPGA Xilinx Spartan-4. . . . . . . . . . . . . . . 43

3.6. Producto de dos operandos en base 4 . . . . . . . . . . . . . . . . 46

3.7. Multiplicacion base 4 de dos operados de 4 bits. . . . . . . . . . . 46

3.8. Codificacion de los dıgitos, alternativa (-X). . . . . . . . . . . . . 47

3.9. Multiplicacion base 4, alternativa (-X). . . . . . . . . . . . . . . . 48

3.10. Estimacion de consumo de recursos de un SMB4(3X). . . . . . . . 49

3.11. Estimacion de consumo de recursos logicos SMB4(-X). . . . . . . 50

3.12. Estimacion de consumo de recursos logicos de un SMSR. . . . . . 57

3.13. Estimacion de consumo de recursos logicos SMF(SM). . . . . . . . 63

3.14. Estimacion de consumo de recursos logicos de un SMF(SMSR). . 64

viii

Page 9: Tesis Funes Marcos

3.15. Ejemplo de una multiplicacion mediante sumas consecutivas . . . 68

3.16. Estimacion de consumo de recursos logicos de un SMSC(SM). . . 69

3.17. Estimacion de consumo de recursos logicos de un SMSC(SMSR). . 70

3.18. Estimacion de consumo de recursos logicos de la variante SMSR

con redondeo a cero. . . . . . . . . . . . . . . . . . . . . . . . . . 84

3.19. Estimacion de consumo de recursos logicos de la variante SMSR

con redondeo a +∞. . . . . . . . . . . . . . . . . . . . . . . . . . 85

3.20. Estimacion de consumo de recursos logicos de la variante SMSC

con redondeo a cero. . . . . . . . . . . . . . . . . . . . . . . . . . 88

3.21. Estimacion de consumo de recursos logicos de la variante SMSC

con redondeo a +∞. . . . . . . . . . . . . . . . . . . . . . . . . . 90

4.1. Consumo de recursos de los multiplicadores en Spartan[CLB]. . . 94

4.2. Consumo Estimado de recursos de los multiplicadores [CLB]. . . . 94

4.3. Diferencia porcentual, Consumo Experimental vs Estimado [ %]. . 95

4.4. Consumo de recursos de los multiplicadores en Virtex [slices]. . . . 98

4.5. Consumo de recursos de los multiplicadores en Virtex II [slices]. . 98

4.6. Retardo de propagacion de los multiplicadores en Spartan [ns]. . . 99

4.7. Retardo estimado de propagacion de los multiplicadores Trd = 0 [ns]. 99

4.8. Diferencia porcentual, Retardo de propagacion Experimental vs

Estimado [ %]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100

4.9. Velocidad de Procesamiento de los multiplicadores en Spartan [Mops/s].100

4.10. Velocidad de Procesamiento de los multiplicadores en Virtex [Mops/s].101

4.11. Velocidad de Procesamiento de los multiplicadores en Virtex II

[Mops/s]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101

4.12. Consumo de recursos logicos de los multiplicadores en punto flo-

tante en Spartan [CLBs]. . . . . . . . . . . . . . . . . . . . . . . . 114

ix

Page 10: Tesis Funes Marcos

4.13. Consumo de recursos logicos de las variantes en Virtex [slices]. . . 115

4.14. Consumo de recursos logicos de las variantes en Virtex II [slices]. . 115

4.15. Comportamiento temporal de las variantes en Spartan [Mflop/s]. . 115

4.16. Comportamiento temporal de las variantes en Virtex [Mflop/s]. . 116

4.17. Comportamiento temporal de las variantes en Virtex II [Mflop/s]. 116

5.1. Implementacion de Multiplicadores Paralelos en FPGA. . . . . . . 122

5.2. Resultados experimentales de Multiplicadores Secuenciales . . . . 123

5.3. Resultados experimentales de los Multiplicadores Secuenciales pro-

puestos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124

5.4. Resultados experimentales de Multiplicadores en Punto Flotante . 125

B.1. Punto flotante estandar. . . . . . . . . . . . . . . . . . . . . . . . 156

B.2. Punto flotante a medida. . . . . . . . . . . . . . . . . . . . . . . . 157

x

Page 11: Tesis Funes Marcos

Indice de figuras

2.1. Diagrama en bloques de un multiplicador en punto flotante . . . . 9

2.2. Semisumador a) Sımbolo logico, b) y c) arquitectura. . . . . . . . 13

2.3. Sumador total,a) sımbolo logico b) y c) arquitecturas. . . . . . . . 15

2.4. Sımbolo logico de un CPA e implementacion de un RCA. . . . . 16

2.5. CSA a) Sımbolo logico y b) implementacion con FAs. . . . . . . . 17

2.6. Sumadores concatenados a) con CPA, b) con CSA. . . . . . . . . 18

2.7. Arbol de sumadores para m=9. . . . . . . . . . . . . . . . . . . . 19

2.8. Multiplicador por Tabla de Look-up. . . . . . . . . . . . . . . . . 20

2.9. Multiplicador Ripple Carry de 4 bits. . . . . . . . . . . . . . . . . 20

2.10. PE de un multiplicador Ripple Carry. . . . . . . . . . . . . . . . . 21

2.11. Esquema de un multiplicador Ripple Carry mediante PEs. . . . . 21

2.12. Multiplicador Carry Save de 4 bits. . . . . . . . . . . . . . . . . . 22

2.13. PE de un multiplicador Carry Save. . . . . . . . . . . . . . . . . . 22

2.14. Esquema de un multiplicador Carry Save mediante PEs. . . . . . 23

2.15. PE de un multiplicador paralelo Guild. . . . . . . . . . . . . . . . 23

2.16. Multiplicador paralelo Guild. . . . . . . . . . . . . . . . . . . . . . 24

2.17. PE de un multiplicador Mccanny - Mcwhinter. . . . . . . . . . . . 25

2.18. Multiplicador paralelo Mccanny - Mcwhinter. . . . . . . . . . . . 26

2.19. Consumo de recursos logicos de MP. . . . . . . . . . . . . . . . . 28

2.20. Multiplicadores proporcionados por Xilinx. . . . . . . . . . . . . . 29

xi

Page 12: Tesis Funes Marcos

2.21. Implementacion de Multiplicadores n = 8 . . . . . . . . . . . . . . 30

2.22. Implementacion de Multiplicadores n = 16 . . . . . . . . . . . . . 30

2.23. Implementacion de un multiplicador optimizado en area de Xilinx

n = 32. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

3.1. Multiplicador SM con desplazamiento a la derecha. . . . . . . . . 37

3.2. Multiplicador SM con desplazamiento a la derecha con registro

compartido. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

3.3. Multiplicador SM con desplazamiento a la izquierda. . . . . . . . 39

3.4. Consumo de recursos del SM. . . . . . . . . . . . . . . . . . . . . 41

3.5. Esquema de retardos en un sumador. . . . . . . . . . . . . . . . . 42

3.6. Retardo de propagacion estimado del SM. . . . . . . . . . . . . . 44

3.7. Maxima frecuencia de reloj estimada aplicable al SM. . . . . . . . 44

3.8. Velocidad maxima de procesamiento del SM. . . . . . . . . . . . . 45

3.9. Diagrama de un SMB4(3X). . . . . . . . . . . . . . . . . . . . . . 47

3.10. Diagrama de un SMB4(-X). . . . . . . . . . . . . . . . . . . . . . 49

3.11. Diagrama de la variante del SMB4(-X). . . . . . . . . . . . . . . . 50

3.12. Consumo de recursos de multiplicadores SM. . . . . . . . . . . . . 52

3.13. Retardo de propagacion estimado del SMB4(3X). . . . . . . . . . 53

3.14. Maxima frecuencia de reloj estimada aplicable al SMB4(3X). . . . 53

3.15. Velocidad maxima de procesamiento del SMB4(3X). . . . . . . . . 54

3.16. Retardo de propagacion estimado del SMB4(-X). . . . . . . . . . 55

3.17. Maxima frecuencia de reloj estimada aplicable al SMB4(-X). . . . 55

3.18. Velocidad maxima de procesamiento del SMB4(-X). . . . . . . . . 56

3.19. Multiplicador SMSR. . . . . . . . . . . . . . . . . . . . . . . . . . 57

3.20. Consumo de recursos del SMSR. . . . . . . . . . . . . . . . . . . . 58

3.21. Retardo de propagacion estimado del SMSR. . . . . . . . . . . . . 59

xii

Page 13: Tesis Funes Marcos

3.22. Maxima frecuencia de reloj estimada aplicable al SMSR. . . . . . 60

3.23. Velocidad maxima de procesamiento del SMSR. . . . . . . . . . . 60

3.24. Diagrama de operacion de un SMF. . . . . . . . . . . . . . . . . . 62

3.25. Consumo de recursos de multiplicadores SMF. . . . . . . . . . . . 65

3.26. Retardo de propagacion estimado del SMF. . . . . . . . . . . . . . 66

3.27. Maxima frecuencia de reloj estimada aplicable al SMF. . . . . . . 66

3.28. Velocidad maxima de procesamiento de los SMF. . . . . . . . . . 67

3.29. Ejemplo de un SMSC(SM). . . . . . . . . . . . . . . . . . . . . . 68

3.30. Ejemplo de un SMSC(SMSR). . . . . . . . . . . . . . . . . . . . . 69

3.31. Consumo de recursos estimado de un SMSC. . . . . . . . . . . . . 71

3.32. Ruta crıtica de dos sumas consecutivas. . . . . . . . . . . . . . . . 72

3.33. Retardo de propagacion estimado del SMSC. . . . . . . . . . . . . 73

3.34. Maxima frecuencia de reloj estimada aplicable al SMSC. . . . . . 74

3.35. Velocidad maxima de procesamiento del SMSC. . . . . . . . . . . 74

3.36. Consumo de recursos logicos de un SM vs SMSR. . . . . . . . . . 75

3.37. Velocidad de procesamiento de un SM vs SMSR. . . . . . . . . . . 76

3.38. Consumo de recursos logicos de los multiplicadores optimizados en

velocidad. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

3.39. Velocidad de procesamiento de los multiplicadores optimizados en

velocidad. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

3.40. Indice de performance de los multiplicadores. . . . . . . . . . . . . 79

3.41. Indice de performance de los multiplicadores 20 < n < 32. . . . . 80

3.42. Modificacion del SMSR para el producto de las mantisas . . . . . 81

3.43. Ejemplo del esquema de redondeo implementado . . . . . . . . . . 83

3.44. Multiplicacion de las mantisas. . . . . . . . . . . . . . . . . . . . . 83

3.45. Consumo de recursos del PFPM(SMSR), r = 8. . . . . . . . . . . 85

3.46. Consumo de recursos del PFPM(SMSR), r = 8. . . . . . . . . . . 86

xiii

Page 14: Tesis Funes Marcos

3.47. SMSC modificado para el producto de las mantisas . . . . . . . . 87

3.48. Consumo de recursos del PFPM(SMSC), r = 8. . . . . . . . . . . 89

3.49. Consumo de recursos del PFPM(SMSC), r = 8. . . . . . . . . . . 91

4.1. Sıntesis de un CLB del multiplicador SM. . . . . . . . . . . . . . . 95

4.2. Consumo de recursos logicos del SM en Spartan. . . . . . . . . . . 96

4.3. Consumo de recursos logicos del SM en Spartan. . . . . . . . . . . 97

4.4. Consumo de recursos logicos: SM vs SMSR en Spartan. . . . . . . 102

4.5. Consumo de recursos logicos: SM vs SMSR en Virtex. . . . . . . . 103

4.6. Consumo de recursos logicos: SM vs SMSR en Virtex II. . . . . . 103

4.7. Velocidad de procesamiento: SM vs SMSR en Spartan. . . . . . . 104

4.8. Velocidad de procesamiento: SM vs SMSR en Virtex. . . . . . . . 104

4.9. Velocidad de procesamiento: SM vs SMSR en Virtex II. . . . . . . 105

4.10. Consumo de recursos logicos de multiplicadores optimizados en

velocidad en Spartan. . . . . . . . . . . . . . . . . . . . . . . . . . 106

4.11. Consumo de recursos logicos de multiplicadores optimizados en

velocidad en Virtex. . . . . . . . . . . . . . . . . . . . . . . . . . . 106

4.12. Consumo de recursos logicos de multiplicadores optimizados en

velocidad en Virtex II. . . . . . . . . . . . . . . . . . . . . . . . . 107

4.13. Velocidad de procesamiento de los multiplicadores optimizados en

velocidad en Spartan. . . . . . . . . . . . . . . . . . . . . . . . . . 108

4.14. Velocidad de procesamiento de multiplicadores optimizados en ve-

locidad en Virtex. . . . . . . . . . . . . . . . . . . . . . . . . . . . 108

4.15. Velocidad de procesamiento de multiplicadores optimizados en ve-

locidad en Virtex II. . . . . . . . . . . . . . . . . . . . . . . . . . 109

4.16. Indice de performance de los multiplicadores en Spartan, 8 ≤ n ≤ 20.110

xiv

Page 15: Tesis Funes Marcos

4.17. Indice de performance de los multiplicadores en Spartan, 20 ≤ n ≤32. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110

4.18. Indice de performance de los multiplicadores en Virtex, 8 ≤ n ≤ 20. 111

4.19. Indice de performance de los multiplicadores en Virtex, 20 ≤ n ≤ 32.112

4.20. Indice de performance de los multiplicadores en Virtex II, 8 ≤ n ≤ 20.113

4.21. Indice de performance de los multiplicadores en Virtex II, 20 ≤n ≤ 32. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113

4.22. Indice de performance de los multiplicadores con redondeo a cero

en Spartan. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117

4.23. Indice de performance de los multiplicadores con redondeo a +∞en Spartan. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118

4.24. Indice de performance de los multiplicadores con redondeo a +∞en Virtex. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118

4.25. Indice de performance de los multiplicadores con redondeo a +∞en Virtex II. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119

A.1. Diagrama en bloques de un CPLD . . . . . . . . . . . . . . . . . . 140

A.2. Distribucion de bloques de una FPGA de Xilinx . . . . . . . . . . 141

A.3. Matriz de interconexion de una FPGA de Xilinx . . . . . . . . . . 143

A.4. Descripcion de un LE de una FPGA FLEX10K de Altera . . . . . 144

A.5. Descripcion de un CLB de una FPGA XC4000 de Xilinx . . . . . 145

A.6. Recursos logicos de algunas FPGAs de Xilinx . . . . . . . . . . . 146

A.7. Logica de acarreo dedicada de una FPGA XC4000 de Xilinx . . . 148

B.1. Esquema de formatos numericos . . . . . . . . . . . . . . . . . . . 151

C.1. Esquema de motores de una seccion del CLIC. . . . . . . . . . . . 161

xv

Page 16: Tesis Funes Marcos

C.2. Sistema de control de movimiento de motores de accionamiento

incremental. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162

C.3. Diagrama de flujo de un algoritmo on-line. . . . . . . . . . . . . . 163

C.4. Perfil de velocidad trapezoidal. . . . . . . . . . . . . . . . . . . . . 164

C.5. Perfil de velocidad, deseado, cuantizado y la temporizacion resul-

tante. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166

C.6. (Izquierda) Posicion y velocidad con el algoritmo iterativo. (Dere-

cha) Detalle del perfil de posicion y velocidad del perfil iterativo . 167

C.7. Arquitectura hardware del algoritmo de generacion de perfil de

velocidad. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168

C.8. Implementacion del multiplicador Ripple Carry en una FPGA XC4006E.170

C.9. Implementacion de un multiplicador optimizado en area de Xilinx

en una FPGA XC4006E. . . . . . . . . . . . . . . . . . . . . . . . 171

C.10.Perfil de velocidad y posicion del accionamiento controlado por un

sistema basado en FPGA. 15 revs≡ 6000pasos

s. . . . . . . . . . . . 173

C.11.Perfil de velocidad del accionamiento controlado por un sistema

basado en FPGA. 62,5 revs≡ 25000pasos

s. . . . . . . . . . . . . . . 174

C.12.Perfil de velocidad del accionamiento utilizando el modo de micro-

pasos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176

C.13.Perfiles de posicion y velocidad para un sistema de accionamiento

en modomicropaso. . . . . . . . . . . . . . . . . . . . . . . . . . . 177

xvi

Page 17: Tesis Funes Marcos

Agradecimientos

A Mario

A Daniel

A mis colegas en el Laboratorio de Instrumentacion y Control

xvii

Page 18: Tesis Funes Marcos

Resumen

El objetivo principal de esta tesis fue desarrollar arquitecturas de multiplicado-

res binarios de menor consumo de recursos logicos que las existentes, manteniendo

las prestaciones de velocidad de calculo. El proposito particular fue implementar

las mismas en los dispositivos digitales denominados FPGA (Field Programmable

Gate Array).

Para ello se investigaron las estructuras de multiplicacion del tipo secuencial

que se caracterizan por poseer un consumo de recursos reducido y una velocidad

de procesamiento baja.

Se modelizaron los multiplicadores a partir del desarrollo de ecuaciones que

permiten estimar el consumo de recursos logicos y el desempeno temporal de los

mismos. Se desarrollaron nuevas arquitecturas que se compararon con las exis-

tentes. Se introdujo un nuevo indicador denominado ındice de performance, que

permite cuantificar el costo de un multiplicador para una dada FPGA. Los resul-

tados teoricos se corroboraron con un exhaustivo trabajo experimental mediante

el cual se han validado las ecuaciones obtenidas.

A partir de la validacion de los modelos de los multiplicadores, se determina-

ron los esquemas de mayor desempeno que cumplen con los objetivos deseados.

Ası se arribo a multiplicadores en punto fijo con los que se obtuvo un consu-

mo de recursos hasta 8 veces menor y una velocidad comparable a la de una

arquitectura existente. Los avances se extendieron a la multiplicacion en punto

xviii

Page 19: Tesis Funes Marcos

flotante, obteniendose esquemas de bajo consumo de recursos y buena velocidad

de procesamiento.

xix

Page 20: Tesis Funes Marcos

Nomenclatura

1C Complemento a 1

2C Complemento a 2

ALP Arreglo Logico Programable

ASIC Application Specific Integrated Circuit

CLB Configurable Logic Block

CPA Carry Propagate Adder

CPLD Complex Programmable Logic Device

CSA Carry Save Adder

DSP Digital Signal Processor

FA Full Adder

FF Flip Flop

FG Function Generator

FPGA Field Programmable Gate Array

GAL Generic Array Logic

HA Half Adder

LSB Least Significant Bit

LUT Look-up Table

xx

Page 21: Tesis Funes Marcos

MAC Multiplicador/Acumulador

MP Multiplicador Paralelo

PAL Programmable Array Logic

PE Procesador Elemental

PLD Programmable Logic Device

PROM Programmable Read Only Memory

PS Processing Speed

RCA Ripple Carry Adder

SM Multiplicador Secuencial

SMB4 Multiplicador Secuencial de base 4

SMF Multiplicador Secuencial Fraccionado

SMSC Multiplicador Secuencial de Sumas Consecutivas

SMSR Multiplicador Secuencial Sin entradas Registradas

SR Shift Register

VHDL Very high speed integrated circuit Hardware Description Lan-

guage

fc Maxima frecuencia de reloj

pi Bit i del operando P

P Operando Producto

TBY P CIN to COUT bypass delay

Tc Tiempo de calculo

TCK Perıodo de reloj

TCKO Clock-to-output delay

xxi

Page 22: Tesis Funes Marcos

TILO F/G inputs to X/Y outputs delay

TOCPY Operand inputs (F1, F2, G1, G4) to COUT delay

tpd Propagation delay

Trd Route delay

TSUM CIN through function generator to X/Y output delay

X, Y Operando Multiplicando y multiplicador respectivamente

xi, yi Bit i del operando Multiplicando y Multiplicador respectivamen-

te

Vmin Velocidad mınima

Vmax Velocidad maxima

Vr(k) Velocidad de referencia para el paso k-esimo

∆t(k) Perıodo de tiempo entre el paso actual y el proximo

xxii

Page 23: Tesis Funes Marcos

Capıtulo 1

Introduccion

En el Procesamiento Digital de Senales (PDS) se recurre, como operacion

elemental, al producto de dos operandos y la posterior adicion de un tercero,

estructura conocida como MAC (Multiplicador/Acumulador).

Los dispositivos de calculo mas empleados en el PDS son los DSPs (Digital

Signal Processors). Si bien los DSPs son baratos y flexibles, poseen solo una uni-

dad MAC por lo que un proceso aritmetico demanda la ejecucion secuencial de las

operaciones. Como consecuencia, una operacion algorıtmica consume un deter-

minado tiempo de ejecucion y, si fuera necesario utilizar un tiempo de ejecucion

menor, convendrıa adoptar hardware a medida, alternativa proporcionada por los

ASICs (Application-Specific Integrated Circuit) y las FPGAs (Field Programma-

ble Gate Array). Tanto los ASICs como las FPGAs posibilitan la utilizacion de

varias MACs en paralelo, logrando de este modo una notable reduccion del tiempo

de procesamiento. Los ASICs admiten implementar sistemas complejos y resguar-

dan la propiedad intelectual de los procesos debido a que no son copiables. Sin

embargo implican un gran costo de fabricacion por lo que no aceptan errores

en su desarrollo y, consecuentemente, su utilizacion representa un gran riesgo de

produccion.

1

Page 24: Tesis Funes Marcos

Capıtulo 1. Introduccion 2

En cuanto a las FPGAs, estas combinan la flexibilidad de un DSP con la

velocidad y la densidad de componentes de un ASIC. Las FPGAs poseen una

gran cantidad de recursos logicos, un bajo costo de desarrollo ya que son faciles de

depurar y, fundamentalmente, permiten al disenador corregir errores y actualizar

el diseno. Estas ventajas convierten a las FPGAs en dispositivos apropiados como

procesadores de senales o aceleradores de calculo.

1.1. Estructuras de Multiplicadores

Los multiplicadores se pueden clasificar segun el modo en que ingresan los

operandos [1] [2]. Si ambos operandos ingresan en forma serie se denominan

serie/serie. La mayor ventaja de estos multiplicadores reside en el bajo nume-

ro de entradas/salidas utilizadas y en la bajo consumo de recursos logicos, sin

embargo estos multiplicadores se encuentran limitados a aplicaciones de baja

velocidad [3] [4] [5]. Si solo uno de los operandos ingresa en forma serie, el mul-

tiplicador se denomina serie/paralelo [6]. Este tipo de multiplicadores presentan

un consumo de recursos logicos moderado y son ideales para aplicaciones de velo-

cidad media donde los multiplicadores serie/serie son demasiado lentos. Si ambos

operandos son ingresados en paralelo el tipo de multiplicador es denominado pa-

ralelo/paralelo. Estos ultimos son los que se trataran en esta tesis debido a su

capacidad de procesar los datos a alta velocidad.

Los multiplicadores tambien se pueden clasificar en funcion del algoritmo de

calculo en: suma y desplazamiento, por arbol o contadores. Los multiplicadores

por suma y desplazamiento utilizan el metodo conocido comunmente como lapiz

y papel para calcular el producto. En algunos casos esta tarea se realiza constru-

yendo una celda de procesamiento basica que se repite en un arreglo determinado.

Page 25: Tesis Funes Marcos

Capıtulo 1. Introduccion 3

La diferencia de procesamiento de estos multiplicadores radica en el tipo de co-

municacion entre estas celdas, que puede ser local (solo existe comunicacion entre

celdas vecinas) o global (existe comunicacion mas alla de la celda vecina). Con el

objetivo de acelerar los productos parciales1 C. Wallace [7] propuso originalmente

una estructura de sumadores, conocida como Arbol de Wallace, donde el retardo

de la suma es proporcional el logaritmo del numero de sumandos. Otro modo de

acelerar los productos parciales consiste en la utilizacion de contadores parale-

los [8] para obtener la suma de los bits que forman las columnas de la matriz de

productos parciales.

Los multiplicadores que realizan el algoritmo de suma y desplazamiento en

forma simultanea son denominados habitualmente multiplicadores paralelos. Es-

tos multiplicadores realizan el producto rapidamente, pero son difıciles de realizar

cuando un dispositivo posee una cantidad de recursos limitada. Este problema se

acentua, cuando el formato de los operandos esta expresado en punto flotante.

Los multiplicadores en punto flotante utilizan tıpicamente multiplicadores para-

lelos para el producto de las mantisas [9] [10]. A medida que se incrementa la

complejidad de la operacion, el consumo de recursos logicos utilizados aumenta

notablemente y consecuentemente los costos de implementacion.

Un esquema de multiplicacion de operandos en paralelo que utiliza una menor

cantidad de recursos logicos es el denominado Shift and Add [11] [12] o secuencial

(SM). Esta reduccion del consumo de recursos se realiza a costa de ejecutar tantas

iteraciones como longitud de palabra posean los operandos [13] [14]. Esto repre-

senta una seria desventaja debido al excesivo tiempo de calculo y por esta razon

han sido excluidos de las aplicaciones tıpicas. Por otro lado, si se puede mejorar

el desempeno en velocidad sin incurrir en la cantidad de recursos que requiere un

1En la multiplicacion de dos numeros enteros de n bits se denomina producto parcial alproducto un bit del multiplicador por el multiplicando.

Page 26: Tesis Funes Marcos

Capıtulo 1. Introduccion 4

multiplicador paralelo, estos multiplicadores pueden resultar mas ventajosos.

1.2. Objetivos de la tesis

El objetivo principal de esta tesis consiste en el desarrollo de multiplicado-

res con un reducido consumo de recursos logicos, que mantengan un desempeno

aceptable de la velocidad de procesamiento.

En funcion de este objetivo, se caracterizaran las arquitecturas de los multi-

plicadores existentes. Se propondran variantes que incluyan la multiplicacion de

operandos en punto fijo y punto flotante.

1.3. Organizacion de la tesis

Esta tesis esta dividida en cinco capıtulos. El Capıtulo 1 presenta el estado

del arte e introduce aspectos de la tematica de esta tesis. El Capıtulo 2 presenta

conceptos basicos sobre la multiplicacion. Se presentan los esquemas de Multi-

plicadores Paralelos, los cuales se caracterizan y se ensayan con el objetivo de

cuantificar la problematica de consumo de recursos.

El Capıtulo 3 esta dedicado al desarrollo de la propuesta que consiste en la

aplicacion de Multiplicadores Secuenciales al producto binario en punto fijo y en

punto flotante. En este capıtulo se desarrollan diferentes esquemas de Multipli-

cacion Secuencial para los cuales se estima su desempeno en cuanto a la cantidad

de recursos logicos y velocidad de procesamiento.

El Capıtulo 4 esta dedicado a la verificacion experimental. Para ello se ex-

plicita la implementacion practica de los diferentes esquemas desarrollados sobre

algunas familias de FPGAs. El objetivo de este capıtulo es la contrastacion de las

estimaciones obtenidas en el capıtulo anterior con los resultados experimentales.

Page 27: Tesis Funes Marcos

Capıtulo 1. Introduccion 5

En el mismo se establecen criterios de comparacion, en terminos de performance,

entre los multiplicadores propuestos y otros existentes.

Adicionalmente, se presentan cuatro apendices, a saber:

El Apendice A realiza una breve descripcion de los Dispositivos Logicos Pro-

gramables y sus caracterısticas.

El Apendice B introduce los formatos numericos utilizados en PDS.

El Apendice C describe la aplicacion especıfica de los multiplicadores secuen-

ciales en el Procesamiento Digital utilizado en el area de Control de Movimiento.

En el mismo se aprovechan las prestaciones que brindan los multiplicadores en la

implementacion hardware de un algoritmo de control de posicion.

Finalmente, el Apendice D presenta los trabajos publicados como resultado

del trabajo de tesis.

Page 28: Tesis Funes Marcos

Capıtulo 2

Arquitecturas de Multiplicadores

2.1. Introduccion

La utilizacion de FPGA en el Procesamiento Digital de Senales (PDS) es su-

mamente ventajosa. Una de las ventajas consiste en la posibilidad de lograr un

hardware a medida que incluya desde la seleccion de la longitud de palabra de

los operandos hasta la ejecucion de los calculos. Un hardware a medida puede

realizar calculos mas rapidamente que uno programable porque pueden disponer-

se varias unidades de calculo en una sola FPGA. Estos multiplicadores pueden

operar independientes de modo de explotar toda la potencial concurrencia de un

algoritmo. Adicionalmente, en la FPGA se pueden ejecutar otros procesos, como

atencion de perifericos, comunicacion, etc. sin interferir con el procesamiento.

En PDS [15] [16] [17] los procesos recurren, como operacion elemental, al

producto de dos operandos y la posterior adicion de un tercero, denominada

MAC (Multiplicador/Acumulador). En una MAC, la multiplicacion demanda una

mayor cantidad de recursos logicos que la adicion.

En este capıtulo se realiza un repaso de conceptos de la multiplicacion de ope-

randos en punto fijo y punto flotante. Luego, para comprender las arquitecturas

6

Page 29: Tesis Funes Marcos

Capıtulo 2. Arquitecturas de Multiplicadores 7

de los multiplicadores se introducen aspectos relativos a la adicion. Finalmente,

se presentan las estructuras de multiplicadores paralelos y su implementacion en

FPGA.

2.2. Algoritmo de la Multiplicacion

2.2.1. Operandos en punto fijo

Multiplicacion de enteros sin signo

El producto de dos operandos binarios de n bits, un multiplicando, X =n−1∑j=0

xj2j y un multiplicador, Y =

n−1∑j=0

yj2j esta representado por la Ec. (2.1).

P = Y ·X (2.1)

=n−1∑j=0

yj2j ·X (2.2)

=n−1∑j=0

2j · yjX (2.3)

Este producto, para dos operadores binarios de 4 bits sin signo X e Y , se

puede observar en la Tabla 2.1.

Tabla 2.1: Producto de dos operandos de 4 bitsx3 x2 x1 x0

y3 y2 y1 y0

s03 s02 s01 s00 ≡ y0X20

s13 s12 s11 s10 ≡ y1X21

+ s23 s22 s21 s20 ≡ y2X22

s33 s32 s31 s30 ≡ y3X23

p7 p6 p5 p4 p3 p2 p1 p0 ≡ P

producto parcial S = sj,n−1, ..., sj,2, sj,1, sj,0 con j = 0, 1, 2 · n− 1Producto P = p2n−1, ..., p2, p1, p0

Page 30: Tesis Funes Marcos

Capıtulo 2. Arquitecturas de Multiplicadores 8

El producto P se obtiene como la suma de todos los productos parciales cada

uno desplazado 2j veces a la izquierda con j = 0, ..., n − 1. Este producto es

conocido tambien como metodo del lapiz y papel.

Multiplicacion de enteros con signo

En sistemas de magnitud con signo, la magnitud y el signo son representados

en forma separada. Existen multiples formatos para expresar los numeros con

signo, como por ejemplo Magnitud y Signo, Complemento a 1 (1C) y Comple-

mento a 2 (2C) (ver Seccion B.2.1).

La multiplicacion de dos operandos expresados en Magnitud y Signo se efectua

como un producto de enteros sin signo, y se ejecuta con una funcion XOR para

procesar el signo.

El producto de dos operandos expresados en 1C o 2C se puede efectuar reali-

zando el complemento del operando negativo, multiplicando luego como enteros

sin signo y, finalmente, complementando el resultado si solo uno de ellos hubiese

estado complementado. Este tipo de multiplicacion puede resultar sencillo para

el caso de 1C, pero representa bastante complejidad para el caso de 2C. En este

caso, se puede aplicar el metodo de lapiz y papel siempre que los operandos sean

positivos o que el multiplicando sea negativo y el multiplicador positivo. En am-

bos casos la suma acumulativa de los productos parciales arrojara un resultado

correcto mientras que la acumulacion contemple la extension de signo. Esto es,

si el bit mas significativo es 0, se desplaza el operando introduciendo un 0. En el

caso en que este bit sea 1, el desplazamiento se realiza introduciendo un 1.

Cuando el multiplicador sea negativo se debe realizar una correccion al pro-

cedimiento mencionado que consiste en restar el multiplicando en el ultimo paso,

en vez de adicionarlo.

Page 31: Tesis Funes Marcos

Capıtulo 2. Arquitecturas de Multiplicadores 9

2.2.2. Operandos en punto flotante

Los sistemas numericos de punto flotante fueron desarrollados para operar

con precision sobre un gran rango dinamico. Sin embargo, este formato numerico

requiere algoritmos aritmeticos mas complejos.

La multiplicacion de dos operandos en punto flotante incluye varias operacio-

nes: obtencion del signo, adicion de los exponentes, multiplicacion de las mantisas

y normalizacion del resultado (Ecs. (2.4 - 2.7)).

C = A×B = SC · 2eC−bias · 1.fC (2.4)

SC = SA ⊕ SB (2.5)

eC = eA + eB − bias (2.6)

1.fC = 1.fA × 1.fB (2.7)

El algoritmo para la multiplicacion en punto flotante se representa de manera

sintetica en la Fig. 2.1.

OR-exclusivaAdición deexponentes

Producto demantisas

RedondeoAjuste de

bias

Bits de signo Exponentes Mantisas

Bit de signo Exponente MantisaOfl.

Normalización

Eta

pa

1E

tapa

2E

tapa

3

Ajuste deexponente

Figura 2.1: Diagrama en bloques de un multiplicador en punto flotante

Page 32: Tesis Funes Marcos

Capıtulo 2. Arquitecturas de Multiplicadores 10

Las Ecs. (2.4 - 2.7) se realizan en varias etapas, que se describen a continua-

cion:

Etapa 1:

Se adicionan los exponentes eA y eB; si el resultado es menor que la repre-

sentacion, se produce un desbordamiento de capacidad inferior (underflow).

En este caso el resultado de toda la operacion se fija al valor ”cero”. En el

caso de un overflow, el resultado se fija en el maximo numero que el formato

puede representar.

Si el operando C es distinto de cero, se concatena el 1 implıcito a la izquier-

da del fraccional (fA y fB) representado de cada operando y se realiza el

producto entero de los numeros binarios resultantes (Ec. (2.7)).

Si el operando C es distinto de cero, se realiza la operacion XOR de los

signos de los operandos A y B.

Etapa 2:

Se ajusta el bias del exponente. Este ajuste se debe a que cada uno de los

exponentes de los operandos posee un bias (ver Seccion B.2.2) y la adicion

de dos operandos produce un desplazamiento superior al representado por

el formato.

Solo se almacenan los n bits mas significativos del producto entero de la

etapa anterior de longitud 2n bits. Se realiza una operacion de redondeo

sobre la mantisa resultante.

Etapa 3:

Se normaliza el resultado de la mantisa dependiendo del bit mas significativo

del producto de la Ec. (2.7).

Page 33: Tesis Funes Marcos

Capıtulo 2. Arquitecturas de Multiplicadores 11

Se ajusta el exponente dependiendo de la normalizacion del producto de las

mantisas.

Se conforma el signo, el exponente y la mantisa en el formato representado.

Redondeo

La norma IEEE 754 [18], que trata el formato en punto flotante, especifican

cuatro tipos de redondeo: redondeo al mas cercano, redondeo a +∞, redondeo a

−∞ y redondeo a cero.

Redondeo al mas cercano (al par en caso de empate): El estandar IEEE

recomienda este redondeo por defecto. En este caso se obtiene el valor re-

presentable mas cercano al resultado infinitesimalmente preciso.

Redondeo a +∞: El estandar indica que el valor obtenido debe ser el mas

cercano y no menor que el resultado infinitesimalmente preciso. Basicamente

esto significa que, para un resultado positivo, si los bits a la derecha del LSB

son todos 0, entonces el resultado es correcto. Si por el contrario, cualquiera

de estos bits es 1, entonces se debe adicionar un 1 al LSB.

Redondeo a −∞: Este estandar indica que el valor obtenido debe ser el mas

cercano y no mayor que el resultado infinitesimalmente preciso. Basicamente

esto significa que, para un resultado negativo, si los bits a la derecha del LSB

son todos 0, entonces el resultado es correcto. Si por el contrario, cualquiera

de estos bits es 1, entonces se debe adicionar un 1 al LSB.

Redondeo a cero: En el redondeo a cero el resultado es mas cercano y

no mayor en magnitud que el resultado infinitesimalmente preciso. Este

redondeo se aplica truncando el resultado a la derecha del LSB.

Page 34: Tesis Funes Marcos

Capıtulo 2. Arquitecturas de Multiplicadores 12

Normalizacion

Si el producto de mantisas de la Ec. (2.7) resulta en el rango 2 ≤ p ≤ 4,

se debe realizar un desplazamiento de normalizacion a la derecha para restaurar

el producto al rango 1 ≤ pr ≤ 2, con el apropiado ajuste del exponente en una

unidad.

2.3. Adicion

2.3.1. Semisumador

El Sumador Parcial (SP) tambien llamado Semisumador de un bit (Half Adder

- HA) adiciona dos operandos de un bit y genera como resultado un operando

de dos bits. El bit menos significativo es el bit suma, que surge de realizar la

operacion de OR-EXC s = a ⊕ b. El bit mas significativo resulta de realizar la

operacion AND, cout = ab. Este bit es llamado bit de acarreo de salida debido al

desborde de la adicion.

La expresion aritmetica de un sumador parcial se puede observar en las Ecs.

(2.8,2.9 y 2.9), a partir de las que se desprende el calculo del bit s y el bit de

acarreo.

2 · cout + s = a + b (2.8)

s = (a + b) mod 2

cout = (a + b)div2 =1

2(a + b− s) (2.9)

En la Fig. 2.2 se puede observar el sımbolo logico y dos posibles implementa-

ciones del HA.

Page 35: Tesis Funes Marcos

Capıtulo 2. Arquitecturas de Multiplicadores 13

HA

s

cout

a b

(a)

a b

s

cout

(b)

a b

s

cout

(c)

Figura 2.2: Semisumador a) Sımbolo logico, b) y c) arquitectura.

2.3.2. Sumador Total

A diferencia del HA, el sumador total (Full Adder - FA) posee una tercer

entrada denominada bit de acarreo de entrada (cin). Esta entrada es utilizada

para recibir una senal de acarreo de un bit menos significativo.

Las Ecs. (2.10 y 2.11) representan las ecuaciones logicas que gobiernan el

funcionamiento del sumador.

s = a⊕ b⊕ cin (2.10)

cout = ab + acin + bcin (2.11)

Las Ecs. (2.12 - 2.15) representan las ecuaciones aritmeticas correspondientes.

2 · cout + s = a + b + cin (2.12)

s = (a + b + cin) mod 2 (2.13)

cout = (a + b + cin)div2 (2.14)

=1

2(a + b + cin − s) (2.15)

Otra forma de describir el funcionamiento del FA consiste en declarar dos

senales, una senal de generacion (g) y una senal de propagacion (p). La senal g

Page 36: Tesis Funes Marcos

Capıtulo 2. Arquitecturas de Multiplicadores 14

indica cuando una senal de acarreo 0 o 1 es generada dentro del sumador. La

senal p indica cuando una senal de acarreo de entrada es propagada por el FA sin

cambio hacia el acarreo de salida. Adicionalmente se definen para este sistema

dos senales intermedias de acarreo, c0 y c1, que pueden ser calculadas para el caso

de cin = 0 y cin = 1. De esta manera, la salida de acarreo puede ser expresada

mediante (g, p) o (c0, c1) y la senal de acarreo de entrada puede ser realizada

utilizando compuertas AND-OR o mediante una estructura de multiplexacion.

g = ab (2.16)

p = a⊕ b (2.17)

c0 = ab (2.18)

c1 = a + b (2.19)

s = a⊕ b⊕ cin = p⊕ cin

cout = ab + acin + bcin (2.20)

= ab + (a + b)cin = ab + (a⊕ b)cin

= g + cin

= pg + pcin = pa + pcin

= cinc0 + cinc

1 (2.21)

Se debe tener en cuenta que para el calculo de cout utilizando una estructura

AND-OR, la senal de propagacion puede ser formulada como p = a + b pero para

el calculo del bit de la adicion debe ser implementada como p = a⊕ b.

Un FA puede ser implementado a partir de dos sumadores parciales, compuer-

tas de dos entradas, multiplexores, o arreglos mas complejos. En la Fig. 2.3 se

pueden observar a), el sımbolo del sumador, y dos alternativas de implementacion:

mediante dos semisumadores y mediante compuertas logicas.

Page 37: Tesis Funes Marcos

Capıtulo 2. Arquitecturas de Multiplicadores 15

Figura 2.3: Sumador total,a) sımbolo logico b) y c) arquitecturas.

2.3.3. Suma por Propagacion de Acarreo

Una suma de propagacion de acarreo (Carry Propagate Adder - CPA) adiciona

dos operandos de n bits A = (an−1, an−2..., a0), B = (bn−1, bn−2..., b0) y una senal

de acarreo de entrada opcional. El resultado esta representado por un operando

de (n + 1) bits que consiste en un operando S = (sn−1, sn−2..., s0) de n bits y una

senal de acarreo de salida.

Las Ecs. (2.22 y 2.23) representan las ecuaciones logicas de cada sumador.

Se puede notar que el acarreo de salida de un bit menos significativo se propaga

hacia un acarreo de entrada de un bit mas significativo.

sj = aj ⊕ bj ⊕ cj (2.22)

cj+1 = ajbj + (a⊕ bj)cj (2.23)

Las Ecs. (2.24 - 2.27) representan las ecuaciones aritmeticas correspondientes.

2n · cout + S = A + B + cin (2.24)

Page 38: Tesis Funes Marcos

Capıtulo 2. Arquitecturas de Multiplicadores 16

2n · cout +n−1∑j=0

2jsj =n−1∑j=0

2jaj +n−1∑j=0

2jbj + cin (2.25)

=n−1∑j=0

2j(aj + bj) + cin (2.26)

2cj+1 + sj = (aj + bj + cj) (2.27)

donde j = 0, 1, .., n− 1 y c0 = cin y cn = cout.

En la Fig. 2.4 se muestra el sımbolo de este sumador, que puede ser im-

plementado mediante varios FAs, y es comunmente denominado Ripple Carry

Adder (RCA). Se observa que se genera una propagacion de la senal de acarreo

CPA

S

cout

A B

(a)

cin FA

sn-1

cout

an-1 bn-1

(b)

FA

s1

a1 b1

FA

s0

a0 b0

cin...

cn-1c1c2

Figura 2.4: Sımbolo logico de un CPA e implementacion de un RCA.

que depende de la longitud de palabra de los operandos. La propagacion de esta

senal influye directamente en la velocidad de procesamiento del sumador debido

al retardo generado.

2.3.4. Suma Carry-Save

Una suma Carry-Save evita la propagacion del acarreo ubicando a los acarreos

intermedios como salidas en vez de colocarlos en la cadena de propagacion. La

suma de dos operandos de n bits presenta dos dos palabras resultantes, S (suma),

y C (acarreo). Este sumador acepta tres operandos binarios de entrada uno de

los cuales podrıa operar como acarreo de entrada.

Page 39: Tesis Funes Marcos

Capıtulo 2. Arquitecturas de Multiplicadores 17

Las Ecs. (2.28, 2.29 y 2.30) representan las ecuaciones aritmeticas correspon-

dientes.

2 · C + S = A0 + A1 + A2 (2.28)

n∑i=0

2ici +n−1∑i=0

2isi =2∑

j=0

n−1∑i=0

2iaj,i (2.29)

2ci+1 + si =2∑

j=0

aj,i (2.30)

donde i = 0, 1, .., n− 1.

El CSA se construye a partir de un arreglo lineal de FAs y posee un retardo

constante independiente de la longitud de palabra de los operandos, Fig. 2.5. Este

CSA

s

a0

(a)

c

a2 a1

FA

sn-1cn

a2,n-1a1,n-1

(b)

...

a0,n-1

FA

s0c1

a2,0 a1,0 a0,0

FA

s1c2

a2,1 a1,1 a0,1

Figura 2.5: CSA a) Sımbolo logico y b) implementacion con FAs.

tipo de suma es utilizada en la generacion de arreglos de sumadores e implica la

necesidad de una suma final que aplique los acarreos correspondientes a la suma

resultante.

2.3.5. Suma Multi-operandos

Una suma multi-operando es utilizada en la adicion de m operandos de n

bits, A0, ...., Am−1(m > 2) arrojando un resultado S con una representacion de

(n + [log m]) bits.

S =m−1∑j=0

Aj (2.31)

Page 40: Tesis Funes Marcos

Capıtulo 2. Arquitecturas de Multiplicadores 18

Un sumador multi-operando puede ser realizado mediante la concatenacion

serie de m − 1 sumadores de Propagacion de Acarreo (o RCAs) o de m − 2

sumadores Carry-Save seguidos de un sumador de Propagacion de Acarreo.

Ambos tipos de sumadores concatenados son similares en cuanto a su es-

tructura logica, y requerimientos de hardware, ası como la longitud de camino

crıtico. La mayor diferencia entre ambas opciones es el arribo de los bits al ultimo

sumador de propagacion.

En el sumador implementado solo con RCAs los bits mas significativos arriban

mas tarde que los menos significativos, debido a la propagacion de la senal de

acarreo. Por otro lado, en el sumador implementado con CSAs, el arribo de los

bits es balanceado, dependiendo la propagacion del acarreo fundamentalmente

del CPA de la ultima etapa, que tıpicamente es un RCA, Fig. 2.6.

CPA

A0 A1

CPA

A2

CPA

sn-1...0

A3

FA

sn

CSA

A2

CPA

S

A3

CSA

A0A1 A2

(a) (b)

Figura 2.6: Sumadores concatenados a) con CPA, b) con CSA.

Otra suma multi-operando es la propuesta por Wallace [7] tambien denomi-

nada arbol de sumadores (o Wallace tree). Esta compuesto de sumadores CSA en

un arreglo de arbol con un CPA final. Esta estructura esta disenada para obtener

un retardo de propagacion mınimo. La estructura de arbol posee tantas secciones

como sean necesarias para reducir el numero de sumandos a solo dos. En la ultima

Page 41: Tesis Funes Marcos

Capıtulo 2. Arquitecturas de Multiplicadores 19

etapa, se utiliza un CPA rapido que ejecuta la adicion del sumando y el acarreo

final. En la Fig. 2.7 se muestra un arbol de sumadores para m = 9.

CSA

CPA

S

CSA

A0A

1A

2

CSA

A3A

4A

5

CSA

A6A

7A

8

CSA

CSA

CSA

Figura 2.7: Arbol de sumadores para m=9.

2.4. Multiplicadores Paralelos

El multiplicador paralelo (MP) ejecuta el producto de dos operandos si-

multaneamente o en ”paralelo”. Existen numerosos esquemas de MPs y las va-

riantes radican en la forma en que se aborda la ejecucion de los subproductos a

fin de obtener una mayor velocidad de procesamiento.

2.4.1. Multiplicador por Tabla de Look-up

El multiplicador por Tabla de Look-up no realiza calculo, sino que opera como

una memoria. Se concatenan los operandos X e Y constituyendo una direccion

de memoria, Fig. 2.8, cuyo contenido es el valor del producto X · Y previamente

almacenado. Si bien este tipo de multiplicador depende de la velocidad de acceso

a la memoria, es el mas veloz que existe. Su desventaja radica en la cantidad de

Page 42: Tesis Funes Marcos

Capıtulo 2. Arquitecturas de Multiplicadores 20

recursos logicos que demanda. A modo de ejemplo, un multiplicador de 16 bits

requiere una memoria de 4,294,967,296x32 bits.

XY

DIR

P

VALOR

Figura 2.8: Multiplicador por Tabla de Look-up.

2.4.2. Multiplicador Ripple Carry

El multiplicador paralelo mas difundido se basa en un esquema de propagacion

del acarreo tal como con la suma multi-operandos mediante CPA. Este multipli-

cador es conocido como Multiplicador Ripple Carry. En la Fig. 2.9 se muestra un

ejemplo de este producto para dos operandos de 4 bits.

FA 0FAFAFA

FA 0FAFAFA

x3 x3 x1 x0

x3 x3 x1 x0

x3 x3 x1 x0

FA 0FAFAFA

x3 x3 x1 x0

0

y3

y2

y1

y0

p0p1p2p3p4p5p6p7

Figura 2.9: Multiplicador Ripple Carry de 4 bits.

Page 43: Tesis Funes Marcos

Capıtulo 2. Arquitecturas de Multiplicadores 21

Una forma de analizar un esquema de MP es a traves de la sıntesis de una uni-

dad denominada PE (Procesador Elemental) que contiene una compuerta AND y

un FA, Fig. 2.10. Cada PE toma un bit de cada operando vıa las entradas ai y bi,

calcula su producto a traves de la compuerta AND, suma el resultado proveniente

de un PE previo a traves de si y el acarreo generado de un PE previo a traves

de ci. El resultado de la suma a la salida es so con el correspondiente acarreo co.

Los operandos son pasados a la salida a traves de ao y bo.

bi

ai

si

ci

bo

so

co

ao

FA

Figura 2.10: PE de un multiplicador Ripple Carry.

El esquema del Multiplicador Ripple Carry representado a partir de los PEs

se puede observar en la Fig. 2.11.

FA

FA FA

FA

FA FA

FAFA

FA

FA FA

FA

FA FA

FAFA

p7 p6 p5 p4 p3 p1 p0p2

x3 x2 x1 x0

y3

y2

y1

y0

Figura 2.11: Esquema de un multiplicador Ripple Carry mediante PEs.

Page 44: Tesis Funes Marcos

Capıtulo 2. Arquitecturas de Multiplicadores 22

2.4.3. Multiplicador Carry Save

Otro tipo de MP es el generado a partir de un esquema de propagacion del

acarreo como la suma Carry Save, Fig. 2.12. Este esquema busca romper la pro-

pagacion de la cadena de acarreo para disminuir el retardo de cada suma, lo cual

permite acelerar la multiplicacion.

HAHAHA

FAFAFA

x3 x3 x1 x0

x3 x3 x1 x0

x3 x3 x1 x0

FAFAFA

x3 x3 x1 x0

y3

y2

y1

y0

p0p1p2p3p4p5p6p7

FAFAFA

0

Figura 2.12: Multiplicador Carry Save de 4 bits.

Las Figs. 2.13 y 2.14 muestran el PE del multiplicador con propagacion tipo

Carry Save y el multiplicador mediante esta representacion.

bi

ai

si

ci

bo

so

co

ao

FA

Figura 2.13: PE de un multiplicador Carry Save.

Page 45: Tesis Funes Marcos

Capıtulo 2. Arquitecturas de Multiplicadores 23

x3 x2 x1 x0

y3

y2

y1

y0

FAFA

FAFAFA

FAFAFA

FAFAFA

FA

FA

FAFAFA

p7 p6 p5 p4 p3 p1 p0p2

FAFA

FA

FA

Figura 2.14: Esquema de un multiplicador Carry Save mediante PEs.

2.4.4. Multiplicador Guild

El MP propuesto por H. Guild [19] se muestra en la Fig. 2.16, cuyo PE es el

de la Fig. 2.15.

FA

bi

ai

si

ci

bo

so

co

ao

Figura 2.15: PE de un multiplicador paralelo Guild.

Este multiplicador esta estructurado en cadenas de sumadores para cada bit

del producto, las cuales se encuentran en direccion diagonal desde la esquina

izquierda superior a la derecha inferior. Cada sumador de la cadena recibe un

acarreo de entrada correspondiente a una suma de la cadena previa y envıa su

Page 46: Tesis Funes Marcos

Capıtulo 2. Arquitecturas de Multiplicadores 24

salida de acarreo a un sumador de una cadena posterior. El multiplicador Guild

se caracteriza por una alta tasa de procesamiento, debido a la utilizacion de

paralelismo y la posibilidad de implementacion pipelines1.

FAFA

FA

FA

FA

FA

FA

FAFA FA

FA FA

FA FA

FA

FA

y3 x3 y2 x2 y1 x1 y0 x0

p7 p6 p5 p4 p3 p1 p0p2

Figura 2.16: Multiplicador paralelo Guild.

1Es una tecnica de aceleracion de procesos que se basa en la introduccion latches o registros enuna apropiada posicion del arreglo para separar la operacion en etapas. Una vez implementada,el sistema incrementa su velocidad de procesamiento como etapas posea.

Page 47: Tesis Funes Marcos

Capıtulo 2. Arquitecturas de Multiplicadores 25

2.4.5. Multipicador McCanny-McWhinter

Otro esquema de multiplicacion paralelo es el propuesto por J. McCanny

y J. McWhinter [20], Figs. 2.17 y 2.18. En la Fig. 2.18 se puede observar que

el multiplicador esta estructurado en cadenas de sumadores para cada bit del

producto, las cuales se encuentran en direccion vertical. Cada sumador de la

cadena recibe en forma diagonal un acarreo de entrada correspondiente a una

suma de la cadena previa y envıa su salida de acarreo a un sumador de una

cadena posterior. Este multiplicador se caracteriza por presentar comunicacion

local entre las celdas basicas.

FA

bi

ao

si

ci

bo

so

co

ai

Figura 2.17: PE de un multiplicador Mccanny - Mcwhinter.

2.5. Consumo de recursos logicos

2.5.1. Operandos en Punto Fijo

El consumo de recursos logicos (CR) de los Multiplicadores Paralelos mencio-

nados varıa con el esquema utilizado.

Una estimacion de este consumo expresado en terminos de celdas basicas

se realizo para una FPGA de Xilinx. Si se considera que cada CLB (ver Seccion

A.4.1) posee dos funciones de 4 entradas, cada termino de salida generado implica

Page 48: Tesis Funes Marcos

Capıtulo 2. Arquitecturas de Multiplicadores 26

FA

FA

FA

FA

FA

FA

FA

FA

FA

FA

FA

FA

FA

FA

FA

FA

FA

FA

FA

FA

FA

FA

FA

FA

FA

FA

y3

y2

y1

y0 x3

x2

x1

x0

p7 p6 p5 p4 p3 p1 p0p2

Figura 2.18: Multiplicador paralelo Mccanny - Mcwhinter.

Page 49: Tesis Funes Marcos

Capıtulo 2. Arquitecturas de Multiplicadores 27

el consumo de n2

CLBs. Las Ecs. (2.32 - 2.35) resumen la estimacion de consumo

para las distintas arquitecturas de MPs.

Ripple Carry:

CLB(n) = (n− 1)n +n

2= n2 − n

2(2.32)

Carry Save:

CLB(n) = n(n− 1) +n

2= n2 − n

2(2.33)

Guild:

CLB(n) = n2 (2.34)

McCanny - McWhinter:

CLB(n) = n2 +n(n− 1)

2+

n

2=

3n2

2(2.35)

En la Fig. 2.19 se grafica el consumo de recursos logicos de estos multipli-

cadores. En la misma figura se presenta como referencia la cantidad de recursos

logicos de distintas FPGAs de la serie Spartan de Xilinx.

Se puede concluir que los multiplicadores paralelos, en sus diferentes variantes,

presentan un consumo de recursos elevado que se incrementa cuadraticamente con

la longitud de palabra. De las variantes ejemplificadas, la de McCanny-McWhinter

es la mas onerosa, mientras que las variantes que menos recursos logicos consumen

son la de Ripple Carry y la de Carry Save. En la misma figura se puede observar

Page 50: Tesis Funes Marcos

Capıtulo 2. Arquitecturas de Multiplicadores 28

tambien que para las FPGAs de menor capacidad solo se pueden implementar

multiplicadores de longitudes de palabra inferiores a 10 bits.

0 5 10 15 20 25 300

500

1000

1500

n

CLB

XCS05

XCS10

XCS20

XCS30

XCS40

Ripple CarryCarry SaveGuildMcCanny

Figura 2.19: Consumo de recursos logicos de MP.

Los fabricantes de FPGAs ofrecen MPs que pueden ser configurados por el

disenador. Por ejemplo Xilinx ofrece dos versiones, una para multiplicadores op-

timizados en el consumo de recursos y otra para optimizados en velocidad [21].

La Fig. 2.20 presenta la informacion de referencia proporcionada por el fabricante

donde se puede observar que aun los multiplicadores optimizados en consumo de

recursos demandan una importante cantidad de los mismos, limitando la aplica-

cion de estos multiplicadores a FPGAs de elevado numero de CLBs.

Implementacion en FPGA

Se realizo la implementacion de multiplicadores paralelos en FPGA. En la

la Tabla 2.2 se muestra el consumo de recursos logicos en terminos de CLBs y

la velocidad de procesamiento de datos en Millones de Operaciones por segundo

(Mops). Se puede notar el notable incremento de consumo de recursos logicos que

Page 51: Tesis Funes Marcos

Capıtulo 2. Arquitecturas de Multiplicadores 29

100

40

60

50

70

90

80

10

30

20

020050 1000 250

8x8

12x12

16x16MH

zOpt. en velocidad

Optimizado en Recursos

8x8

10x10

12x12

CLBs150

Figura 2.20: Multiplicadores proporcionados por Xilinx.

demanda cada multiplicador cuando se duplica la longitud de palabra. Tal como

se expreso anteriormente, este incremento es tıpicamente cuadratico.

Tabla 2.2: Implementacion de multiplicadores en FPGA.Spartan Virtex Virtex II

Bits Tipo CLB Mops Slices Mops Slices Mops8 MP 61 20.8 64 41.9 64 45.58 MX 52 17.5 36 76.3 36 62.6

16 MP 247 10.8 257 22.0 258 24.716 MX 213 11.2 140 59.0 141 47.232 MX 816 3.1 544 40.5 548 38.5

MP: Multiplicador ParaleloMX: Multiplicador propuesto por Xilinx

Las Figs. 2.21(a) y 2.21(b) muestran el area de ocupacion logica para los

multiplicadores de 8 bits en una FPGA de 256 CLBs. Las Figs 2.22(a) y 2.22(b)

indican el area para una longitud de palabra de 16 bits.

Nuevamente se puede observar que el consumo de recursos logicos de los Mul-

tiplicadores Paralelos se incrementa notablemente con la longitud de palabra.

Esta caracterıstica hace necesaria la utilizacion de FPGAs con gran cantidad de

recursos para poder implementar los multiplicadores. En la Fig 2.23 se mues-

tra el consumo de recursos para un multiplicador optimizado en area de 32 bits

Page 52: Tesis Funes Marcos

Capıtulo 2. Arquitecturas de Multiplicadores 30

(a) Ripple Carry (b) Xilinx

Figura 2.21: Implementacion de Multiplicadores n = 8

(a) Ripple Carry (b) Xilinx

Figura 2.22: Implementacion de Multiplicadores n = 16

Page 53: Tesis Funes Marcos

Capıtulo 2. Arquitecturas de Multiplicadores 31

de Xilinx. Para esta implementacion fue necesario recurrir a una FPGA de 400

CLBs.

Figura 2.23: Implementacion de un multiplicador optimizado en area de Xilinxn = 32.

2.5.2. Operandos en punto flotante

La multiplicacion de operandos en punto flotante requiere una mayor cantidad

de recursos que su contraparte en punto fijo, debido a que se deben realizar mas

operaciones. Sin embargo, de todas las operaciones involucradas, el producto de

las mantisas es la que demanda la mayor cantidad de recursos logicos.

Como se menciono en la Seccion 2.2.2, el producto de las mantisas se efectua

como un producto en punto fijo. Por lo tanto, el analisis de consumo de recursos

de la seccion anterior se puede extender a la presente, con la observacion que se

debe adicionar el consumo de recursos propio de la adicion de los exponentes,

la determinacion del signo y, el de las operaciones de redondeo y normalizacion.

Razon por la cual, la problematica de recursos se acentua.

Un analisis de las implicaciones practicas de la implementacion de multiplica-

dores de punto flotante en FPGA se puede encontrar en los trabajos de Shirazi

Page 54: Tesis Funes Marcos

Capıtulo 2. Arquitecturas de Multiplicadores 32

et al [9], de Ligon et al [10] y de Louca et al [22]. Otros aportes se pueden en-

contrar en los trabajos de Allan y Luk [23], Jimenez et al [24] donde se presentan

realizaciones parametrizables de multiplicadores.

Mas recientemente, en un trabajo presentado por Aty et al [25] se presenta

un esquema de multiplicador que muestra una relacion de compromiso entre la

velocidad de procesamiento y el consumo de recursos logicos. Sin embargo, en este

trabajo se puede apreciar que el consumo de recursos continua siendo sustancial.

2.6. Conclusiones

En este capıtulo se presentaron algunos conceptos de la multiplicacion con el

objetivo de poder introducir la problematica del consumo de recursos logicos en

la implementacion de esta operacion.

Se concluye que, si bien los multiplicadores paralelos permiten ejecutar pro-

ductos rapidamente, el consumo de recursos de estos multiplicadores es muy ele-

vado aumenta cuadraticamente con la longitud de palabra. Esto presenta una

desventaja respecto a la utilizacion de estos dispositivos para el procesamiento

de senales, pues restringe la implementacion de los mismos a FPGAs de gran

tamano y costo.

Page 55: Tesis Funes Marcos

Capıtulo 3

Nuevas Arquitecturas de

Multiplicadores

3.1. Introduccion

La utilizacion de un multiplicador con un gran consumo de recursos logicos

puede empeorar el desempeno general del sistema o requerir de FPGAs de mayor

tamano.

El Multiplicador Secuencial denominado tambien Shift and Add [11] [12] uti-

liza una cantidad reducida de recursos logicos. El SM no es muy utilizado debido

a la cantidad de iteraciones involucradas en un producto.

En este capıtulo se analiza la multiplicacion secuencial con el objetivo de

ampliarla a FPGAs. Se caracterizan las variantes existentes y se proponen algu-

nos esquemas que intentan mejorar la velocidad de calculo manteniendo un bajo

consumo de recursos logicos.

33

Page 56: Tesis Funes Marcos

Capıtulo 3. Nuevas Arquitecturas de Multiplicadores 34

3.2. Multiplicacion Secuencial

El Multiplicador Secuencial (SM) realiza el calculo en forma iterativa mante-

niendo un producto parcial acumulativo y sucesivamente sumando al mismo los

terminos yjX con el debido desplazamiento (Tabla 3.1). De esta forma, se logra

reducir la cantidad de recursos a los necesarios para realizar la multiplicacion

yjX.

Tabla 3.1: Producto de dos operandos de 4 bits, acumulacion de productos par-ciales.

x3 x2 x1 x0

y3 y2 y1 y0

s03 s02 s01 s00 ≡ 0s13 s12 s11 s10 ≡ y0X20

s23 s22 s21 s20 ≡ y1X21 + y0X20

s33 s32 s31 s30 ≡ y2X22 + y1X21 + y0X20

p8 p7 p6 p5 p4 p3 p2 p1 ≡ y3X23 + y2X22 + y1X21 + y0X20

3.2.1. Algoritmo

En forma simplificada el algoritmo acumula cada producto parcial sobre el

resultado parcial desplazado un bit respecto al anterior. Existen dos versiones de

este algoritmo dependiendo del sentido de los valores a acumular, con desplaza-

miento a la izquierda o viceversa.

En la multiplicacion con desplazamiento a la izquierda, se debe contar con

un acumulador de longitud 2n bits. En este caso los productos parciales yjX son

adicionados al resultado acumulado con un desplazamiento hacia la izquierda de

un bit (21) respecto al anterior. El algoritmo se puede analizar a partir de la Ec.

(3.1).

p(j + 1) = 2p(j) + yn−1−jX con p(0) = 0 (3.1)

Page 57: Tesis Funes Marcos

Capıtulo 3. Nuevas Arquitecturas de Multiplicadores 35

Un ejemplo de este algoritmo se muestra en la Tabla 3.2. En el mismo se

realiza un producto de dos operandos de 4 bits.

Tabla 3.2: Multiplicacion secuencial con desplazamiento a la izquierda para ope-randos de 4 bits.

X 1 0 0 1Y 1 1 0 1

p(0) 0 0 0 0

2p(0) 0 0 0 0 0+y3X 1 0 0 1p(1) 1 0 0 1

2p(1) 1 0 0 1 0+y2X 1 0 0 1p(2) 1 1 0 1 1

2p(2) 1 1 0 1 1 0+y1X 0 0 0 0p(3) 1 1 0 1 1 0

2p(3) 1 1 0 1 1 0 0+y0X 1 0 0 1p(4) 0 1 1 1 0 1 0 1

En la multiplicacion con desplazamiento a la derecha el algoritmo se puede

analizar con la Ec. (3.2).

p(j + 1) = (p(j) + yjX2n)2−1 con p(0) = 0 (3.2)

o visto de otra manera con la Ec. (3.3),

P = 2n−1

[n−1∑j=0

yjX · 2j−(n−1)

](3.3)

En este caso los productos parciales yjX son adicionados al resultado acumu-

lado con un desplazamiento hacia la derecha de un bit (2−1) respecto al anterior.

Page 58: Tesis Funes Marcos

Capıtulo 3. Nuevas Arquitecturas de Multiplicadores 36

Debido a que el desplazamiento a la derecha genera un primer producto par-

cial multiplicado por 2−k se debe pre-multiplicar y0X por 2k para compensar el

efecto del desplazamiento. Esta pre-multiplicacion se puede efectuar facilmente,

almacenando p(j) en el segmento mas significativo de un registro de 2n bit.

Un ejemplo de este algoritmo se muestra en la Tabla 3.3.

Tabla 3.3: Multiplicacion con desplazamiento a la derecha para operandos de 4bits.

X 1 0 0 1Y 1 1 0 1

p(0) 0 0 0 0+y0X 1 0 0 12p(1) 1 0 0 1

p(1) 0 1 0 0 1+y1X 0 0 0 02p(2) 0 1 0 0 1

p(2) 0 0 1 0 0 1+y2X 1 0 0 12p(3) 1 0 1 1 0 1

p(3) 0 1 0 1 1 0 1+y3X 1 0 0 12p(4) 1 1 1 0 1 0 1

p(4) 0 1 1 1 0 1 0 1

De los ejemplos presentados en las Tablas 3.2 y 3.3 se puede observar que

ambos algoritmos son similares. Cada algoritmo realiza n sumas y n desplaza-

mientos, sin embargo, las sumas realizadas con el algoritmo de desplazamiento

a la izquierda son de 2n bits de longitud de palabra respecto del algoritmo de

desplazamiento a la derecha que son de n bits. Esto se debe a que el acarreo de la

suma se extiende hacia los bit mas significativos. Por lo tanto, el algoritmo mas

utilizado es el de desplazamiento a la derecha que involucra menos recursos.

Page 59: Tesis Funes Marcos

Capıtulo 3. Nuevas Arquitecturas de Multiplicadores 37

3.2.2. Implementacion

La implementacion hardware de la multiplicacion con desplazamiento a la

derecha se muestra en la Figura 3.1. El multiplicador Y y la acumulacion de

los productos parciales p(j) son almacenados en registros de desplazamiento. El

bit yj del multiplicador es el bit menos significativo disponible a la derecha del

registro Y , el mismo es utilizado en el producto yjX seleccionando 0 o X en la

suma.

La suma y el desplazamiento pueden ser realizados en ciclos diferentes o en dos

sub-ciclos dentro del mismo ciclo de reloj. En ambos casos se necesita almacenar

la senal de acarreo del sumador. Por otro lado, el desplazamiento se puede realizar

conectando el bit menos significativo de la suma al bit n − 1 del registro P y el

bit de acarreo al bit 2n−1 del mismo registro de longitud 2n y realizando de este

modo suma y desplazamiento en un solo ciclo de reloj.

ADD

X

Producto

desplazamiento

n

n

Y

Parcialacarreo

0n-12n-1 n

0n-1

desplazamiento

0n-1

nn

Figura 3.1: Multiplicador SM con desplazamiento a la derecha.

Se debe considerar que el multiplicador y la mitad menos significativa del

registro P pueden compartir un mismo registro, de manera que a medida que

los bits del multiplicador se van extrayendo del registro a partir del bit menos

significativo, el bit menos significativo de p(j) es ingresado por el extremo mas

Page 60: Tesis Funes Marcos

Capıtulo 3. Nuevas Arquitecturas de Multiplicadores 38

significativo del mismo registro. El control del multiplicador, que no se muestra

en la Figura 3.1, consiste en un contador que mantiene el numero de iteracion

ejecutada y un circuito para la inicializacion y carga del mismo.

En la Figura 3.2 se puede observar un esquema de la realizacion del multipli-

cador de desplazamiento a la derecha con registro compartido.

ADD

X

Producto Parcial

desplazamiento

n

n

Yacarreo

0n-12n-1 n

0n-1

nn

Figura 3.2: Multiplicador SM con desplazamiento a la derecha con registro com-partido.

La implementacion hardware del algoritmo con desplazamiento a la izquierda

se puede observar en la Figura 3.3. En este esquema, tambien el multiplicador Y

y la acumulacion de los productos parciales p(j) son almacenados en registros de

desplazamiento, con la diferencia de que los registros se desplazan a la izquierda

en vez de a la derecha. El bit yj del multiplicador es el bit mas significativo

disponible a la izquierda del registro Y , el mismo es utilizado en el producto

yn−j−1X seleccionando 0 o X en la suma.

En este multiplicador no se puede compartir el registro Y con la seccion mas

significativa del registro P debido a que se utiliza un sumador de 2n bits. Esto

es, que cada vez que se registra un producto parcial, se utiliza la totalidad del

registro. El control del multiplicador, que no se muestra en la Figura 3.3, es similar

al del multiplicador con desplazamiento a la derecha.

Page 61: Tesis Funes Marcos

Capıtulo 3. Nuevas Arquitecturas de Multiplicadores 39

ADD

X

Producto

desplazamiento

2n

2n

Y

Parcial0n-12n-1 n

0n-1

desplazamiento

0n-1

n

n

Figura 3.3: Multiplicador SM con desplazamiento a la izquierda.

El hardware de este multiplicador es mas complejo que el de la Figura 3.2,

por lo que el metodo mas utilizado es la multiplicacion con desplazamiento a la

derecha.

Consumo de recursos

El consumo de recursos logicos del SM debe ser estimado en funcion de la

longitud de palabra de los operandos. Si se analiza la estructura de los bloques que

componen el multiplicador: sumadores, multiplexores, contadores y componentes

basicos, se puede cuantificar el consumo de recursos de los mismos en funcion de

la longitud de palabra.

Un contador de modulo-n es un contador binario de log2 n bits. Consecuente-

mente utiliza n FFs (FlipFlops) y al menos la misma cantidad de FGs (Funcion

Generators - ver Seccion A.4.1). Por lo cual, este contador consume como mınimo

log2(n)2

FGs.

Un multiplexor esta conformado solo por logica combinacional que requiere al

menos n − 1 FGs de tres entradas. Esto genera un consumo de recursos de n−12

CLBs para una longitud de n bits entradas.

Page 62: Tesis Funes Marcos

Capıtulo 3. Nuevas Arquitecturas de Multiplicadores 40

El consumo de recursos logicos de un sumador depende del tipo de sumador

seleccionado. Tal como se indico en capıtulos previos, el sumador indicado para la

implementacion de los multiplicadores en las FPGAs seleccionadas, es el sumador

de ripple-carry. En este caso, un sumador utiliza (n+2) FGs (n2

+1 celdas basicas)

considerando las salidas de acarreo y desborde. En el caso en que la salida de un

sumador deba ser registrada, el consumo de recursos logicos en terminos de CLBs

es el mismo dado que los FFs son nativos de cada celda basica.

La Tabla 3.4 realiza una estimacion del consumo de recursos para el SM. En

esta estimacion se considera que los n bits mas significativos del registro P se

pueden ubicar en conjunto con los FGs del sumador, y los menos significativos

compartidos con el registro de desplazamiento Y (con carga de datos en paralelo).

Las Ecs. (3.4 - 3.6) resumen el calculo de la estimacion en terminos de FGs, FFs

y CLBs.

Funcion FG FF CLBRegistro X 0 n n

2

Registro Y (SR) n + 1 n n+12

Control log2(n) + 2 log2(n) + 1 log2(n)2

+ 1Producto yiX n 0 n

2

Sumador + Reg. P n + 2 n + 2 n2

+ 1

Tabla 3.4: Estimacion de consumo de recursos logicos de un SM.

FG(n) = 3n + log2 n + 5 (3.4)

FF (n) = 3n + log2 n + 3 (3.5)

CLB(n) = 2n +log2 n

2+

5

2(3.6)

En la Fig. 3.4 se puede observar el consumo de estimado de recursos del SM.

Page 63: Tesis Funes Marcos

Capıtulo 3. Nuevas Arquitecturas de Multiplicadores 41

0 5 10 15 20 25 30 350

20

40

60

80

100

120

n

CLB

Figura 3.4: Consumo de recursos del SM.

Comportamiento temporal

El comportamiento temporal del SM depende de dos factores, el retardo in-

herente de las compuertas logicas y registros, y el retardo por la interconexion de

las mismas. En la mayorıa de los circuitos realizados en FPGA el desempeno solo

puede ser estimado despues de ser implementado, ya que los retardos de interco-

nexion se conocen una vez implementado el circuito. Sin embargo, en el caso de

sumadores y contadores que utilizan recursos dedicados de logica de acarreo, es

posible estimar un desempeno temporal [26].

El perıodo mınimo de reloj que se puede utilizar con el SM depende del retardo

de propagacion de la ruta mas crıtica. En este caso, la ruta mas crıtica es aquella

en la cual los operandos del sumador son realimentados a traves de una cadena de

Flip Flops, Fig. 3.1. El retardo de propagacion para un sumador se puede estimar

a partir de la Fig. 3.5 en la cual se asume que n es par y que el sumador (sin

contar las cadenas de acarreo) es implementado en n2

CLBs. En esta figura los dos

bits menos significativos de los operandos comparten un CLB y el retardo de las

Page 64: Tesis Funes Marcos

Capıtulo 3. Nuevas Arquitecturas de Multiplicadores 42

SN-1

SALIDA DE ACARREO

SN-2

TSUM

A ,BN-1 N-1

SN-3

SN-4

S3

S2

S1

S0

N-4

2CLBs

TOPCY

A ,BN-2 N-2

A ,BN-3 N-3

A ,BN-4 N-4

A ,B3 3

A ,B2 2

A ,B1 1

A ,B0 0

TBYP

TBYP

TBYP

TSUM

Figura 3.5: Esquema de retardos en un sumador.

entradas de estos bits a la cadena de acarreo se define como el tiempo TOPCY . Los

dos bits mas significativos tambien comparten un CLB y el retardo de la cadena

de acarreo a la salida mas significativa es el tiempo TSUM . Los n−4 bits restantes

contribuyen con un retardo TBY P por cada dos bits.

La Ec. (3.7) resume el retardo de propagacion en un sumador como el que se

describe en la Fig. 3.5.

tpd = TOPCY +n− 4

2× TBY P + TSUM (3.7)

Si se considera que cada bit que ingresa al sumador proviene de un registro

se debe adicionar el retardo existente desde que se efectua un flanco de reloj y se

establece la salida de un Flip Flop, TCKO. La salida de este registro se realimenta

a la entrada del sumador generando un retardo de interconexion Trd.

Page 65: Tesis Funes Marcos

Capıtulo 3. Nuevas Arquitecturas de Multiplicadores 43

Otra ruta de interconexion crıtica proviene de la seleccion del paso de itera-

cion que incorpora un retardo entre una entrada F/G y la salida X/Y debido al

producto yiXi, este retardo es denominado TILO.

La Ec. (3.8) resume el retardo de propagacion de la ruta de interconexion mas

crıtica.

tpd = TOPCY +n− 4

2× TBY P + TSUM + TILO + TCKO + Trd (3.8)

Con el objetivo de poder cuantificar el retardo de propagacion estimado se

propone la utilizacion de los retardos de una FPGA de Xilinx de la familia Spartan

[27]. Para esta estimacion no se considera el retardo Trd dado que a priori se

desconoce su valor.

Retardo Valor [ns]TOPCY 2.7TBY P 0.5TSUM 2.0TILO 1.2TCKO 2.1

Tabla 3.5: Retardos de una FPGA Xilinx Spartan-4.

En la Fig. 3.21 se grafico el retardo de propagacion estimado para el SM, en

funcion de la longitud de palabra n. Este retardo define la frecuencia maxima

de reloj estimada (fc) que se puede utilizar con este multiplicador. La misma se

muestra en la Fig. 3.7.

La velocidad de procesamiento (Processing Speed - PS) estimada del SM se

puede observar en la Fig. 3.8. La misma se calcula como PS = fc

n+1, expresado en

millones de operaciones por segundo. Se considera que este multiplicador requiere

un ciclo de reloj para la carga de datos, en los registros X e Y, adicional a los n

necesarios para calcular el producto.

Page 66: Tesis Funes Marcos

Capıtulo 3. Nuevas Arquitecturas de Multiplicadores 44

0 5 10 15 20 25 30 350

5

10

15

20

25

n

Tpd

[ns]

Figura 3.6: Retardo de propagacion estimado del SM.

0 5 10 15 20 25 30 350

20

40

60

80

100

120

n

Max

. Fre

c. d

e re

loj [

Mhz

]

Figura 3.7: Maxima frecuencia de reloj estimada aplicable al SM.

Page 67: Tesis Funes Marcos

Capıtulo 3. Nuevas Arquitecturas de Multiplicadores 45

0 5 10 15 20 25 30 350

2

4

6

8

10

12

14

n

Vel

ocid

ad d

e P

roce

sam

ient

o [M

op]

Figura 3.8: Velocidad maxima de procesamiento del SM.

3.2.3. Multiplicador Secuencial de Base 4

Esta variante de multiplicacion secuencial reduce la cantidad de iteraciones

aprovechando la representacion numerica.

Un numero binario de n bits puede ser representado como un numero de n2

dıgitos de base 4 o un numero de n3

dıgitos de base 8. De modo que para un

dado rango de numeros que se pueden representar, existe una representacion de

mayor base que reduce la cantidad de dıgitos. De este modo, es posible realizar

un producto en menor tiempo de calculo si se ejecuta una multiplicacion de un

dıgito por vez en lugar de hacerlo bit a bit.

La expresion general para este tipo de multiplicacion es la de la Ec. (3.9):

p(j + 1) = (p(j) + yjXrn)r−1 con p(0) = 0 y p(n) = p (3.9)

En el caso de la multiplicacion en base 4 (SMB4), se debe conformar el pro-

ducto parcial [yj+1 yj]2X y adicionarlo al resultado de la iteracion anterior. El

Page 68: Tesis Funes Marcos

Capıtulo 3. Nuevas Arquitecturas de Multiplicadores 46

producto de dos operadores binarios de 4 bits sin signo X e Y se puede observar

en la Tabla 3.6.

Tabla 3.6: Producto de dos operandos en base 4x3 x2 x1 x0

y3 y2 y1 y0

s05 s04 s03 s02 s01 s00 ≡ y1y0X40

s15 s14 s13 s12 s11 s10 ≡ y3y2X41

P8 P7 P6 P5 P4 P3 P2 P1 ≡ P

Mientras que en la multiplicacion de base 2 cada producto parcial esta repre-

sentado por el valor 0 o una version desplazada de X, en la multiplicacion de

base 4 el producto parcial toma la forma del valor 0, X, 2X y 3X. El metodo

mas directo para la ejecucion de esta multiplicacion se puede realizar mediante

una asignacion pre-calculada de los productos parciales.

Un ejemplo de este tipo de multiplicacion se puede observar en la Tabla 3.7.

Tabla 3.7: Multiplicacion base 4 de dos operados de 4 bits.X 1 0 0 1Y 1 1 0 1

p(0) 0 0 0 0+(01)2X = X 1 0 0 14p(1) 1 0 0 1

p(1) 0 0 1 0 0 1+(11)2X = 3X 1 1 0 1 14p(2) 1 1 1 0 1 0 1

p(2) 0 1 1 1 0 1 0 1

Un diagrama de este multiplicador (en adelante SMB4(3X)) se muestra en la

Fig. 3.9. En el mismo se debe considerar que, mientras los tres primeros valores de

los productos parciales se pueden utilizar en forma directa, el valor 3X requiere

Page 69: Tesis Funes Marcos

Capıtulo 3. Nuevas Arquitecturas de Multiplicadores 47

un perıodo de tiempo para ejecutar la suma X + 2X. Ademas, como el valor pre-

calculado 3X puede exceder el rango de X, entonces el multiplexor y el sumador

utilizados en el multiplicador deben ser de (n + 2) bits.

n+2

n+2

n+2

n+2

ADD

Producto Parcial

desplazamiento 2 bits

n+2

n

Yacarreo

0n-12n-1 n

X

0

2X

3X

1

MUX

2

n+2

Figura 3.9: Diagrama de un SMB4(3X).

Una alternativa consiste en reemplazar 3X por −X generando un acarreo que

modifica al siguiente dıgito. Este set de dıgitos es afectado por el acarreo segun

la Tabla 3.8, en la cual, cy(j − 1) es el acarreo correspondiente a una iteracion

anterior, cy(j) es el acarreo actual, y2j−1 e y2j son los bits seleccionados con

cada iteracion que generan una salida con los valores [0,−X, X, 2X]. Con esta

alternativa, al final de la iteracion n2

se debe realizar una nueva iteracion, si el

ultimo dıgito de base 4 genero un bit de acarreo.

Tabla 3.8: Codificacion de los dıgitos, alternativa (-X).cy(j − 1) y2j−1 y2j salida(j) cy(j)

0 0 0 0 00 0 1 X 00 1 0 2X 00 1 1 −X 11 0 0 X 01 0 1 2X 01 1 0 −X 11 1 1 0 1

Page 70: Tesis Funes Marcos

Capıtulo 3. Nuevas Arquitecturas de Multiplicadores 48

Un ejemplo de esta alternativa se observa en la Tabla 3.8, en la cual se ejecuta

un producto de dos operandos de 8 bits, donde al final de la ultima iteracion el

acarreo debido al ultimo dıgito genera una iteracion adicional.

Tabla 3.9: Multiplicacion base 4, alternativa (-X).X 0 1 1 1 1 0 1 1Y 1 1 1 1 0 1 1 0

p(0) 0 0 0 0 0 0 0 0+(10)X = +2X 1 1 1 1 0 1 1 04p(1) 1 1 1 1 0 1 1 0

p(1) 0 0 1 1 1 1 0 1 1 0+(01)X = +X 0 1 1 1 1 0 1 14p(2) 1 0 1 1 1 0 0 0 1 0

p(2) 0 0 1 0 1 1 1 0 0 0 1 0+(11)X = −X 1 0 0 0 0 1 0 14p(3) 1 0 1 1 0 0 1 1 0 0 1 0

p(3) 1 1 1 0 1 1 0 0 1 1 0 0 1 0+(11 + cy)X = 0 0 0 0 0 0 0 0 04p(4) 1 1 1 0 1 1 0 0 1 1 0 0 1 0

p(4) 1 1 1 1 1 0 1 1 0 0 1 1 0 0 1 0+(00 + cy)X = X 0 1 1 1 1 0 1 1p(5) 0 1 1 1 0 1 1 0 0 0 1 1 0 0 1 0

El diagrama de este multiplicador (en adelante SMB4(-X)) se muestra en la

Fig. 3.10.

Los esquemas de multiplicacion de las Figs. 3.9 y 3.10 se pueden extender a

multiplicadores de bases superiores, pero la estructura del multiplicador se vuelve

mas compleja debido a que se debe pre-computar una mayor cantidad de valores

y consecuentemente el numero de iteraciones deja de ser menor que n2

+ 1. Por

ejemplo, para un producto de base 8, se deben pre-computar los valores de 3X, 5X

y 7X, o solo pre-computar 3X y utilizar un esquema de acarreo similar al de la

Fig. 3.10 para convertir a 5X, 6X y 7X en −3X, −2X y −X.

Page 71: Tesis Funes Marcos

Capıtulo 3. Nuevas Arquitecturas de Multiplicadores 49

n+1

n+1

n+1

n+1

ADD

Producto Parcial

desplazamiento 2 bits

n+1

n

Yacarreo

0n-12n-1 n

X

0

2X

-X

1

MUX

2

n+1

FF

acarreo

y y +cy2j-1 2j

Figura 3.10: Diagrama de un SMB4(-X).

Consumo de recursos

SMB4(3X): La estimacion del consumo de recursos logicos del SMB4(3X) debe

considerar los recursos para el pre-calculo de 3X y que este calculo puede resultar

en n + 2 bits. La estimacion para este multiplicador se consigna en la Tabla 3.10

Funcion FG FF CLBRegistro X 0 n n

2

Sumador X + 2X n + 2 0 n2

+ 1Registro Y (SR) n + 1 n n

2+ 1

2

Control log2(n2) + 2 log2(n

2) + 1

log2( n2

)

2+ 1

Multiplexor 4 : 1× (n + 2) 3(n + 2) 0 3n2

+ 3Sumador (n + 2) + Reg. PH n + 4 n + 4 n

2+ 2

Tabla 3.10: Estimacion de consumo de recursos de un SMB4(3X).

Las Ecs. (3.10 - 3.12) resumen el calculo de la estimacion en terminos de FGs,

FFs y CLBs.

FG(n) = 6n + log2(n

2) + 15 (3.10)

Page 72: Tesis Funes Marcos

Capıtulo 3. Nuevas Arquitecturas de Multiplicadores 50

FF (n) = 3n + log2(n

2) + 5 (3.11)

CLB(n) =7

2n +

log2(n2)

2+

15

2(3.12)

SMB4(-X): En esta version se reemplaza −X por X y se ingresa un acarreo

de entrada al sumador. De este modo no es necesario el pre-calculo de −X y se

ahorran recursos.

n+1

n+1

n+1

n+1

ADD

Producto Parcial

desplazamiento 2 bits

n+1

n

Yacarreo

0n-12n-1 n

X

0

2X

X

1

MUX

2

n+1

FF

acarreo

y y +cy2j-1 2jacarreo de entrada

Figura 3.11: Diagrama de la variante del SMB4(-X).

La estimacion de recursos para este multiplicador se muestra en la Tabla 3.11.

Funcion FG FF CLB

Registro X 0 n n2

Registro Y (SR) n + 1 n n2

+ 12

Control log2(n2) + 6 log2(n

2) + 3

log2( n2

)

2+ 4

Multiplexor 4 : 1× (n + 1) 3(n + 1) 0 3n2

+ 32

Sumador (n + 1) + Reg. PH n + 3 n + 3 n2

+ 32

Tabla 3.11: Estimacion de consumo de recursos logicos SMB4(-X).

Page 73: Tesis Funes Marcos

Capıtulo 3. Nuevas Arquitecturas de Multiplicadores 51

Las Ecs. (3.13 - 3.15) resumen el calculo de la estimacion en terminos de FGs,

FFs y CLBs.

FG(n) = 5n + log2(n

2) + 13 (3.13)

FF (n) = 3n + log2(n

2) + 6 (3.14)

CLB(n) = 3n +log2(n

2)

2+

15

2(3.15)

En la Fig. 3.12 se muestra el consumo de recursos logicos de las dos variantes

del multiplicador secuencial de base 4 en contraste con el multiplicador secuencial

tradicional. Se observa en la misma figura que, si bien la velocidad de procesa-

miento de los SM base 4 se incrementa casi al doble por realizar menos iteraciones,

el costo en consumo de recursos logicos asciende a mas del doble respecto a un

SM tradicional.

Comportamiento temporal

SMB4(3X): El comportamiento temporal del SMB4(3X) involucra dos cade-

nas de adiciones, la primera resulta de la obtencion del valor 3X y la segunda de

la operacion de acumulacion de los productos parciales, Fig. 3.9.

La Ec. (3.16) resume el retardo de propagacion de la ruta de interconexion

mas crıtica este multiplicador.

tpd = 2TOPCY +(n + 2)− 4

2× TBY P + 2TSUM + TIHO + Trd (3.16)

Page 74: Tesis Funes Marcos

Capıtulo 3. Nuevas Arquitecturas de Multiplicadores 52

0 5 10 15 20 25 30 350

20

40

60

80

100

120

140

160

180

200

n

CLB

XCS05

XCS10

SMB4(3X)SMB4(−X)SM

Figura 3.12: Consumo de recursos de multiplicadores SM.

En la Fig. 3.13 se muestra el retardo de propagacion estimado para el SMB4(3X).

Este retardo define la frecuencia maxima de reloj que se puede utilizar con este

multiplicador, que se observa en la Fig. 3.14.

La velocidad de procesamiento estimada del SMB4(3X) se grafica en la Fig.

3.15. La misma es obtenida como la frecuencia maxima de reloj aplicable al

multiplicador dividido el numero de ciclos necesarios para ejecutar un producto,

PS = fcn2

+1, expresado en millones de operaciones por segundo. En esta estimacion

se considera que la carga de datos y el calculo de 3X no excede un perıodo de

reloj.

Page 75: Tesis Funes Marcos

Capıtulo 3. Nuevas Arquitecturas de Multiplicadores 53

0 5 10 15 20 25 30 350

5

10

15

20

25

30

n

Tpd

[ns]

Figura 3.13: Retardo de propagacion estimado del SMB4(3X).

0 5 10 15 20 25 30 350

10

20

30

40

50

60

70

80

90

100

n

Max

. Fre

c. d

e re

loj [

Mhz

]

Figura 3.14: Maxima frecuencia de reloj estimada aplicable al SMB4(3X).

Page 76: Tesis Funes Marcos

Capıtulo 3. Nuevas Arquitecturas de Multiplicadores 54

0 5 10 15 20 25 30 350

2

4

6

8

10

12

14

n

Vel

ocid

ad d

e P

roce

sam

ient

o [M

op]

Figura 3.15: Velocidad maxima de procesamiento del SMB4(3X).

SMB4(-X): El comportamiento temporal del SMB4(-X), si bien evita el calculo

de 3X, involucra un retardo asociado a la operacion de la Tabla 3.8. La Ec. (3.17)

resume el retardo de propagacion de la ruta de interconexion mas crıtica de este

multiplicador.

tpd = TOPCY +(n + 2)− 4

2× TBY P + TSUM + TIHO + TILO + TICK + Trd (3.17)

En la Fig. 3.16 se puede observar el retardo de propagacion estimado para el

SMB4(-X). Este retardo define la frecuencia maxima de reloj que se puede utilizar

con este multiplicador, que se observa en la Fig. 3.17.

La velocidad de procesamiento estimada del SMB4(-X) se muestra en la Fig.

3.18. La misma es calculada como la frecuencia maxima de reloj aplicable al

multiplicador dividido el numero de ciclos necesarios para ejecutar un producto,

PS = fcn2

+2, expresado en millones de operaciones por segundo.

Page 77: Tesis Funes Marcos

Capıtulo 3. Nuevas Arquitecturas de Multiplicadores 55

0 5 10 15 20 25 30 350

5

10

15

20

25

30

n

Tpd

[ns]

Figura 3.16: Retardo de propagacion estimado del SMB4(-X).

0 5 10 15 20 25 30 350

10

20

30

40

50

60

70

80

90

100

n

Max

. Fre

c. d

e re

loj [

Mhz

]

Figura 3.17: Maxima frecuencia de reloj estimada aplicable al SMB4(-X).

Page 78: Tesis Funes Marcos

Capıtulo 3. Nuevas Arquitecturas de Multiplicadores 56

0 5 10 15 20 25 30 350

2

4

6

8

10

12

14

n

Vel

ocid

ad d

e P

roce

sam

ient

o [M

op]

Figura 3.18: Velocidad maxima de procesamiento del SMB4(-X).

3.3. Arquitecturas Propuestas en Punto Fijo

3.3.1. Multiplicador Secuencial Sin Entradas Registradas

El multiplicador secuencial sin entradas registradas (SMSR) es una variante

del multiplicador SM de desplazamiento a la derecha. El SMSR presenta un es-

quema de multiplicacion simplificado ya que no realiza la carga paralelo de los

registros del multiplicador y del multiplicando. De esta manera no existe la de-

mora propia del ciclo de carga, lo cual constituye una ventaja. Por lo tanto, este

multiplicador puede realizar un producto en un perıodo T = nTCK , donde n es

la longitud de palabra de los operandos y TCK el perıodo de reloj aplicado sobre

el multiplicador.

En la Figura 3.19 se muestra un esquema del SMSR, que utiliza un sumador

de n bits y un multiplexor para la seleccion de los bits yj.

El control del multiplicador consiste en un contador que ejecuta la seleccion de

los yj y que a su vez mantiene el numero de iteracion realizada. La inicializacion

Page 79: Tesis Funes Marcos

Capıtulo 3. Nuevas Arquitecturas de Multiplicadores 57

ADD

X

Producto

desplazamiento

n

n

Y

Parcialacarreo

0n-12n-1 n

nn

n

MUX

Control

Figura 3.19: Multiplicador SMSR.

del multiplicador se realiza reseteando el registro que guarda el producto parcial

acumulado (P ) y el contador. Este multiplicador requiere que los datos esten

presentes durante todo el ciclo de la multiplicacion.

Consumo de recursos

La Tabla 3.12 muestra el consumo de recursos logicos del SMSR. En esta

estimacion se acepta que los n bits mas significativos del registro P se ubican en

conjunto con los FGs del sumador, y los menos significativos constituyen tan solo

un registro de desplazamiento serie.

Funcion FG FF CLBMultiplexor yi n− 1 0 n−1

2

Producto yiX n 0 n2

Control log2(n) + 2 log2(n) + 1 log2(n)2

+ 1Sumador + Reg. PH n + 2 n + 2 n

2+ 1

Registro PL 0 n n2

Tabla 3.12: Estimacion de consumo de recursos logicos de un SMSR.

Las Ecs. (3.18, 3.19 y 3.20) resumen la estimacion en terminos de FGs, FFs

y CLBs.

FG(n) = 3n + log2 n + 3 (3.18)

Page 80: Tesis Funes Marcos

Capıtulo 3. Nuevas Arquitecturas de Multiplicadores 58

FF (n) = 2n + log2 n + 3 (3.19)

CLB(n) = 2n +log2 n

2+

3

2(3.20)

En la Fig. 3.20 se muestra el consumo estimado de recursos del SMSR.

0 5 10 15 20 25 30 350

20

40

60

80

100

120

n

CLB

XCS05

Figura 3.20: Consumo de recursos del SMSR.

Comportamiento temporal

El perıodo mınimo de reloj que puede utilizar el SMSR si bien contiene los

mismos retardos que el SM, el retardo TILO proviene del multiplexado para la

seleccion de yi.

La Ec. (3.21) resume el retardo de propagacion de la ruta de interconexion

mas crıtica.

Page 81: Tesis Funes Marcos

Capıtulo 3. Nuevas Arquitecturas de Multiplicadores 59

tpd = TOPCY +n− 4

2× TBY P + TSUM + TILO + TCKO + Trd (3.21)

En la Fig. 3.21 se grafica el retardo de propagacion estimado para el multi-

plicador propuesto. La maxima frecuencia de reloj que se puede utilizar con este

multiplicador se muestra en la Fig. 3.22.

0 5 10 15 20 25 30 350

5

10

15

20

25

n

Tpd

[ns]

Figura 3.21: Retardo de propagacion estimado del SMSR.

La velocidad de procesamiento estimada del SMSR se presenta en la Fig. 3.23.

La misma se calcula como la frecuencia maxima de reloj aplicable al multiplicador

dividido el numero de ciclos necesarios para ejecutar un producto, PS = fc

n,

expresado en millones de operaciones por segundo.

Page 82: Tesis Funes Marcos

Capıtulo 3. Nuevas Arquitecturas de Multiplicadores 60

0 5 10 15 20 25 30 350

20

40

60

80

100

120

n

Max

. Fre

c. d

e re

loj [

Mhz

]

Figura 3.22: Maxima frecuencia de reloj estimada aplicable al SMSR.

0 5 10 15 20 25 30 350

2

4

6

8

10

12

14

n

Vel

ocid

ad d

e P

roce

sam

ient

o [M

op]

Figura 3.23: Velocidad maxima de procesamiento del SMSR.

Page 83: Tesis Funes Marcos

Capıtulo 3. Nuevas Arquitecturas de Multiplicadores 61

3.3.2. Multiplicador Secuencial Fraccionado

El Multiplicador Secuencial Fraccionado (SMF) permite obtener una buena

velocidad procesamiento reduciendo el numero de ciclos necesarios para ejecutar

el producto. Esta reduccion se obtiene fraccionando la sumatoria de la Ec. (3.22)

en dos semisumatorias, (3.23).

P =n−1∑j=0

X2j · yj (3.22)

P =k∑

j=0

X2jyj +n−1∑j=k

X2jyj (3.23)

Aplicando el SM con desplazamiento a la derecha, el producto resultante se

muestra en la Ec. (3.24).

P = 2n−1

[k∑

j=0

X · 2j−(n−1)yj +n−1∑j=k

X · 2j−(n−1)yj

](3.24)

La primer semi-sumatoria realiza su proceso en k · TCK (donde TCK es el

perıodo de reloj) y la segunda en (n− 1−k) ·TCK . Si las dos semi-sumatorias co-

mienzan al mismo tiempo y se suman sus resultados con el debido desplazamiento,

el perıodo de proceso estara dado por:

k · TCK si k > (n− 1)− k

o

((n− 1)− k) · TCK si k < (n− 1)− k

Para el caso particular en que k = n2, el perıodo de procesamiento de cada

producto sera n2· TCK .

La suma de las dos semi-sumatorias de la Ec. (3.24) se realiza mediante un

Page 84: Tesis Funes Marcos

Capıtulo 3. Nuevas Arquitecturas de Multiplicadores 62

unico sumador de 2n−k bits, ya que la primer semi-sumatoria se encontrara des-

plazada k veces de la segunda. Por otro lado dicha suma agrega un retardo tR

proveniente de la logica involucrada. Este retardo se puede considerar menor que

TCK , tomando como pauta que el retardo de involucrado en la adicion de los

productos parciales es inferior o igual al retardo definido para un multiplicador

SM.

El perıodo de procesamiento para este multiplicador estara dado por T =

(n2

+ 1) · TCK .

X[n:0] X[n:0]

Y[m/2:0] Y[m:m/2+1]

Y[m:0] x X[n:0]

m/2 nx

SM

Acu

mu

laci

ón

m/2 nx

Figura 3.24: Diagrama de operacion de un SMF.

En la Fig. 3.24 se muestra el esquema del SMF, donde dos multiplicadores

secuenciales realizan sus productos simultaneamente y, un perıodo despues, sus

resultados son adicionados.

La aplicacion practica del SMF se puede realizar en base a un SM tradicional

o un SMSR. La utilizacion del SM implica que se deben cargar los datos en los

registros, por lo que se requieren n2

+ 2 iteraciones para realizar un producto.

Por lo tanto, se justifica la utilizacion de este esquema para multiplicadores con

una longitud de palabra que haga despreciables las dos iteraciones adicionales

en comparacion con n2. En el caso del SMF basado en un SMSR, el producto se

realiza en n2

+ 1 iteraciones.

Page 85: Tesis Funes Marcos

Capıtulo 3. Nuevas Arquitecturas de Multiplicadores 63

Consumo de recursos

Recursos de un SMF(SM): La Tabla 3.13 muestra el consumo de recursos del

SMF basado en el SM. En esta estimacion se considera que ambos multiplicadores

parciales son controlados por un unico contador.

Funcion FG FF CLBRegistro X 0 n n

2

2× Registro SR Y [n2

: 0] 2(n2

+ 1) 2n2

n2

+ 12× Producto yiX 2n 0 nControl mod n

2log2(n

2) + 2 log2(n

2) + 1 1

2log2(n

2) + 1

2× Sumador + Reg. PHi 2n + 4 2n + 4 n + 2Sumador + Reg. Ptotal

32n + 2 3

2n + 2 3

4n + 1

Tabla 3.13: Estimacion de consumo de recursos logicos SMF(SM).

Las Ecs. (3.25 - 3.27) resumen el calculo de la estimacion en terminos de FGs,

FFs y CLBs.

FG(n) =13

2n + log2

n

2+ 10 (3.25)

FF (n) =11

2n + log2

n

2+ 7 (3.26)

CLB(n) =15

4n +

log2n2

2+ 5 (3.27)

Recursos de un SMF(SMSR): La Tabla 3.14 realiza una estimacion del

consumo de recursos del SMF basado en el SMSR. Las consideraciones de esta

estimacion son similares al SMF basado en un SM.

Las Ecs. (3.28 - 3.30) resumen el calculo de la estimacion en terminos de FGs,

FFs y CLBs.

Page 86: Tesis Funes Marcos

Capıtulo 3. Nuevas Arquitecturas de Multiplicadores 64

Funcion FG FF CLB2× Multiplexor yi 2(n

2− 1) 0 n

2− 1

2× Producto yiX 2n 0 nControl mod n

2log2(n

2) + 2 log2(n

2) + 1 1

2log2(n

2) + 1

2× Sumador + Reg. PHi 2n + 4 2n + 4 n + 22× Registro PL

n2

0 2n2

n2

Sumador + Reg. Ptotal32n + 2 3

2n + 2 3

4n + 1

Tabla 3.14: Estimacion de consumo de recursos logicos de un SMF(SMSR).

FG(n) =13

2n + log2

n

2+ 6 (3.28)

FF (n) =7

2n + log2

n

2+ 7 (3.29)

CLB(n) =15

4n +

log2n2

2+ 3 (3.30)

En la Fig. 3.25 se puede observar el consumo de recursos logicos estimado del

SMF basado en un SM tradicional y en un SMSR.

Comportamiento temporal

El comportamiento temporal resulta similar al de un multiplicador SM o

SMSR debido a que la ruta de interconexion mas crıtica se encuentra en la cons-

titucion de los multiplicadores fraccionados, Fig. 3.24.

La Ec. (3.31) resume el retardo de propagacion de la ruta de interconexion

mas crıtica para el multiplicador propuesto.

tpd = TOPCY +n− 4

2× TBY P + TSUM + TILO + Trd (3.31)

En la Fig. 3.26 se grafica el retardo de propagacion estimado para el SMF.

Este retardo define la frecuencia maxima de reloj que se puede utilizar con este

Page 87: Tesis Funes Marcos

Capıtulo 3. Nuevas Arquitecturas de Multiplicadores 65

0 5 10 15 20 25 30 350

20

40

60

80

100

120

140

160

180

200

n

CLB

XCS05

XCS10

SMF (SM)SMF (SMSR)

Figura 3.25: Consumo de recursos de multiplicadores SMF.

multiplicador, que se observa en la Fig. 3.27.

La velocidad de procesamiento estimada de los SMF se muestra en la Fig. 3.28.

La misma es calculada como la frecuencia maxima de reloj dividido el numero

de ciclos necesarios para ejecutar un producto, PSSM = fcn2

+1y PSSMSR = fc

n2

,

expresado en millones de operaciones por segundo.

Page 88: Tesis Funes Marcos

Capıtulo 3. Nuevas Arquitecturas de Multiplicadores 66

0 5 10 15 20 25 30 350

5

10

15

20

25

n

Tdp

[ns]

Figura 3.26: Retardo de propagacion estimado del SMF.

0 5 10 15 20 25 30 350

20

40

60

80

100

120

n

Max

. Fre

c. d

e re

loj [

Mhz

]

Figura 3.27: Maxima frecuencia de reloj estimada aplicable al SMF.

Page 89: Tesis Funes Marcos

Capıtulo 3. Nuevas Arquitecturas de Multiplicadores 67

0 5 10 15 20 25 30 350

5

10

15

20

25

n

Vel

ocid

ad d

e P

roce

sam

ient

o [M

ops]

SMF (SM)SMF (SMSR)

Figura 3.28: Velocidad maxima de procesamiento de los SMF.

3.3.3. Multiplicador de Sumas Consecutivas

Esta variante es similar al SMB4 ya que basicamente opera con dıgitos de

2 bits. La estrategia consiste en realizar dos subproductos en forma consecuti-

va para reducir el numero de iteraciones sin tener que pre-computar multiplos

de los operandos. El Multiplicador de Sumas Consecutivas (SMSC) realiza dos

subproductos consecutivos en cada iteracion como se puede observar en la Ec.

(3.32).

P = 2n−1

n2−1∑

j=0

(yjX · 22j−(n−1) + yj+1X · 22j+1−(n−1))

(3.32)

Un ejemplo de la operatoria de este multiplicador es presentado en la Tabla

3.15.

La suma de los dos subproductos de la Ec. (3.32) genera un TCK superior al de

un multiplicador secuencial debido al acarreo de los dos sumadores, sin embargo,

para ciertas longitudes de palabras, el incremento en el retardo se ve minimizado

Page 90: Tesis Funes Marcos

Capıtulo 3. Nuevas Arquitecturas de Multiplicadores 68

Tabla 3.15: Ejemplo de una multiplicacion mediante sumas consecutivasX 1 0 0 1Y 1 1 0 1

p(0) 0 0 0 0+y0X 1 0 0 1+2y1X 0 0 0 04p(1) 0 1 0 0 1

p(1) 0 0 1 0 0 1+y3X 1 0 0 1+2−1y4X 1 0 0 1 04p(2) 1 1 1 0 1 0 1

p(2) 0 1 1 1 0 1 0 1

frente a la ventaja de reducir a la mitad la cantidad de ciclos en el perıodo de

procesamiento.

Un esquema del SMSC basado en un SM se muestra en la Fig. 3.29, donde

se aprecia que, en cada iteracion, se realiza la suma en forma consecutiva de dos

subproductos, yjX + yj+1X · 2j+1 de la Ec. (3.32).

n

ADD

Producto Parcial

desplazamiento 2 bits

Y0n-12n-1 n 1

n-1

ADD

LSB

acarreo

acarreo

X0n-1

n

n

Figura 3.29: Ejemplo de un SMSC(SM).

El esquema basado en el SMSR se muestra en la Fig. 3.30.

Page 91: Tesis Funes Marcos

Capıtulo 3. Nuevas Arquitecturas de Multiplicadores 69

n

ADD

Producto

desplazamiento 2 bits

0n-12n-1 n

n-1

ADD

LSB

acarreo

acarreo

n

X

Y[bits impares]n

n/2

MUX

Control

Y[bits pares]n

n/2

MUX

Parcial

Figura 3.30: Ejemplo de un SMSC(SMSR).

Consumo de recursos

Recursos de un SMSC(SM): La Tabla 3.16 muestra el consumo de recursos

para un SMSC basado en un SM.

Funcion FG FF CLBRegistro X 0 n n

2

Registro Y (SR) n + 1 n n+12

Control log2(n2) + 2 log2(n

2) + 1

log2( n2

)

2+ 1

2× Producto yiX 2n 0 nSumador n + 2 0 n

2+ 1

Sumador + Reg. P n + 2 n + 2 n2

+ 1

Tabla 3.16: Estimacion de consumo de recursos logicos de un SMSC(SM).

Las Ecs. (3.33 - 3.35) resumen el calculo del consumo en terminos de FGs,

FFs y CLBs.

FG(n) = 5n + log2

n

2+ 7 (3.33)

FF (n) = 3n + log2

n

2+ 3 (3.34)

CLB(n) = 3n +log2

n2

2+

7

2(3.35)

Page 92: Tesis Funes Marcos

Capıtulo 3. Nuevas Arquitecturas de Multiplicadores 70

Recursos de un SMSC(SMSR): La Tabla 3.17 expresa el consumo de re-

cursos para un SMSC basado en el SMSR.

Funcion FG FF CLB2× Multiplexor yi 2(n

2− 1) 0 n

2− 1

Control log2(n2) + 2 log2(n

2) + 1

log2( n2

)

2+ 1

2× Producto yiX 2n 0 nSumador n + 2 0 n

2+ 1

Sumador + Reg. P n + 2 n + 2 n2

+ 1Registro PL 0 n n

2

Tabla 3.17: Estimacion de consumo de recursos logicos de un SMSC(SMSR).

Las Ecs. (3.36 - 3.38) resumen el consumo en terminos de FGs, FFs y CLBs.

FG(n) = 5n + log2

n

2+ 4 (3.36)

FF (n) = n + log2

n

2+ 3 (3.37)

CLB(n) = 3n +1

2log2

n

2+ 2 (3.38)

En la Fig. 3.31 se muestra el consumo de recursos del multiplicador SMSC en

sus dos variantes.

Page 93: Tesis Funes Marcos

Capıtulo 3. Nuevas Arquitecturas de Multiplicadores 71

0 5 10 15 20 25 30 350

20

40

60

80

100

120

n

CLB

XCS05

SMSC (SM)SMSC (SMSR)

Figura 3.31: Consumo de recursos estimado de un SMSC.

Comportamiento temporal

El comportamiento temporal del SMSC depende de la ruta mas crıtica que,

en este caso debe tener en cuenta el acarreo los operandos a traves de los dos

sumadores consecutivos realimentados a traves de una cadena de Flip Flops, Fig.

3.29 o 3.30.

La ruta de retardos entre los dos sumadores consecutivos es mostrada en la

Fig. 3.32, donde se puede observar que existen dos rutas de acarreo crıticas. La

primera fue presentada en la Seccion 3.3.1 y se observa sobre el sumador de la

izquierda. La segunda, incorpora un retardo adicional TOPCY para la generacion

del acarreo del segundo sumador, proveniente del bit S1 del primer sumador, y

un segundo retardo que se considera aditivo, proveniente del acarreo de salida del

primer sumador.

La Ec. (3.39) resume el retardo de propagacion de la ruta de interconexion

mas crıtica para el multiplicador propuesto.

Page 94: Tesis Funes Marcos

Capıtulo 3. Nuevas Arquitecturas de Multiplicadores 72

A ,B7 7

TOPCY

A ,B6 6

A ,B5 5

A ,B4 4

A ,B3 3

A ,B2 2

A ,B1 1

A ,B0 0

TBYP

TBYP

TBYP

TSUM

S7

S6

S5

S4

S3

S2

S1

S0

CO

C ,BO 7

TOPCY

S ,B7 6

S ,B6 5

S ,B5 4

S ,B4 3

S ,B3 2

S ,B2 1

S ,B1 0

TBYP

TBYP

TBYP

TSUM

S7

S6

S5

S4

S3

S2

S1

S0

CO

Figura 3.32: Ruta crıtica de dos sumas consecutivas.

Page 95: Tesis Funes Marcos

Capıtulo 3. Nuevas Arquitecturas de Multiplicadores 73

tpd = 2× TOPCY +n− 4

2× TBY P + 2× TSUM + TILO + Trd (3.39)

La Fig. 3.33 muestra el retardo de propagacion estimado para el SMSC. Es-

te retardo define la frecuencia maxima de reloj que se puede utilizar con este

multiplicador, que se observa en la Fig. 3.34.

0 5 10 15 20 25 30 350

5

10

15

20

25

n

Tdp

[ns]

Figura 3.33: Retardo de propagacion estimado del SMSC.

La velocidad de procesamiento estimada del SMSC se grafica en la Fig. 3.35.

La misma es calculada como la frecuencia maxima de reloj aplicable al multipli-

cador, dividida por el numero de ciclos necesarios para ejecutar un producto y

depende del esquema en que se basa el mismo. Si se basa en un SM, la velocidad

de procesamiento es PS = fcn2

+1. En el caso de un SMSR, resulta de PS = fc

n2

.

Page 96: Tesis Funes Marcos

Capıtulo 3. Nuevas Arquitecturas de Multiplicadores 74

0 5 10 15 20 25 30 350

20

40

60

80

100

120

n

Max

. Fre

c. d

e re

loj [

Mhz

]

Figura 3.34: Maxima frecuencia de reloj estimada aplicable al SMSC.

0 5 10 15 20 25 30 350

5

10

15

20

25

n

Vel

ocid

ad d

e P

roce

sam

ient

o [M

op]

SMSC (SM)SMSC (SMSR)

Figura 3.35: Velocidad maxima de procesamiento del SMSC.

Page 97: Tesis Funes Marcos

Capıtulo 3. Nuevas Arquitecturas de Multiplicadores 75

3.4. Comparacion de los multiplicadores

Los multiplicadores propuestos fueron comparados entre sı y con respecto a

los multiplicadores existentes en la literatura. Se realizaron dos comparaciones,

la primera destinada a los multiplicadores secuenciales SM y SMSR, que son

los optimizados en consumo de recursos logicos, y la segunda destinada a los

multiplicadores secuenciales optimizados en velocidad de procesamiento.

3.4.1. Multiplicadores optimizados en consumo de recur-

sos

En la Fig. 3.36 se grafica el consumo de recursos logicos de los multiplicadores

secuenciales SM y SMSR.

0 5 10 15 20 25 30 350

10

20

30

40

50

60

70

80

n

CLB

SMSMSR

Figura 3.36: Consumo de recursos logicos de un SM vs SMSR.

Se puede observar que el SMSR posee un consumo de recursos levemente

inferior al del SM.

Page 98: Tesis Funes Marcos

Capıtulo 3. Nuevas Arquitecturas de Multiplicadores 76

El retardo de la ruta crıtica para ambos multiplicadores es practicamente

el mismo, sin embargo la velocidad de procesamiento (que depende del numero

de iteraciones) presenta una diferencia a favor del multiplicador SMSR. Esto se

puede observar en la Fig. 3.37.

5 10 15 20 25 30 352

4

6

8

10

12

14

n

PS

[Mop

s]

SMSMSR

Figura 3.37: Velocidad de procesamiento de un SM vs SMSR.

3.4.2. Multiplicadores optimizados en velocidad

En la Fig. 3.38 se muestra el consumo de recursos logicos de las variantes

optimizadas en velocidad.

Se puede observar que los multiplicadores del tipo SMSC son los que consumen

la menor cantidad de recursos, mientras que los del tipo SMF poseen un consumo

relativo entre un 30 y un 40 % mayor. Por otro lado, los multiplicadores de base

4 poseen un consumo relativo a los SMSC entre un 15 y un 20 % mayor.

En la Fig. 3.39 se grafican las velocidades de procesamiento, donde se puede

observar que el SMF(SMSR) es el que provee la mayor velocidad de procesamiento

para todos los valores de n. Adicionalmente, se puede observar que la variante

Page 99: Tesis Funes Marcos

Capıtulo 3. Nuevas Arquitecturas de Multiplicadores 77

0 5 10 15 20 25 30 350

50

100

150

n

CLB

XCS05

SMB4(3X)SMB4(−X)SMF (SM)SMF (SMSR)SMSC (SM)SMSC (SMSR)

Figura 3.38: Consumo de recursos logicos de los multiplicadores optimizados envelocidad.

SMF(SM), salvo para n = 8, presenta una buena velocidad de procesamiento

aunque inferior al SMF(SMSR) debido a que requiere una iteracion adicional.

El multiplicador SMSC(SMSR) presenta una buena velocidad de procesamien-

to para n < 14 bits, pero para valores mayores decrece. Se observa tambien que

las otras variantes logran velocidades inferiores a las del SMF(SMSR), pero su-

periores a la velocidad del SMB4(3X).

Page 100: Tesis Funes Marcos

Capıtulo 3. Nuevas Arquitecturas de Multiplicadores 78

5 10 15 20 25 30 352

4

6

8

10

12

14

16

18

20

22

n

PS

[Mop

s]

SMB4(3X)SMB4(−X)SMF (SM)SMF (SMSR)SMSC (SM)SMSC (SMSR)

Figura 3.39: Velocidad de procesamiento de los multiplicadores optimizados envelocidad.

3.4.3. Performance de los multiplicadores

A fin de estimar los beneficios de cada variante utilizando un unico indicador,

se propone el ındice de performance p, definido en la Ec. (3.40).

pi(n) =Velocidad de Procesamiento [Mops]

Area(3.40)

en la cual, la Velocidad de Procesamiento esta expresada en Millones de Opera-

ciones por Segundo y el Area como la fraccion de recursos respecto de todos los

existentes en una FPGA, (Total de la FPGA = 1).

En la Fig. 3.40 se muestra el ındice de performance para una FPGA de 400

CLB’s. Se puede observar que, para n < 14 bits, el SMSR presenta el mayor

ındice de performance. Esto se debe a que este multiplicador posee un consumo de

recursos logicos bastante reducido, y la relacion entre este consumo y su velocidad

de procesamiento es la optima.

Una forma de interpretar este resultado es analizando una posible aplicacion

Page 101: Tesis Funes Marcos

Capıtulo 3. Nuevas Arquitecturas de Multiplicadores 79

5 10 15 20 25 30 35

50

100

150

200

250

300

n

Per

form

ance

SMSMSRSMB4(3X)SMB4(−X)SMF (SM)SMF (SMSR)SMSC (SM)SMSC (SMSR)

Figura 3.40: Indice de performance de los multiplicadores.

de este multiplicador. El ındice de performance refleja que, si existiera la necesidad

de realizar un cierto numero de productos simultaneamente, resulta mas eficiente

utilizar arreglos paralelos de multiplicadores SMSR en lugar de un multiplicador

optimizado en velocidad.

El ındice indica que el SMSC es casi tan eficiente como el SMF(SMSR). Por

otro lado, los multiplicadores SMF(SM) y SMSC(SM) poseen una eficiencia me-

nor, debido al numero de iteraciones adicionales que deben realizar para ejecutar

un producto. Comparativamente se puede observar que la eficiencia de los multi-

plicadores de base 4 es bastante inferior.

En la Fig. 3.41 se grafica en forma ampliada el ındice para 20 < n < 32. En es-

ta figura se puede observar que al aumentar la longitud de palabra el SMF(SMSR)

y el SMSC(SMSR) resultan tanto o mas eficientes que el SMSR.

Page 102: Tesis Funes Marcos

Capıtulo 3. Nuevas Arquitecturas de Multiplicadores 80

20 22 24 26 28 30 325

10

15

20

25

30

35

n

Per

form

ance

SMSMSRSMB4(3X)SMB4(−X)SMF (SM)SMF (SMSR)SMSC (SM)SMSC (SMSR)

Figura 3.41: Indice de performance de los multiplicadores 20 < n < 32.

3.5. Arquitecturas Propuestas en Punto Flotan-

te

3.5.1. Variante Multiplicador Secuencial Sin Entradas Re-

gistradas

Producto de mantisas

El producto de las mantisas es un producto de dos enteros binarios sin signo.

El resultado de dos operandos enteros de n bits genera como resultado un numero

de 2n bits, sin embargo, en la multiplicacion en punto flotante solo se representan

los n bits mas significativos. Esto permite que exista una reduccion de la logica

del multiplicador debido a que la seccion menos significativa del registro que

almacena el Productoparcial es reemplazada por un unico Flip-Flop. Fig. 3.42.

Page 103: Tesis Funes Marcos

Capıtulo 3. Nuevas Arquitecturas de Multiplicadores 81

ADD

X

Producto Parcial

desplazamiento

n

n

Y

acarreon 0

nn

n

MUX

Control

n+1bits descartados

Figura 3.42: Modificacion del SMSR para el producto de las mantisas

Redondeo y normalizacion

El multiplicador propuesto se desarrollo para efectuar dos tipos de redondeo,

el redondeo a cero y el redondeo a +∞. El multiplicador con redondeo a cero es

el mas sencillo y mas economico en terminos de consumo de recursos logicos. El

multiplicador con redondeo a +∞ es mas elaborado pero mas economico que el

que utiliza el redondeo al mas cercano.

Redondeo a cero: El redondeo a cero consiste en truncar el producto de las

mantisas a la derecha del bit menos significativo. Esta operacion se efectua por

defecto al eliminar los registros de la seccion menos significativa del producto

de las mantisas. La particularidad de esta operacion radica en que el producto

resultante no se ve afectado por los registros eliminados debido a que son tan

solo una cadena de registros de desplazamiento que va ubicando el bit menos

significativo de la acumulacion de los productos parciales (ver Sec. 3.3.1).

Cuando el producto de las mantisas resulte en el rango 2 ≤ p ≤ 4, se debe

realizar un desplazamiento de normalizacion a la derecha para restaurar el pro-

ducto al rango 1 ≤ pr ≤ 2, con el apropiado ajuste del exponente en una unidad.

Este desplazamiento se realiza mediante una iteracion adicional (ciclo n + 1) en

la que la entrada X = 0 (equivalente al desplazamiento a la derecha).

Page 104: Tesis Funes Marcos

Capıtulo 3. Nuevas Arquitecturas de Multiplicadores 82

Redondeo a +∞: Este esquema presenta tres posibilidades: la primer posibi-

lidad es el truncamiento si el producto es negativo o si todos los bits a la derecha

del LSB son 0. Esta operacion se realiza mediante la registracion de los bits

descartados en cada iteracion.

Las otras dos posibilidades de redondeo dependen de los bits mas significativos

del producto de las mantisas y se diferencian entre sı por el rango del resultado.

La estrategia de redondeo utilizada con el multiplicador adiciona la constante

2−n por defecto y posteriormente evalua el rango del producto. Si el rango del

producto resulta comprendido en el rango 1 ≤ p ≤ 2, el redondeo se efectuo co-

rrectamente y no es requerida ninguna operacion adicional.

Cuando el producto resulta comprendido en el rango 2 ≤ p ≤ 4, se debe

ajustar el redondeo efectuado debido a la posterior normalizacion. Se presentan

dos casos en base a los bits menos significativos:

a) Si el bit menos significativo del producto truncado es un ”1”, para el cual la

adicion de la constante 2−n se propaga a los bits mas significativos. En este

caso no se realiza correccion.

b) Si el bit menos significativo del producto truncado es un ”0”. En este caso

la adicion de la constante 2−n no se propaga a los bits mas significativos y

consecuentemente luego de normalizar debe volver a redondear.

La Fig. 3.43 muestra el esquema de redondeo del multiplicador.

El multiplicador resultante se presenta en la Fig. 3.5.1.

Adicion de los exponentes

El exponente del producto resultante se puede expresar mediante la Ec. (3.41).

ep = ex + ey − bias + normal (3.41)

Page 105: Tesis Funes Marcos

Capıtulo 3. Nuevas Arquitecturas de Multiplicadores 83

Producto 2n bits

n bits descartados

1 * * * * *

0 0 0 0 100...0

Overflow con error

* * * * * *

Sin Overflow

0 1 * * * *

Redondeo

Producto

Truncamiento

1 * * * * *

* * * * * * * * * *

Sin Redondeo

Producto bitn

Normalización

0 0 0 0 0 10...0

+

1 * * * * *

Overflow sin error

Redondeo

Figura 3.43: Ejemplo del esquema de redondeo implementado

ADD

X

Producto Parcial

desplazamiento

n

n

Y

acarreon 0

nn

n

MUX

Controlnormalización

redondeo

n+1

Figura 3.44: Multiplicacion de las mantisas.

Page 106: Tesis Funes Marcos

Capıtulo 3. Nuevas Arquitecturas de Multiplicadores 84

La Ec. (3.41) se ha ejecutado en dos etapas, la primera donde se adicionan

los exponentes ex + ey y la segunda resta el bias al resultado. En esta etapa se

adiciona, si es necesario, un bit correspondiente a la normalizacion del resultado.

Consumo de recursos logicos

SMSR con redondeo a cero: La Tabla 3.18 expresa la estimacion del consu-

mo de recursos logicos del multiplicador en punto flotante basado en un SMSR

con redondeo a cero.

Funcion FG FF CLBMultiplexor 1.fyi n + 1 n 0 n

2

Control log2(n + 1) + 2 log2(n + 1) + 3 log2(n+1)2

+ 32

Producto yiX n + 1 0 n+12

Sumador + Reg. PH n + 3 n + 1 n+32

Registro P0 0 1 12

Adicion exponentes r + 2 0 r2

+ 1Correccion Bias + normalizacion r + 4 0 r

2+ 2

Signo 1 0 12

Tabla 3.18: Estimacion de consumo de recursos logicos de la variante SMSR conredondeo a cero.

Las Ecs. (3.42, 3.43 y 3.44) resumen el calculo de la estimacion en terminos

de FGs, FFs y CLBs.

FG(n, r) = 3n + log2(n + 1) + 13 + 2r (3.42)

FF (n, r) = n + log2(n + 1) + 5 (3.43)

CLB(n, r) =3n

2+

log2(n + 1)

2+

15

2+ r (3.44)

En la Fig. 3.45 se muestra el consumo estimado de recursos del SMSR.

Page 107: Tesis Funes Marcos

Capıtulo 3. Nuevas Arquitecturas de Multiplicadores 85

0 5 10 15 20 25 30 350

20

40

60

80

100

120

n

CLB

XCS05

Figura 3.45: Consumo de recursos del PFPM(SMSR), r = 8.

SMSR con redondeo a +∞: La Tabla 3.19 presenta la estimacion del con-

sumo de recursos logicos del multiplicador en punto flotante basado en un SMSR

con redondeo a +∞.

Funcion FG FF CLBMultiplexor 1.fyi n + 1 n 0 n

2

Control log2(n + 1) + 2 log2(n + 1) + 3 log2(n+1)2

Producto yiX n + 1 0 n+12

Sumador + Reg. PH n + 3 n + 1 n+32

Registro P0 0 1 12

Redondeo + normalizacion 5 3 52

Adicion exponentes r + 2 0 r2

+ 1Correccion Bias + normalizacion r + 4 r + 1 r

2+ 2

Signo 1 0 12

Tabla 3.19: Estimacion de consumo de recursos logicos de la variante SMSR conredondeo a +∞.

Las Ecs. (3.45, 3.46 y 3.47) resumen el calculo de la estimacion en terminos

de FGs, FFs y CLBs.

Page 108: Tesis Funes Marcos

Capıtulo 3. Nuevas Arquitecturas de Multiplicadores 86

FG(n, r) = 3n + log2(n + 1) + 10 + 2r (3.45)

FF (n, r) = n + log2(n + 1) + 9 (3.46)

CLB(n, r) =3n

2+

log2(n + 1)

2+ 10 + r (3.47)

En la Fig. 3.46 se muestra el consumo de estimado de recursos del SMSR.

0 5 10 15 20 25 30 350

20

40

60

80

100

120

n

CLB

XCS05

Figura 3.46: Consumo de recursos del PFPM(SMSR), r = 8.

3.5.2. Variante Multiplicador Secuencial de Sumas Con-

secutivas

Producto de mantisas

El producto de las mantisas mediante el SMSC se efectua como un producto

de dos enteros binarios sin signo, con la reduccion de la logica del multiplicador

Page 109: Tesis Funes Marcos

Capıtulo 3. Nuevas Arquitecturas de Multiplicadores 87

debido a que la seccion menos significativa del registro P es reemplazada por un

unico Flip-Flop. Fig. 3.47.

n

ADD

Producto Parcial

desplazamiento 2 bits

0n 1

nADD

LSB

acarreo

n

X

Y[bits impares]n

n/2

MUX

Control

Y[bits pares]n

n/2

MUX

Bits descartadosn+1

acarreo

Figura 3.47: SMSC modificado para el producto de las mantisas

Redondeo y normalizacion

Redondeo a cero: El redondeo a cero consiste en truncar el resultado del

producto de las mantisas a la derecha del bit menos significativo. Esta operacion

se efectua por defecto al eliminar los registros de la seccion menos significativa

del producto de las mantisas tal como se realiza con el multiplicador basado en

un SMSR.

En el caso en que el producto de las mantisas resulte en el rango 2 ≤ p ≤ 4,

se debe realizar un desplazamiento de normalizacion a la derecha para restaurar

el producto al rango 1 ≤ pr ≤ 2, con el apropiado ajuste del exponente en una

unidad. Mientras que el multiplicador de punto flotante basado en el SMSR, la

operacion de normalizacion se efectua mediante una iteracion adicional (ciclo

n + 1) en la que la entrada X = 0, con el SMSC esta operacion no es posible

debido a que una iteracion del SMSC efectua dos desplazamientos. Debido a esto,

el multiplicador basado en el SMSC requiere de logica adicional para la realizacion

de las tareas de normalizacion y de correccion del redondeo.

Page 110: Tesis Funes Marcos

Capıtulo 3. Nuevas Arquitecturas de Multiplicadores 88

Redondeo a +∞: El esquema de redondeo a +∞ implementado en este mul-

tiplicador es el mismo que aquel descripto en la seccion 3.5.1. La diferencia radica

en la aplicacion del mismo, ya que tal como se explica en la seccion previa, se

requiere de logica adicional para efectuar la normalizacion.

Adicion de los exponentes

La adicion de los exponentes se realiza de la misma manera que en la seccion

3.5.1. El exponente del producto resultante se puede expresar mediante la Ec.

(3.48).

ep = ex + ey − bias + normal (3.48)

Consumo de recursos logicos

SMSC con redondeo a cero: La Tabla 3.20 muestra la estimacion del con-

sumo de recursos logicos del multiplicador en punto flotante basado en un SMSC

con redondeo a cero. Las Ecs. (3.49, 3.50 y 3.51) resumen el calculo de la esti-

Funcion FG FF CLB2× Multiplexor yi 2(n+1

2− 1) 0 n

2− 1

2

Control log2(n+12

) + 2 log2(n+12

) + 3log2( n+1

2)

2+ 3

2

2× Producto yiX 2n + 2 0 n + 1Sumador n + 3 0 n

2+ 3

2

Sumador + Reg. P n + 3 n + 3 n2

+ 32

Registro P0 0 1 12

Adicion exponentes r + 2 0 r2

+ 1Correccion Bias + normalizacion r + 4 1 r

2+ 5

2

Signo 1 0 12

Tabla 3.20: Estimacion de consumo de recursos logicos de la variante SMSC conredondeo a cero.

macion en terminos de FGs, FFs y CLBs. En la Fig. 3.48 se grafica el consumo

Page 111: Tesis Funes Marcos

Capıtulo 3. Nuevas Arquitecturas de Multiplicadores 89

estimado de recursos del SMSC.

FG(n, r) = 5n + log2(n + 1

2) + 16 + 2r (3.49)

FF (n, r) = n + log2(n + 1

2) + 8 (3.50)

CLB(n, r) =5n

2+

log2(n+12

)

2+

19

2+ r (3.51)

0 5 10 15 20 25 30 350

20

40

60

80

100

120

140

n

CLB

XCS05

Figura 3.48: Consumo de recursos del PFPM(SMSC), r = 8.

SMSC con redondeo a +∞: La Tabla 3.21 presenta la estimacion del consu-

mo de recursos logicos del multiplicador en punto flotante basado en un SMSC.

Page 112: Tesis Funes Marcos

Capıtulo 3. Nuevas Arquitecturas de Multiplicadores 90

Funcion FG FF CLB2× Multiplexor yi 2(n+1

2− 1) 0 n− 1

Control log2(n+12

) + 2 log2(n+12

) + 3log2( n+1

2)

2+ 3

2

2× Producto yiX 2n + 2 0 n + 1Sumador n + 3 0 n

2+ 3

2

Sumador + Reg. P n + 3 n + 3 n2

+ 32

Registro P0 0 1 12

Redondeo + norm. 2n + 4 3 n + 2Adicion exponentes r + 2 0 r

2+ 1

Correccion Bias + normalizacion r + 4 1 r2

+ 52

Signo 1 0 12

Tabla 3.21: Estimacion de consumo de recursos logicos de la variante SMSC conredondeo a +∞.

Las Ecs. (3.52, 3.53 y 3.54) resumen el calculo de la estimacion en terminos

de FGs, FFs y CLBs.

FG(n, r) = 7n + log2(n + 1

2) + 20 + 2r (3.52)

FF (n, r) = n + log2(n + 1

2) + 10 (3.53)

CLB(n, r) =7n

2+

log2(n + 1)

2+

23

2+ r (3.54)

En la Fig. 3.49 se muestra el consumo estimado de recursos del SMSC.

3.6. Conclusiones

En este capıtulo se caracterizaron los multiplicadores secuenciales y se pro-

pusieron nuevas arquitecturas con el objetivo de realizar un estudio comparativo

destinado a su implementacion en FPGA. Se presentaron las estimaciones de

consumo de recursos logicos y de comportamiento temporal que permitieron con-

trastar las caracterısticas de los multiplicadores presentados.

Page 113: Tesis Funes Marcos

Capıtulo 3. Nuevas Arquitecturas de Multiplicadores 91

0 5 10 15 20 25 30 350

20

40

60

80

100

120

140

n

CLB

XCS05

Figura 3.49: Consumo de recursos del PFPM(SMSC), r = 8.

A partir de estas comparaciones se concluyo que el SMSR, el SMSC(SMSR) y

el SMF(SMSR) son los multiplicadores que mejor ındice de performance presen-

tan. Resultando el SMSR el optimo para aplicaciones donde se busca una reducida

cantidad de recursos logicos, y el SMSC(SMSR) o SMF(SMSR) en aplicaciones

donde ademas de las restricciones de recursos se requiere una alta velocidad de

procesamiento.

Como resultado de las comparaciones, se extendieron las variantes SMSR y

SMSC(SMSR) a la multiplicacion de operandos en punto flotante. Las arquitec-

turas propuestas contemplan los esquemas con redondeo a cero y a +∞. Para

cada variante se obtuvo una estimacion del consumo de recursos logicos.

Page 114: Tesis Funes Marcos

Capıtulo 4

Resultados Experimentales

4.1. Introduccion

Los multiplicadores propuestos fueron ensayados experimentalmente con el

objetivo de contrastar los resultados teoricos y de las estimaciones. Para ello, los

multiplicadores se implementaron en tres series de FPGA de Xilinx: Spartan, Vir-

tex y Virtex II. Cada una de las variantes de los multiplicadores se implemento en

primera instancia mediante captura esquematica y posteriormente en Lenguaje

de Descripcion de Hardware (VHDL) [28] [29].

4.2. Parametros de interes

Las variables de interes para la validacion experimental fueron: consumo de

recursos logicos, el retardo de propagacion, la frecuencia maxima del reloj de la

FPGA (inversa del retardo de propagacion), la frecuencia de actualizacion de

datos por segundo (inversa del tiempo que demanda realizar las iteraciones) y

finalmente, el ındice de performance, que integra los conceptos de tiempo y de

cantidad de recursos logicos.

92

Page 115: Tesis Funes Marcos

Capıtulo 4. Resultados Experimentales 93

El retardo de propagacion tpd se obtuvo a partir del Analizador de Tiempos

que posee la herramienta de programacion de FPGA de Xilinx (Foundation 3.1i,

Timimg Analyzer). Esta herramienta realiza un analisis estatico de todos los

retardos incluyendo el retardo entre un flanco de reloj y la correspondiente salida

Q de un FlipFlop, considerando adicionalmente el tiempo de establecimiento de

una senal. A partir de estos datos calcula el peor caso de temporizacion del diseno.

La frecuencia maxima de funcionamiento de reloj (fc [Mhz]) es la inversa del

tiempo tpd e indica la frecuencia maxima de reloj posible con ese diseno. A partir

de esta ultima se obtiene la frecuencia de actualizacion de datos o velocidad

de procesamiento (PS [Mops]). Esta frecuencia surge de dividir la frecuencia

maxima de trabajo por el numero de ciclos N que requiere ejecutar una operacion,

PS = fc

N.

El ındice de performance definido en la Seccion 3.4.3 se utilizo con el objetivo

de comparar el desempeno de cada sistema implementado en la FPGA.

4.3. Multiplicacion en Punto Fijo

4.3.1. Consumo de recursos logicos

El consumo de recursos logicos se puede cuantificar en CLBs. Cada CLB

esta compuesto por dos generadores de funciones (FG) y dos FlipFlops (FF). En

las series Virtex y Virtex II, cada CLB posee dos celdas denominadas slice, pero

a fines practicos la unidad utilizada es la de un CLB = un slice.

A continuacion se presentan los resultados experimentales de los multiplica-

dores implementados en una FPGA XCS20-pq208, perteneciente a la Familia

Spartan, con una capacidad de 400 CLBs. Finalmente, se presenta de forma re-

sumida el consumo de recursos logicos de los multiplicadores implementados en

Page 116: Tesis Funes Marcos

Capıtulo 4. Resultados Experimentales 94

las FPGAs XCV300e-8 y XC2V250-5 de las series Virtex y Virtex II.

Implementacion de los multiplicadores en Spartan

En la Tabla 4.1 se muestran los resultados experimentales de los multiplica-

dores implementados en Spartan.

Tabla 4.1: Consumo de recursos de los multiplicadores en Spartan[CLB].n 8 10 12 14 16 18 20 22 24 26 28 30 32

SM 17 20 23 26 29 32 35 39 41 44 47 50 54SMSR 19 24 28 31 35 40 43 47 50 54 58 61 65

SMB4(3X) 30 36 42 48 55 62 67 74 79 86 91 98 104SMB4(-x) 28 32 38 44 51 56 61 66 70 76 81 87 92

SMSC(SM) 24 30 35 40 45 50 55 61 65 70 75 81 86SMSC(SMSR) 28 34 39 45 51 60 65 71 75 82 87 93 98

SMF(SM) 32 38 45 51 59 65 72 78 85 91 97 104 111SMF(SMSR) 35 42 50 56 64 73 81 86 94 101 109 114 122

Las Tablas 4.2 y 4.3 muestran, respectivamente, el consumo estimado (Capıtu-

lo 3) y la diferencia porcentual entre el consumo experimental y el estimado.

Tabla 4.2: Consumo Estimado de recursos de los multiplicadores [CLB].n 8 10 12 14 16 18 20 22 24 26 28 30 32

SM 20 24 28 32 37 41 45 49 53 57 61 65 69SMSR 19 23 27 31 36 40 44 48 52 56 60 64 68

SMB4(3X) 37 44 51 58 66 73 80 87 94 101 108 115 122SMB4(-x) 33 39 45 51 58 64 70 76 82 88 94 100 106

SMSC(SM) 29 35 41 47 53 59 65 71 77 83 89 95 102SMSC(SMSR) 27 33 39 45 52 58 64 70 76 82 88 94 100

SMF(SM) 35 43 50 58 66 73 81 88 96 103 111 118 126SMF(SMSR) 32 39 46 53 61 68 75 82 89 96 103 110 117

Se puede observar en la Tabla 4.3 que, los multiplicadores que poseen una

estructura basada en el SM (el SM inclusive), presentan un consumo real inferior

al estimado. Esta diferencia se debe a que el algoritmo de sıntesis e implementa-

cion de Xilinx agrupa dos secciones de los multiplicadores en un solo CLB. En el

Page 117: Tesis Funes Marcos

Capıtulo 4. Resultados Experimentales 95

Tabla 4.3: Diferencia porcentual, Consumo Experimental vs Estimado [ %].n 8 10 12 14 16 18 20 22 24 26 28 30 32

SM -15 -17 -19 -20 -21 -21 -22 -20 -22 -23 -23 -23 -22SMSR 0 4 3 -1 -1 1 -2 -2 -3 -3 -3 -5 -4

SMB4(3X) -19 -18 -18 -18 -16 -15 -16 -15 -16 -15 -16 -15 -15SMB4(-x) -15 -18 -16 -14 -11 -12 -12 -13 -14 -13 -14 -13 -13

SMSC(SM) -16 -13 -14 -15 -15 -15 -16 -14 -16 -16 -16 -15 -15SMSC(SMSR) 4 3 -1 -1 -1 4 2 2 -1 0 -1 -1 -2

SMF(SM) -9 -11 -11 -12 -10 -11 -11 -12 -11 -12 -13 -12 -12SMF(SMSR) 9 7 8 5 6 8 8 5 6 5 6 4 4

caso de este esquema de multiplicacion existen dos secciones, una combinacional

sin registros y otra que utiliza solo registros, permitiendo, que el programa logre

reducir el consumo de CLBs complementando dos secciones del multiplicador.

A continuacion se explica esta situacion por medio de la implementacion del

SM que se muestra en la Fig. 4.1. En la estructura del SM, Fig. 3.2, el registro

Figura 4.1: Sıntesis de un CLB del multiplicador SM.

que almacena el operando X solo utiliza los FFs de un CLB permitiendo que los

FGs se puedan utilizar para otras funciones. Si se introduce esta consideracion de

Page 118: Tesis Funes Marcos

Capıtulo 4. Resultados Experimentales 96

sıntesis en la estimacion de consumo de recursos del multiplicador, la Ec. (3.6) es

modificada, obteniendo la Ec. (4.1).

CLB(n) =3

2n +

log2 n

2+

5

2(4.1)

La Fig. 4.2 muestra graficamente la diferencia existente entre el consumo de

recursos estimado y el experimental para el SM.

0 5 10 15 20 25 30 350

20

40

60

80

100

120

n

CLB

EstimadoExperimental

Figura 4.2: Consumo de recursos logicos del SM en Spartan.

La Fig. 4.3 presenta la contrastacion entre la estimacion de la Ec. 4.1 y los

resultados experimentales, donde se advierte la consistencia entre los resultados

experimentales y los estimados.

Page 119: Tesis Funes Marcos

Capıtulo 4. Resultados Experimentales 97

0 5 10 15 20 25 30 350

20

40

60

80

100

120

n

CLB

EstimadoExperimental

Figura 4.3: Consumo de recursos logicos del SM en Spartan.

Implementacion de los multiplicadores en Virtex

En la Tabla 4.4 se presenta el consumo de recursos logicos de los multipli-

cadores, en terminos de slices1, para una FPGA XCV300e-8 de la serie Virtex

de Xilinx. Se puede observar que en el caso de los multiplicadores en Virtex, el

software de implementacion no optimiza el uso de las celdas como lo hizo en la

serie Spartan, por lo que el consumo coincide conlo estimado en Capıtulo 3.

Implementacion de los multiplicadores en Virtex II

La Tabla 4.5 presenta el consumo de recursos logicos de los multiplicadores,

en terminos de slices, para una FPGA XC2V250-5 de la serie Virtex II de Xilinx.

Se puede observar que en el caso de los multiplicadores en Virtex II el consumo

de recursos es similar al de la serie Virtex.

1El contenido de un slice es similar al de un CLB de una Serie Spartan de Xilinx.

Page 120: Tesis Funes Marcos

Capıtulo 4. Resultados Experimentales 98

Tabla 4.4: Consumo de recursos de los multiplicadores en Virtex [slices].n 8 10 12 14 16 18 20 22 24 26 28 30 32

SM 21 25 29 33 38 42 46 50 54 58 62 66 71SMSR 19 24 28 31 34 41 44 48 53 57 60 64 64

SMB4(3X) 33 39 45 51 58 65 70 76 82 89 94 100 107SMB4(-x) 31 36 40 46 52 57 62 67 73 77 82 87 94

SMSC(SM) 30 36 42 49 55 62 67 73 79 86 91 97 104SMSC(SMSR) 28 33 39 46 50 58 64 71 76 82 88 94 96

SMF(SM) 37 44 51 59 67 74 81 90 96 104 111 119 128SMF(SMSR) 35 42 50 56 64 73 81 86 94 101 109 114 122

Tabla 4.5: Consumo de recursos de los multiplicadores en Virtex II [slices].n 8 10 12 14 16 18 20 22 24 26 28 30 32

SM 21 25 29 33 38 42 46 50 54 58 62 66 71SMSR 19 24 28 31 34 41 45 48 52 56 60 64 63

SMB4(3X) 31 38 44 50 57 64 69 75 81 88 93 99 106SMB4(-x) 32 38 42 48 54 58 64 69 73 79 83 89 93

SMSC(SM) 30 36 42 49 55 62 67 73 79 86 91 97 104SMSC(SMSR) 28 33 39 46 51 58 63 70 76 82 88 94 96

SMF(SM) 36 44 51 59 67 74 81 90 96 104 111 119 128SMF(SMSR) 35 41 48 55 62 72 80 87 94 101 109 114 122

4.3.2. Comportamiento temporal

El comportamiento temporal de los multiplicadores depende del retardo inhe-

rente de las compuertas logicas y registros, y el retardo debido a la interconexion

entre las mismas. En el capıtulo anterior se estimo el comportamiento temporal

sin considerar los retardos de interconexion debido a que los mismos recien se

conocen una vez implementado el circuito.

Implementacion de los multiplicadores en Spartan

En esta seccion se presentan los resultados experimentales de los multiplica-

dores implementados en una FPGA XCS20-pq208. A partir de estos resultados,

se obtiene una expresion de los retardos de interconexion, los que se incorporan

Page 121: Tesis Funes Marcos

Capıtulo 4. Resultados Experimentales 99

a la estimacion del comportamiento temporal de cada multiplicador permitiendo

caracterizarlo de manera mas precisa.

En la Tabla 4.6 se muestran los resultados experimentales de los multiplica-

dores implementados en Spartan.

Tabla 4.6: Retardo de propagacion de los multiplicadores en Spartan [ns].n 8 10 12 14 16 18 20 22 24 26 28 30 32

SM 11.1 11.8 12.5 13.0 13.5 14.3 14.8 15.2 15.9 16.6 17.0 17.3 18.1SMSR 10.9 11.7 12.0 12.8 13.4 14.0 14.4 15.0 15.8 16.3 16.8 17.3 17.9

SMB4(3X) 16.8 17.2 17.8 18.8 19.1 19.3 20.4 20.6 21.3 22.3 22.5 23.5 23.7SMB4(-x) 15.9 16.6 17.2 18.5 19.1 19.6 19.8 20.5 21.5 21.8 22.9 23.5 24.0

SMSC(SM) 15.7 16.4 17.0 17.9 18.3 18.6 19.5 20.1 20.9 21.4 22.0 22.4 22.9SMSC(SMSR) 15.5 16.5 17.0 17.5 18.0 18.6 19.7 20.2 20.6 21.1 21.4 22.2 23.1

SMF(SM) 11.4 12.0 12.6 13.3 14.1 14.6 15.4 16.2 17.0 17.9 18.3 19.0 20.2SMF(SMSR) 11.1 11.9 12.2 13.1 13.6 14.1 14.9 15.7 16.7 17.7 18.0 18.6 19.6

La Tabla 4.7 muestra el retardo de propagacion estimado en el Capıtulo 3. Se

recuerda que el retardo de propagacion en las variantes SM y SMSR es el mismo,

existiendo la diferencia en el numero de iteraciones de cada modelo.

Tabla 4.7: Retardo estimado de propagacion de los multiplicadores Trd = 0 [ns].n 8 10 12 14 16 18 20 22 24 26 28 30 32

SM 9.1 9.6 10.1 10.6 11.1 11.6 12.1 12.6 13.1 13.6 14.1 14.6 15.1SMB4(3X) 15.0 15.5 16.0 16.5 17.0 17.5 18.0 18.5 19.0 19.5 20.0 20.5 21.0SMB4(-x) 13.3 13.8 14.3 14.8 15.3 15.8 16.3 16.8 17.3 17.8 18.3 18.8 19.3

SMSC 13.9 14.5 15.0 15.4 15.9 16.4 16.9 17.4 17.9 18.4 18.9 19.4 19.9SMF 9.3 9.7 10.3 10.8 11.3 11.8 12.3 12.8 13.3 13.7 14.3 14.8 15.2

La Tabla 4.8 muestra la diferencia porcentual entre el retardo experimental y

el estimado. Se puede concluir que el retardo de interconexion genera entre un 10

y un 30 % de retardo adicional al retardo estimado.

La Tabla 4.9 muestra la velocidad de procesamiento resultante de los multi-

plicadores implementados en Spartan.

Page 122: Tesis Funes Marcos

Capıtulo 4. Resultados Experimentales 100

Tabla 4.8: Diferencia porcentual, Retardo de propagacion Experimental vs Esti-mado [ %].

n 8 10 12 14 16 18 20 22 24 26 28 30 32

SM 22.5 23.1 23.6 23.0 21.5 23.2 22.1 20.5 21.6 21.8 20.8 18.5 19.8SMSR 20.0 22.1 19.0 20.9 20.5 20.3 19.3 19.4 20.3 19.9 19.1 18.2 18.5

SMB4(3X) 12.0 11.2 11.1 13.7 12.6 10.4 13.1 11.4 12.3 14.5 12.7 14.7 12.7SMB4(-x) 19.5 20.2 20.0 24.8 25.0 24.0 21.3 22.3 24.2 22.7 25.2 25.1 24.4

SMSC(SM) 12.6 13.7 13.9 15.6 14.9 13.0 14.8 15.1 16.3 15.8 16.3 15.2 14.6SMSC(SMSR) 11.2 14.3 13.4 13.3 12.6 13.2 16.0 15.7 14.7 14.2 13.0 14.3 15.6

SMF(SM) 23.7 22.9 23.0 23.3 25.2 24.3 26.0 26.8 28.2 29.9 28.4 29.1 32.5SMF(SMSR) 19.6 22.0 19.1 21.9 20.6 20.1 21.8 22.9 26.4 28.6 26.1 26.0 28.8

Tabla 4.9: Velocidad de Procesamiento de los multiplicadores en Spartan[Mops/s].

n 8 10 12 14 16 18 20 22 24 26 28 30 32

SM 10.0 7.7 6.2 5.1 4.4 3.7 3.2 2.9 2.5 2.2 2.0 1.9 1.6SMSR 11.4 8.5 6.9 5.6 4.7 4.0 3.5 3.0 2.6 2.4 2.1 1.9 1.7

SMB4(3X) 11.9 9.7 8.0 6.7 5.8 5.2 4.5 4.0 3.6 3.2 3.0 2.7 2.5SMB4(-x) 10.5 8.6 7.3 6.0 5.2 4.6 4.2 3.7 3.3 3.1 2.7 2.5 2.3

SMSC(SM) 12.7 10.1 8.4 7.0 6.1 5.4 4.7 4.2 3.7 3.3 3.0 2.8 2.6SMSC(SMSR) 16.1 12.1 9.8 8.2 7.0 6.0 5.1 4.5 4.0 3.6 3.3 3.0 2.7

SMF(SM) 14.6 11.9 9.9 8.4 7.1 6.2 5.4 4.8 4.2 3.7 3.4 3.1 2.7SMF(SMSR) 18.1 14.0 11.7 9.5 8.2 7.1 6.1 5.3 4.6 4.0 3.7 3.4 3.0

Implementacion de los multiplicadores en Virtex

La Tabla 4.10 presenta maxima velocidad de procesamiento que se puede obte-

ner con los multiplicadores, en terminos de Millones de operaciones por segundo,

para la FPGA XCV300e-8.

Implementacion de los multiplicadores en Virtex II

La Tabla 4.11 presenta maxima velocidad de procesamiento que se puede obte-

ner con los multiplicadores, en terminos de Millones de operaciones por segundo,

para la FPGA XC2V250e-8.

Page 123: Tesis Funes Marcos

Capıtulo 4. Resultados Experimentales 101

Tabla 4.10: Velocidad de Procesamiento de los multiplicadores en Virtex [Mops/s].n 8 10 12 14 16 18 20 22 24 26 28 30 32

SM 23.9 19.3 16.5 14.1 12.2 10.7 9.6 8.6 7.6 6.8 6.3 5.6 5.2SMSR 27.5 21.4 17.4 14.4 12.5 11.1 9.5 8.4 7.6 7.0 6.4 5.3 5.4

SMB4(3X) 28.0 23.5 19.8 17.2 15.1 13.5 11.8 10.7 9.4 8.4 7.6 7.3 6.7SMB4(-x) 22.9 18.9 16.7 14.7 12.5 11.2 9.8 9.1 8.2 7.3 6.5 6.1 5.9

SMSC(SM) 31.0 25.3 21.8 18.3 15.9 14.2 12.8 11.7 10.5 9.7 8.8 8.2 7.6SMSC(SMSR) 38.2 29.8 24.8 21.2 17.9 15.5 13.8 12.4 11.3 10.4 9.5 8.7 8.1

SMF(SM) 35.5 29.5 25.3 21.5 19.9 17.9 16.3 14.4 13.1 12.1 11.1 10.2 9.4SMF(SMSR) 42.1 35.3 29.5 24.1 21.3 18.6 16.3 14.7 13.2 12.1 11.5 10.6 9.6

Tabla 4.11: Velocidad de Procesamiento de los multiplicadores en Virtex II[Mops/s].

n 8 10 12 14 16 18 20 22 24 26 28 30 32

SM 30.9 25.2 20.4 17.1 14.7 12.5 11.2 9.9 8.9 8.2 7.3 6.8 6.1SMSR 36.1 27.5 22.0 18.5 15.7 13.7 11.7 10.6 9.4 8.4 7.4 7.0 6.5

SMB4(3X) 34.8 28.5 23.6 20.9 18.4 16.3 14.5 13.1 11.7 10.7 9.6 8.9 8.6SMB4(-x) 32.1 27.5 23.2 20.4 17.9 16.1 14.2 12.9 11.7 10.7 10.1 9.4 8.5

SMSC(SM) 35.7 28.9 24.5 20.6 18.0 16.0 14.2 13.0 11.9 10.8 9.9 9.1 8.5SMSC(SMSR) 45.5 34.9 28.5 24.0 20.4 17.9 16.2 14.2 12.7 11.5 10.4 10.0 9.1

SMF(SM) 44.3 36.9 31.7 27.3 23.8 21.0 18.6 16.8 15.6 13.9 13.0 12.0 10.9SMF(SMSR) 53.8 44.9 37.2 30.9 27.8 24.3 21.6 19.2 16.6 15.2 13.9 12.8 11.6

4.3.3. Comparacion de los multiplicadores

En esta seccion se realiza la comparacion de los multiplicadores ensayados a

partir de los resultados obtenidos de las implementaciones.

Multiplicadores optimizados en consumo de recursos

La Fig. 4.4 muestra el consumo de recursos logicos de los multiplicadores

secuenciales SM y SMSR implementados en la serie Spartan. Se puede observar

que el SM posee un consumo de recursos aproximadamente 20 % inferior al del

SMSR. Esto se debe fundamentalmente al algoritmo de sıntesis e implementacion

de Xilinx que agrupa dos secciones del SM en un solo CLB.

Page 124: Tesis Funes Marcos

Capıtulo 4. Resultados Experimentales 102

5 10 15 20 25 30 350

10

20

30

40

50

60

70

80

n

CLB

SMSMSR

Figura 4.4: Consumo de recursos logicos: SM vs SMSR en Spartan.

En la Fig. 4.5 se muestra la misma comparacion en la serie Virtex. En la

misma se puede observar que la relacion de consumo entre los multiplicadores

posee las mismas caracterısticas que las estimadas en la Seccion 3.4. La Fig 4.6

muestra la comparacion de los multiplicadores implementados en Virtex II.

En cuanto a la velocidad de procesamiento de ambos multiplicadores en Spar-

tan, la diferencia entre estas, se puede observar en la Fig. 4.7. Esta diferencia

depende del numero de iteraciones de cada multiplicador, debido a que el retardo

de la ruta crıtica para ambos multiplicadores es practicamente el mismo.

Las Figs. 4.8 y 4.9 muestran la misma comparacion realizada para las se-

ries Virtex y Virtex II. Se puede observar que la relacion existente entre ambos

multiplicadores se mantiene para todas las implementaciones.

Page 125: Tesis Funes Marcos

Capıtulo 4. Resultados Experimentales 103

5 10 15 20 25 30 350

10

20

30

40

50

60

70

80

n

CLB

SMSMSR

Figura 4.5: Consumo de recursos logicos: SM vs SMSR en Virtex.

5 10 15 20 25 30 350

10

20

30

40

50

60

70

80

n

CLB

SMSMSR

Figura 4.6: Consumo de recursos logicos: SM vs SMSR en Virtex II.

Page 126: Tesis Funes Marcos

Capıtulo 4. Resultados Experimentales 104

5 10 15 20 25 30 350

2

4

6

8

10

12

14

n

PS

[Mop

s]

SMSMSR

Figura 4.7: Velocidad de procesamiento: SM vs SMSR en Spartan.

5 10 15 20 25 30 350

5

10

15

20

25

30

n

PS

[Mop

s]

SMSMSR

Figura 4.8: Velocidad de procesamiento: SM vs SMSR en Virtex.

Page 127: Tesis Funes Marcos

Capıtulo 4. Resultados Experimentales 105

5 10 15 20 25 30 350

5

10

15

20

25

30

35

40

n

PS

[Mop

s]

SMSMSR

Figura 4.9: Velocidad de procesamiento: SM vs SMSR en Virtex II.

Multiplicadores optimizados en velocidad

En la Fig. 4.10 se grafica el consumo de recursos logicos de las variantes

propuestas, optimizadas en velocidad, en contraste con los multiplicadores de

base 4.

Al respecto se puede observar que el multiplicador del tipo SMSC(SM) es

el que consume la menor cantidad de recursos, seguido del SMbase4(-X). El

SMSC(SMSR) presenta un consumo de recursos logicos alrededor de un 20 %

superior a la variante SM. Una relacion similar mantienen ambas variantes del

multiplicador SMF. Al respecto se puede observar que la variante SMSR posee

un consumo de recursos de casi un 142 % del SMSC(SM), y la variante SM un

129 %.

Las Figs. 4.11 y 4.12 muestran la comparacion realizada para las series Virtex

y Virtex II de Xilinx respectivamente. Se puede observar que las variantes de

los multiplicadores basadas en los SM poseen un consumo de recursos similar al

presentado en la Seccion 3.4.

Page 128: Tesis Funes Marcos

Capıtulo 4. Resultados Experimentales 106

0 5 10 15 20 25 30 350

20

40

60

80

100

120

n

CLB

SMB4 (3X)SMB4 (−X)SMF (SM)SMF (SMSR)SMSC (SM)SMSC (SMSR)

Figura 4.10: Consumo de recursos logicos de multiplicadores optimizados en ve-locidad en Spartan.

5 10 15 20 25 30 350

20

40

60

80

100

120

n

CLB

SMB4 (3X)SMB4 (−X)SMF (SM)SMF (SMSR)SMSC (SM)SMSC (SMSR)

Figura 4.11: Consumo de recursos logicos de multiplicadores optimizados en ve-locidad en Virtex.

Page 129: Tesis Funes Marcos

Capıtulo 4. Resultados Experimentales 107

5 10 15 20 25 30 350

20

40

60

80

100

120

n

CLB

SMB4 (3X)SMB4 (−X)SMF (SM)SMF (SMSR)SMSC (SM)SMSC (SMSR)

Figura 4.12: Consumo de recursos logicos de multiplicadores optimizados en ve-locidad en Virtex II.

En la Fig. 4.13 se grafica una comparacion de las velocidades de procesamien-

to de los multiplicadores. Se puede observar que el multiplicador SMF(SMSR)

es el que obtiene la mayor velocidad de procesamiento para todos los valores

de n. Adicionalmente, se puede observar que la variante SMF(SM), salvo para

el caso de n = 8, obtiene una buena velocidad de procesamiento pero inferior

al SMF(SMSR) debido a que requiere una iteracion adicional. El multiplicador

SMSC(SMSR) obtiene una buena velocidad de procesamiento que es comparativa

a la velocidad obtenida por el multiplicador SMF(SM). Se observa tambien que

la velocidad de la variante SMSC(SM) es superior a la velocidad obtenida por el

SMbase4(3X).

Page 130: Tesis Funes Marcos

Capıtulo 4. Resultados Experimentales 108

5 10 15 20 25 30 350

2

4

6

8

10

12

14

16

18

20

22

n

PS

[Mop

s]

SMB4 (3X)SMB4 (−X)SMF (SM)SMF (SMSR)SMSC (SM)SMSC (SMSR)

Figura 4.13: Velocidad de procesamiento de los multiplicadores optimizados envelocidad en Spartan.

5 10 15 20 25 30 350

5

10

15

20

25

30

35

40

45

n

PS

[Mop

s]

SMB4 (3X)SMB4 (−X)SMF (SM)SMF (SMSR)SMSC (SM)SMSC (SMSR)

Figura 4.14: Velocidad de procesamiento de multiplicadores optimizados en velo-cidad en Virtex.

Page 131: Tesis Funes Marcos

Capıtulo 4. Resultados Experimentales 109

5 10 15 20 25 30 350

5

10

15

20

25

30

35

40

45

50

55

n

PS

[Mop

s]

SMB4 (3X)SMB4 (−X)SMF (SM)SMF (SMSR)SMSC (SM)SMSC (SMSR)

Figura 4.15: Velocidad de procesamiento de multiplicadores optimizados en velo-cidad en Virtex II.

Performance de los multiplicadores

A fin de estimar los beneficios que se obtienen con cada variante se utiliza el

ındice de performance propuesto en la Ec. (3.40).

Implementacion en Spartan: En la Fig. 4.16 se grafica el ındice de perfor-

mance para las distintas variantes, luego de su implementacion en una FPGA de

400 CLB’s para el rango de 8 ≤ n ≤ 20 bits. Se puede observar que los mejores

resultados corresponden a los multiplicadores SM y SMSC(SMSR).

En la Fig. 4.17 se grafica el ındice de performance para un rango de 20 ≤ n ≤32 bits. En esta figura se observa que el SM posee el mejor ındice. Adicionalmente

ındice del SMSC(SM) resulta mejor que el del SMSC(SMSR) debido a que con-

sume menor cantidad de recursos y a medida que aumenta la longitud de palabra

de los operandos, la velocidad de procesamiento de ambos multiplicadores se hace

mas parecida.

Page 132: Tesis Funes Marcos

Capıtulo 4. Resultados Experimentales 110

5 10 15 20

50

100

150

200

250

n

Per

form

ance

SMSMSRSMB4 (3X)SMB4 (−X)SMF (SM)SMF (SMSR)SMSC (SM)SMSC (SMSR)

Figura 4.16: Indice de performance de los multiplicadores en Spartan, 8 ≤ n ≤ 20.

20 22 24 26 28 30 325

10

15

20

25

30

35

n

Per

form

ance

SMSMSRSMB4 (3X)SMB4 (−X)SMF (SM)SMF (SMSR)SMSC (SM)SMSC (SMSR)

Figura 4.17: Indice de performance de los multiplicadores en Spartan, 20 ≤ n ≤32.

Page 133: Tesis Funes Marcos

Capıtulo 4. Resultados Experimentales 111

Implementacion en Virtex: En la Fig. 4.16 se grafica el ındice de perfor-

mance para las distintas variantes, luego de su implementacion en una FPGA

Virtex de 1536 CLB’s para el rango de 8 ≤ n ≤ 20 bits. Se puede observar que el

mejor resultado corresponde al SMSC(SMSR) y, en menor medida el SMSR Y el

SMF(SMSR).

5 10 15 200

500

1000

1500

2000

n

Per

form

ance

SMSMSRSMB4 (3X)SMB4 (−X)SMF (SM)SMF (SMSR)SMSC (SM)SMSC (SMSR)

Figura 4.18: Indice de performance de los multiplicadores en Virtex, 8 ≤ n ≤ 20.

En la Fig. 4.17 se grafica el ındice de performance para un rango de 20 ≤n ≤ 32 bits, donde se observa que el ındice de los multiplicadores resulta mas

comparable para las variantes SMSC(SMSR), SMF(SMSR), SMSR y SM. Esto

es debido a que a medida que aumenta la longitud de palabra de los operandos,

el retardo de interconexion de los multiplicadores mas complejos aumenta mas

notoriamente en relacion con el SM y el SMSR.

Page 134: Tesis Funes Marcos

Capıtulo 4. Resultados Experimentales 112

20 22 24 26 28 30 320

50

100

150

200

250

300

350

400

n

Per

form

ance

SMSMSRSMB4 (3X)SMB4 (−X)SMF (SM)SMF (SMSR)SMSC (SM)SMSC (SMSR)

Figura 4.19: Indice de performance de los multiplicadores en Virtex, 20 ≤ n ≤ 32.

Implementacion en Virtex II: En la Fig. 4.16 se grafica el ındice de per-

formance para las distintas variantes, luego de su implementacion en una FPGA

Virtex II de 1536 CLB’s para el rango de 8 ≤ n ≤ 20 bits. Se puede observar que

el mejor resultado corresponde al SMF(SMSR) y, en menor medida el SMSR Y

EL SMF(SMSR)(salvo para el caso de n = 8, en el cual ambos poseen un mayor

ındice).

En la Fig. 4.17 se grafica el ındice de performance para un rango de 20 ≤n ≤ 32 bits, donde se observa que el ındice de los multiplicadores resulta mas

comparable pero manteniendo la misma relacion que para valores de n < 20.

Page 135: Tesis Funes Marcos

Capıtulo 4. Resultados Experimentales 113

5 10 15 200

500

1000

1500

2000

2500

n

Per

form

ance

SMSMSRSMB4 (3X)SMB4 (−X)SMF (SM)SMF (SMSR)SMSC (SM)SMSC (SMSR)

Figura 4.20: Indice de performance de los multiplicadores en Virtex II, 8 ≤ n ≤20.

20 22 24 26 28 30 320

50

100

150

200

250

300

350

400

450

500

n

Per

form

ance

SMSMSRSMB4 (3X)SMB4 (−X)SMF (SM)SMF (SMSR)SMSC (SM)SMSC (SMSR)

Figura 4.21: Indice de performance de los multiplicadores en Virtex II, 20 ≤ n ≤32.

Page 136: Tesis Funes Marcos

Capıtulo 4. Resultados Experimentales 114

4.4. Multiplicacion en Punto Flotante

Los multiplicadores en punto flotante propuestos fueron ensayados experimen-

talmente a fin de verificar los resultados obtenidos teoricamente y de las estima-

ciones. Con este objeto, los multiplicadores se implementaron para tres series de

FPGA de Xilinx, Spartan, Virtex y Virtex II. Ambas variantes del multiplicador

se implementaron en Lenguaje de Descripcion de Hardware (VHDL) [28] [29] para

una longitud de exponente r = 8 y variando la longitud de palabra de la mantisa.

4.4.1. Consumo de recursos logicos

Implementacion de los multiplicadores en Spartan

El consumo de recursos logicos de los multiplicadores en punto flotante en

Spartan se muestran en la Tabla 4.12.

Tabla 4.12: Consumo de recursos logicos de los multiplicadores en punto flotanteen Spartan [CLBs].

n 9 11 13 15 17 19 21 23 25 27

SMSR 32 35 37 40 44 46 49 51 54 57SMSR +∞ 35 37 40 42 46 49 51 53 57 60

SMSC 45 50 56 61 70 75 80 85 92 97SMSC +∞ 51 56 64 71 80 86 93 100 108 113

Implementacion de los multiplicadores en Virtex

En la Tabla 4.13 se presenta el consumo de recursos logicos de los multiplica-

dores, en terminos de slices2, para una FPGA XCV300e-8 de la serie Virtex de

Xilinx.

2El contenido de un slice es similar al de un CLB de una Serie Spartan de Xilinx.

Page 137: Tesis Funes Marcos

Capıtulo 4. Resultados Experimentales 115

Tabla 4.13: Consumo de recursos logicos de las variantes en Virtex [slices].n 9 11 13 15 17 19 21 23 25 27

SMSR 30 33 35 39 43 46 48 52 55 57SMSR +∞ 32 35 38 42 46 48 51 54 57 58

SMSC 46 51 57 63 71 77 83 89 93 97SMSC +∞ 51 56 64 71 80 86 93 100 108 113

Implementacion de los multiplicadores en Virtex II

En la Tabla 4.14 se presenta el consumo de recursos logicos de los multiplica-

dores para una FPGA XC2V250-5 de la serie Virtex de Xilinx.

Tabla 4.14: Consumo de recursos logicos de las variantes en Virtex II [slices].n 9 11 13 15 17 19 21 23 25 27

SMSR 32 35 37 41 45 47 50 53 55 58SMSR +∞ 35 38 40 44 48 50 53 57 59 61

SMSC 46 51 57 63 71 77 83 89 93 97SMSC +∞ 53 60 68 73 82 90 96 102 110 116

4.4.2. Comportamiento temporal

Implementacion de los multiplicadores en Spartan

En la Tabla 4.15 se presenta maxima velocidad de procesamiento que se pue-

de obtener con los multiplicadores, en terminos de Millones de operaciones por

segundo, para una FPGA de la serie Spartan de Xilinx.

Tabla 4.15: Comportamiento temporal de las variantes en Spartan [Mflop/s].n 9 11 13 15 17 19 21 23 25 27

SMSR 7.6 6.1 5.1 4.3 3.7 3.2 2.8 2.5 2.2 2.0SMSR +∞ 6.2 5.0 4.2 3.5 3.1 2.5 2.2 2.0 1.8 1.6

SMSC 10.3 8.3 7.1 6.0 5.3 4.7 4.2 3.8 3.4 3.1SMSC +∞ 10.2 8.4 7.1 6.1 5.3 4.8 4.2 3.7 3.4 3.1

Page 138: Tesis Funes Marcos

Capıtulo 4. Resultados Experimentales 116

Implementacion de los multiplicadores en Virtex

En la Tabla 4.16 se presenta maxima velocidad de procesamiento que se pue-

de obtener con los multiplicadores, en terminos de Millones de operaciones por

segundo, para una FPGA XCV300e-8 de la serie Virtex de Xilinx.

Tabla 4.16: Comportamiento temporal de las variantes en Virtex [Mflop/s].n 9 11 13 15 17 19 21 23 25 27

SMSR 20.3 15.8 13.4 11.8 10.2 9.0 7.8 7.2 6.2 5.7SMSR +∞ 16.2 13.6 11.5 9.7 8.4 7.4 6.6 6.0 5.2 4.8

SMSC 27.0 22.6 19.0 16.2 14.4 12.9 11.7 10.5 9.5 8.8SMSC +∞ 26.9 21.5 17.7 15.9 13.8 12.3 11.3 10.3 9.2 8.4

Implementacion de los multiplicadores en Virtex II

En la Tabla 4.17 se presenta maxima velocidad de procesamiento que se pue-

de obtener con los multiplicadores, en terminos de Millones de operaciones por

segundo, para una FPGA XC2V250e-8 de la serie Virtex II de Xilinx.

Tabla 4.17: Comportamiento temporal de las variantes en Virtex II [Mflop/s].n 9 11 13 15 17 19 21 23 25 27

SMSR 25.6 20.3 17.2 15.2 13.3 11.4 10.0 9.1 8.3 7.2SMSR +∞ 20.9 17.1 14.0 11.7 11.1 9.4 8.5 7.5 6.9 6.2

SMSC 29.3 24.8 21.0 18.4 16.2 14.4 13.3 12.1 10.9 10.0SMSC +∞ 29.4 24.5 21.0 18.3 16.1 14.5 13.3 11.9 10.7 10.0

4.4.3. Performance

A fin de poder estimar los beneficios que se obtienen con cada variante a traves

de un unico indicador, se utiliza del ındice de performance de la Ec. (3.40).

En la Fig. 4.22 se muestra el ındice de performance para las variantes SMSR

y SMSC con redondeo a cero. Se puede observar que la variante SMSR presenta

Page 139: Tesis Funes Marcos

Capıtulo 4. Resultados Experimentales 117

un ındice de hasta un 15 % superior a la variante SMSC. Esto se debe fundamen-

talmente a que el retardo de propagacion de la variante SMSR con redondeo a

cero es inferior al de la variante SMSC.

15 20 25 30 35 400

20

40

60

80

100

120

n

p

SMSCSMSR

Figura 4.22: Indice de performance de los multiplicadores con redondeo a cero enSpartan.

En la Fig. 4.23 se muestra el ındice de performance para las variantes SMSR

y SMSC con redondeo a +∞. Se puede observar que el ındice practicamente es

el mismo. Esto quiere decir que la variante SMSR es la optima para disenos con

fuertes restricciones en cuanto a consumo de recursos logicos y la variante SMSC

para restricciones en velocidad de procesamiento.

Las Figs. 4.24 y 4.25 se muestra el ındice de los multiplicadores para Virtex y

Virtex II respectivamente. Se puede observar que, si bien el ındice de la variante

SMSR para Virtex es practicamente igual al de la variante SMSC, en Virtex II

el SMSR logra un porcentaje mayor de desempeno. Esto es, debido a que en esta

ultima serie de FPGA se obtuvo una mejor velocidad de procesamiento por parte

de la variante SMSR.

Page 140: Tesis Funes Marcos

Capıtulo 4. Resultados Experimentales 118

15 20 25 30 35 400

20

40

60

80

100

120

n

p

SMSCSMSR

Figura 4.23: Indice de performance de los multiplicadores con redondeo a +∞ enSpartan.

5 10 15 20 25 300

100

200

300

400

500

600

700

800

900

1000

n

Per

form

ance

inde

x

Experimental results SMSCExperimental results SM

Figura 4.24: Indice de performance de los multiplicadores con redondeo a +∞ enVirtex.

Page 141: Tesis Funes Marcos

Capıtulo 4. Resultados Experimentales 119

5 10 15 20 25 300

200

400

600

800

1000

1200

n

Per

form

ance

inde

x

Experimental results SMSCExperimental results SM

Figura 4.25: Indice de performance de los multiplicadores con redondeo a +∞ enVirtex II.

4.5. Conclusiones

Se presentaron los resultados de implementacion de los multiplicadores secuen-

ciales. Estos resultados permiten validar las ecuaciones y conceptos presentados

en capıtulos previos, habilitando estas ecuaciones como una herramienta util para

la evaluacion de multiplicadores en FPGA.

A partir de los resultados de las comparaciones entre los multiplicadores en-

sayados, se concluye que el SM solo posee el mayor ındice de performance cuando

se lo implementa en la serie Spartan debido a que consume una cantidad inferior

de recursos relativo a la implementacion de los otras series. En estas ultimas,

la performance del SMSR resulta superior a la del SM segun lo estimado en el

capıtulo anterior. Estos resultados se extienden a las variantes de los multiplica-

dores basadas en uno u otro esquema.

La variante SMSC representa en general un buena eleccion cuando se requiere,

ademas de bajo consumo de recursos, una mejor velocidad de procesamiento. A

Page 142: Tesis Funes Marcos

Capıtulo 4. Resultados Experimentales 120

pesar de que esta velocidad resulta inferior que la de la variante SMF, presenta

una notable reduccion en consumo de recursos a su favor. Ademas se observa que

los resultados obtenidos con ambos multiplicadores respecto a los de base 4, la

mejora es sustancial.

Finalmente, la extension de los multiplicadores a punto flotante demostro que

se pudo obtener un multiplicador de bajo consumo de recursos logicos y buen

desempeno en velocidad.

Page 143: Tesis Funes Marcos

Capıtulo 5

Conclusiones

Las conclusiones de esta Tesis son las siguientes:

1. Se relevaron las arquitecturas de multiplicadores existentes en la literatura,

corroborandose el excesivo consumo de recursos logicos de los mismos.

2. Se propuso la utilizacion de la Multiplicacion Secuencial para reducir el

consumo de recursos. Se modelaron los multiplicadores secuenciales y se

concluyo que se debıa mejorar su desempeno en velocidad.

3. Se propusieron nuevas arquitecturas de multiplicadores secuenciales con el

objetivo de mejorar su desempeno en velocidad. Se modelaron las variantes

y se las comparo con los multiplicadores existentes.

4. Se validaron experimentalmente los modelos de los multiplicadores a traves

de la implementacion de los mismos en varias familias de FPGAs. Se obtu-

vieron mejoras importantes del desempeno de los mismos.

5. Se aplicaron las nuevas arquitecturas de Multiplicadores Secuenciales a la

multiplicacion en punto flotante. Se obtuvieron multiplicadores de punto

flotante de reducido consumo logico y buenas prestaciones de velocidad.

121

Page 144: Tesis Funes Marcos

Capıtulo 5. Conclusiones 122

6. Se aplico la multiplicacion secuencial a un problema concreto de control de

movimiento. El sistema desarrollado mostro notables mejoras con respecto

al diseno convencional basado en DSPs.

Estas conclusiones se desarrollan con mas detalle a continuacion.

Arquitecturas existentes

Se analizaron y modelaron los multiplicadores paralelos Ripple Carry, Carry

Save y las variantes propuestas por Guild y McCanny-McWhinter. Adicionalmen-

te, se realizaron implementaciones en FPGA del multiplicador Ripple Carry y de

otro propuesto por Xilinx optimizado en consumo de recursos. Los resultados de

esta implementacion obtenidos se resumen en la Tabla 5.1.

Tabla 5.1: Implementacion de Multiplicadores Paralelos en FPGA.Spartan Virtex Virtex II

Bits Tipo CLB Mops Slices Mops Slices Mops8 MP 61 20.8 64 41.9 64 45.58 MX 52 17.5 36 76.3 36 62.6

16 MP 247 10.8 257 22.0 258 24.716 MX 213 11.2 140 59.0 141 47.232 MX 816 3.1 544 40.5 548 38.5

MP: Multiplicador ParaleloMX: Multiplicador propuesto por Xilinx

Se concluyo que, si bien los multiplicadores paralelos pueden ejecutar produc-

tos rapidamente, presentan un elevado consumo de recursos que ademas aumenta

cuadraticamente con la longitud de palabra de los operandos. Por ejemplo se pu-

do comprobar que, para 32 bits, no existen modelos de la serie Spartan, capaces

de soportar la cantidad de recursos necesarios. Por lo tanto, la aplicacion de estas

arquitecturas se limita a FPGAs de gran tamano.

Page 145: Tesis Funes Marcos

Capıtulo 5. Conclusiones 123

Multiplicacion Secuencial

Se investigo el esquema de la Multiplicacion Secuencial, que consume una

cantidad inferior de recursos. En particular se modelaron y implementaron expe-

rimentalmente tres tipos: SM, SMB4(3X) y SMB4(-X). La Tabla 5.2 resume el

consumo de recursos y la velocidad de procesamiento de estas arquitecturas.

Tabla 5.2: Resultados experimentales de Multiplicadores SecuencialesSpartan Virtex Virtex II

Bits Tipo CLB Mops CLB Mops CLB Mops8 SM 19 10.0 19 23.9 19 30.98 SMB4(3X) 24 11.9 24 28.0 24 34.88 SMB4(-X) 28 10.5 28 22.9 28 32.1

16 SM 35 4.4 35 12.2 35 14.716 SMB4(3X) 45 5.8 45 15.1 45 18.416 SMB4(-X) 51 5.2 51 12.5 51 17.932 SM 65 1.6 65 5.2 65 6.132 SMB4(3X) 86 2.5 86 6.7 86 8.632 SMB4(-X) 98 2.3 98 5.9 98 8.5

Se concluyo que, si bien el consumo de recursos logicos es sustancialmente me-

nor, la velocidad de procesamiento de estas arquitecturas se encuentra por debajo

del 50 % de la velocidad de los MPs ensayados. Por lo tanto, se concluyo que es

necesario mejorar el desempeno en velocidad de los multiplicadores secuenciales.

Arquitecturas propuestas de Multiplicadores Secuenciales

Se realizaron propuestas para la optimizacion en velocidad de la Multiplica-

cion Secuencial. Para cada uno de los multiplicadores se describio su estrategia

y se lo modelo para poder comparar su desempeno. A partir del modelo de ca-

da multiplicador, se expreso cada uno en Lenguaje de Descripcion de Hardware

(HDL) [28] [29] y se realizo la correspondiente implementacion experimental. La

Tabla 5.3 resume el consumo de recursos y la velocidad de procesamiento obtenida

para estos multiplicadores.

Page 146: Tesis Funes Marcos

Capıtulo 5. Conclusiones 124

Tabla 5.3: Resultados experimentales de los Multiplicadores Secuenciales pro-puestos.

Spartan Virtex Virtex IIBits Tipo CLB Mops CLB Mops CLB Mops

8 SMSR 19 11.4 19 27.5 21 36.18 SMSC(SM) 24 12.7 30 31.0 30 35.78 SMSC(SMSR) 28 16.1 28 38.2 28 45.58 SMF(SM) 32 14.6 37 35.5 36 44.38 SMF(SMSR) 35 18.1 35 42.1 35 53.8

16 SMSR 35 4.7 34 12.5 38 15.716 SMSC(SM) 45 6.1 55 15.9 55 18.016 SMSC(SMSR) 51 7.0 50 17.9 51 20.416 SMF(SM) 59 7.1 67 19.9 67 23.816 SMF(SMSR) 64 8.2 64 21.3 62 27.832 SMSR 65 1.7 64 5.4 71 6.532 SMSC(SM) 86 2.6 104 7.6 104 8.532 SMSC(SMSR) 98 2.7 96 8.1 96 9.132 SMF(SM) 111 2.7 127 9.4 128 10.932 SMF(SMSR) 122 3.0 122 9.6 122 11.6

Se concluye que, con las variantes propuestas, se pudo incrementar el desem-

peno en velocidad sin un sacrificio sustancial de recursos logicos. En particular,

con la variante SMF(SMSR) se logro un incremento de velocidad estimado entre

un 60 % (8 bits) y un 100 % (32 bits) con respecto al SM. Con esta variante se

estarıa alcanzando la velocidad de procesamiento del MP para la serie Spartan

con un consumo hasta 8 veces menor.

Nuevas Arquitecturas de Multiplicacion Secuencial en Punto Flotante

Los resultados obtenidos con las multiplicadores propuestos se aplicaron a

la multiplicacion en punto flotante. Se seleccionaron dos de los multiplicadores

desarrollados y se realizo el respectivo modelo en punto flotante. Las ecuaciones

se validaron a traves de la implementacion de los mismos en las familias de FPGA

antes mencionadas.

Page 147: Tesis Funes Marcos

Capıtulo 5. Conclusiones 125

La Tabla 5.4 muestra el consumo de recursos logicos de los multiplicadores

SMSR y SMSC aplicados a punto flotante. A su vez, se muestran los ensayos

realizados con redondeo a cero y redondeo a +∞ (ver Seccion 2.2.2).

Tabla 5.4: Resultados experimentales de Multiplicadores en Punto FlotanteSpartan Virtex Virtex II

Bits Tipo CLB Mflops CLB Mflops CLB Mflops18 SMSR trunc 32 7.6 30 20.3 32 25.618 SMSR +∞ 35 6.2 32 16.2 35 20.918 SMSC trunc 45 10.3 46 27.0 46 29.318 SMSC +∞ 51 10.2 51 26.9 53 29.432 SMSR trunc 51 2.5 52 7.2 53 9.132 SMSR +∞ 53 2.0 54 6.0 57 7.532 SMSC trunc 85 3.8 89 10.5 89 12.132 SMSC +∞ 100 3.7 100 10.3 102 11.9

Se concluye que, para multiplicadores de 18 bits, se ha obtenido un desempeno

hasta 8 veces superior a la de la arquitectura propuesta por Shirazi et al [9].

Comparando los resultados con los reportados por Aty et al [25], el desempeno

obtenido es hasta 6 veces mejor para la serie Spartan, y hasta 5 veces para la serie

Virtex II en 18 bits. Para el caso de 32 bits, se concluye que los multiplicadores

propuestos obtienen un desempeno al menos 3 veces superior a los reportados por

estos autores1.

Por otra parte, por ejemplo el SMSC propuesto en esta tesis consume 8 ve-

ces menos que el propuesto por Jaenicke and Luk [23], con una velocidad tan

solo 2,5 veces menor. Es decir, que el desempeno logrado con los multiplicadores

propuestos es al menos 3 veces mayor.

1Estos autores hacen uso del multiplicador embebido de 18 bits de la serie Virtex II

Page 148: Tesis Funes Marcos

Capıtulo 5. Conclusiones 126

Multiplicacion Secuencial aplicada al Control de Movimiento

El controlador desarrollado permitio el control de posicion de maquinas incre-

mentales a alta velocidad en paso completo o en modo micropaso2. Se utilizo el

multiplicador SMSR para el modo paso y el SMSC para el modo micropaso. Con

el sistema desarrollado, se alcanzaron velocidades hasta 5 veces mayores que las

obtenidas mediante DSPs en modo paso y hasta 12 veces en modo micropaso.

Publicaciones

”Multiplicadores secuenciales en FPGA: evaluacion y comparacion de parame-

tros”, 8th Argentine Symposium on Computing Technology (36 JAIIO)

ISBN 1850-2776. Mar del Plata 2007.

”Estudio comparativo de multiplicadores secuenciales implementados en

FPGA”, XII Reunion de Trabajo en Procesamiento de la Informacion y

Control. Mar del Plata 2007.

”Floating Point Multipliers with Reduced FPGA Area”, II Southern Con-

ference on Programmable Logic. ISBN 84-609-8998-4. Mar del Plata 2006.

”Performance evaluation of Floating Point Multipliers”, XX Congreso Ar-

gentino de Control Automatico. ISBN 978-950-99994-4-2. Mar del Plata

2006.

”Novel FPGA based Floating Point Multiplier: Consecutive-Sums Sequen-

tial Multiplier”, 8th Argentine Symposium on Computing Technology (36

JAIIO) ISBN 1850-2776. Mar del Plata 2007.

2El modo micropaso consiste en el accionamiento del movimiento del motor incremental enfracciones de un paso.

Page 149: Tesis Funes Marcos

Capıtulo 5. Conclusiones 127

”Novel stepper motor controler based on FPGA hardware implementation

”, IEEE/ASME Transactions on Mechatronics, Nro. 1 Vol 8 ISSN 1083-4435

March 2003, pg 120-124.

”FPGA based stepper motor controller”, II Southern Conference on Pro-

grammable Logic. ISBN 84-609-8998-4. Mar del Plata 2006.

5.0.1. Trabajos futuros

La implementacion hardware de algoritmos de control puede resultar de suma

utilidad en el campo de la Electronica de Potencia. Los convertidores de potencia

presentan permanentemente un compromiso entre la velocidad del sistema global

y la complejidad del control. La evolucion de los dispositivos digitales de las

ultimas decadas permitio el avance en el control de estos sistemas, sin embargo

los requerimientos actuales tambien son mayores.

En el campo de logica programable, la capacidad de paralelizacion de tareas

permitirıa aumentar la eficiencia del control de los convertidores, ya sea aumen-

tando la velocidad de procesamiento del sistema utilizando algoritmos de control

y/o modulacion mas sofisticados que mejorarıa la performance del convertidor.

Adicionalmente, el sistema implementado en FPGA permitirıa la generacion de

seguridad y proteccion en la conmutacion de las llaves de los convertidores en

forma independiente de la ejecucion del algoritmo.

En el marco de la investigacion realizada hasta el momento, se propone ex-

pandir los conocimientos adquiridos para el desarrollo e implementacion de los

algoritmos de control destinados a Convertidores de Potencia. Entre las herra-

mientas necesarias, se encuentra la necesidad de desarrollar sumadores en punto

flotante que posean las mismas caracterısticas que los multiplicadores propuestos

Page 150: Tesis Funes Marcos

Capıtulo 5. Conclusiones 128

en el Capıtulo 3. Los sumadores en punto flotante consumen considerables canti-

dades de recursos logicos, comparables a la de los multiplicadores. Por otro lado,

los algoritmos de control de los convertidores de potencia requieren usualmente

el calculo de funciones trigonometricas. Se pretende desarrollar avances en este

campo mediante la aplicacion de los conocimientos en la ejecucion de algoritmos,

entre los que se encuentra el de CORDIC [30] [31].

Page 151: Tesis Funes Marcos

Bibliografıa

[1] E. Boemo, E. Juarez, and J. Meneses, “Taxonomıa de multiplicadores,” Proc.VIII DCIS Conference. Univ. of Malaga., pp. 185–190, 1993.

[2] D. Teixeira, A. Susim, and L. Carro, “Comparacion de multiplicadores enfpga,” V Workshop Iberchip, vol. 1, pp. 182–187, Enero 1999.

[3] .Nibouche, A. Bouridarie, and M.Nibouche, “New architectures for serial-serial multiplication,” IEEE, pp. 705–708, 2001.

[4] A. Aggoun, A. Ashur, and M. K. Ibrahimi, “Area-time efticient serial-serialmultipliers,” in IEEE International Symposium on Circuits and Systems,2000.

[5] A. Aggoun, A. Farwan, M. Ibrahim, and A. Ashur, “Radix-2n serialserialmultipliers,” IEE Proc.-Circuits Devices Syst., vol. 151 No. 6, pp. 503–509,2004.

[6] A. Bouridane, M.Nibouche, D. Crookes, and B. Albesher, “A low latency bi-directional serial-parallel multiplier architecture,” IEEE ISCAS 2000, vol. 5,pp. 593–596, May 2000.

[7] C. Wallace, “A suggestion for a fast multiplier,” IEEE Trans. on ElectronicComuters, pp. 14–17, 1964.

[8] L. Dadda, “Some schemes for parallel multipliers,” Alta Frequenza, vol. XX-XIV, N 5, 1965.

[9] N. Shirazi, A. Walters, and P. Athanas, “Quantitative analisis of floatingpoint arithmetic on FPGA based custom computing machines,” Proceedings.IEEE Symposium on FPGAs for Custom Computing Machines, pp. 155–162,1995.

[10] I. W. B. Ligon, S. McMillan, G. Monn, K. Schoonover, F. Stivers, and K. D.Underwood, “A re-evaluation of the practicality of floating-point operationson FPGAs,” Proceedings of IEEE Symposium on FPGAs for Custom Com-puting Machines, pp. 206–215, 1998.

129

Page 152: Tesis Funes Marcos

Bibliografıa 130

[11] J. L. Hennessy and D. Patterson, Computer Architecture: A Quantitative Ap-proach. San Francisco, California ISBN: 1-55860-329-8: Morgan KaufmannPublishers, Inc., 1996.

[12] J. P. Hayes, Introduccion al Diseno Logico Digital. Wilmington, Delaware,E.U.A: Addison-Wesley Iberoamericana, 1996.

[13] G. E. Ordoez-Fernandez, L. Lpez-Lpez, and J. Velazco-Medina, “Diseo demultiplicadores paralelos de 16 bits en fpgas,” in Proceedings X Taller Iber-chip, 2004.

[14] B. Parhami, Computer Arithmetic: Algorithms and Hardware Design. NewYork, Oxford: Oxford University Press, 2000.

[15] E. Jamro and K. Wiatr, “Constant coefficient convolution implemented infpgas,” in Digital System Design, 2002. Proceedings. Euromicro Symposiumon, 4-6 Sept. 2002, pp. 291–298.

[16] J. B. Evans, C.-J. Chou, and S. Mohanakrishnan, “FPGA implementationof digital filters,” Proc. ICSPAT’93, pp. 1–9, 1993.

[17] R. J. Landry, V. Calmettes, and E. Robin, “High speed IIR filter for xi-linx FPGA,” Proceedings of the 1998 Midwest Symposium on Systems andCircuits, 1998.

[18] I. S. 754, IEEE standard for binary floating-point arithmetic. New York:The Institute of Electrical and Electronics Engineers Inc., 1985.

[19] H. Guild, “Fully iterative fast array for binary multiplication and addition,”Electronic Letters, vol. 5, p. 263, 1969.

[20] J. McCanny and J. McWhirter, “Completely iterative, pipelined multiplierarray suitable for VLSI,” IEE Proceedings, Part G - Electronic Circuits andSystems, vol. 129, pt. G, no. 2, Apr. 1982, p. 40-46., vol. 129, pp. 40–46,Apr. 1982.

[21] “Core generator,” http://www.xilinx.com/products/logicore/coregen/index.htm,2000.

[22] L. Louca, T. A. Cook, and W. H. Johnson, “Implementation of IEEE singleprecision floating point addition and multiplication on FPGAs,” ProceedingsIEEE Symposium on FPGAs for Custom Computing Machines, pp. 107–116,1996.

[23] A. Jaenicke and W. Luk, “Parameterised floating-point arithmetic on fpgas,”in Acoustics, Speech, and Signal Processing, 2001. Proceedings. (ICASSP’01). 2001 IEEE International Conference on, vol. 2, 7-11 May 2001, pp.897–900vol.2.

Page 153: Tesis Funes Marcos

Bibliografıa 131

[24] M. A. Jimnez, N. G. Santiago, and D. T. Rover, “Development of a scalableFPGA-based floating point multiplier,” Proceedings of the Fifth CanadianWorkshop on Field-Programmable Devices, pp. pp. 145 – 150, 1998.

[25] G. Aty, A. Hussein, I. Ashour, and M. Mones, “High-speed, area-efficientfpga-based floating-point multiplier,” in Microelectronics, 2003. ICM 2003.Proceedings of the 15th International Conference on, 9-11 Dec. 2003, pp.274–277.

[26] B.New, “Estimating the performance of XC4000E adders and counters,”Xilinx, Tech. Rep. Xapp 018, 1996.

[27] The Programable Logic Data Book 1999. Xilinx, 1999.

[28] S. Ghosh, Hardware Description Languages Concepts and Principles. 445Hoes Lane, P.O. Box 1331 Piscataway, NJ 08855-1331: IEEE Press, 1999.

[29] E. Villar, L. Teres, S. Olcoz, and Y. Torroja, VHDL Lenguaje Estandar deDiseno Electronico. Madrid: McGraw Hill, 1997.

[30] J. E. Volder, “The CORDIC Trigonometric Computing Technique,” IRETransactions on Electronic Computers, vol. EC-8, pp. 330–334, 1959.

[31] M. Kharrat, M. Loulou, and N. M. andL. Kamoun, “A new method to im-plement cordic algorithm,” in The 8th IEEE International Conference onElectronics, Circuits and Systems, vol. 2, 2001, pp. 715–718.

[32] [Online]. Available: www.cypress.com

[33] [Online]. Available: www.actel.com

[34] [Online]. Available: www.quicklogic.com

[35] [Online]. Available: www.xilinx.com

[36] [Online]. Available: www.altera.com

[37] [Online]. Available: http://www.alcatel-lucent.com/wps/portal

[38] [Online]. Available: www.atmel.com

[39] R. Bossart, H. Braun, F. Chautard, M. Comunian, J. Delahaye,J.C.Godot, I. Kamber, J. Madsen, L. Rinolfi, S. Schreiber, G. Suberlucq,I. Wilson, and W. Wuensch, “Performances obtained with the cern linearcollider test facility,” in Proc. European Particle Accelerator Conference-EPAC’94, London, UK, July 1994, pp. 680–682. [Online]. Available:http://accelconf.web.cern.ch/AccelConf/

Page 154: Tesis Funes Marcos

Bibliografıa 132

[40] W. Coosemans and H. Mainaud, “Pre-alignment of clic using the double-wiremethod,” European Organization of Nuclear Research (CERN), Tech. Rep.343, July 1997, CLIC-NOTE 343.

[41] P. Poirier, “Lalignement dynamique submicrometrique de sections accele-ratrices,” Memoire de soutenance du Diplome de Recherche Specialisee enSciences, Universite Louis Pasteur de Strasbourg, September 1991.

[42] D. Carrica, R. Pittin, and M. Benedetti, “Control subsystem hardware of thehigh performance electronics for alignment regulation on the CLIC 30GHzmodules,” CERN Publication (European Laboratory for Particle Physics),Ginebra, Suiza., vol. CTF 99-09, March 1999.

[43] J. Crook, “Low cost microprocessor based speed control,” in Proceedingsof the Thirteeth Annual Symposium, Incremental Motion Control Systemand Devices, B. C. Kuo, Ed., Incremental Motion Control System Society.Champaign, Illinois: Board of Trustees of the University of Illinois, May 1984,pp. 25–30.

[44] Z. Kang and S. Qu, “A new methodology for using single microprocessor tocontrol DC stepper motors,” in Proceedings of the IEEE International Confe-rence on Industrial Technology, I. of Electrical & Electronics Engineers Staff,Ed. Piscataway, NJ, USA: IEEE Press, Dec. 1994, pp. 543–545.

[45] D. O. Carrica and S. A. Gonzalez, “Algoritmo eficiente para la generacionde perfiles de velocidad en el accionamiento simultaneo de multiples motorespaso a paso,” in ANALES VIII Reunion de Trabajo en Procesamiento de laInformacion y Control, RPIC’99, vol. 1. Mar del Plata, Argentina: Facultadde Ingenieria, U.N.M.d.P., Sept. 23–25, 1999, pp. 118–122.

[46] P. Acarnley, Stepping Motors: A Guide to Modern Theory and Practice,4th ed., ser. IEE Control Engineering Series, no. 63. London, U.K.: Pe-ter Peregrinus Ltd, Dec. 2002.

[47] T. Kenjo and A. Sugawara, Stepping Motors and their Microprocessor Con-trols, 2nd ed., ser. Monographs in Electrical and Electronic Engineering.Oxford, U.K.: Oxford University Press, 1995.

[48] B. Robert, F. Alin, and C. Goeldel, “Aperiodic and chaotic dynamics in hy-brid step motor-new experimental results,” in Proceedings of the IEEE In-ternational Symposium on Industrial Electronics-ISIE’2001, 2001, pp. 2136–2141.

[49] M.-C. Pera, B. Robert, and C. Goeldel, “Nonlinear dynamics in electrome-chanical systems-application to a hybrid stepping motor,” Electromotion,vol. 7, no. 1, pp. 31–42, Jan./Mar. 2000.

Page 155: Tesis Funes Marcos

Bibliografıa 133

[50] N. Acosta, C. Collado, and K. Larsen, “Metricas para la generacion de mul-tiplicadores paralelos en FPGA.” Proc. of VII Workshop Iberchip., 2001.

[51] N. Acosta, E. Todorovich, C. Collado, and K. Larsen, “Multiplicadores pa-ralelos: Estado del arte y analisis de su materializacion en FPGA.” Proc. ofVI Workshop Iberchip., pp. 158–168, 2000.

[52] A. Booth, “A signed binary multiplication technique,” Quartelly J. of Mech.Appl. Math., vol. 4 Part 2, 1951.

[53] S. Brown, “FPGA architectural research: A survey,” Design & Test of Com-puters, IEEE, vol. 13, pp. 9–15, 1996.

[54] S. Brown and J. Rose, “FPGA and CPLD architectures: A tutorial,” Design& Test of Computers, IEEE, vol. 13, pp. 42–57, 1996.

[55] D. Carrica, R. Pittin, W. Coosemans, and M. Benedetti, “Active alignmentelectronic system for CLIC 30 GHz modules in CTF2,” CERN Publication,CLIC Nro. 361, November 1998.

[56] T.-S. Chang and C.-W. Jen, “Hardware-efficient implementations for discre-te function transforms using LUT-based FPGAs,” Computers and DigitalDesigns - IEE Proceedings, vol. 146, Issue 6, p. 309, 1999.

[57] C. Dick and F. Harris, “FPGA signal processing using sigma-delta modula-tion,” F. IEEE Signal Processing Magazine, vol. Volume: 17 Issue: 1, pp. 20–35, Jan. 2000.

[58] F. Elguibaly, “A fast parallel multiplier-accumulator using the modifiedbooth algorithm,” IEEE Transactions on Circuits and Systems - II: Analogand Digital Signal Processing, vol. 47, no. 9, pp. 902–908, September 2000.

[59] M. Funes, D. Carrica, and M. Benedetti, “Floating point multipliers withreduced fpga area,” vol. 1, 2006, pp. 59–66.

[60] ——, “Multiplicadores de punto flotante para estructuras FPGA,” vol. 1,2002, p. 40.

[61] ——, “Multiplicadores secuenciales para estructuras FPGA,” vol. Vol. II,2001, pp. 646–651.

[62] A. A. Gray and S. D. Hoy, “Parallel adaptive equalizer employing sub-convolution: VLSI architecture realized in a field programmable gate array,”2003 MAPLD International Conference, 2003.

[63] R. W. Hix and R. L. Haggard, “Comparative design methodologies for FPGAbased computer arithmetic,” Proceedings of the Twenty-Ninth SoutheasternSymposium on System Theory, pp. 374–378, 1997.

Page 156: Tesis Funes Marcos

Bibliografıa 134

[64] B. Lee and N. Burgess, “Parameterisable floating-point operations on FP-GA,” Conference Record of the Thirty-Sixth Asilomar Conference on Signals,Systems and Computers, pp. 1064–1068, 2002.

[65] L. Mintzer, “Large FFT’s in a single FPGA,” ICSPAT, 1996.

[66] K. Rajagopalan and P. Sutton, “A flexible multiplication unit for an FP-GA logic block,” The 2001 IEEE International Symposium on Circuits andSystems, 2001. ISCAS 2001, vol. vol. 4, pp. 546–549, 2001.

[67] C. Souani, M. Abid, and R. Tourki, “An FPGA implementation of the floa-ting point addition,” Industrial Electronics Society IECON ’98. Proceedingsof the 24th Annual Conference of the IEEE, vol. 3, pp. 1644–1648, 1998.

[68] P. F. Stelling, C. U. Martel, V. G. Oklobdzija, and R. Ravi, “Optimal circuitsfor parallel multipliers,” IEEE Transactions on Computers, vol. 47, no. 3,pp. 273–285, March 1998.

[69] P. F. Stelling and V. G. Oklobdzija, “Optimal designs for multipliers andmultiply-accumulators,” Proceedings of the 15th IMACS World Congress onScientific Computation, Modeling, and Applied Mathematics, vol. 4, pp. 739–744, August 1997.

[70] M. Thornton, J. Gaiche, and J. Lemieux, “Tradeoff analysis of integer mul-tiplier circuits implemented in FPGAs,” Communications, Computers andSignal Processing IEEE Pacific RIM Conference, pp. 301–304, 1999.

[71] E. Todorovich, G. Sutter, N. Acosta, E. Boemo, and S. Lopez-Buedo, “Re-lacion entre velocidad y consumo en FPGAs,” VII Workshop Iberchip, pp.1–6 CD Browser, 2001.

[72] B. Von Herzen, “Signal processing at 250mhz using high-performanceFPGA’s,” IEEE Transactions on Very Large Scale Integration(VLSI) Systems,, vol. 6, Issue 2, pp. 238–246, 1998.

[73] The Programable Logic Data Book. Xilinx, 2000.

[74] R. Zimmermann, Binary Adder Architectures for Cell-Based VLSI and theirSynthesis. Swiss Federal Institute of Technology, 1997.

[75] M. Lu, Arithmetic and Logic in Computer Systems. Wiley-Interscience,2004.

[76] U. Meyer-Baese, Digital Signal Processing with Field Programmable GateArrays. Springer-Verlag, 2001.

[77] A. Gaffar, W. Luk, P. Cheung, and N. Shirazi, “Customising floating-pointdesigns,” in Symposium on Field-Programmable Custom Computing Machi-nes. IEEE, 2002, pp. 315 – 317.

Page 157: Tesis Funes Marcos

Bibliografıa 135

[78] J. Knopman, E. Fernandes, and A. Mesquita, “Implementation of hardwarestructures through configurable logic,” in EUROMICRO 94. System Archi-tecture and Integration. Proceedings of the 20th EUROMICRO Conference.,5-8 Sept. 1994, pp. 125–130.

[79] M. Louie and M. Ercegovac, “Multiplication and inner product with fieldprogrammable gate arrays,” in VLSI Signal Processing, VII, 1994., [Works-hop on], 26-28 Oct. 1994, pp. 246–255.

[80] R. Lysecky and F. Vahid, “A configurable logic architecture for dynamichardware/software partitioning,” in Design, Automation and Test in EuropeConference and Exhibition, 2004. Proceedings, vol. 1, 16-20 Feb. 2004, pp.480–485Vol.1.

[81] T. Miyamori and U. Olukotun, “A quantitative analysis of reconfigurablecoprocessors for multimedia applications,” in FPGAs for Custom ComputingMachines, 1998. Proceedings. IEEE Symposium on, 15-17 April 1998, pp. 2–11.

[82] T.Noll, “Carry-save arithmetic for high-speed digital signal processing,” inCircuits and Systems, 1990., IEEE International Symposium on, 1-3 May1990, pp. 982–986vol.2.

[83] S. Shah, A. Al-Khalili, and D. Al-Khalili, “Comparison of 32-bit multipliersfor various performance measures,” in Microelectronics, 2000. ICM 2000.Proceedings of the 12th International Conference on, 31 Oct.-2 Nov. 2000,pp. 75–80.

[84] N. Vassiliadis, S.Nikolaidis, S. Siskos, and D. Soudris, “The effect of theinterconnection architecture on the fpga performance and energy consum-ption,” in Electrotechnical Conference, 2004. MELECON 2004. Proceedingsof the 12th IEEE Mediterranean, vol. 1, 12-15 May 2004, pp. 213–216Vol.1.

[85] J. S. Walther, “A Unified Algorithm for Elementary Functions,” in Procee-dings of the Spring Joint Computer Conference, 1971.

[86] X. Wang and S. Ziavras, “A configurable multiprocessor and dynamic loadbalancing for parallel lu factorization,” in Parallel and Distributed ProcessingSymposium, 2004. Proceedings. 18th International, 26-30 April 2004, p. 234.

[87] L. Wayne and J. Allan, “Parameterised floating-point arithmetics on FP-GAs,” in International Conference on Speech, and Signal Processing, Vol.IEEE, 2001, pp. 897–900.

[88] W. W. Yu and S. Xing, “Fixed-point multiplier evaluation and design withfpga,” in Proc. SPIE Vol. 3844, p. 153-161, Reconfigurable Technology: FP-GAs for Computing and Applications, Aug. 1999, pp. 153–161.

Page 158: Tesis Funes Marcos

Apendices

136

Page 159: Tesis Funes Marcos

Apendice A

Dispositivos Logicos

Programables

A.1. Introduccion

Desde finales de la decada de los ’60, los equipos electronicos digitales se

han construido utilizando circuitos integrados (CI) que realizan funciones logicas

basicas, realizados en pequena o mediana escala de integracion. A medida que los

sistemas se volvieron mas complejos, exigiendo un numero mas elevado de fun-

ciones logicas, se genero la necesidad de utilizar circuitos disenados a medida que

solo sirven para una aplicacion. Estos circuitos especıficos, o ASIC (Application

Specific Integrated Circuit), se producen con las especificaciones proporcionadas

por el usuario.

Los equipos realizados con ASICs ocupan menos espacio, son mas fiables,

consumen menos energıa y resultan mas baratos que los equipos equivalentes

realizados con CI de funcion logica basica cuando se fabrican en grandes series.

Otra de las ventajas que tienen las ASICs radica en que el diseno es muy difıcil

de copiar protegiendo la propiedad intelectual. Sin embargo poseen un alto costo

137

Page 160: Tesis Funes Marcos

Apendice A. Dispositivos Logicos Programables 138

de desarrollo y su empleo solo se justifica para volumenes de produccion muy

elevados. El tiempo necesario para el desarrollo y la construccion de una ASIC es

considerable ya que puede oscilar de unos meses a unos anos.

A.2. PLD

Un dispositivo que permitio reducir algunos costos de diseno surgio con la

generacion del PLD (Programmable Logic Device). Un PLD es un dispositivo

cuyas caracterısticas pueden ser modificadas y almacenadas mediante programa-

cion. La sıntesis de estos dispositivos esta fundamentada en el hecho que una

funcion booleana cualquiera puede ser expresada como una suma de productos.

El dispositivo programable mas simple es una PAL (Programmable Array

Logic). El circuito interno de una PAL consiste en un arreglo, o matriz, de com-

puertas AND y un arreglo de compuertas OR. El arreglo AND es programable

mientras que el OR generalmente es fijo. Mediante una matriz de conexiones se

seleccionan las entradas que seran conectadas al arreglo AND, cuyas salidas son

conectadas al arreglo OR y de esta manera se obtiene una funcion logica en forma

de suma de productos.

La matriz de conexiones de un PLD es una red de conductores distribuidos en

filas y columnas con un fusible en cada punto de interseccion. Con estos recursos

se implementan las funciones logicas deseadas mediante un software especial y

un programador. La sıntesis de las ecuaciones logicas se realiza mediante el que-

mado del fusible en cada punto de interseccion de los pines de entrada con las

compuertas.

Posteriormente, el fusible se reemplazo por una celda CMOS electricamen-

te borrable (EECMOS) creandose ası una Matriz Generica Programable (GAL,

Generic Array Logic). Un GAL en su forma basica es un PLD con una matriz

Page 161: Tesis Funes Marcos

Apendice A. Dispositivos Logicos Programables 139

AND reprogramable, una matriz OR fija y una logica de salida programable me-

diante una macrocelda. Esta estructura permite implementar cualquier funcion

logica como suma de productos con un numero de terminos definido. Mediante

la programacion se activa o desactiva cada celda EECMOS y se puede aplicar

cualquier combinacion de variables de entrada, o sus complementos, a una com-

puerta AND para generar cualquier operacion producto que se desee. La celda

activada conecta su correspondiente interseccion de fila y columna, y una celda

desactivada desconecta la interseccion. Las celdas se pueden borrar y reprogramar

electricamente.

A.3. CPLD

Un CPLD (Complex Programmable Logic Device) extiende el concepto de

un PLD a un mayor nivel de integracion ya que permite implementar sistemas

con un mejor desempeno porque utilizan menor espacio y reducen costos. Un

CPLD esta formado con multiples bloques logicos, cada uno similar a un PLD.

Estos bloques logicos se comunican entre sı utilizando una matriz programable

de interconexiones (PIM). Esta matriz permite unir los pines de entrada/salida

a las entradas del bloque logico, o las salidas del bloque logico a las entradas de

otro bloque logico o inclusive a las entradas del mismo (Fig. A.1).

La mayorıa de los CPLDs usan una de dos configuraciones para esta matriz:

interconexion mediante arreglo de celdas EECMOS o interconexion mediante mul-

tiplexores. La primera se basa en una matriz de filas y columnas con una celda

programable de conexion en cada interseccion. Al igual que en el GAL esta celda

puede ser activada para conectar/desconectar la correspondiente fila y columna.

Esta configuracion permite una total interconexion entre las entradas y salidas

del dispositivo o bloques logicos.

Page 162: Tesis Funes Marcos

Apendice A. Dispositivos Logicos Programables 140

BloquesI/O

36

I/O/GTS

I/O/GSR

I/O/GCK

I/O

I/O

I/O

I/O

2 or 4

1

I/O

I/O

I/O

I/O

3

Bloque deFunciones 1

Macroceldas1 to 18

36

36

18

18

18

18

36

Matr

izP

rogra

mable

de

Inte

rconexio

nes

Bloque deFunciones 2

Macroceldas1 to 18

Bloque deFunciones 3

Macroceldas1 to 18

Bloque deFunciones N

Macroceldas1 to 18

Figura A.1: Diagrama en bloques de un CPLD

En la interconexion mediante multiplexores, existe un multiplexor por cada

entrada al bloque logico. Las vıas de interconexion programables son conectadas

a las entradas de un numero de multiplexores por cada bloque logico. Las lıneas

de seleccion de estos multiplexores son programadas para permitir que sea selec-

cionada unicamente una vıa de la matriz de interconexion por cada multiplexor la

cual se propagara a hacia el bloque logico. Cabe mencionar que no todas las vıas

son conectadas a las entradas de cada multiplexor. La capacidad de interconexion

se incrementa usando multiplexores de mayor tamano, permitiendo que cualquier

combinacion de senales de la matriz de interconexion pueda ser interconectada

con cualquier bloque logico.

En ambos casos, la capacidad de interconexion provoca que disminuya el

desempeno del dispositivo debido al aumento de consumo de energıa y el tamano

del componente.

Page 163: Tesis Funes Marcos

Apendice A. Dispositivos Logicos Programables 141

A.4. FPGA

Los Arreglos Logicos Programables (ALPs) o Field Programmable Gate Arrays

(FPGAs) surgieron en los ’80, como solucion a las excesivas demoras del desarro-

llo convencional de circuitos integrados digitales. Ademas, esta tecnologıa consti-

tuyo una alternativa a la costosa implementacion de circuitos integrados especıfi-

cos (ASICs). A pesar de estas importantes ventajas la utilizacion extensiva de los

FPGAs comenzo recien en la decada de los ’90.

La arquitectura de una FPGA consiste en arreglos de varias celdas logicas

las cuales se comunican unas con otras mediante canales de conexion verticales y

horizontales como se muestra en la Fig. A.2.

CL B CL B CL B CL B

CL B CL B CL B CL B

CL B CL B CL B CL B

CL B CL B CL B CL B

IOB

IOB

IOB

IOB

IOB

IOB

IOB

IOB

IOB

IOB

IOB

IOB

IOB

IOB

IOB

IOB

IOB

IOB

IOB

IOB

IOB

IOB

IOB

IOB

IOB

IOB

IOB

IOB

IOB

IOB

IOB

IOB

Figura A.2: Distribucion de bloques de una FPGA de Xilinx

La estructura de las celdas logicas y las formas en que estas pueden ser interco-

nectadas, tanto salidas como entradas de la celda, varıan de acuerdo al fabricante.

En general una celda logica tiene menos funcionalidad que la combinacion de su-

mas de productos y macroceldas de un CPLD.

La estructura de las celdas se ve fuertemente influida por la tecnologıa utili-

zada para fabricar la FPGA. Una FPGA que tiene una gran cantidad de canales

Page 164: Tesis Funes Marcos

Apendice A. Dispositivos Logicos Programables 142

de interconexion tiende a tener pequenas celdas logicas con muchas entradas y

salidas en comparacion con el numero de compuertas que tiene la celda. Sin em-

bargo, una FPGA que tiene una estructura pequena en canales de interconexion

tiende a tener celdas logicas con pocas entradas y salidas en comparacion con el

numero de compuertas que hay en la celda.

La tecnologıa de interconexion se puede clasificar en dos tipos, antifusibles

o RAM estatica (SRAM). Las FPGAs con gran cantidad de canales de interco-

nexion utilizan una tecnologıa de antifusibles que generan una conexion cuando

son programados, no permitiendo la reutilizacion de la FPGA. La tecnologıa de

antifusibles es utilizada por empresas tales como Cypress [32], Actel [33] y Qui-

cklogic [34].

Por otro lado, para FPGAs con pocos canales se realiza la interconexion con

tecnologıa SRAM. La primera FPGA fue introducida por Xilinx [35] en el ano

1985 y era basada en RAM estatica. Esta FPGA cada vez que se aplica la ten-

sion de alimentacion se re-programa con la informacion que lee desde una PROM

(Programmable Read Only Memory) de configuracion externa. Una FPGA basa-

da en SRAM admite un numero ilimitado de re-programaciones sin necesidad de

borrados previos. En la Fig. A.3 se puede observar la matriz de interconexion de

una FPGA de Xilinx. En detalle se puede observar el conjunto de los 6 transis-

tores de paso que permiten la interconexion de las celdas. Una vez programada

la FPGA, una memoria SRAM mantiene el estado de conexion o desconexion de

cada uno de estos transistores.

A medida que se realiza la interconexion de las lıneas, comunmente denomi-

nadas rutas, se van adicionando retardos en la trayectoria recorrida. Este efecto

debe ser tomado en cuenta en las herramientas de programacion para diseno y

ajuste de las FPGA, de manera que el software sea capaz de establecer las co-

nexiones mas cortas posibles y luego realizar el trazado de esas conexiones, para

Page 165: Tesis Funes Marcos

Apendice A. Dispositivos Logicos Programables 143

PSM

CLB CLB

PSM PSM

PSM PSM PSM

8 Simples

2 Dobles

3 Longs

3 Largas

2 Dobles

2 Dobles3 Largas3 Largas2 Dobles 8 Simples

Transistores de paso

Figura A.3: Matriz de interconexion de una FPGA de Xilinx

ası optimizar el rendimiento del dispositivo.

Este mismo tipo de tecnologıa es ademas utilizado por Altera [36], Lucent

Technologies [37] y Atmel [38] entre otros.

A.4.1. Celdas Logicas

Otra consecuencia de los recursos de interconexion se presenta con el tamano

de las celdas. Si las celdas logicas son demasiado pequenas sucede que se debe

utilizar un gran numero de estas en cascada para poder implementar funciones

logicas grandes. Estas celdas en general resuelven funciones elementales de dos o

tres variables (denominadas de grano fino) y presentan como desventaja que cada

celda logica en cascada agrega un tiempo de retardo en la funcion implementada.

A medida que el tamano de la celda logica aumenta, sucede lo contrario.

En este tipo de celdas logicas, que resuelven funciones elementales de cuatro o

mas variables de entrada (denominadas de grano grueso), es posible implementar

funciones logicas de varios terminos con pocas celdas logicas. Entre las FPGA con

celdas de grano grueso se encuentran las de Xilinx y algunas familias de Altera,

la que tambien ofrece algunas familias con celdas de grano medio. Fabricantes

como Actel ofrecen FPGAs de grano fino.

Page 166: Tesis Funes Marcos

Apendice A. Dispositivos Logicos Programables 144

La celda basica de una FPGA de la serie FLEX10K de Altera, denominada

LE (Logic Element), es una celda de grano medio que posee una LUT (Look-up

Table) de 4 entradas y un Fliplop. La LUT puede ser configurada tambien como

una LUT de 3 entradas y una logica de acarreo rapido. El conjunto de ocho LEs

se encuentran dispuestas en un arreglo denominado LAB (Logic Array Block).

Adicionalmente cada fila posee un EAB (Embeded Array Block) que puede ser

configurado como un elemento de 2048x1 hasta 256x8 de memoria. Estos LAB y

EAB se encuentran interconectados a traves de buses de alta velocidad de 100 a

300 lıneas por columna.

To LAB LocalInterconnect

Carry-In

ClockSelect

Carry-Out

Look-Up

Table

(LUT)

Clear/

Preset

Logic

Carry

Chain

Cascade

Chain

Cascade-In

Cascade-Out

To FastTrackInterconnect

Programmable

Register

PRN

CLRN

DQ

ENA

Register Bypass

Chip-WideReset

data1

data2

data3

data4

labctrl1labctrl2

labctrl3

labctrl4

Figura A.4: Descripcion de un LE de una FPGA FLEX10K de Altera

Un ejemplo de una celda basica de Xilinx denominado CLB (Configurable

Logic Block) se puede observar en la Fig. A.5. Estos CLBs estan compuestos por

dos LUTs (F y G) con las cuales se pueden generar funciones logicas de cuatro

variables independientes, o bien una funcion logica combinada (H) de 5 variables.

Cada LUT cuenta con logica aritmetica dedicada para la propagacion rapida de

acarreo a celdas vecinas. Cada CLB cuenta ademas con dos Flipflops con los

cuales se pueden registrar las salidas combinacionales. Xilinx posee cinco niveles

de interconexion, que va desde la conexion entre dos CLBs, a conexiones largas

Page 167: Tesis Funes Marcos

Apendice A. Dispositivos Logicos Programables 145

que atraviesan toda la FPGA. Cada CLB puede ser utilizado como un elemento

de 16x2 a 31x1 de memoria.

G4

G

H1

F

G4

G3G3

G2G2

G1

D Y

Y

X

S R

CK

E C

Q

G1

S R

H1

IN

G

H

L ogic

Function

of

G1-G4

L ogic

Function

of

F -G-H1

Multiplexer Controlled

by Configuration P rogram

G-L U T

F4F4

F3F3

F2F2

F1F1

K

E C

G

L ogic

Function

of

F1-F4

F -L U T

H-L U T

A

B

D X

S R

CK

E C

Q

Figura A.5: Descripcion de un CLB de una FPGA XC4000 de Xilinx

En la Fig. A.6 se muestra un ejemplo de los recursos logicos de algunas FPGAs

de Xilinx. En la misma el fabricante presenta la cantidad de celdas basicas, el

maximo contenido de memoria que se puede generar y la cantidad de Flip-flops

que contiene cada modelo.

A.4.2. Recursos dedicados

Los fabricantes de FPGAs generan en los dispositivos algunos recursos dedi-

cados a mejorar el desempeno de los mismos. Ejemplo de ello se puede observar

sobre la serie XC4000 de Xilinx, la cual cuenta con lıneas de comunicacion glo-

bal, seleccion de velocidad de acceso de buffers de salidas y logica de acarreo para

acelerar y condensar funciones arimeticas.

Las lıneas de comunicacion globales estan disenadas para distribuir senales

de reloj o que poseen un gran fan out. Estas lıneas poseen un retardo mınimo y

pueden ser accedidas mediante la utilizacion de buffers especiales.

Page 168: Tesis Funes Marcos

Apendice A. Dispositivos Logicos Programables 146

ModeloFPGA

XCS05 238 3K 2K-5K 3K 10x10 100 360

XCS10 466 5K 3K-10K 6K 14x14 196 616

XCS20 950 10K 7K-20K 13K 20x20 400 1120

XCS30 1368 13K 10K-30K 18K 24x24 576 1536

XCS40 1862 20K 13K-40K 25K 28x28 784 2016

XCS05XL 238 3K 2K-5K 3K 10x10 100 360

XCS10XL 466 5K 3K-10K 6K 14x14 196 616

XCS20XL 950 10K 7K-20K 13K 20x20 400 1120

XCS30XL 1368 13K 10K-30K 18K 24x24 576 1536

XCS40XL 1862 20K 13K-40K 25K 28x28 784 2016

XC2S15 432 8K 6K-15K 22K 8x12 96 384

XC2S30 972 17K 13K-30K 36K 12x18 216 863

XC2S50 1728 30K 23K-50K 56K 16x24 384 1536

XC2S100 2700 53K 37K-100K 78K 20x30 600 2400

XC2S150 3888 77K 52K-150K 102K 24x36 864 3456

XC4013XLA 1368 13K 10K-30K 18K 24x24 576 1536

XC4020XLA 1862 20K 13K-40K 25K 28x28 784 2016

XC4028XLA 2432 28K 18K-50K 33K 32x32 1024 2560

XC4036XLA 3078 36K 22K-65K 42K 36x36 1296 3168

XC4044XLA 3800 44K 27K-80K 51K 40x40 1600 3840

XC4052XLA 4598 52K 33K-100K 62K 44x44 1936 4576

XC4062XLA 5472 62K 40K-130K 74K 48x48 2304 5376

XC4085XLA 7448 85K 55K-180K 100K 56x56 3136 7168

XCV50 1728 21K 34K-58K 56K 16x24 384 1536

XCV100 2700 32K 72K-109K 78K 20x30 600 2400

XCV150 3888 47K 93K-165K 102K 24x36 864 3456

XCV200 5292 64K 146K-237K 130K 28x42 1176 4704

XCV300 6912 83K 176K-323K 160K 32x48 1536 6144

XCV400 10800 130K 282K-468K 230K 40x60 2400 9600

XCV600 15552 187K 365K-661K 312K 48x72 3456 13824

XCV800 21168 254K 511K-888K 406K 56x84 4704 18816

XCV1000 27648 332K 622K-1,124K 512K 64x96 6144 24576

Serie Spartan:

Serie XC4000:

Serie Virtex:

Ce

lda

sL

óg

ica

s

Co

mp

.L

óg

ica

s

Ra

ng

oT

ípic

od

eC

om

pu

ert

as

Ma

x. R

AM

Bit s

Ma

triz

de

CL

B

CL

Bs

Flip

-Flo

ps

Figura A.6: Recursos logicos de algunas FPGAs de Xilinx

Page 169: Tesis Funes Marcos

Apendice A. Dispositivos Logicos Programables 147

Las series a partir de la Familia Virtex cuentan adicionalmente con bloques

denominados DLL (Delay-Locked Loop). Estos DLLs se encargan de monitorear

el reloj de entrada y el distribuido en los bloques utilizados y generan un retardo

sobre las lıneas de manera que el flanco de reloj se genere sincronicamente entre

todos los FlipFlops y el reloj de entrada.

La velocidad de acceso de los buffers de salida por defecto se encuentra limi-

tada para minimizar transitorios en las lıneas de alimentacion cuando conmutan

entradas no prioritarias. Para el caso de lıneas en las cuales se requiere mayor

velocidad, se puede cambiar el atributo de velocidad para que la salida pueda

operar mas rapidamente.

A partir de la serie XC4000E, Xilinx incorporo logica de acarreo dedicada a

las FPGAs. En la Fig. A.7 se puede observar que la logica de acarreo comparte

las entradas de datos y de control con los generadores de funciones. Las salidas

de acarreo se encuentran conectadas a los generadores de funciones de manera

de realizar las combinaciones adecuadas para la realizacion de una suma. Las

salidas de tipo propagacion de acarreo se comunican entre CLBs a traves de

rutas dedicadas de alta velocidad. Como se observa en la misma figura, el acarreo

se puede propagar hacia el CLB superior o inferior. En el caso en que no existen

CLBs en la parte superior o inferior debido a que el CLB se encuentra en los

lımites fısicos de la FPGA, el acarreo se propaga hacia la derecha.

La logica de acarreo puede ser configurada para implementar funciones de

adicion, substraccion o ambas. Ademas se pueden realizar operaciones de incre-

mento, decremento y/o funciones en complemento.

Page 170: Tesis Funes Marcos

Apendice A. Dispositivos Logicos Programables 148

DQ

S/R

EC

YQ

Y

DIN

H

G

F

G

H

DQ

S/R

EC

XQ

DIN

H

G

F

H

X

H

F

G

G4

G3

G2

G1

F

F3

F2

F1

F4

F

GACARREO

CIN DOWNLOGICA

ACARREO

D

H1

INCOUT

COUT0

ACARREO

CIN UP

COUT

Figura A.7: Logica de acarreo dedicada de una FPGA XC4000 de Xilinx

Page 171: Tesis Funes Marcos

Apendice A. Dispositivos Logicos Programables 149

A.5. Conclusiones

Desde hace ya un par de decadas el procesamiento de senales se lleva a cabo en

lo que se denomino DSPs (Digital Signal Processors). Estos DSPs estan basados

en la arquitectura de un procesador capaz de ejecutar calculos mediante una uni-

dad MAC (Multiply/Accumulator) y multiples bancos de memoria destinados a

incrementar la transferencia de datos. La ventaja de estos DSPs siempre radico en

que el procesamiento de senales utiliza intensivamente estas operaciones.

Sin embargo, a pesar de que estos DSPs son flexibles en cuanto a su progra-

macion, la arquitectura es fija y solo disponen de una o dos unidades MAC. Como

consecuencia, el grado de ejecuciones concurrentes esta limitado por este numero,

de manera que no permite explotar toda la potencial concurrencia del algoritmo.

En contraste, en una FPGA es posible generar la logica necesaria para explo-

tar esta concurrencia. Por ejemplo, si un algoritmo requiere la ejecucion de 16

multiplicaciones y la suma de estos productos, la FPGA puede ser configurada

para la realizacion de estos 16 productos en forma simultanea. Adicionalmente, en

la misma FPGA se pueden realizar otras tareas que no dependen de la realizacion

del calculo, tal como comunicacion con perifericos, otros calculos independientes,

etc.

Este tipo de ventaja motivo el interes respecto de las FPGAs para la aplicacion

de soluciones a medida sin perder la flexibilidad de la programacion que ofrece

un PSDP o el costo y el tiempo de fabricacion de una ASIC.

Page 172: Tesis Funes Marcos

Apendice B

Sistemas numericos

B.1. Introduccion

La resolucion de todo algoritmo comienza por definir el tipo de las variables

con las que se debe trabajar. A partir de la seleccion de estas variables, queda

determinada el tipo de aritmetica que se va a utilizar. Los Arreglos Logicos Pro-

gramables (ALPs o FPGAs) permiten que la resolucion de un problema admita

distintas variantes en cuanto al tipo de aritmetica que se puede seleccionar. El

tipo de aritmetica seleccionado determina entonces la forma en que opera el al-

gorıtmo.En el presente capıtulo se mostraran las caracterısticas de cada uno de

los sistemas y la forma en que operan cada una de ellos.

B.2. Representacion numerica

La eleccion del sistema numerico de las variables a utilizar debe realizarse

cuidadosamente. Los sistemas numericos de dividen en dos campos, punto fijo y

punto flotante. En general puede ser asumido que la operatoria en punto fijo es

mas rapida y requiere menos recursos logicos, mientras que la operatoria en punto

150

Page 173: Tesis Funes Marcos

Apendice B. Sistemas numericos 151

FORMATO NUMÉRICO

PUNTO FIJO PUNTO FLOTANTE

convencional no convencional convencional no convencional

Complemento a 2Complemento a 1Disminuido a 1

Con digito de signoLogarítmicoRNS

32-Bit IEEE64-Bit IEEE

16, 18, 20, 24 BitFormat

Figura B.1: Esquema de formatos numericos

flotante posee mayor rango dinamico y no requiere reescalar los resultados. Esto

ultimo puede resultar interesante para la resolucion de algorıtmos complicados.

La Figura B.1 presenta el esquema de algunos sistemas numericos para punto fijo

y punto flotante. Los mismos pueden ser utilizados fuera del sistema estandar

dependiendo de los requerimientos del problema a resolver.

B.2.1. Punto fijo

En esta seccion se presentara una breve descripcion de los sistemas numericos

de punto fijo.

Enteros sin signo

Sea X un numero binario sin signo de n bits, el rango numerico es [0, 2n − 1]

y su representacion esta dada por:

X =n−1∑j=0

xj2j (B.1)

donde xj es el j digito binario de X (por ej. xj ∈ [0, 1]). El digito x0 es

llamado el bit menos significativo (LSB - Least Significative Bit) y tiene como

Page 174: Tesis Funes Marcos

Apendice B. Sistemas numericos 152

peso relativo la unidad. El digito xn−1 es el bit mas significativo (MSB - More

Significative Bit) y posee un peso relativo de 2n−1.

Magnitud con signo

En sistemas de magnitud con signo la magnitud y el signo son representados

en forma separada. El primer bit representa el signo y los restantes n − 1 bits

representan la magnitud, su representacion esta dada por:

X =

n−1∑j=0

xj2j X ≥ 0

−n−1∑j=0

xj2j X < 0

(B.2)

El rango de esta representacion es [−2n−1, 2n−1]. La ventaja de la represen-

tacion de magnitud con signo es una simplicidad en la prevencion de desbordes

de calculo, pero su desventaja es que cuando se adicionan estos numeros se debe

observar cual de los operandos es mayor.

Complemento a 1 (1C)

Un sistema de n bits en 1C puede representar enteros binarios con signo en el

rango [−2n−1, 2n−1−1]. En este tipo de sistema los numeros positivos y negativos

se representan de la misma manera excepto por el bit de signo. La representacion

del numero cero es de hecho redundante. La representacion de los numeros en 1C

esta dado por:

X =

n−1∑j=0

xj2j X ≥ 0

2n − 1−n−1∑j=0

xj2j X < 0

(B.3)

Este sistema numerico es utilizado para implementar aritmetica de modulo

2n − 1 sin cambios en la aritmetica.

Page 175: Tesis Funes Marcos

Apendice B. Sistemas numericos 153

Complemento a 2 (2C)

Un sistema de n bits en 2C puede representar enteros binarios con signo en el

rango [−2n−1 − 1, 2n−1 − 1]. Su representacion esta dada por:

X =

n−1∑j=0

xj2j X ≥ 0

2n −n−1∑j=0

xj2j X < 0

(B.4)

La representacion de los numeros en 2C es una de las mas populares, esto es

debido a que con la misma es posible sumar varios numeros con signo, y al final

el resultado pertenece al rango de n bits. De este modo se puede ignorar cualquier

desborde numerico en la aritmetica. Por ejemplo, si se adicionan dos numeros de

3 bits de la siguiente manera:

310 1112C

−210 1102C

110 1 0012C

el desborde puede ser ignorado. La ventaja de esta representacion radica en

que todos los calculos son 2C. Aun en el caso en que haya calculos intermedios,

los mismos pueden no estar correctamente representados pero el resultado final es

correcto. Esto se puede apreciar si se realiza el calculo 2+2−3, el resultado parcial

de 010 + 010 = 100 (−410), pero el resultado de 100− 011 = 100 + 101 = 0012C

es correcto. Este sistema numerico es utilizado para implementar aritmetica de

modulo 2n sin cambios en la aritmetica.

Disminuido a 1 (D1)

El sistema disminuido a 1 (D1) es un sistema polarizado. Los numeros positi-

vos son, comparados con 2C, disminuidos en 1. El rango para un sistema D1 de

Page 176: Tesis Funes Marcos

Apendice B. Sistemas numericos 154

N − bits es [−2n−1, 2n−1], excluyendo el cero. La representacion de este sistema

es:

X =

n−1∑j=0

xj2j − 1 X ≥ 0

2n −n−1∑j=0

xj2j X < 0

2n X = 0

(B.5)

Para adicionar dos numeros D1

310 010D1

−210 110D1

110 1 000D1

Carry ×−1 0D1

110 000D1

se puede observar que se debe complementar y adicionar el bit de carry para

lograr un resultado correcto. Este sistema numerico es utilizado para implementar

aritmetica de modulo 2n + 1 sin cambios en la aritmetica.

B.2.2. Punto flotante

Los sistemas de punto flotante fueron desarrollados para proveer alta resolu-

cion sobre un gran rango dinamico. A menudo estos sistemas pueden resultar una

solucion cuando los sistemas de punto fijo fallan debido a su limitada precision y

rango dinamico. Este formato numerico se encuentra estandarizado por la norma

IEEE 754 [18]. Esta norma establece criterios sobre diversos aspectos del diseno:

codificacion interna de los numeros a nivel de bits (formato numerico), tecnicas

de redondeo, tratamiento de excepciones, etc.

Page 177: Tesis Funes Marcos

Apendice B. Sistemas numericos 155

Los sistemas de punto flotante respecto al tratamiento de su contraparte en

punto fijo poseen un costo importante en cuanto a la velocidad y complejidad

de calculo; cuestion que ha llevado a diversos autores a la utilizacion de esta

representacion ”a medida”. Una palabra en punto flotante se representa de la

siguiente manera:

Signo Exponente entero Mantisa

Sx e m

Algebraicamente, un numero en punto flotante se representa:

X = (−1)S × 2e−bias × 1.m (B.6)

donde

S, bit de signo.

e, exponente: Este campo se representa utilizando un desplazamiento (bias)

bias = 2e−1 − 1.

m, mantisa: Es la parte fraccional de 1.m.

Norma IEEE 754

Los parametros para precision simple y doble que determina la norma IEEE

754 se pueden observar en la Tabla B.1.

Page 178: Tesis Funes Marcos

Apendice B. Sistemas numericos 156

Tabla B.1: Punto flotante estandar.Simple Doble

Longitud de palabra 32 64Exponente 8 11

Mantisa 23 52Bias 127 1023

Rango Maximo ±3,4028× 1038 ±1,7977× 10308

Rango Mınimo ±1,1755× 10−38 ±2,2251× 10−308

Codificaciones con significado especial

Infinito (e=255, m=0): representan cualquier valor de la region de overflow

NaN (Not-a-Number) (e=255, m>0): se obtienen como resultado de opera-

ciones invalidas

Numero denormalizado (e=0, m>0): es un numero sin normalizar cuyo bit

implıcito se supone que es 0. Al ser el exponente 0, permiten representar

numeros en las regiones de underflow. El valor del exponente es el del ex-

ponente mas pequeno de los numeros no desnormalizados: -126 en precision

simple y –1022 en doble.

Cero (e=0, m=0): numero no normalizado que representa al cero (en lugar

de representar al 1)

Excepciones:

Operacion invalida: ∞ ±∞, 0 × ∞, 0 ÷ 0, ∞ ÷∞, x mod 0,√

x cuando

x < 0, x =∞

Inexacto: el resultado redondeado no coincide con el real

Overflow y underflow

Division por cero

Page 179: Tesis Funes Marcos

Apendice B. Sistemas numericos 157

Formato a medida

El sistema en punto flotante, como se menciono posee un costo en cuanto a

velocidad y complejidad de calculo. Es por esto que muchos autores han generado

con el tiempo el sistema de punto flotante a medida. El formato de palabra que

se utiliza depende del rango dinamico y la resolucion que se desea. En la Tabla

B.2 se pueden observar algunos ejemplos de estos formatos.

Tabla B.2: Punto flotante a medida.Longitud de palabra 16 18 20 24

Exponente 7 7 8 9Mantisa 8 10 11 14

Bias 63 63 127 255RangoMaximo ±1.8411×10

19 ±1.8438×1019 ±3.4020×10

38 ±1.1579×1077

RangoMınimo ±2.1769×10−19 ±2.1705×10

−19 ±1.1761×10−38 ±3.4547×10

−77

B.2.3. No-convencionales

Listema numerico logarıtmico (LNS)

El sistema numerico logarıtmico (LNS) es analogo al sistema de punto flotante,

con una mantisa de punto fijo y un exponente fraccional. Un numero en LNS es

representado por:

X = ±r±ex (B.7)

donde r es la raız del sistema, y ex es el exponente LNS. El formato LNS

consiste en un bit de signo para el numero y otro para el exponente, un exponente

entero de I − bits y F fraccionales bits de precision. El formato en forma grafica

es:

Page 180: Tesis Funes Marcos

Apendice B. Sistemas numericos 158

Signo Signo de exponente Exponente entero Exponente fraccional

Sx Se I F

El LNS como el sistema de punto flotante posee una precision no uniforme.

Pequenos valores de X son resueltos con gran precision, miemtras que los grandes

valores poseen una precision pobre.

La atraccion historica del LNS se encuentra en la habilidad para implementar

eficientemente la multiplicacion, la division y la potenciacion. Por ejemplo, el

producto C = A×B, donde A, B y C son palabras LNS, esta dada por:

C = reA × reB = reA+eB = reC (B.8)

Esto es, el exponente de un producto LNS es simplemente la suma de dos

exponentes. La division y otras operaciones se resuelven de manera similar. La

deventaja de este sistema es la complejidad con que se deben resolver la adicion

y la substraccion. Las mismas se basan en la siguiente operatoria, sonde se asume

que A > B.

C = A + B = 2eA + 2eB = 2eA(1 + 2eB−eA

)= 2eC

Page 181: Tesis Funes Marcos

Apendice C

Multiplicacion Secuencial

aplicada al Control de

Movimiento

C.1. Introduccion

En sistemas de control de posicion existen aplicaciones en las cuales se requiere

la ejecucion de una accion de control sobre una maquina en un perıodo de tiempo

que depende inversamente de la maxima velocidad que se desea imponer sobre

la misma. Esta situacion lleva a la necesidad de disponer de algoritmos muy

rapidos y eficientes que puedan realizar el procesamiento en tiempos muy breves.

Estos algoritmos donde se requiere alta velocidad de procesamiento constituye

una aplicacion ideal para la implementacion hardware de los mismos en FPGA.

Tal es el caso de la aplicacion realizada sobre el control de posicion de un

Acelerador Lineal de Partıculas, cuyas caracterısticas de gran precision en la

posicion, y de gran cantidad de motores asociados, obliga a la utilizacion de

procesamiento de altısima velocidad, con la mayor economıa de recursos logicos

159

Page 182: Tesis Funes Marcos

MS aplicada al Control de Movimiento 160

en las FPGAs.

Control de posicion del CLIC

El control de posicion del Compact Linear Collider (CLIC), acelerador lineal

de partıculas del Centro Europeo de Investigacion Nuclear (Centre Europeen-

ne pour la Recherche Nucleaire), requiere en forma intensiva el posicionamiento

preciso y rapido de motores paso a paso, por lo que es necesario utilizariles de

velocidad que se ajusten a la dinamica de la carga a fin de garantizar movi-

mientos sin perdidas de pasos. La principal ventaja tecnologica del CLIC es la

concentracion del haz de partıculas en una seccion mucho mas reducida que en

los aceleradores circulares [39]. Esto permite obtener partıculas de mayor energıa

pero, como contrapartida existen serias exigencias en cuanto a la alineacion del

acelerador respecto de su haz de partıculas. Este sistema posee una especificacion

de la desviacion maxima de 10 micrones, a lo largo de los 24000 m de longitud del

acelerador [40]. Para lograr tal especificacion es necesario un control de posicion

capaz de compensar perturbaciones y desviaciones con una altısima presicion [41].

El sistema mecanico del CLIC esta compuesto por modulos de 1.4 mts. de lon-

gitud. Cada modulo posee dos aceleradores con un ”girder” y un ”quadrupole”

por acelerador. Los girders son elementos que soportan mecanicamente las cavi-

dades del acelerador mientras que los quadrupoles son electroimanes que tienen

por objeto la concentracion de los haces de partıculas. La Fig. C.1 muestra un

esquema de la distribucion de los motores que requieren los girders y quadrupoles.

El sistema de alineacion del CLIC consiste en un conjunto de sensores que

detectan la posicion de las cavidades del haz. Luego de un adecuado procesa-

miento de la informacion, se obtiene el movimiento que se debe operar sobre los

elementos del acelerador a traves de un conjunto de motores paso a paso.

Page 183: Tesis Funes Marcos

MS aplicada al Control de Movimiento 161

Figura C.1: Esquema de motores de una seccion del CLIC.

El control de alineacion del CLIC se encarga de procesar senales y accionar

multiples motores paso a paso simultaneamente utilizando perfiles de velocidad

con una alta dinamica y gran precision [42].

C.2. Accionamientos paso a paso

Un accionamiento paso a paso esta compuesto por un controlador digital de

movimientos, un driver de potencia y el motor paso a paso, Fig. C.2. El controla-

dor digital de movimientos genera un perfil de movimiento, tıpicamente un perfil

de velocidad, en funcion de parametros tales como velocidad mınima, maxima,

aceleracion, cantidad de pasos, etc. Una vez establecido el perfil de velocidad, el

controlador de movimiento envıa los pulsos de accionamiento al driver del mo-

tor. El espaciamiento entre los pulsos de accionamiento determina la velocidad

instantanea del eje y se lo conoce como temporizacion.

La generacion de un perfil de velocidad consiste en el calculo de la temporiza-

cion requerida acorde con los parametros suministrados. La generacion de estos

perfiles puede ser del tipo on-line u off-line.

Page 184: Tesis Funes Marcos

MS aplicada al Control de Movimiento 162

Indexador

Generador deperfil de

movimiento

Controlador Motor paso a paso

Figura C.2: Sistema de control de movimiento de motores de accionamiento in-cremental.

C.2.1. Generacion de perfiles de velocidad Off-line

En el accionamiento off-line el perfil de velocidad es calculado previamente

al desarrollo del movimiento [43] [44]. El perfil de velocidad y la temporizacion

son calculados y guardados en un sistema de almacenamiento el cual es accedido

cada vez que se ejecuta un paso.

Estos sistemas poseen desventajas importantes: requieren una cantidad de ti-

mers y de memoria proporcional a la extension y precision de los desplazamientos;

ademas son poco flexibles.

C.2.2. Generacion de perfiles de velocidad On-line

Algoritmos convencionales

En cuanto a los perfiles on-line, los mismos son generados por un sistema

inteligente que realiza la operacion de calculo mediante la utilizacion de un al-

goritmo. La Fig. C.3 muestra un diagrama de flujo de un algoritmo basico. En

este diagrama se distinguen dos bloques principales, la construccion de Vr(k) en

el cual se genera el perfil de velocidad y el calculo de ∆t(k), en el cual se calcula

el perıodo de tiempo entre el paso actual y el proximo. La construccion de Vr(k)

se efectua a partir de parametros que caracterizan al perfil, tal como velocidad

inicial (Vmin = Vr(0)), velocidad maxima (Vmax), aceleracion (a1) y desaceleracion

Page 185: Tesis Funes Marcos

MS aplicada al Control de Movimiento 163

Generaciónde pulsos

k = 1

Construcciónde V (k)r

k = k + 1

�tk-1 �tk

Cálculo

de t� k

Accionamientode un paso

k = N?

si

no

Fin

Figura C.3: Diagrama de flujo de un algoritmo on-line.

Page 186: Tesis Funes Marcos

MS aplicada al Control de Movimiento 164

(a2) del motor, y cantidad de pasos N que debe ejecutar el mismo. El controlador

calcula para el k-esimo paso el valor de la velocidad que debe ejecutar en ese

instante.

En la Fig. C.4 se muestra un perfil de velocidad trapezoidal.

aceleración desaceleración

Vmax

Vmin

t

Figura C.4: Perfil de velocidad trapezoidal.

La Ec. (C.2) muestra el calculo de ∆t(k) de un algoritmo tıpico para el k-esimo

paso.

∆t(k) =1

Vr(k)(C.1)

∆t(k) =2√

V 2max − 2 (N − k − 1) a +

√V 2

max − 2 (N − 1) a(C.2)

Este algoritmo involucra divisiones y raıces lo que conlleva un elevado tiempo de

calculo para obtener ∆t(k). El tiempo de calculo, Tc, impone una limitacion a la

velocidad debido a que el perıodo entre pasos no puede ser inferior a Tc. De este

modo, la velocidad maxima, expresada en pasos por seg., esta limitada por la Ec.

(C.3).

Vmax =1

Tc

(C.3)

Page 187: Tesis Funes Marcos

MS aplicada al Control de Movimiento 165

Algoritmos iterativos

Los algoritmos convencionales poseen un Tc elevado y por lo tanto estos al-

goritmos no pueden utilizarse para altas velocidades. Carrica et al propusieron

un nuevo algoritmo on-line que reduce sensiblemente el Tc [45]. Este algoritmo es

de tipo iterativo y asume que ∆t(k) = nk · Tc. El algoritmo incrementa iterativa-

mente nk, a partir de nk = 1 hasta que ∆t(k) alcance el valor deseado de Vr(k),

siendo Vr(k) la velocidad de referencia en el k-esimo paso.

Vr(k) =1

∆t(k)(C.4)

Si la Ec. (C.4) se verifica, entonces se ejecuta un nuevo paso. En caso contrario

nk se incrementa y se repite el proceso.

La resolucion de ∆t(k) en la Ec. (C.4) es Tc. En consecuencia estos algoritmos

trabajan con intervalos discretos y la Ec. (C.4) se reescribio como la Ec. (C.5).

Vr(k) ≥ 1

∆t(k)(C.5)

Adicionalmente, con el objetivo de reducir el Tc, se evito el cociente, utilizando

la Ec. (C.6).

Vr(k) ·∆t(k) ≥ 1 (C.6)

Si bien este algoritmo presenta la limitacion expresada por la Ec. (C.3), el Tc

mucho menor debido a la menor complejidad del calculo.

Una desventaja del algoritmo iterativo es la existencia de valores discretos de

Vr(k) que crea un efecto de cuantizacion en la velocidad. Observando la Ec. (C.4)

y considerando que nk es un numero entero positivo, Vr(k) toma valores:

Page 188: Tesis Funes Marcos

MS aplicada al Control de Movimiento 166

Vr(k) =1

∆tk=

1

nk · Tc

=

Vmax ; nk = 1

Vmax

2; nk = 2

......

Vmax

K; nk = K

(C.7)

Como consecuencia, la velocidad maxima del motor, Vmax, no solo queda

limitada por 1Tc

sino que ademas el perfil excursiona a saltos V max − V max2

,

V max2− V max

3, V max

3− V max

4, etc.

El perfil de velocidad es alterado por esta ”cuantizacion” ya que se producen

discontinuidades en la velocidad con la consiguiente dificultad del motor frente a

esta exigencia de aceleraciones infinitas, como puede verse en la Fig. C.5 donde

se ilustra el perfil ideal versus el perfil de velocidad cuantizado.

v(t)

i(k)

Vmáx

t

k

t0 t1 t2 t3 t4 t5

Tc

Vmáx/2nmáx = 2

nmáx = 1

nmáx = 3

nmáx=4

nmáx=5

nmáx=6

nmáx=7

Vmáx/3

Vmáx/4

Vmáx/5Vmáx/6

Figura C.5: Perfil de velocidad, deseado, cuantizado y la temporizacion resultante.

La Fig. C.6 muestra los perfiles de velocidad reales obtenidos mediante el al-

goritmo iterativo ejecutado en un DSP, donde se desarrollo el desplazamiento con

Page 189: Tesis Funes Marcos

MS aplicada al Control de Movimiento 167

una velocidad maxima de 5700pasoss

. Se observan saltos de velocidad importantes

debido al efecto de cuantizacion.

Figura C.6: (Izquierda) Posicion y velocidad con el algoritmo iterativo. (Derecha)Detalle del perfil de posicion y velocidad del perfil iterativo

Se puede concluir que, para reducir el problema de la cuantizacion, es muy im-

portante reducir apreciablemente los tiempos de procesamiento. De esta manera

se podrıan obtener velocidades mucho mayores

C.3. Generacion de perfiles de velocidad me-

diante FPGA

A fin de reducir los tiempos de procesamiento se implemento en hardware (en

FPGA) el algoritmo iterativo. Comparativamente, el tiempo de procesamiento

Page 190: Tesis Funes Marcos

MS aplicada al Control de Movimiento 168

de un sistema implementado en hardware es sustancialmente inferior al de un

procesador y, adicionalmente, se dispone de la capacidad de realizar eventos en

paralelo.

En la Fig. C.7 se muestra la arquitectura hardware del algoritmo iterativo.

La generacion del perfil trapezoidal se constituye a partir de los datos de la

aceleracion, velocidad mınima, maxima, y numero de pasos. La logica interna de

seleccion toma la decision en base a estos parametros y de este modo ejecuta el

perfil de referencia que el motor intentara seguir.

CONTADOR

MULTIPLICADOR

Interfaz de

AccionamientoVR

nk

COMPARADOR

V x nR k

� 1/Tc

RELOJ

Tck

DRIVERS DE

POTENCIA

MOTOR PASO

A PASO

Controlador Digital

CONSTANTE=1/Tc

Generador del Perfil de

velocidad de referencia

V x nR k

Figura C.7: Arquitectura hardware del algoritmo de generacion de perfil de velo-cidad.

La implementacion hardware del algoritmo permite reducir sustancialmente

el Tc aprovechando la capacidad de las FPGAs de realizar todos procesos en

simultaneamente, a diferencia de la ejecucion secuencial propia de un DSP. Es

decir, el algoritmo implementado en hardware efectua en forma independiente, la

generacion del perfil de velocidad de referencia y el calculo de la Ec. (C.6). De

este modo, se puede inferir que el Tc depende fundamentalmente de la tarea que

mayor demanda de tiempo requiere.

La construccion del perfil de velocidad es una tarea que se resume a una cuenta

incremental que inicia en Vmin, alcanza el valor Vmax en un perıodo de tiempo t1,

una vez que se alcanzo este valor permanece un perıodo de tiempo t2 en el mismo

Page 191: Tesis Funes Marcos

MS aplicada al Control de Movimiento 169

y posteriormente decrementa la cuenta hasta alcanzar nuevamente el valor Vmin

en un tiempo t3 que usualmente es igual a t1.

El contador nk cuenta pulsos de reloj incrementando su valor periodicamente

mientras que el producto de la Ec. (C.8) resulte inferior a 1Tc

. Cuando el producto

se hace mayor o igual que 1Tc

, se genera un pulso que genera un nuevo paso del

motor y adicionalmente reinicia la cuenta del contador.

Por otro lado, la implementacion hardware de la Ec. (C.6) involucra el pro-

ducto Vr(k) · ∆t(k), producto que se debe comparar con la unidad. Analizando

este producto se puede observar que, si bien los valores del perfil de referencia

pueden ser enteros binarios, ∆t es de formato decimal. Aunque se ha visto en

capıtulos anteriores que es posible el manejo de magnitudes decimales o incluso

de punto flotante en FPGA, es mas eficiente el uso magnitudes enteras.

A fin de operar con enteros y reducir la cantidad de multiplicaciones, se pro-

pone una variante que consiste en reescribir la Ec. (C.6) como

Vr(k) · nk ≥ 1

Tc

(C.8)

en la cual 1Tc

es un valor conocido y constante. Esta simplificacion reduce las

operaciones a solo una multiplicacion, va a imponer el perıodo Tc.

C.3.1. Implementacion del producto Vr · nk

En cuanto al producto Vr · nk, la solucion inmediata consiste en un Multi-

plicador Paralelo. Esta alternativa presenta como ventaja el mınimo retardo que

imponen las compuertas logicas.

Considerando que las FPGAs poseen recursos dedicados para la ejecucion de

adiciones por propagacion de acarreo, la opcion inmediata es un multiplicador

tipo Ripple Carry. Este es un multiplicador combinacional (Sec. 2.4)que ejecuta

Page 192: Tesis Funes Marcos

MS aplicada al Control de Movimiento 170

el producto velozmente, dependiendo su velocidad del retardo de la longitud de

palabra de sus operandos.

Con el objetivo de cuantificar el Tc requerido por este multiplicador, se imple-

mento el mismo en una FPGA XC4006E-4 de Xilinx, que es la misma tecnologıa

que utiliza el CLIC en el control de alineacion del acelerador.

El multiplicador Ripple Carry para una longitud de palabra de 16 bits, que

corresponde a una velocidad maxima seleccionable de 65535pasoss

. En estas condi-

ciones se pudo ejecutar u producto en un Tc = 92, 5ns. De esta forma, la velocidad

maxima teorica que se puede desarrollar es:

Vmax ≤ 1

Tc

= 10, 81x106 pasos

s(C.9)

obteniendose una cuantizacion del perfil de velocidad de solo el 0.6 % de la maxima

velocidad seleccionable.

Si bien el Tc obtenido es ideal para la aplicacion, este multiplicador utilizo el

96,5 % de los recursos logicos de la FPGA, haciendo imposible la utilizacion de

otros bloques para la ejecucion del algoritmo. La Fig. C.8 muestra el consumo de

recursos logicos del multiplicador implementado.

Figura C.8: Implementacion del multiplicador Ripple Carry en una FPGAXC4006E.

Page 193: Tesis Funes Marcos

MS aplicada al Control de Movimiento 171

Otra opcion, tal como el multiplicador optimizado en area propuesto por Xi-

linx [21], permite ejecutar una multiplicacion de 16 en un Tc = 89ns, inferior

incluso que con el multiplicador Ripple Carry, pero con un consumo de recur-

sos logicos de aproximadamente un 83,2 %. La Fig. C.9 muestra el consumo de

recursos logicos de este multiplicador implementado.

Figura C.9: Implementacion de un multiplicador optimizado en area de Xilinx enuna FPGA XC4006E.

Para solucionar este problema se propone la utilizacion de Multiplicadores Se-

cuenciales, que permiten realizar un producto con un mınimo consumo de recursos

logicos.

En particular se considera la utilizacion de un SMSR (ver. Seccion 3.3.1), en

el cual la ejecucion del producto se pudo realizar en Tc = 229ns para un m = 16.

En consecuencia, la velocidad maxima teorica que obtenida es:

Vmax ≤ 1

Tc

= 4,36x106 pasos

s(C.10)

Ademas, este esquema permitio la ejecucion del algoritmo iterativo con saltos

de velocidad de solo 1,46 % de la maxima velocidad. Si bien este Tc es mayor

que el obtenido con un Multiplicador Paralelo, el consumo de recursos logicos del

Page 194: Tesis Funes Marcos

MS aplicada al Control de Movimiento 172

SMSR para una longitud de palabra de 16 bits es del 11.32 %, es decir 8 a 9 veces

inferior comparativamente. Adicionalmente, este reducido consumo de recursos

logicos permite controlar multiples motores.

C.4. Resultados experimentales

C.4.1. Modo de funcionamiento en pasos

Con el objetivo de evaluar el sistema propuesto, se implemento el controlador

digital en una FPGA XC4006-3 de Xilinx, tecnologıa utilizada en los ensayos del

CLIC. Este dispositivo posee una capacidad de 6000 puertas de logicas y puede

funcionar con un reloj de hasta 80 MHz.

En los experimentos se utilizo un motor hıbrido cuyas caracterısticas son: re-

solucion angular 400pasorev

, momento de inercia 13·10−7 kg m2 y torque de retencion

Tret = 33 · 10−7 N m.

La medicion de la posicion fue realizada mediante un encoder optico incre-

mental ELAP-E521, cuya resolucion es 1024 pulsos por revolucion y su momen-

to de inercia de 2,5 · 10−6 kg m2. El acople fue realizado con un acople elastico

HELICAL-WA25 con un momento de inercia de 2,3 · 10−6 kg m2.

La curva de la posicion fue obtenida mediante la lectura de la senal del encoder

a traves de un contador de tiempo de alta resolucion. El perfil de la velocidad fue

calculado off-line, realizando la derivacion numerica de los datos de posicion.

El multiplicador SMSR utilizo un reloj sincronico de 40 MHz, resultando un

Tc de 400 ns, para 16 bits . Se adopto un Tclk = 800 ns, que es despreciable en

relacion a la velocidad del motor.

Se aplico al motor paso a paso un desplazamiento de 12000 pasos mediante

un perfil trapezoidal con las siguientes caracterısticas: Vmın = 500pasoss

, Vmax =

Page 195: Tesis Funes Marcos

MS aplicada al Control de Movimiento 173

6000pasoss

y aceleracion maxima amax = 4200pasoss2

.

Los perfiles resultantes de velocidad y posicion se muestran en la Fig. C.10.

El bajo tiempo de procesamiento, Tc, permitio un perfil casi continuo, con veloci-

dades mucho mayores que las generadas por algoritmos estandar implementados

en software. Debido a las caracterısticas del motor incremental el perfil atraviesa

zonas de resonancia, tal como se predice en [46], [47], [48] y [49]. Este efecto, que

se observo en la region de bajas velocidades, no logro sacar de sincronismo a las

maquinas ya que las mismas se encuentran en la zona de trabajo por debajo de

la curva de pull-out1.

Figura C.10: Perfil de velocidad y posicion del accionamiento controlado por unsistema basado en FPGA. 15 rev

s≡ 6000pasos

s

1Previo a la obtencion de resultados experimentales, los perfiles son simulados para verificarque puedan enfrentar la inercia impuesta.

Page 196: Tesis Funes Marcos

MS aplicada al Control de Movimiento 174

Adicionalmente, se aplico un perfil de velocidad con caracterısticas mas exigen-

tes, velocidad maxima de 24000pasoss

y una aceleracion aproximada de 20000pasoss2

.

En la Fig. C.11 se muestra el perfil obtenido a las altas velocidades con paso com-

pleto, donde se aprecia la continuidad en toda la gama efectiva de la velocidad.

Figura C.11: Perfil de velocidad del accionamiento controlado por un sistemabasado en FPGA. 62,5 rev

s≡ 25000pasos

s

C.4.2. Modo de funcionamiento en micropasos

El modo micropaso consiste en el accionamiento del movimiento del motor in-

cremental en fracciones de un paso. De esta manera se logra una menor vibracion

y ruido audible, y sobre todo una mejor resolucion de posicion (en fracciones 1/n

del paso original). En cuanto a la generacion del perfil de velocidad, la dificultad

Page 197: Tesis Funes Marcos

MS aplicada al Control de Movimiento 175

estriba en que se debe ejecutar el algoritmo en tiempos muy cortos, correspon-

dientes al tiempo que transcurre entre micropaso y micropaso.

Se realizaron ensayos en modo micropaso, el los que se utilizo un motor SLO–

SYN KML093F14C5 cuyas caracterısticas son: resolucion angular 200pasorev

, torque

de retencion Thold = 816 N cm y momento de inercia de 3,32 kg cm2. Los valores

de la posicion fueron obtenidos a traves de un encoder optico incremental con

una resolucion de 500 pulsos por revolucion. El driver, con capacidad de manejo

de micropasos, es un SLO-SYN MD808, configurado para producir 2000 pulsos

por revolucion. Se aplico un perfil de alta velocidad con Vmın = 500pasoss

, Vmax =

50000pasoss

y una aceleracion maxima amax = 5000pasoss2

. El Tc adoptado para esta

aplicacion fue de 400 ns de manera de producir saltos de velocidad maximos de

1000pasoss

en Vmax, de manera que el salto sea menor que el 5 % Vmax. Este efecto

puede observarse en el plateau del perfil en la Fig. C.12.

Los resultados relevados demuestran que el sistema alcanzo muy altas velo-

cidades, inalcanzables con algoritmos estandares ejecutados por un procesador.

Sin embargo, la necesidad de realizar perfiles de velocidad en modo micropaso re-

quiere una mayor velocidad de calculo, aunque sin el sacrificio de recursos logicos

que implica la utilizacion de un multiplicador paralelo.

Para lograr la mayor velocidad de calculo se propone utilizar un nuevo tipo de

multiplicador. El multiplicador secuencial de sumas consecutivas (SMSC) es una

variante de la multiplicacion secuencial optimizada para realizar un producto en

la mitad de tiempo que el SMSR (ver Seccion 3.3.3).

Se realizo un nuevo ensayo con el SMSC. El sistema de driver-motor ensayado

es el mismo que se utilizo en las experiencias en modo micropaso. El perfil de velo-

cidad aplicado presenta las siguientes caracterısticas: velocidad Vmax = 72000pasoss

,

Tc de 200 ns de manera de reducir los saltos de velocidad por debajo de 5 % de

Page 198: Tesis Funes Marcos

MS aplicada al Control de Movimiento 176

Figura C.12: Perfil de velocidad del accionamiento utilizando el modo de micro-pasos.

Vmax. La Fig. C.13 muestra el perfil de velocidad resultante. Como en las me-

diciones anteriores puede observarse el efecto de cuantizacion, aunque reducido,

tanto en las rampas como en el plateau del perfil.

Page 199: Tesis Funes Marcos

MS aplicada al Control de Movimiento 177

Figura C.13: Perfiles de posicion y velocidad para un sistema de accionamientoen modomicropaso.

Page 200: Tesis Funes Marcos

MS aplicada al Control de Movimiento 178

C.5. Conclusiones

Se presento una implementacion hardware, utilizando FPGA, de los algorit-

mos iterativos de generacion de perfiles de velocidad. El uso de esta tecnologıa

permitio reducir sustancialmente el tiempo de procesamiento equivalente frente

al desarrollado por cualquier procesador rapido. Como consecuencia se redujeron

apreciablemente los saltos de velocidad que se observaban en los perfiles de velo-

cidad on-line generados por software. Esto a su vez, posibilito llegar a velocidades

del motor mucho mayores dado que se eliminaron las exigencias de aceleracion

propias de los saltos de velocidad.

Gracias a las arquitecturas SMSR y SMSC se consiguio un reducido consumo

de recursos logicos para cada controlador digital, por lo que se pueden accionar

multiples motores simultaneamente. Esta ventaja hace al sistema muy conve-

niente ya que permite incrementar aun mas el numero de motores recurriendo

a FPGAs de mayor capacidad. Esto fue clave para su aplicacion extensiva en el

control de posicion del CLIC.

La idea propuesta, evaluada experimentalmente, posibilita la operacion de

motores paso a paso a muy altas velocidades, lo que antes estaba vedado debido

a las dificultades tecnologicas de los procesadores para atender con rapidez el

envıo de la consigna de nuevos pasos a la maquina.

Page 201: Tesis Funes Marcos

Apendice D

Publicaciones

D.1. Introduccion

Los trabajos que se presentan a continuacion resumen la investigacion realizada durante los

ultimos anos.

Multiplicadores secuenciales en FPGA: Evaluacion y Comparacion de

Parametros

En este trabajo se presenta el estado del arte de multiplicadores secuenciales orientado a

su implementacion en FPGA. Se presentan estimaciones de consumo de recursos logicos y de

comportamiento temporal de las variantes existentes y propuestas con el objetivo de contrastar

las caracterısticas de los multiplicadores presentados.

Estudio comparativo de multiplicadores secuenciales implementados en

FPGA

En este trabajo se realizaron ensayos donde se comparan las estructuras existentes y pro-

puestas, en las cuales se puede verificar la importante reduccion de los recursos manteniendo

un aceptable desempeno en cuanto a velocidad.

179

Page 202: Tesis Funes Marcos

Apendice D. Publicaciones 180

Floating Point Multipliers with Reduced FPGA Area

En este trabajo se realizo un estudio comparativo del multiplicador secuencial para dife-

rentes tecnologıas de FGPA.

Performance evaluation of Floating Point Multipliers

En este trabajo se plasmaron algunos de los resultados de la aplicacion del SM a punto

flotante con el objetivo de compararlos con el de algunos multiplicadores propuestos en la

literatura por otros autores.

Novel FPGA based Floating Point Multiplier: Consecutive-Sums Se-

quential Multiplier

En este trabajo se presenta una estructura de multiplicadores de punto flotante parametri-

zable basada en una variante del multiplicador secuencial de sumas consecutivas que con una

sustancial reduccion de los recursos logicos utilizados mejora el desempeno del multiplicador en

velocidad. Se realizaron ensayos donde se evalua la arquitectura propuesta y se la compara con

los resultados previos obtenidos.

Novel Stepper Motor Controller Based on FPGA Hardware Implemen-

tation

En esta publicacion se presento un nuevo sistema de generacion de perfiles de velocidad

basado en FPGA, el cual permite que las maquinas incrementales puedan utilizarse en todo el

rango de velocidades, aun a altas velocidades. Se presentan los ensayos en los cuales se demuestra

que el controlador basado en FPGA posee un desenvolvimiento notorio, lo que permitio llegar

a velocidades mayores a las obtenidas anteriormente con sistemas convencionales.

FPGA based stepper motor controller

En este trabajo se presentaron algunos de los resultados obtenidos a partir de la implemen-

tacion de multiplicadores mas veloces a fin de reducir el tiempo de procesamiento del algoritmo

y con un consecuentemente aumento de las velocidades alcanzadas por el motor incremental.

Page 203: Tesis Funes Marcos

Multiplicadores secuenciales en FPGA: evaluacion ycomparacion de parametros

M. Funes, D. Carrica, M. Benedetti, P. Donato

Laboratorio de Instrumentacion y ControlUniversidad Nacional de Mar del Plata, Argentina

[email protected] **

Resumen En este trabajo se presenta el estado del arte de multiplicadores se-cuenciales orientado a su implementacion en FPGA. Se presentan estimacionesde consumo de recursos logicos y de comportamiento temporal que permitencontrastar las caracterısticas de los multiplicadores presentados.

1. Introduccion

La multiplicacion es una de las operaciones escenciales en el procesamiento aritmeti-co. Adicionalmente, es una de las tareas que mas recursos logicos consume. Decadasatras cuando la arquitectura del multiplicador era estudiada para su implementacionen circuitos de procesadores o unidades aritmeticas de calculo, el consumo de recursoscircuitales era aceptado por la necesidad de realizar los calculos mas rapidamente.

Actualmente, la utilizacion de las FPGAs permite el diseno personalizado de sis-temas de procesamiento, lo cual ha masificado la aplicacion de los mismos. La imple-mentacion en una FPGA de una unidad de calculo con un gran consumo de recursoslogicos obliga a utilizar una FPGA de gran tamano, lo que implica un mayor costo deproduccion. Con el objeto de reducir el consumo de recursos logicos Funes et. al [1]propusieron la utilizacion del esquema de multiplicacion Shift and Add [2], [3] , de-nominado tambien Multiplicador Secuencial (SM), para sistemas basados en FPGA.Este multiplicador ejecuta un producto en forma secuencial y se caracteriza por uti-lizar una cantidad reducida de recursos logicos. Como contra-partida por su entidadsecuencial, este multiplicador demanda un perıodo mayor para ejecutar un producto.Existen variantes del multiplicador SM que reducen este perıodo a costa de un mayorconsumo de recursos logicos [6].

En este trabajo se explicitan las ecuaciones que determinan los parametros carac-terısticos que describen el comportamiento de multiplicadores secuenciales implemen-tables en FPGA. Adicionalmente se presenta un estudio comparativo de los multipli-cadores secuenciales, sustentado en las ecuaciones mencionadas.

** Este trabajo fue subsidiado por la Universidad Nacional de Mar del Plata (ING-15/G130),CONICET, y por la Agencia Nacional de Promocion Cientifica y Tecnologica (BID1201/OC-AR 2002), Argentina

Page 204: Tesis Funes Marcos

2. Multiplicadores secuenciales

Dados dos operandos, un multiplicando X =n−1∑j=0

xj2j , y un multiplicador Y =

n−1∑j=0

yj2j , el Cuadro 1 muestra el proceso de multiplicacion para n = 4. El SM realiza el

producto de este cuadro en forma secuencial, acumulando un producto parcial yiX (i =0, 1, 2, 3) al resultado acumulado de la iteracion anterior con el debido desplazamientode un bit entre ambos.

Cuadro 1.

x3 x2 x1 x0

y3 y2 y1 y0

s03 s02 s01 s00 ≡ y0X20

s13 s12 s11 s10 ≡ y1X21

+ s23 s22 s21 s20 ≡ y2X22

s33 s32 s31 s30 ≡ y3X23

p7 p6 p5 p4 p3 p2 p1 p0 ≡ P

Existen dos versiones dependiendo del sentido de los valores a acumular, con des-plazamiento a la izquierda o con desplazamiento a la derecha. En la multiplicacion condesplazamiento a la izquierda se debe contar con un acumulador de longitud 2n bits.En este caso los productos parciales yjX son adicionados al resultado acumulado conun desplazamiento de un bit (21) hacia la izquierda, respecto al anterior. El algoritmose puede analizar a partir de la Ec. (1), donde p(j) es el producto parcial de la iteracionj.

p(j + 1) = 2p(j) + y(n−1)−jX con p(0) = 0 (1)

En la multiplicacion con desplazamiento a la derecha los productos parciales yjX sonadicionados al resultado acumulado con un desplazamiento de un bit (2−1) hacia laderecha respecto al anterior.

El algoritmo se observa en la Ec. (2).

p(j + 1) = (p(j) + yjX2n)2−1 con p(0) = 0 (2)

Debido a que el desplazamiento a la derecha genera un primer producto parcial mul-tiplicado por 2−n se debe pre-multiplicar y0X por 2n para compensar el efecto deldesplazamiento. Esta pre-multiplicacion se puede efectuar facilmente, almacenandop(j) en el segmento mas significativo de un registro de 2n bit.

La implementacion hardware del algoritmo de la multiplicacion con desplazamientoa la derecha se puede observar en la Fig. 1. El multiplicador Y y la acumulacion delos productos parciales p(j) son almacenados en registros de desplazamiento. El bit yj

del multiplicador es el bit menos significativo existente en el registro Y en la iteracionj. El mismo es utilizado en el producto yjX seleccionando 0 o X en la suma.

El multiplicador SM requiere n iteraciones para la ejecucion del producto y unaiteracion previa para la carga de los operandos. Por lo tanto este multiplicador puederealizar un producto en un perıodo T = (n + 1)TCK , donde n es la longitud de losoperandos y TCK el perıodo de reloj aplicado sobre el multiplicador.

Page 205: Tesis Funes Marcos

ADD

X

Producto

desplazamiento

N

N

Y

Parcialacarreo

0N-12N-1 N

0N-1

desplazamiento

0N-1

NN

Figura 1. SM con desplazamiento a la derecha.

2.1. Multiplicador secuencial sin entradas registradas

El multiplicador secuencial sin entradas registradas (SMSR) es una variante delmultiplicador SM de desplazamiento a la derecha. El objetivo del SMSR es la sim-plificacion del esquema de multiplicacion evitando la carga paralelo de los registrosdel multiplicador y del multiplicando. El SMSR no carga los operandos, por lo que noexiste la demora propia del ciclo de carga, lo cual constituye una ventaja. Por lo tanto,este multiplicador realiza el producto en un T = nTCK . En la Fig. 2 se puede observarun esquema del SMSR, el cual utiliza un sumador de n bits y realiza la seleccion delos bits yj mediante un multiplexor de n entradas.

ADD

X

Producto

desplazamiento

N

N

Y

Parcialacarreo

0N-12N-1 N

NN

N

MUX

Control

Figura 2. SMSR.

El control del multiplicador, que no se muestra en esta figura, consiste en uncontador que ejecuta la seleccion de los yj y que a su vez mantiene el numero deiteracion realizada. La inicializacion del multiplicador se realiza limpiando el registroProducto Parcial y el contador, y es requisito para este multiplicador que los datosse encuentren presentes durante todo el ciclo de la multiplicacion, tal como en unmultiplicador paralelo tradicional.

2.2. Multiplicador SM de base 4 o superior

Esta variante de multiplicacion secuencial, reduce la cantidad de iteraciones enbase a la representacion numerica.

Page 206: Tesis Funes Marcos

Un numero binario de n-bits puede ser representado como un numero de n2 -dıgitos

de base 4 o n3 -dıgitos de base 8. De este modo, es posible realizar un producto en

menor tiempo de calculo si se ejecuta una multiplicacion de un dıgito por vez en lugarde hacerlo bit a bit.

La expresion general para este tipo de multiplicacion es la de la Ec. (3):

p(j + 1) = (p(j) + yjXrn)r−1 con p(0) = 0 (3)

En el caso de la multiplicacion en base 4, se debe conformar el producto parcial [yj+1

yj ]2X y adicionarlo al resultado de la iteracion anterior. Mientras que en la multi-plicacion de base 2 cada producto parcial esta representado por el valor 0 o por unaversion desplazada de X, en la multiplicacion de base 4 el producto parcial toma losvalores 0, X, 2X o 3X. El metodo mas directo para la ejecucion de esta multiplicacionse realiza mediante una asignacion pre-calculada de los productos parciales.

Un diagrama de este tipo de multiplicador se muestra en la Fig. 3. En el mismose debe considerar que mientras los tres primeros valores de los productos parcialesse pueden utilizar en forma directa, el valor 3X requiere un tiempo adicional para laejecucion del calculo de X +2X. Ademas, se debe considerar que el valor pre-calculadode 3X puede exceder el rango de X, por lo que el multiplexor y el sumador utilizadodeben ser de n+1 bits. Una alternativa consiste en reemplazar 3X por−X y generar un

N

N

N

N+1

ADD

Producto Parcial

desplazamiento 2 bits

N+1

N

Yacarreo

0N-12N-1 N

X

0

2X

3X

1

MUX

2

N+1

Figura 3. Multiplicador SM base 4.

acarreo que modifique al siguiente dıgito. Este set de dıgitos es afectado por el acarreosegun el Cuadro 2, en el cual, cy(j − 1) es el acarreo correspondiente a la iteracionanterior, cy(j) es el acarreo que se genera por el evento actual, y2j−1 e y2j son los bitsseleccionados en cada iteracion que generan una salida de los valores [0,−X,X, 2X].Esta alternativa demanda al final de la iteracion n

2 una nueva iteracion, si el ultimodıgito de base 4 genero un bit de acarreo. En la Fig. 4 se muestra el esquema de estemultiplicador. En la misma se observa que requiere una mayor cantidad de recursoslogicos que un SM. Entre estos se puede citar que requiere de un sumador de n + 1o n + 2 bits, pre-calcular 3X o -X, y un multiplexor que conmuta los valores 0, X,2X y 3X etc. Los esquemas de multiplicacion de base 4 ejecutan un producto en n

2iteraciones, sin embargo se requiere un ciclo adicional para cargar los registros con losoperandos. El perıodo de procesamiento para estos multiplicadores es de T = (n

2 +1)Tck

Page 207: Tesis Funes Marcos

Cuadro 2.

cy(j − 1) y2j−1 y2j salida(j) cy(j)

0 0 0 0 00 0 1 X 00 1 0 2X 00 1 1 −X 11 0 0 X 01 0 1 2X 01 1 0 −X 11 1 1 0 1

N

N

N

N

ADD

Producto Parcial

desplazamiento 2 bits

N

N

Yacarreo

0N-12N-1 N

X

0

2X

-X

1

MUX

2

N

FF

acarreo

y2j-1y +cy2j

Figura 4. Variante del SM base 4.

debiendo adicionar otro ciclo si se considera la variante -X, con lo cual el perıodo esde T = (n

2 + 2)Tck.

2.3. Multiplicador secuencial fraccionado

El multiplicador secuencial fraccionado (SMF) es una variante cuyo objetivo esmejorar la velocidad de ejecucion. Dado que el perıodo TCK no se puede reducir masalla del lımite impuesto por la logica, una mayor velocidad de ejecucion se puedeobtener reduciendo el numero de iteraciones. Dicha reduccion se puede obtener frac-cionando la sumatoria de la Ec. (4).

P =n−1∑j=0

X2j · yj (4)

obteniendo la Ec. 5:

P =k−1∑j=0

X2jyj +n−1∑j=k

X2jyj (5)

La primer semi-sumatoria realiza su proceso en k · TCK y la segunda en (n− k) · TCK

y para el caso particular en que k = n2 , el perıodo de procesamiento para la ejecucion

de cada producto sera T = n2 · TCK .

Page 208: Tesis Funes Marcos

Se debe considerar que la suma de las dos semi-sumatorias de la Ec. (5) requiere ununico sumador de 2n− k debido a que la primer semi-sumatoria se encontrara despla-zada k veces de la segunda. Por otro lado, dicha suma agrega un retardo tR debido a lalogica involucrada. Este retardo se puede considerar menor o igual que TCK , tomandocomo pauta que el retardo de involucrado en la adicion de los productos parcialeses inferior al retardo definido para un multiplicador SM. Por lo tanto, el perıodo deprocesamiento para este multiplicador estara dado por T = (n

2 + 1) · TCK .

X[n:0] X[n:0]

Y[m/2:0] Y[m:m/2+1]

Y[m:0] x X[n:0]

m/2 nx

MultiplicadorShift and Add

Acumulación

m/2 nx

Figura 5. Diagrama de operacion de un SMF.

En la Fig. 5, se observa el esquema del SMF, donde dos multiplicadores secuen-ciales realizan sus productos simultaneamente y, un perıodo de tiempo despues, susresultados son adicionados.

La aplicacion practica del SMF se puede realizar en base a un SM tradicional o aun SMSR. La utilizacion del SM implica que se deben cargar los datos en los registros,por lo que se requieren n

2 + 2 iteraciones. Por lo que se justifica solo la utilizacion deeste esquema para multiplicadores cuya longitud de palabra haga despreciables las dositeraciones a n

2 . En el caso del SMF basado en un SMSR, el producto se realiza enT = (n

2 + 1) · TCK iteraciones.En cuanto al consumo de recursos logicos, este multiplicador requiere dos multipli-

cadores de n× m2 bits, que comparten el bloque de control, y un sumador de n + 3m

4bits. El control requiere menos recursos debido a que debe realizar menos iteraciones.

2.4. Multiplicacion por sumas consecutivas

Otra opcion para reducir el numero de iteraciones sin tener que pre-computarmultiplos de los operandos, consiste en realizar dos subproductos en forma consecu-tiva. Esta variante es similar al SMbase4 ya que basicamente opera con dıgitos de 2bits. El multiplicador por sumas consecutivas (SMSC) realiza en cada iteracion dossubproductos consecutivos como se puede observar en la Ec. (6).

P = 2n−1

n2−1∑j=0

(yjX22j−(n−1)+ yj+1X22j+1−(n−1))

(6)

Page 209: Tesis Funes Marcos

La suma de los dos subproductos de la Ec. (6) genera un TCK superior al de unmultiplicador secuencial debido al acarreo de los dos sumadores. Sin embargo, paraciertas longitudes de palabras el incremento en el retardo se ve minimizado contra laventaja de reducir a la mitad la cantidad de ciclos en el perıodo de procesamiento.

El perıodo de procesamiento para la ejecucion de un producto depende del esquemaen que se basa el SMSC. En el caso de un SMSC basado en un SM el perıodo deprocesamiento se reduce a T = (n

2 + 1) · TCK . En el caso de uno basado en un SMSR,el perıodo de procesamiento resulta de T = n

2 · TCK .Un esquema del SMSC basado en SM se muestra en la Fig. 6, donde se observa

que con cada iteracion se realiza la suma en forma consecutiva de dos subproductos,yjX · 2j + yj+1X · 2j+1 de la Ec. (6). El esquema del SMSC basado en el SMSR se

N

ADD

Producto Parcial

desplazamiento 2 bits

Y0N-12N-1 N 1

N-1

ADD

LSB

acarreo

acarreo

X0N-1

N

N

Figura 6. Ejemplo de un SMSC(SM).

muestra en la Fig. 7. En cuanto al consumo de recursos logicos, estos multiplicadores

N

ADD

Producto

desplazamiento 2 bits

0N-12N-1 N

N-1

ADD

LSB

acarreo

acarreo

N

X

Y[bits impares]N

N/2

MUX

Control

Y[bits pares]N

N/2

MUX

Parcial

Figura 7. Ejemplo de un SMSC(SMSR).

duplican el consumo de recursos en cuanto a sumadores y a la logica combinacionalque genera el producto yjX. El control requiere menos recursos debido a que deberealizar menos iteraciones.

Page 210: Tesis Funes Marcos

3. Evaluacion de los parametros

3.1. Consumo de recursos logicos

El consumo de recursos se puede expresar en terminos de CLBs, compuestos pordos generadores de funciones (FG) y dos FlipFlops (FF). Cada multiplicador estacompuesto por bloques tal como, sumadores, multiplexores, contadores y componen-tes basicos. Estos bloques poseen un consumo de recursos acotado, que en algunoscasos son funcion de la longitud de palabra de los operandos, n. Ejemplo de ello sepresenta en un contador de modulo-n. El mismo es un contador binario de log2 n bitsque utiliza n FFs (FlipFlops) y al menos la misma cantidad de FGs (Function Ge-nerators), consumiendo como mınimo log2(n)

2 CLB’s. En caso de un multiplexor, esteesta conformado solo por logica combinacional que requiere de al menos n− 1 FGs detres entradas. Esto genera un consumo de recursos de n−1

2 CLBs para una longitudde n-bit entradas. El consumo de recursos logicos de un sumador depende del tipo desumador seleccionado. El sumador indicado para la implementacion de los multipli-cadores en las FPGAs seleccionadas, es el sumador de ripple-carry. En este caso, unsumador utiliza n+2 FGs (n

2 +1 celdas basicas) considerando las salidas de acarreo ydesborde. En el caso en que la salida de un sumador deba ser registrada, el consumode recursos logicos en terminos de CLBs es el mismo dado que los FFs son nativos decada celda basica.

A partir de estos conceptos basicos, se desarrollan las ecuaciones que definen elconsumo de recursos logicos en terminos de CLBs para los multiplicadores presentados,Ecs. (7 - 14).

CRSM (n) = 2n +log2 n

2+

52

(7)

CRSMSR(n) = 2n +log2 n

2+

32

(8)

CRSMbase4a(n) =72n +

log2 n

2+ 4 (9)

CRSMbase4b(n) =72n +

log2 n

2+

72

(10)

CRSMFSM(n) =

154

n +log2

n2

2+ 5 (11)

CRSMFSMSR(n) =

154

n +log2

n2

2+ 3 (12)

CRSMSCSM (n) = 3n +log2

n2

2+

72

(13)

CRSMSCSMSR(n) = 3n +

12

log2

n

2+ 2 (14)

3.2. Comportamiento temporal

El comportamiento temporal de los multiplicadores presentados depende de dosfactores: el retardo inherente de las compuertas logicas y/o registros, y el impuesto

Page 211: Tesis Funes Marcos

por la interconexion entre las mismas. En la mayorıa de los circuitos realizados enFPGA el desempeno de los mismos no puede ser estimado hasta despues de ser imple-mentado debido a que los retardos de interconexion recien se conocen una vez realizadaesta tarea. Sin embargo, en el caso de sumadores y contadores que utilizan recursos de-dicados de logica de acarreo es posible estimar un desempeno temporal aproximado [7].El perıodo mınimo de reloj que se puede utilizar con los multiplicadores presentadosdepende del retardo de propagacion de la ruta mas crıtica.

Las Ecs. (15-19) resumen el retardo de propagacion de esta ruta expresados enns para los multiplicadores presentados tomando como referencia los retardos de unaFPGA de Xilinx de la familia Spartan [8]. Cabe destacar que el retardo de propaga-cion define el maximo reloj utilizable para un dado multiplicador. En el caso de losmultiplicadores implementados a partir de un SM o un SMSR, el retardo es el mismo,siendo la diferencia entre ambos el numero de iteraciones necesarias para ejecutar unproducto.

tSM (n) =n

4+ 8,3 (15)

tSMbase4a(n) =n

4+ 14,2 (16)

tSMbase4b(n) =n

4+ 12,5 (17)

tSMF (n) =n

4+ 8,45 (18)

tSMSC(n) =n

4+ 13,15 (19)

4. Comparacion de los multiplicadores

A partir de las Ecs. (7 - 19) se realizo una comparacion de los multiplicadorespresentados. En la Fig. 8 se muestra el consumo estimado de recursos logicos de losmultiplicadores. Se puede observar que los multiplicadores optimizados en velocidadsacrifican el consumo de recursos logicos a costa de obtener una mayor velocidad deprocesamiento. Los multiplicadores del tipo SMSC son los que consumen la menorcantidad de recursos, mientras que los del tipo SMF poseen un consumo entre un 30 yun 40 % mayor. Por otro lado, los multiplicadores de base 4 poseen un consumo entreun 15 y un 20 % mayor.

La velocidad de procesamiento (PS [Mflop])se obtiene como resultado de dividirla frecuencia maxima de trabajo por el numero de ciclos que requiere realizar unaoperacion N , PS = fck

N . La misma se expresa en millones de operaciones por segundo.En la Fig. 9 se muestra una comparacion de las velocidades de procesamiento de losmultiplicadores. En la misma se puede observar que el SMF(SMSR) presenta la mayorvelocidad de procesamiento para todo n. Adicionalmente, la variante SMF(SM) salvopara el caso de n = 8, posee una buena velocidad de procesamiento aunque inferior ala del SMF(SMSR) debido a que requiere de una iteracion adicional. El SMSC(SMSR)posee una buena velocidad de procesamiento para n < 14 bits, pero para n mayoreses similar a la del SMbase4(-X). Se observa tambien que las otras variantes presentanvelocidades inferiores a las del SMF(SMSR), pero superiores a la del SMbase4(3X).

Page 212: Tesis Funes Marcos

5 10 15 20 25 30 350

20

40

60

80

100

120

n

CLB

SMSMSRSMbase4 (3X)SMbase4 (−X)SMF (SM)SMF (SMSR)SMSC (SM)SMSC (SMSR)

Figura 8. Consumo de recursos logicos de los multiplicadores.

5 10 15 20 25 30 350

2

4

6

8

10

12

14

16

18

20

n

PS

[Mop

s]

SMSMSRSMbase4 (3X)SMbase4 (−X)SMF (SM)SMF (SMSR)SMSC (SM)SMSC (SMSR)

Figura 9. Velocidad de procesamiento de los multiplicadores.

Page 213: Tesis Funes Marcos

4.1. Performance de los multiplicadores

A fin de estimar los beneficios de cada variante, se propone un unico indicador, elındice de performance p, definido por la Ec. (20) donde la Velocidad de Procesamientoesta definida en Millones de Operaciones por Segundo y el Area como la fraccion derecursos utilizados para una determinada FPGA, (Total de la FPGA = 1).

p =Velocidad de Procesamiento [Mops]

Area(20)

En la Fig. 10 se muestra el ındice en el intervalo 8 ≤ n ≤ 20 para una FGPA de400 CLB’s, en la cual se puede observar que los multiplicadores SM y SMSC(SMSR)obtienen el mejor desempeno. En la Fig. 11 se muestra el ındice para el intervalo20 ≤ n ≤ 32 donde observa que el mayor valor lo comparten los multiplicadores SMy SMSC(SM). Esto se debe a que el SCSC(SM) consume menor cantidad de recursosque el SMSC(SMSR) y, a medida que aumenta n, la velocidad de procesamiento deambos multiplicadores se hace mas parecida.

8 10 12 14 16 18 20

50

100

150

200

250

n

Per

form

ance

SMSMSRSMbase4 (3X)SMbase4 (−X)SMF (SM)SMF (SMSR)SMSC (SM)SMSC (SMSR)

Figura 10. Indice de performance [8,20].

5. Conclusiones

En este trabajo se presento un estudio comparativo de multiplicadores secuencialesdestinados a su implementacion en FPGA. Se presentaron las estimaciones de consu-mo de recursos logicos y de comportamiento temporal que permiten contrastar lascaracterısticas de los multiplicadores presentados.

A partir de estas comparaciones se puede observar que el SM, el SMSR y los SMSCson los multiplicadores que mejor balancean la relacion entre consumo de recursos logi-cos y velocidad de procesamiento. Resultando el SMSR el optimo para aplicaciones

Page 214: Tesis Funes Marcos

20 22 24 26 28 30 325

10

15

20

25

30

35

n

Per

form

ance

SMSMSRSMbase4 (3X)SMbase4 (−X)SMF (SM)SMF (SMSR)SMSC (SM)SMSC (SMSR)

Figura 11. Indice de performance [20,32].

donde se busca una reducida cantidad de recursos logicos, y el SMSC en aplicacio-nes donde ademas de las restricciones de recursos se requiere una alta velocidad deprocesamiento.

Referencias

1. Funes, M., Carrica, D., Benedetti, M.: Multiplicadores secuenciales para estructuras FP-GA. IX Reunion de Trabajo en Procesamiento de la Informacion y Control. Vol. II (2001)646–651

2. Hennessy, J.L., Patterson, D.: Computer Architecture: A Quantitative Approach. MorganKaufmann Publishers, Inc., San Francisco, California ISBN: 1-55860-329-8 (1996)

3. Hayes, J.P.: Introduccion al Diseno Logico Digital. Addison-Wesley Iberoamericana,Wilmington, Delaware, E.U.A (1996)

4. Thornton, M., Gaiche, J.D.and Lemieux, J.: Tradeoff analysis of integer multiplier circuitsimplemented in FPGAs. Communications, Computers and Signal Processing IEEE PacificRIM Conference (1999) 301–304

5. Teixeira, D., Susim, A., Carro, L.: Comparacion de multiplicadores en fpga. V WorkshopIberchip 1 (Enero 1999) 182–187

6. Parhami, B.: Computer Arithmetic: Algorithms and Hardware Design. Oxford UniversityPress, New York, Oxford (2000)

7. New, B.: Estimating the performance of XC4000E adders and counters. Technical ReportXapp 018, Xilinx (1996)

8. : The Programable Logic Data Book. Xilinx (2000)

Page 215: Tesis Funes Marcos

XII Reunion de Trabajo en Procesamiento de la Informacion y Control, 16 al 18 de octubre de 2007

Estudio comparativo de multiplicadores secuencialesimplementados en FPGA

M. Funes†, D. Carrica‡, M. Benedetti‡, P. Donato‡

†UNMDP, Facultad de Ing. - [email protected]

[email protected]

Resumen— En este trabajo se presenta un es-tudio comparativo de multiplicadores secuencialesorientado a su implementacion en FPGA. Se exponenlos resultados de las implementaciones, las que permi-ten contrastar las caracterısticas de los multiplicado-res presentados.

Palabras Clave— Multiplicadores, Secuencia-les, FPGA, Recursos logicos, Velocidad de procesa-miento.

I. INTRODUCCION

La multiplicacion es una de las operaciones escen-ciales en el procesamiento aritmetico. Adicionalmente,es una de las tareas que mas recursos logicos consume.Decadas atras cuando la arquitectura del multiplicadorera estudiada para su implementacion en circuitos de pro-cesadores o unidades aritmeticas de calculo, el consumode recursos circuitales era aceptado por la necesidad derealizar los calculos mas rapidamente.

Actualmente, la utilizacion de las FPGAs permite el di-seno personalizado de sistemas de procesamiento, lo cualha masificado la aplicacion de los mismos. La implemen-tacion en una FPGA de una unidad de calculo con un granconsumo de recursos logicos obliga a utilizar una FPGAde gran tamano, lo que implica un mayor costo de pro-duccion. Con el objeto de reducir el consumo de recursoslogicos Funes et al. (2001) propusieron la utilizacion delesquema de multiplicacion Shift and Add (Hennessy andPatterson, 1996), (Hayes, 1996) , denominado tambienMultiplicador Secuencial (SM), para sistemas basados enFPGA. Este multiplicador ejecuta un producto en formasecuencial y se caracteriza por utilizar una cantidad redu-cida de recursos logicos. Como contrapartida por su en-tidad secuencial, este multiplicador demanda un perıodomayor para ejecutar un producto. Existen variantes delmultiplicador SM que reducen este perıodo a costa de unmayor consumo de recursos logicos (Parhami, 2000).

En este trabajo se presenta un estudio comparativo delos multiplicadores secuenciales y algunas variantes delos mismos optimizadas en velocidad, con el objetivo deobtener buenas alternativas para la utilizacion de multi-plicadores en FPGA sin comprometer los recursos del

sistema desarrollado. Resultados experimentales permi-ten distinguir las caracterısticas de cada uno de los multi-plicadores presentados.

II. Multiplicador secuencial

Dados dos operandos, un multiplicando X =n−1∑j=0

xj2j , y un multiplicador Y =n−1∑j=0

yj2j , el Cuadro

1 muestra el proceso de multiplicacion para n = 4. ElSM realiza el producto de este cuadro en forma secuen-cial, acumulando un producto parcial yiX (i = 0, 1, 2, 3)al resultado acumulado de la iteracion anterior con el de-bido desplazamiento de un bit entre ambos.

Cuadro 1:x3 x2 x1 x0

y3 y2 y1 y0

s03 s02 s01 s00 ≡ y0X20

s13 s12 s11 s10 ≡ y1X21

+ s23 s22 s21 s20 ≡ y2X22

s33 s32 s31 s30 ≡ y3X23

p7 p6 p5 p4 p3 p2 p1 p0 ≡ P

Existen dos versiones dependiendo del sentido de losvalores a acumular, con desplazamiento a la izquierda ocon desplazamiento a la derecha.

En la multiplicacion con desplazamiento a la izquierdase debe contar con un acumulador de longitud 2n bits.En este caso los productos parciales yjX son adicionadosal resultado acumulado con un desplazamiento de un bit(21) hacia la izquierda, respecto al anterior. El algoritmose puede analizar a partir de la Ec. (1), donde p(j) es elproducto parcial de la iteracion j.

p(j + 1) = 2p(j) + y(n−1)−jX con p(0) = 0 (1)

En la multiplicacion con desplazamiento a la derechalos productos parciales yjX son adicionados al resultadoacumulado con un desplazamiento de un bit (2−1) haciala derecha respecto al anterior.

El algoritmo se observa en la Ec. (2).

Page 216: Tesis Funes Marcos

XII Reunion de Trabajo en Procesamiento de la Informacion y Control, 16 al 18 de octubre de 2007

p(j + 1) = (p(j) + yjX2n)2−1 con p(0) = 0 (2)

Debido a que el desplazamiento a la derecha generaun primer producto parcial multiplicado por 2−n se debepre-multiplicar y0X por 2n para compensar el efecto deldesplazamiento. Esta pre-multiplicacion se puede efec-tuar facilmente, almacenando p(j) en el segmento massignificativo de un registro de 2n bit.

La implementacion hardware del algoritmo de la mul-tiplicacion con desplazamiento a la derecha se puede ob-servar en la Fig. 1. El multiplicador Y y la acumulacionde los productos parciales p(j) son almacenados en re-gistros de desplazamiento. El bit yj del multiplicador esel bit menos significativo existente en el registro Y enla iteracion j. El mismo es utilizado en el producto yjXseleccionando 0 o X en la suma.

ADD

X

Producto Parcial

desplazamiento

n

n

Yacarreo

0n-12n-1 n

0n-1

nn

Figura 1: SM con desplazamiento a la derecha.

Si bien ambos algoritmos presentados realizan n su-mas y n desplazamientos, las sumas realizadas con el al-goritmo de desplazamiento a la izquierda requieren unsumador del doble de tamano respecto del algoritmo dedesplazamiento a la derecha. Esto se debe a que el aca-rreo de la suma se debe extender hacia los bits mas signi-ficativos. Por lo tanto, el algoritmo mas utilizado es el dedesplazamiento a la derecha.

El multiplicador SM requiere n iteraciones para la eje-cucion del producto y una iteracion previa para la cargade los operandos. Por lo tanto este multiplicador puederealizar un producto en un perıodo T = (n + 1)TCK ,donde n es la longitud de los operandos y TCK el perıodode reloj aplicado sobre el multiplicador.

A. Multiplicador secuencial sin entradasregistradas

El multiplicador secuencial sin entradas registradas(SMSR) es una variante del multiplicador SM de despla-zamiento a la derecha. El objetivo del SMSR es la simpli-ficacion del esquema de multiplicacion evitando la cargaparalelo de los registros del multiplicador y del multipli-cando, para lo cual, los datos deben permanecer establesdurante toda la operacion. Existiendo esta condicion, elSMSR no carga los operandos, por lo que no existe lademora propia del ciclo de carga, lo cual constituye unaventaja. Por lo tanto, este multiplicador realiza el produc-to en un T = nTCK .

En la Figura 2 se puede observar un esquema delSMSR, el cual utiliza un sumador de n bits y realiza laseleccion de los bits yj mediante un multiplexor de n en-tradas.

ADD

X

Producto

desplazamiento

n

n

Y

Parcialacarreo

0n-12n-1 n

nn

n

MUX

Control

Figura 2: SMSR.

El control del multiplicador, que no se muestra en laFigura 2, consiste en un contador que ejecuta la seleccionde los yj y que a su vez mantiene el numero de iteracionrealizada. La inicializacion del multiplicador se realizalimpiando el registro Producto Parcial y el contador, y esrequisito para este multiplicador que los datos se encuen-tren presentes durante todo el ciclo de la multiplicacion,tal como en un multiplicador paralelo tradicional.

B. Multiplicador SM de base 4 o superiorEsta variante de multiplicacion secuencial, reduce

la cantidad de iteraciones en base a la representacionnumerica.

Un numero binario de n-bits puede ser representadocomo un numero de n

2 -dıgitos de base 4 o n3 -dıgitos de

base 8. De este modo, es posible realizar un producto enmenor tiempo de calculo si se ejecuta una multiplicacionde un dıgito por vez en lugar de hacerlo bit a bit.

La expresion general para este tipo de multiplicaciones la de la Ec. (3):

p(j + 1) = (p(j) + yjXrn)r−1 (3)

con p(0) = 0.En el caso de la multiplicacion en base 4, se debe con-

formar el producto parcial [yj+1 yj ]2X y adicionarlo alresultado de la iteracion anterior. Mientras que en la mul-tiplicacion de base 2 cada producto parcial esta represen-tado por el valor 0 o por una version desplazada de X , enla multiplicacion de base 4 el producto parcial toma losvalores 0, X , 2X o 3X . El metodo mas directo para laejecucion de esta multiplicacion se realiza mediante unaasignacion pre-calculada de los productos parciales.

Un diagrama de este tipo de multiplicador se muestraen la Fig. 3. En el mismo se debe considerar que mien-tras los tres primeros valores de los productos parcialesse pueden utilizar en forma directa, el valor 3X requie-re un tiempo adicional para la ejecucion del calculo deX + 2X . Ademas, se debe considerar que el valor pre-calculado de 3X puede exceder el rango de X , por lo queel multiplexor y el sumador utilizado deben ser de n + 1bits.

Page 217: Tesis Funes Marcos

XII Reunion de Trabajo en Procesamiento de la Informacion y Control, 16 al 18 de octubre de 2007

n+2

n+2

n+2

n+2

ADD

Producto Parcial

desplazamiento 2 bits

n+2

n

Yacarreo

0n-12n-1 n

X

0

2X

3X

1

MUX

2

n+2

Figura 3: Multiplicador SM base 4.

Una alternativa consiste en reemplazar 3X por −X ygenerar un acarreo que modifique al siguiente dıgito. Esteset de dıgitos es afectado por el acarreo segun el Cuadro2, en el cual, cy(j − 1) es el acarreo correspondiente a laiteracion anterior, cy(j) es el acarreo que se genera porel evento actual, y2j−1 e y2j son los bits seleccionadosen cada iteracion que generan una salida de los valores[0,−X, X, 2X]. Esta alternativa demanda al final de laiteracion n

2 una nueva iteracion, si el ultimo dıgito de base4 genero un bit de acarreo.

Cuadro 2: Codificacion de los bits del multiplicadorcy(j − 1) y2j−1 y2j salida(j) cy(j)

0 0 0 0 00 0 1 X 00 1 0 2X 00 1 1 −X 11 0 0 X 01 0 1 2X 01 1 0 −X 11 1 1 0 1

El diagrama de este multiplicador se puede observar enla Fig. 4.

n+1

n+1

n+1

n+1

ADD

Producto Parcial

desplazamiento 2 bits

n+1

n

Yacarreo

0n-12n-1 n

X

0

2X

-X

1

MUX

2

n+1

FF

acarreo

y y +cy2j-1 2j

Figura 4: Variante del SM base 4.

En la Fig. 4 se puede observar que este esquema re-quiere una mayor cantidad de recursos logicos que un

SM. Entre estos se puede citar que requiere de un suma-dor de n + 1 o n + 2 bits, pre-calcular 3X o -X, y unmultiplexor que conmuta los valores 0, X, 2X y 3X etc.

Los esquemas de multiplicacion de base 4 ejecutan unproducto en n

2 iteraciones, sin embargo se requiere un ci-clo adicional para cargar los registros con los operandos.El perıodo de procesamiento para estos multiplicadoreses de T = (n

2 + 1)Tck debiendo adicionar otro ciclo sise considera la variante -X, con lo cual el perıodo es deT = (n

2 + 2)Tck.Estas variantes se pueden extender a multiplicado-

res de bases superiores, pero la estructura del multipli-cador se vuelve compleja debido a que se debe pre-computar una mayor cantidad de valores y consecuen-temente el numero de iteraciones deja de ser menor quen2 +1. Por ejemplo, para un producto de base 8, se debenpre-computar los valores de 3X, 5X y 7X , o solo pre-computar 3X y utilizar un esquema de acarreo similar alde la Fig. 4 para convertir a 5X , 6X y 7X en−3X ,−2Xy −X .

C. Multiplicador secuencial fraccionadoEl multiplicador secuencial fraccionado (SMF) es una

variante cuyo objetivo es mejorar la velocidad de ejecu-cion. Dado que el perıodo TCK no se puede reducir masalla del lımite impuesto por la logica, una mayor veloci-dad de ejecucion se puede obtener reduciendo el numerode iteraciones. Dicha reduccion se puede obtener fraccio-nando la sumatoria de la Ec. (4).

P =n−1∑j=0

X2j · yj (4)

Si se fracciona la sumatoria, entonces el producto sepuede realizar como la suma de dos semi-sumatorias:

P =k−1∑j=0

X2jyj +n−1∑j=k

X2jyj (5)

El producto resultante utilizando como base la de unSM con desplazamiento a la derecha esquema se puedeobservar en la Ec. (6).

P = 2n−1

k∑j=0

X · 2j−(n−1)yj +n−1∑j=k

X · 2j−(n−1)yj

(6)

La primer semi-sumatoria realiza su proceso en k·TCK

y la segunda en (n − 1 − k) · TCK . Si las dos semi-sumatorias se llevan a cabo al mismo tiempo y se sumansus resultados con el debido desplazamiento, el perıodode proceso estara dado por:

k · TCK si k > (n− 1)− ko

((n− 1)− k) · TCK si k < (n− 1)− k

y para el caso particular en que k = n2 , el perıodo de pro-

cesamiento para la ejecucion de cada producto sera T =n2 · TCK .

Page 218: Tesis Funes Marcos

XII Reunion de Trabajo en Procesamiento de la Informacion y Control, 16 al 18 de octubre de 2007

Se debe considerar que la suma de las dos semi-sumatorias de la Ec. (6) requiere un unico sumador de2n − k debido a que la primer semi-sumatoria se encon-trara desplazada k veces de la segunda. Por otro lado, di-cha suma agrega un retardo tR debido a la logica invo-lucrada. Este retardo se puede considerar menor o igualque TCK , tomando como pauta que el retardo de involu-crado en la adicion de los productos parciales es inferioral retardo definido para un multiplicador SM. Por lo tan-to, el perıodo de procesamiento para este multiplicadorestara dado por T = (n

2 + 1) · TCK .

X[n:0] X[n:0]

Y[m/2:0] Y[m:m/2+1]

Y[m:0] x X[n:0]

m/2 nx

SM

Acu

mu

laci

ón

m/2 nx

Figura 5: Diagrama de operacion de un SMF.

En la Fig. 5, se observa el esquema del SMF, dondedos multiplicadores secuenciales realizan sus productossimultaneamente y, un perıodo de tiempo despues, sus re-sultados son adicionados.

La aplicacion practica del SMF se puede realizar enbase a un SM tradicional o a un SMSR. La utilizacion delSM implica que se deben cargar los datos en los regis-tros, por lo que se requieren n

2 +2 iteraciones. Por lo quese justifica solo la utilizacion de este esquema para mul-tiplicadores cuya longitud de palabra haga despreciableslas dos iteraciones a n

2 . En el caso del SMF basado enun SMSR, el producto se realiza en T = (n

2 + 1) · TCK

iteraciones.En cuanto al consumo de recursos logicos, este multi-

plicador requiere dos multiplicadores de n× m2 bits, que

comparten el bloque de control, y un sumador de n + 3m4

bits. El control requiere menos recursos debido a que de-be realizar menos iteraciones.

D. Multiplicacion por sumas consecutivas

Otra opcion para reducir el numero de iteraciones sintener que pre-computar multiplos de los operandos, con-siste en realizar dos subproductos en forma consecutiva.Esta variante es similar al SMbase4 ya que basicamenteopera con dıgitos de 2 bits. El multiplicador por sumasconsecutivas (SMSC) realiza en cada iteracion dos sub-productos consecutivos como se puede observar en la Ec.(7).

P = 2n−1

n2−1∑j=0

(yjX22j−(n−1)+ yj+1X22j+1−(n−1))

(7)

La suma de los dos subproductos de la Ec. (7) generaun TCK superior al de un multiplicador secuencial debi-do al acarreo de los dos sumadores. Sin embargo, paraciertas longitudes de palabras el incremento en el retardose ve minimizado contra la ventaja de reducir a la mitadla cantidad de ciclos en el perıodo de procesamiento.

El perıodo de procesamiento para la ejecucion de unproducto depende del esquema en que se basa el SMSC.En el caso de un SMSC basado en un SM el perıodo deprocesamiento se reduce a T = (n

2 +1) ·TCK . En el casode uno basado en un SMSR, el perıodo de procesamientoresulta de T = n

2 · TCK .Un esquema del SMSC basado en SM se muestra en la

Fig. 6, donde se observa que con cada iteracion se realizala suma en forma consecutiva de dos subproductos, yjX ·2j + yj+1X · 2j+1 de la Ec. (7).

n

ADD

Producto Parcial

desplazamiento 2 bits

Y0n-12n-1 n 1

n-1

ADD

LSB

acarreo

acarreo

X0n-1

n

n

Figura 6: Ejemplo de un SMSC(SM).

El esquema del SMSC basado en el SMSR se muestraen la Fig. 7.

n

ADD

Producto

desplazamiento 2 bits

0n-12n-1 n

n-1

ADD

LSB

acarreo

acarreo

n

X

Y[bits impares]n

n/2

MUX

Control

Y[bits pares]n

n/2

MUX

Parcial

Figura 7: Ejemplo de un SMSC(SMSR).

En cuanto al consumo de recursos logicos, estos mul-tiplicadores duplican el consumo de recursos en cuanto asumadores y a la logica combinacional que genera el pro-ducto yjX . El control requiere menos recursos debido aque debe realizar menos iteraciones.

III. Comparaciones

Los multiplicadores presentados en secciones anterio-res se implementaron en una FPGA Spartan XCS30 deXilinx (The Programable Logic Data Book, 2000). Ca-da una de las variantes de los multiplicadores se imple-mento en primera instancia mediante captura esquemati-ca y posteriormente en Lenguaje de Descripcion de Hard-ware (VHDL) (Ghosh, 1999)- (Villar et al., 1997).

Page 219: Tesis Funes Marcos

XII Reunion de Trabajo en Procesamiento de la Informacion y Control, 16 al 18 de octubre de 2007

Todos los circuitos han sido evaluados segun los recur-sos logicos consumidos, la velocidad de procesamiento yun ındice de performance.

A. Recursos logicosLa cantidad de recursos logicos o area de utilizacion

de la FPGA se puede cuantificar en CLBs, compuestoscada uno por dos generadores de funciones (FG) y dosFlipFlops (FF).

En la Fig. 8 se muestran los resultados de los multi-plicadores en cuanto al consumo de CLBs. En la mismase puede observar que el numero de CLBs aumenta enforma lineal con n para todos los multiplicadores.

En la misma se puede observar la diferencia notablede consumo de recursos entre los multiplicadores SM,SMSR y los multiplicadores optimizados en velocidad.En el caso particular del SMbase4(-X), este posee un con-sumo que duplica al del SM. Esto se debe fundamental-mente a que se sacrifican recursos para obtener mayorvelocidad.

0 5 10 15 20 25 30 350

20

40

60

80

100

120

n

CLB

SMSMSRSMbase4 (3X)SMbase4 (−X)SMF (SM)SMF (SMSR)SMSC (SM)SMSC (SMSR)

Figura 8: Consumo de recursos logicos.

Si se comparan entre sı los multiplicadores optimiza-dos en velocidad, se puede observar que el SMSC(SM) esel multiplicador que posee el menor consumo de recursoslogicos. Por otro lado, el multiplicador SMF(SMSR) re-quiere una mayor cantidad de recursos que los restantesmultiplicadores.

B. Velocidad de procesamientoLa velocidad de procesamiento fd, se expresa en mi-

llones de operaciones por segundo Mops, y se obtienecalculando la inversa del producto del retardo de propa-gacion del camino crıtico por el numero de ciclos querequiere realizar una operacion, fd = 1

tpdN . El retardode propagacion tpd se obtiene a partir de la herramien-ta de programacion de FPGA de Xilinx, Foundation 3.1i,Timimg Analyzer. A partir de los datos sumnistrados secalcula el peor caso de temporizacion del diseno.

En la Fig. 9 se presentan los resultados experimentalesde la velocidad de procesamiento de los multiplicadores.

En esta figura se pueden observar los resultados obteni-dos por cada multiplicador. En la misma, la variante delmultiplicador SMF(SMSR) es la que obtiene la mayor ve-locidad. Por otro lado, se puede observar que el multipli-cador SMSC(SMSR) posee una relacion mas balanceadaentre consumo de recursos logicos y velocidad de proce-samiento.

5 10 15 20 25 30 350

2

4

6

8

10

12

14

16

18

n

PS

[Mop

s]

SMSMSRSMbase4 (3X)SMbase4 (−X)SMF (SM)SMF (SMSR)SMSC (SM)SMSC (SMSR)

Figura 9: Velocidad de procesamiento.

Los multiplicadores SM y SMSR como se esperaba,poseen una velocidad de procesamiento inferior debido ala cantidad de ciclos de reloj necesarios para ejecutar unproducto.

C. PerformanceSe establece un ındice de performance de manera de

poder evaluar el desempeno global del sistema imple-mentado en la FPGA, incluyendo tanto el concepto deconsumo de recursos como de velocidad de procesamien-to. En la Ec. (8) se define el ındice de performance p.

p =Velocidad de Procesamiento [Mops]

Area(8)

En esta ecuacion, la Velocidad de Procesamiento es-ta definida en Millones de Operaciones por Segundo yel Area como la fraccion de recursos utilizados para unadeterminada FPGA, (Total de la FPGA = 1). Este ındicepretende poder comparar la performance de distintos ti-pos de multiplicadores para su utilizacion en una FPGAdesignada.

En la Fig. 10 se grafica el ındice de performance pa-ra un rango de 8 < n < 20 bits. En la misma se puedeobservar que el mayor ındice lo comparten los multipli-cadores SM y SMSC(SMSR). Una forma de interpretareste resultado es analizando una posible aplicacion deestos multiplicadores. Dado el caso en que una aplica-cion requiere realizar un cierto numero de productos enun mismo instante, este indica que resulta tan eficienteutilizar arreglos paralelos de multiplicadores SMSR co-mo realizar todos los productos mas rapidamente en unsolo SMSC(SMSR).

Page 220: Tesis Funes Marcos

XII Reunion de Trabajo en Procesamiento de la Informacion y Control, 16 al 18 de octubre de 2007

5 10 15 20

50

100

150

200

250

n

Per

form

ance

SMSMSRSMbase4 (3X)SMbase4 (−X)SMF (SM)SMF (SMSR)SMSC (SM)SMSC (SMSR)

Figura 10: Indice de performance, n ≤ 20.

En la Fig. 11 se grafica el ındice de performance paraun rango de 20 < n < 32 bits. En esta figura se puedeobservar que el mayor ındice lo comparten los multiplica-dores SM y SMSC(SM). Esto se debe a que el multiplica-dor SMSC(SM) consume menor cantidad de recursos queel SMSC(SMSR) y a medida que aumenta la longitud depalabra de los operandos, la velocidad de procesamientode ambos multiplicadores se hace mas parecida.

IV. CONCLUSIONES

En este trabajo se presento un estudio comparativo demultiplicadores secuenciales los cuales constituyen unabuena alternativa para la utilizacion en FPGA. Se presen-taron resultados experimentales que permiten distinguirlas caracterısticas de cada uno de los multiplicadores pre-sentados.

A partir de estas caracterısticas se puede observar queel SM y los SMSC son los multiplicadores que mejorbalancean la relacion entre consumo de recursos logi-cos y velocidad de procesamiento. Resultando el optimoel primero para aplicaciones de muy reducida cantidadde recursos logicos, y el segundo en aplicaciones dondeademas de las restricciones de recursos se requiere incre-mentar la velocidad de procesamiento.

REFERENCIAS

Funes, M., D. Carrica and M. Benedetti (2001). Mul-tiplicadores secuenciales para estructuras FPGA. IXReunion de Trabajo en Procesamiento de la Informa-cion y Control. Vol. II, 646–651.

Ghosh, Sumit (1999). Hardware Description LanguagesConcepts and Principles. IEEE Press. 445 Hoes Lane,P.O. Box 1331 Piscataway, NJ 08855-1331.

Hayes, John P. (1996). Introduccion al Diseno Logico Di-gital. Addison-Wesley Iberoamericana. Wilmington,Delaware, E.U.A.

20 22 24 26 28 30 325

10

15

20

25

30

35

n

Per

form

ance

SMSMSRSMbase4 (3X)SMbase4 (−X)SMF (SM)SMF (SMSR)SMSC (SM)SMSC (SMSR)

Figura 11: Indice de performance 20 ≤ n ≤ 32.

Hennessy, John L. and David Patterson (1996). Compu-ter Architecture: A Quantitative Approach. MorganKaufmann Publishers, Inc.. San Francisco, CaliforniaISBN: 1-55860-329-8.

Parhami, Behrooz (2000). Computer Arithmetic: Algo-rithms and Hardware Design. Oxford UniversityPress. New York, Oxford.

Teixeira, Denis, Altamiro Susim and Luigi Carro (1999).Comparacion de multiplicadores en fpga. V WorkshopIberchip 1, 182–187.

The Programable Logic Data Book

The Programable Logic Data Book (2000). Xilinx.

Thornton, M.A. and J.V Gaiche, J.D.and Lemieux (1999).Tradeoff analysis of integer multiplier circuits im-plemented in FPGAs. Communications, Computersand Signal Processing IEEE Pacific RIM Conferencepp. 301–304.

Villar, E., L. Teres, S. Olcoz and Y. Torroja (1997). VHDLLenguaje Estandar de Diseno Electronico. McGrawHill. Madrid.

Page 221: Tesis Funes Marcos

Floating Point Multiplierswith Reduced FPGA Area

M. Funes, D.Carrica, and M. Benedetti

Laboratorio de Instrumentacion y ControlUniversidad Nacional de Mar del Plata, Argentina

[email protected] ��

Abstract. FPGA based Floating Point Multipliers demand abundant logicalresources. This paper presents a sequential structure of floating-point multi-plier requiring a reduced number of resources. The proposed architecture wasevaluated theorically and experimentally achieving a substantially good per-formance.

1 INTRODUCTION

Many computationally-intensive applications found in Digital Signal Processing (DSP)employ the parallel processing capability of Field Programmable Gate Arrays (FPGAs)to obtain a high processing speed [4] [5]. FPGAs combine the flexibility of a general-purpose, programmable digital signal processor with the speed and density of a customhardware implementation. A digital processing implementation into a target FPGAshould be optimized in terms of logic resources consumption.to achieve a good perfor-mance and cost-effectiveness.

Digital Signal Processing mainly involves multiply operations which can be eitherfix or floating point, depending on the operand-range. The latter is used to reduceoverflow problems often observed in fixed point formats. A number expressed in floatingpoint format consist of a sign bit S, a biased exponent e of r bits and the fractional fof n bits. These elements express a number given by the following equation:

op = (−1)S × 2e−bias × 1.f (1)

Floating point multiplications involve sign setting, e exponent addition (with biascorrection) and mantissa product (including the leading bit). The latter is performed asan integer multiplication and is the most logic resources consummer. Furthermore, themultiplication is often executed in parallel way, that is, by developing simultaneouslythe product shown in Eq.(2):

p = 1.fx × 1.fy =n∑

i=0

[yi × (1xn−1..x3x2x0)] · 2i (2)

�� This work was supported by the Universidad Nacional de Mar del Plata (ING-15/G130) andthe Agencia Nacional de Promocion Cientıfica y Tecnologica (BID 1201/OC-AR 2002).Theauthors are with the Department of Electronics, Universidad Nacional de Mar del Plataand CONICET, Argentina.

Page 222: Tesis Funes Marcos

where 1.fx = {xn..x2x0} and 1.fy = {yn · · · y2y0} are mantissas of n + 1 bits, and xn

and yn both ’1’.There are two key factors of the FPGA multiplier design, the processing speed

and used area. There exists a tradeoff between logic resources and processing speed.Some multiplier schemes increase the processing speed but also increases the logicconsumption [9]. Increments in the FPGA used area reduce the maximum operatingfrequency. Consequently there exist a technological boundary where increasing of theimplementation complexity does not lead to an increment in the processing speed.Several authors studied and proposed different parallel schemes of FPGA Floating-Point Multipliers in order to reduce logic consumption [10] [8] [3].

This article proposes a novel floating-point multiplier leading to a meaningful areareduction without relegating much processing speed. An estimation of the logic re-sources consumption of the proposed scheme is generated in order to evaluate itsconsumption against the often used by parallel multipliers. Latter, the multiplier wasimplemented on several platforms and evaluated in terms of logical resources andspeed. Finally, the proposed multiplier is compared with multipliers referenced in theliterature.

2 Proposed Multiplier

This paper suggests the utilization of a Sequential Multiplication (SM) to reduce thelogic resources consumption. This multiplication algorithm executes a product usinga single adder, Eq. (3):

p = 2n−1

[n−1∑i=0

yiX · 2i−n+1

](3)

This adder performs successive accumulations of subproducts shifted by the corre-sponding value.

Some schemes can be found in literature like the multiplier of Hennesy shown inFigure 1 [7]. In each multiply step, the multiplier performs two tasks. First if theleast-significant bit of Y is 1, register X is added to P , otherwise ”00...00” is addedto P . Finally, the result will be stored back into P . The registers P and Y are shiftedright, the carry bit of the sum is moved into the high-order bit of P and the low-orderof P is moved into register Y . After N steps, the result is in the 2n-bit register PY .

The integer multiplication result has a 2n-bits wordlength, but floating-point mul-tiplication only needs the n-most significant bits of the result wich are stored in registerP . Consequently, there is no need in shifting bits into register Y of an integer multipli-erdesigned for floating point multiplication. This lead to simplified integer multipliershown in Fig. 2. This scheme is based on a stage counter and the multiplexer to executethe partial products. In this scheme, the partial product is added to the last shiftedresult and is stored in the corresponding output registers.

The product normalization depends on the integer multiplication result. This resultis a n-bit word plus a carry bit. If this carry bit is ‘1’, the result must be rightshiftedto be normalized. This operation can be achieved with the existing resources, addingan extra clock pulse and setting the non-feedback add input to zero.

Page 223: Tesis Funes Marcos

ADD

X

YP

SHIFT

nn1

n

Fig. 1. Shift and Add multiplier.

MUX

COUNTER

ADD FF´s

X[n:0]

P[n-1:0]Y[n:0]

P[n:1]

carry

Fig. 2. Integer sequential multiplier.

Biased exponent of the product result is given by

ep = ex + ey − bias + carry (4)

This operation is performed by adding the biased exponents (ex,ey) and the number−bias + carry expressed in two´s complement. In order to reduce logic the numbers(−bias + 0) and (−bias + 1) are precalculated and added to ex + ey according to thecarry value.

After the design structure is defined, the logic resources consumption of the pro-posed floating point multiplier can be estimated. The logic resources consumption ina FPGA can be expressed in terms of it basic logic cells. Each basic cell contains twoFlip Flop (FF) that can be used to store a function generator output (FG). However,the storage elements and function generators can also be used independently.

Each component of the multiplier can be analized in terms of its function, inputand output nets, and if its outputs must be registered. Furthermore, in the design thereare many macro components like adders, multiplexers, counters, and primitive compo-nents. A n-module counter is a binary of at least log2 n bits counter. Consequently ituses n FFs and almost the same quantity of FGs. Then, the n-module counter consumslog2(n)

2 basic cells. A n-bit multiplexer is combinational logic which it needs at leastlog2(n) stages of three input FGs. The multiplexer used in the design has a registered

output in the last stage resulting in a component that consums

log2 n�

i=1(n·2−i)

2 for n-bit

Page 224: Tesis Funes Marcos

inputs. The logic consumption of the n-bit adder depends of the adder seleted. Usu-ally, the often used adder is the ripple carry adder wich optimize the fast carry logicprovided by the manufacturers in each basic cell. In this case, a n-bit adder use n + 2FGs (n

2 + 1 basic cell) considering the carry and the overflow output. If the outputof the used adder must be registered, the logic consumption estimation is the samebecause the FFs are native of each basic cell.

Equation 5 summaries the estimated logic resources consumption of the PFPMexpressed in terms of basic cells of a n-bit wordlength mantissa including the leadingbit implied on the representation 1.f . This equation take in consideration the FGs andFFs that can be merged together into a same cell.

PFPM(n, r) =

log2 n+1∑i=1

(n · 2−i)

2+

log2(n + 1)2

+ n +132

+ r (5)

3 Comparison of the FPGA area

The logic resources used by the PFPM is compared with floating point multiplier wichare based on fixed point multipliers reported in the literature. For this purposes, thefloating point multiplier structure was designed considering the integer multiplier as aninterchangeable unit. Several parallel multipliers with a reported logic consumptionwere selected [2]. The integer multiplier and their respective logic consumption forfloating point multiplication implementation are: Guild scheme with a high throughputdue to the use of parallelism and pipelining, Eq. (6). Second, a McCanny - McWhirtermultiplication scheme with local communication between its basic cells, Eq. (7). Third,a Carry Save unit with constant delay in the carry chains Eq. (8) and fourth a RippleCarry multiplication unit which take advantage of the fast carry logic nets providedby the manufacturer. Eq. (9). For this estimation it was considered the effect of thelogic not used by the n less significant bits of the integer multiplication, but the logicconsumption reduction in this multipliers was neglected due to its little difference (lessthan 5 %).

Guild(n, r) =625

n2 +2320

n + 8 + r (6)

McCanny(n, r) =8710

n− 39 + r (7)

CarrySave(n, r) = 7n− 27 + r (8)

RippleCarry(n, r) =7310

n− 32 + r (9)

Figure 3 shows a comparison of the logic resources consumption for the selectedmultipliers with a typical 8 bit exponent (r = 8). The horizontal lines in the samefigure indicates the amount of avaiable basic cells in several Spartan FPGAs of XilinxInc. [1]. It can be observed the small of logic resources needed for the PFPM in contrastto the parallel multipliers applied to the floating point multiplication. The PFPM canbe implemented in all platforms for any mantissa wordlength, while for other schemesthe implementation is restricted to larger FPGAs. Besides, the proposed scheme makepossible the implementation of several multipliers in the same FPGA.

Page 225: Tesis Funes Marcos

0 5 10 15 20 25 30 35 40 450

100

200

300

400

500

600

Wordlength

CLB

XCS05

XCS10

XCS20

XCS30GuidMacCannyCarry SaveRipple CarryProposed

Fig. 3. Logic consumption comparation.

4 Experimental results

The proposed multiplier was implemented on the three most extended Xilinx plat-forms: Spartan, Virtex and Virtex II. The evaluation of the proposal in the severalFPGAs allow the verification of the Eq.(5) and the exploration of the benefits of thedifferent FPGA series to improve a better performance. The design was evaluated interms of logical resources , minimum clock period and Processing Speed (PS).

Figure 4 shows the experimental results for the Spartan series. It can be observedthat the difference between the implementation and the estimation, Eq. (5) is less than5 %. The delay constrain in the implementation depends on the feedback between theadder inputs and the registered outputs shown in the bottom of the Figure 2. Thistiming determines the maximum clock speed TCK , which, along the n + 1 pulses,determines the multiplier processing speed PS = 1

(n+1)·TCK.

Figures 5 and 6 show the experimental results for Virtex and Virtex II series,respectivelly. In these figures it can be observed the logic resources consumption forboth implementations.

A comparative analyisis is shown in Figure 7 where the logic resources and theprocessing speed are despicted for all the implementations. It can be observed in thisfigure that the logic resource estimation is comfirmed with the experimental resultsfor each index n. Also it can be observed the improvement of the utilization of atechnology among the others.

Page 226: Tesis Funes Marcos

5 10 15 20 25 300

2

4

6

8

n

PS

[Mflo

p]

5 10 15 20 25 3020

30

40

50

60

70

80

n

CLB

Estimation resultsExperimental results

Fig. 4. Spartan series PFPM implementation

5 10 15 20 25 300

5

10

15

20

25

30

n

PS

[Mflo

p]

5 10 15 20 25 3020

30

40

50

60

70

80

n

CLB

Estimation resultsExperimental results

Fig. 5. Virtex series PFPM implementation

Page 227: Tesis Funes Marcos

5 10 15 20 25 300

10

20

30

40

n

PS

[Mflo

p]

5 10 15 20 25 3020

30

40

50

60

70

80

n

CLB

Estimation resultsExperimental results

Fig. 6. Virtex II series PFPM implementation

5 10 15 20 25 300

5

10

15

20

25

30

35

n

PS

[Mflo

p]

5 10 15 20 25 3020

30

40

50

60

70

80

n

CLB

Estimation resultsExperimental results SpartanExperimental results VirtexExperimental results Virtex II

Fig. 7. Performance evaluation

Page 228: Tesis Funes Marcos

5 Conclusion

This work addresses a novel floating-point multiplier wich can be easily implementedon several FPGA series. The proposed design, based on a sequential multiplication,provides a meaningful area reduction. This feature is useful not only to increase thesystem speed with parallel processing but also to simply add more taps to an algorithm.A function of the logic used by the proposed scheme was calculated allowing theestimation of the logic resources consumption for a given design.

The theoretical behavior was contrastated with the implementation for severalFPGA series with less than a 5% of difference in the logic consumption. The experi-mental results shown also the difference in processing speed between a FPGA seriesamong the other. This results allow the exploration of the benefics of select a differentFPGA series to improve a better performance in a given design.

References

1. The Programable Logic Data Book. Xilinx, 2000.2. N. Acosta, E. Todorovich, C. Collado, and K. Larsen. Multiplicadores paralelos: Estado

del arte y analisis de su materializacion en FPGA. Proc. of VI Workshop Iberchip., pages158–168, 2000.

3. GH. A. Aty, Aziza I. Hussein, I.S. Ashour, and M. Mones. High-speed, area-efficientFPGA-based floating-point multiplier. pages 274–277, 2003.

4. T.-S. Chang and C.-W. Jen. Hardware-efficient implementations for discrete functiontransforms using LUT-based FPGAs. Computers and Digital Designs - IEE Proceedings,146, Issue 6:309, 1999.

5. Chris Dick and Fred Harris. FPGA signal processing using sigma-delta modulation. IEEESIGNAL PROCESSING MAGAZINE, pages 20–35, 2000.

6. John P. Hayes. Introduccion al Diseno Logico Digital. Addison-Wesley Iberoamericana,Wilmington, Delaware, E.U.A, 1996.

7. John L. Hennessy and David Patterson. Computer Architecture: A Quantitative Approach.Morgan Kaufmann Publishers, Inc., San Francisco, California ISBN: 1-55860-329-8, 1996.

8. Manuel A. Jimenez, Nayda G. Santiago, and Diane T. Rover. Development of a scalableFPGA-based floating point multiplier. Proceedings of the Fifth Canadian Workshop onField-Programmable Devices, pages pp. 145 – 150, 1998.

9. III Walter B. Ligon, Scott McMillan, Greg Monn, Kevin Schoonover, Fred Stivers, andKeith D. Underwood. A re-evaluation of the practicality of floating-point operations onFPGAs. Proceedings of IEEE Symposium on FPGAs for Custom Computing Machines,pages 206–215, 1998.

10. Nabeel Shirazi, Al Walters, and Peter Athanas. Quantitative analisis of floating pointarithmetic on FPGA based custom computing machines. Proceedings. IEEE Symposiumon FPGAs for Custom Computing Machines, pages 155–162, 1995.

Page 229: Tesis Funes Marcos

PERFORMANCE EVALUATION OF FPGAFLOATING POINT MULTIPLIERS

Funes, Marcos ∗,∗∗ Carrica, Daniel O. ∗

Benedetti, Mario ∗

∗ L.I.C., Universidad Nacional de Mar del Plata,CONICET

∗∗[email protected]

Abstract: The implementation of FPGA-based floating Point multipliers requirethe availability of huge logical resources, constraining their use in some applica-tions. The use of sequential multipliers instead of standard parallel multipliersreduce the area allocated on the FPGA. A comparison of sequential multiplieragainst parallel ones is developed. A performance index is introduced to comparethe obtained results.

Keywords: multiplication, floating point arithmetic, field programmable gatearrays, signal processing

1. INTRODUCTION

Many computationally-intensive applications foundin Digital Signal Processing (DSP) employ theparallel processing capability of Field Program-mable Gate Arrays (FPGAs) to obtain a highprocessing speed (Chang and Jen, 1999)(Dick andHarris, 2000). FPGAs combine the flexibility ofa general-purpose, programmable digital signalprocessor with the speed and density of a customhardware implementation. A digital processingimplementation into a target FPGA should be op-timized in terms of logic resources consumption toachieve a good performance and cost-effectiveness.

Digital Signal Processing mainly involves multi-ply operations which can be either fix or float-ing point, depending on the operand-range. Anoperand expressed in floating point format consist

0 This work was supported by the Universidad Nacional deMar del Plata (ING-15/G130) and the Agencia Nacionalde Promocion Cientıfica y Tecnologica (BID 1201/OC-AR2002).The authors are with the Department of Electronics,Universidad Nacional de Mar del Plata and CONICET,Argentina.

of a sign bit S, a biased exponent e of r bits andthe fractional f of n bits. These elements expressa number given by the following equation:

OP = (−1)S × 2e−bias × 1.f (1)

Floating point multiplications involve sign setting,e exponent addition (with bias correction), man-tissas product (including the leading bit) withrounding and normalization (IEEE754, 1985).The mantissas product is performed as an integermultiplication. This multiplication is often per-formed in a parallel way and is the most logicresources consumer operation.

The great consumption of resources leads to thefollowing problems:

• Greater FPGA are necessary.• More expensive FPGA are required.• Difficulty to implement several multipliers in

one FPGA.

Ligon et al assesed the practical implementationof several floating point multipliers in a XilinxXC4000 series, requiring bigger FPGAs to usemore than one multiplier in the same chip (Ligon

AADECA 2006 – XXº Congreso Argentino de Control Automático28 al 30 de Agosto de 2006 - Buenos Aires, Argentina.

Page 230: Tesis Funes Marcos

et al., 1998). Other authors studied and proposeddifferent parallel schemes of FPGA Floating-PointMultipliers in order to reduce logic consump-tion (Shirazi et al., 1995) (Jimenez et al., 1998.).These authors proposed custom formats and sev-eral methods prioritizing a reduced logic resourcesconsumption. Some other results were presentedby Aty et al over more recently FPGAs (Aty etal., 2003). Floating point multipliers based on Vir-tex II embedded parallel multipliers with severallevel of pipelining were presented by authors likeLee and Burgess (Lee and Burgess, 2002).

Other contributions proposed the use of sequentialmultipliers instead of standard parallel multipli-ers in order to reduce the area allocated on theFPGA, balancing the economy on resources withthe processing speed (Funes et al., 2002)(Funes etal., 2006). The performance achieved a substan-tial reduction in terms of logical blocks with anacceptable calculation rate.

In this paper, a comparative analysis of a se-quential scheme against other parallel ones is car-ried out. Section 3 deals with an evaluation con-cerned the logical resources consumption. Section4 presents a global index which includes both thelogical resources and the processing speed. Thecomparison of schemes from different authors isperformed using this index.

2. SEQUENTIAL FLOATING POINTMULTIPLIER

The sequential scheme (SM) like the Shift andAdd algorithm reduce the logic resources con-sumption, Fig.1 (Hennessy and Patterson, 1996).This scheme is based on a control stage and themultiplexer to execute the partial products. Inthis scheme, the partial product is added to thelast shifted result and is stored in the correspond-ing output registers.

ADD

X

Partial Product

shift

n

n

Y

carryn-1 0

nn

n

MUX

Controlnormalization

rounding

Fig. 1. Integer sequential multiplier.

The rounding mode implemented in this multi-plier is round to nearest even. This means alwaysround to nearest, and in the case of a tie roundto even. Then, when rounding, this system adds12 to the least significant bit of the desired result

2n bit product

N discarded bits

1 * * * * *

0 0 0 0 1 00...0

Overflow

* * * * * *

0 1 * * * *

0 0 0 0 0 10...0

No Overflow

0 1 * * * *

Round

Product

Truncation

1 * * * * *

Overflow

* * * * * * * * * *

No Overflow

No Round

n bit result

Normalize

Fig. 2. Rounding and normalization.

and then truncates by removing the bits to theright of the LSB. The rounding scheme is shownin Fig.2. Whenever the product result in the range4 ≥ product ≥ 2 a normalization is executed, withan appropiate adjustment of the exponent.

3. LOGICAL RESOURCES COMPARISON

The logic resources used by the SM are comparedwith those from parallel multipliers. The parallelmultipliers included in the comparison are: (a)Guild scheme with a high throughput due to theuse of parallelism and pipelining, (b) McCanny -McWhirter multiplication scheme with local com-munication between its basic cells, (c) Carry Saveunit with constant delay in the carry chains and(d) a Ripple Carry multiplication unit which takeadvantage of the fast carry logic nets provided bythe manufacturer (Acosta et al., 2000). Equations(2), (3), (4) and (5) show the logic resources con-sumption of the Guild, McCanny - McWhirter,Carry Save and Ripple Carry, respectively.

Guild(n, r) =625

n2 +2320

n + 8 + r (2)

McCanny(n, r) =8710

n− 39 + r (3)

CarrySave(n, r) = 7n− 27 + r (4)

RippleCarry(n, r) =7310

n− 32 + r (5)

The logic resources consumption of the sequentialscheme is expressed by Eq. (6):

SM(n, r) =

log2 n+1∑i=1

(n2−i)

2+

log2(n + 1)2

+n+172

+r

(6)

Eq. (6) can be reduced to eq.(7).

SM(n, r) =4932

n + 9 + r (7)

AADECA 2006 – XXº Congreso Argentino de Control Automático28 al 30 de Agosto de 2006 - Buenos Aires, Argentina.

Page 231: Tesis Funes Marcos

Figure 3 shows a comparison of the logic resourcesconsumption for the selected multipliers with atypical 8 bit exponent (r = 8). The horizontallines in the same figure indicates the amountof available basic cells in several Spartan FP-GAs of Xilinx Inc. (The Programable Logic DataBook, 2000). It can be observed the small of logicresources needed for the SM in contrast to theparallel multipliers applied to the floating pointmultiplication. The SM can be implemented inall platforms for any mantissa word length, whilefor other schemes the implementation is restrictedto larger FPGAs. Besides, the proposed schememake possible the implementation of several mul-tipliers in the same FPGA.

SM

Fig. 3. Logic consumption comparison.

4. PERFORMANCE EVALUATION

In order to evaluate the overall performance aperformance index p is defined as follows:

p =Processing Speed [Mflops]

Area(8)

where the Processing Speed is defined in Millionof Floating-Point Operations per second and theArea as the used fraction with respect to the totalresources available (Full FPGA = 1). This indexis useful in the selection of a multiplier for a givendesign because allows to compare several kinds ofmultipliers and wordlengths.

Figure 4 illustrates the p bar diagram correspond-ing to the Sequential Floating Point Multiplier(SM) and reported multipliers implemented in theXCS20 FPGA for several wordlengths.

For 18-bit format, the SM reduces at least fourtimes the logic area if compared to the reportsby other authors (Shirazi et al., 1995; Jimenez etal., 1998.; Aty et al., 2003; Ligon et al., 1998).Fig.4 shows that the best index score is reachedwith SM. Also, this figure depicts the performance

Wordlength Format

Per

form

ance

ShiraziJimenez

Aty

SM

Jimenez

SM

Ligon

SM

Fig. 4. Spartan multipliers performance

of 24-bit multipliers. Although the speed of themultiplier proposed by (Jimenez et al., 1998.)is similar to that of SM, logical resources getnotoriously reduced in the latter, thus renderinga significantly higher performance.

For 32-bit format, the SM utilizes 13% of theFPGA. The better performance index obtainedwith SM results from the differences of the de-signs: the 3-stage Booth-based multiplier pro-posed by (Ligon et al., 1998) is characterized byits fast speed, but it consumes 82% of the FPGA.If compared, despite being half slower, the SMconsumes 5 times less. The proper multiplier se-lection depends, in this case, on the type of projector FPGA size.

Figure 5 shows the performance index for themultipliers implemented in Virtex II FPGA. For18-bits format, the SM achieves superior perfor-mance to that proposed in the literature (Shiraziet al., 1995; Jimenez et al., 1998.; Aty et al., 2003).In addition to the decreasing level of logical re-sources employed, the proposed design is faster.For 32-bits, the difference is small and the per-formance index for the SM results from its lowlogical resource consumption. On the other handthe high performance of the 32-bit multiplier (Leeand Burgess, 2002) result from its high processingspeed. For these multipliers the applicability de-pends on the design constraints, i.e., less area orhigh speed.

5. CONCLUSION

This work compares the sequential multiplieragainst several parallel ones. The sequential mul-tiplier provides a meaningful area reduction withan acceptable calculation rate.

A performance index rendering an effective eval-uation of multipliers is also introduced in thispaper. The sequential multiplier is compared withthose reported by some authors and assessed in

AADECA 2006 – XXº Congreso Argentino de Control Automático28 al 30 de Agosto de 2006 - Buenos Aires, Argentina.

Page 232: Tesis Funes Marcos

Aty

SM

SMLee

Wordlength Format

Per

form

ance

Fig. 5. Virtex II multipliers performance

terms of its performance index. The multiplierhas demonstrated to be superior to some reportedmultipliers in term of this performance index.

REFERENCES

IEEE754, IEEE Std (1985). IEEE standard for bi-nary floating-point arithmetic. The Instituteof Electrical and Electronics Engineers Inc..New York.

Acosta, N., E. Todorovich, C. Collado andK. Larsen (2000). Multiplicadores paralelos:Estado del arte y analisis de su material-izacion en FPGA.. Proc. of VI WorkshopIberchip. pp. 158–168.

Aty, GH. A., Aziza I. Hussein, I.S. Ashourand M. Mones (2003). High-speed, area-efficient FPGA-based floating-point multi-plier. pp. 274–277.

Chang, T.-S. and C.-W. Jen (1999). Hardware-efficient implementations for discrete functiontransforms using LUT-based FPGAs. Com-puters and Digital Designs - IEE Proceedings146, Issue 6, 309.

Dick, Chris and Fred Harris (2000). FPGA sig-nal processing using sigma-delta modulation.IEEE SIGNAL PROCESSING MAGAZINEpp. 20–35.

Funes, M., D. Carrica and M. Benedetti (2002).Multiplicadores de punto flotante para estruc-turas FPGA. Proceedings XVIII CongresoArgentino de Control Automatico 1, 40.

Funes, M., D. Carrica and M. Benedetti (2006).Floating point multipliers with reduced fpgaarea. Proceedings II Southern ProgrammableLogic Conference ISBN 84-609-8998-4 1, 59–66.

Hayes, John P. (1996). Introduccion al DisenoLogico Digital. Addison-Wesley Iberoameri-cana. Wilmington, Delaware, E.U.A.

Hennessy, John L. and David Patterson (1996).Computer Architecture: A Quantitative Ap-proach. Morgan Kaufmann Publishers, Inc..

San Francisco, California ISBN: 1-55860-329-8.

Jimenez, Manuel A., Nayda G. Santiago and Di-ane T. Rover (1998.). Development of a scal-able FPGA-based floating point multiplier.Proceedings of the Fifth Canadian Workshopon Field-Programmable Devices pp. pp. 145 –150.

Lee, B. and N. Burgess (2002). Parameterisablefloating-point operations on FPGA. Confer-ence Record of the Thirty-Sixth AsilomarConference on Signals, Systems and Comput-ers pp. 1064–1068.

Ligon, III Walter B., Scott McMillan, Greg Monn,Kevin Schoonover, Fred Stivers and Keith D.Underwood (1998). A re-evaluation of thepracticality of floating-point operations onFPGAs. Proceedings of IEEE Symposium onFPGAs for Custom Computing Machinespp. 206–215.

Shirazi, Nabeel, Al Walters and Peter Athanas(1995). Quantitative analisis of floating pointarithmetic on FPGA based custom comput-ing machines. Proceedings. IEEE Symposiumon FPGAs for Custom Computing Machinespp. 155–162.

The Programable Logic Data Book (2000). Xilinx.

AADECA 2006 – XXº Congreso Argentino de Control Automático28 al 30 de Agosto de 2006 - Buenos Aires, Argentina.

Page 233: Tesis Funes Marcos

Novel FPGA based Floating Point Multiplier:Consecutive-Sums Sequential Multiplier

M. Funes, D. Carrica, M. Benedetti, P. Donato

Laboratorio de Instrumentacion y ControlUniversidad Nacional de Mar del Plata, Argentina

[email protected] ??

Abstract. FPGA based Floating Point Multipliers of Parallel type demandabundant logical resources. On the other hand, Sequential type, required re-duced logic resources but al the expense of a worse processing speed. This paperpresents a new sequential structure of floating-point multiplier with a betterprocessing speed keeping on a reduced number of resources.

1 INTRODUCTION

Many applications in Digital Signal Processing (DSP) employ the parallel processingcapability of Field Programmable Gate Arrays (FPGAs) to obtain a high processingspeed [1] [2]. FPGAs combine the flexibility of a general-purpose, programmable digitalsignal processor with the speed and density of a custom hardware implementation.However, a FPGA digital processing implementation presents a great logic resourcesconsumption which should be optimized because the great consumption leads to thefollowing problems:

– Greater FPGA and more expensive are necessary.– Difficulty to implement several multipliers in one FPGA.

Several authors studied and proposed different parallel schemes of FPGA Floating-Point Multipliers in order to reduce logic consumption [3] [4] [5]. On the other hand,a previous work proposed the use of sequential multipliers instead of standard par-allel multipliers in order to reduce logic consumption [6]. This article proposes theconsecutive-sums sequential multiplier which achieves more speed than the obtainedin [6] maintaining the same speed vs logic resources figure. The multiplier was imple-mented on several platforms and evaluated in terms of logical resources and speed.Finally, the proposed multiplier was compared with the previous sequential scheme.

?? This work was supported by the Universidad Nacional de Mar del Plata (ING-15/G130) andthe Agencia Nacional de Promocion Cientıfica y Tecnologica (BID 1201/OC-AR 2002).Theauthors are with the Department of Electronics, Universidad Nacional de Mar del Plataand CONICET, Argentina.

Page 234: Tesis Funes Marcos

2 Floating Point Multiplication

A floating point format consists of a sign bit s, a biased exponent e of r bits and thefractional f of n bits whose value is expresed by (1):

OP = (−1)S × 2e−bias × 1.f (1)

Floating point multiplications involve sign setting, e exponent addition (with biascorrection) and mantissa product (including the leading bit) [7]. The latter is per-formed as an integer multiplication and is the most logic resources consumer.

Exclusive - ORExponentAddition

MantissasProduct

RoundingBias

Adjustment

Exponent Mantissa

Ofl.

Normalization

Sign

Exponent MantissaSign

ExponentAdjustment

Fig. 1. Floating Point Multiplication.

Furthermore, the multiplication is often executed in parallel way, Eq.(2):

p = 1.fx × 1.fy =n∑

i=0

[yi × (1xn−1..x2x1x0)] · 2i (2)

where 1.fx = {xn..x1x0} and 1.fy = {yn · · · y1y0} are mantissas of n + 1 bits, and xn

and yn are both ’1’.

2.1 Consecutive Sum Sequential Multiplier

The utilization of a Sequential Multiplication (SM) to reduce the logic resources con-sumption of the mantissas product was proposed by Funes et al. [6]. This multiplicationexecutes the product using only one adder, Eq. (3):

p = 2n−1

[n−1∑i=0

yiX · 2i−n+1

](3)

Page 235: Tesis Funes Marcos

The processing speed of the SM depends on the clock frequency and the number ofiterations. The consecutive-sums sequential multiplier (SMSC) can reduce the numberof iterations by performing the addition of two subproducts at the same time, as shownin the Eq. (4).

p = 2n−1

n2−1∑j=0

(yjX22j−(n−1)+ yj+1X22j+1−(n−1))

(4)

Thus, the processing period is T = n2 · TCK , being TCK the clock period and n

the mantissa wordlength. The multiplier scheme of a fixed point SMSC multiplier isshown in Fig. 2.

n

ADD

Partial

2 bits shift

0n-12n-1 n

n-1

ADD

LSB

carry

carry

n

X

Y[odd bits]n

n/2

MUX

Control

Y[even bits]n

n/2

MUX

Product

Fig. 2. Consecutive sum sequential multiplier (SMSC).

2.2 Rounding and Normalization

The multiplier rounds the mantissas to +∞. This means always round to the theclosest to and no less than the infinitely precise result. Then, when rounding, thissystem adds 1

2 to the least significant bit of the desired result and then truncates byremoving the bits to the right of the LSB. There are three possible rounding operationswhich then occur. The first one is no rounding if the value of all the bits to the rightof the round bit is 0 or The second one is or the result is negative. To consider thefirst case, this operation can be computed storing in a register if any of the discardedbits was a ’1’. If the register value is 0 the the result of the mantissas product is justthe truncation of the least significant bits. The second case is after the computationof the result sign. The other two rounding operations depends on the most significantbit of this product as seen in Fig. 3.

Page 236: Tesis Funes Marcos

2n bits product

n bits discarted

1 * * * * *

0 0 0 0 100...0

Overflow

* * * * * *

No Overflow

0 1 * * * *

Rounding

Product

Truncation

1 * * * * *

* * * * * * * * * *

No rounding

n bit product

Normalization

0 0 0 0 0 10...0+

1 * * * * *

No Overflow

Rounding

Fig. 3. Rounding and normalization.

When rounding, the system rounds by default in the last iteration and check theresult. If the result is in the range 1 ≤ p ≤ 2, the result is correctly rounded. But if theresult is in the range 4 ≥ rounded product ≥ 2, a normalization shift of 1 to the right isthen necessary to restore the rounded product to the range 2 ≥ rounded product ≥ 1,with a proper adjustment of the exponent. After the normalization, there are two casesin which the rounded results is correct and two other that need a correction.

The first case occurs when the LSB of the truncated product of n-th iteration was a”1”, because the 2−n addition propagates to the nearest significant bits. Consequentlythis is equivalent to add 2−n to a non-rounded result after normalization. The othercase occurs when the LSB of the truncated result was a ”0”, because the 2−n additiondoesn’t propagates to the nearest significant bits. The result after normalization isequivalent to a truncation. Then, a new rounding operation is required. The Table 1shows an example of the second case.

Truncated result (TR) TR + 2−n TR normalized TR expected Action

10.*****00 10.*****01 1.*****0 1.*****1 round10.*****01 10.*****10 1.*****1 1.*****1 none10.*****10 10.*****11 1.*****1 1.*****0 round10.*****11 10.*****00 1.*****0 1.*****0 none

Table 1. Rounding error of the normalized product.

Fig. 4 shows the mantissas product with the rounding and normalization scheme.In this figure it can be observed the control unit that performs the multiplicationiterations besides the rounding and normalization tasks.

Page 237: Tesis Funes Marcos

LSB

n

ADD

Partial Product

2 bits shift

0nn+1

n-1ADD

carry

carry

n

X

Y[odd bits]n

n/2

MUX

Control

Y[even bits]n

n/2

MUX

Default rounding

Result0nn+1

Post-normalization rounding

Exponent correction

1 bit shift

Normalization

Sign

discarded bit

Fig. 4. Mantissa product scheme.

3 Experimental results

The proposed multiplier was implemented in VHDL [8] [9]. The mantissa wordlengthwas parameterized while the exponent was fixed (e = 8). The design evaluated interms of logical resources and Processing Speed (PS) was implemented on two Xilinxplatforms: Spartan and Virtex. The evaluation of the proposal in the several FPGAsallows the exploration of the benefits of the different FPGA series to improve a betterperformance.

In the Spartan series, the basic cell of logic is denominated Configurable Logic Block(CLB), each of one contains two 4-input Function generators and two Flip Flops. TheVirtex series rename the CLB as a slice and each CLB contains two slices. In this work,the logic resources consumption is unified into an unique unit denominated Basic Cell,witch contains the same logic as a Spartan CLB.

The processing speed is a function of the number of iterations of the multiplierand the maximum clock frequency. The maximum clock frequency is limited by thepropagation delay of the critical path.

In order to evaluate the performance of the proposed scheme, the SMSC float-ing point multiplier was compared with a SM scheme with the same rounding andnormalization scheme. Figs. 5 and 6 present the logic resources and processing speedcomparison for a Spartan and Virtex series respectively. In this figures, it can be ob-served the relation between the processing speed obtained in contrast with the logicresources consumed.

Page 238: Tesis Funes Marcos

5 10 15 20 25 300

5

10

15

n

PS

[Mflo

p]

5 10 15 20 25 300

20

40

60

80

100

120

n

CLB

Experimental results SMSCExperimental results SM

Fig. 5. Spartan series implementation, comparison

5 10 15 20 25 300

5

10

15

20

25

30

n

PS

[Mflo

p]

5 10 15 20 25 300

20

40

60

80

100

120

n

Bas

ic c

ells

Experimental results SMSCExperimental results SM

Fig. 6. Virtex series implementation, comparison

Page 239: Tesis Funes Marcos

To evaluate the processing speed-logic consumption relation, Figs. 7 and 8 showthe performance of the proposal vs. SM based scheme for the Spartan (XCS20) andVirtex (XV300) implementation. The performance index p is defined as follows:

p =Processing Speed [Mflops]

Area(5)

where the Processing Speed is expressed in Million of Floating-Point Operations persecond and the Area is the fraction used resources vs. total resources of a FPGA.

15 20 25 30 35 400

10

20

30

40

50

60

70

80

90

100

n

p

Experimental results SMSCExperimental results SM

Fig. 7. Spartan series implementation, performance index

These figures show that the performance is as good as the SM based scheme, withthe benefits of a better processing speed.

4 Conclusion

This work addresses a novel floating-point multiplier witch can be easily implementedon several FPGA series. The proposed design, based on a consecutive sums sequentialmultiplication, provides an optimization in the processing speed with the goal of areduced logic resources consumption. The performance obtained was experimentallyassessed, achieving a substantial increment in the calculation rate.

Page 240: Tesis Funes Marcos

5 10 15 20 25 300

200

400

600

800

1000

1200

1400

1600

1800

2000

n

Per

form

ance

inde

xExperimental results SMSCExperimental results SM

Fig. 8. Virtex series implementation, performance index

References

1. Chang, T.S., Jen, C.W.: Hardware-efficient implementations for discrete function trans-forms using LUT-based FPGAs. Computers and Digital Designs - IEE Proceedings 146,Issue 6 (1999) 309

2. Dick, C., Harris, F.: FPGA signal processing using sigma-delta modulation. IEEE SIG-NAL PROCESSING MAGAZINE (2000) 20–35

3. Shirazi, N., Walters, A., Athanas, P.: Quantitative analisis of floating point arithmeticon FPGA based custom computing machines. Proceedings. IEEE Symposium on FPGAsfor Custom Computing Machines (1995) 155–162

4. Jimenez, M.A., Santiago, N.G., Rover, D.T.: Development of a scalable FPGA-basedfloating point multiplier. Proceedings of the Fifth Canadian Workshop on Field-Programmable Devices (1998.) pp. 145 – 150

5. Aty, G.A., Hussein, A.I., Ashour, I., Mones, M.: High-speed, area-efficient FPGA-basedfloating-point multiplier. (2003) 274–277

6. Funes, M., Carrica, D., Benedetti, M.: Floating point multipliers with reduced fpga area.Proceedings II Southern Programmable Logic Conference ISBN 84-609-8998-4 1 (2006)59–66

7. 754, I.S.: IEEE standard for binary floating-point arithmetic. The Institute of Electricaland Electronics Engineers Inc., New York (1985)

8. Villar, E., Teres, L., Olcoz, S., Torroja, Y.: VHDL Lenguaje Estandar de DisenoElectronico. McGraw Hill, Madrid (1997)

9. Ghosh, S.: Hardware Description Languages Concepts and Principles. IEEE Press, 445Hoes Lane, P.O. Box 1331 Piscataway, NJ 08855-1331 (1999)

Page 241: Tesis Funes Marcos

10. Ligon, I.W.B., McMillan, S., Monn, G., Schoonover, K., Stivers, F., Underwood, K.D.:A re-evaluation of the practicality of floating-point operations on FPGAs. Proceedingsof IEEE Symposium on FPGAs for Custom Computing Machines (1998) 206–215

11. Lee, B., Burgess, N.: Parameterisable floating-point operations on FPGA. ConferenceRecord of the Thirty-Sixth Asilomar Conference on Signals, Systems and Computers(2002) 1064–1068

Page 242: Tesis Funes Marcos

120 IEEE/ASME TRANSACTIONS ON MECHATRONICS, VOL. 8, NO. 1, MARCH 2003

Novel Stepper Motor Controller Based on FPGAHardware Implementation

Daniel Carrica, Senior Member, IEEE, Marcos A. Funes, and Sergio A. González, Member, IEEE

Abstract—This paper proposes a novel stepper motor controllerbased on field programable gate arrays, showing a remarkable per-formance. The system provides a combination between a novel al-gorithm and programmable logic to achieve both high speed andhigh precision on a compact hardware.

Index Terms—Field programable gate arrays (FPGA), motioncontrol, stepper motor.

I. INTRODUCTION

I N HIGH precision stepper motor applications, it is neces-sary to use motors with small steps whose size is imposed

by the required resolution. Another alternative is the techniqueof microstepping, where the motor step size is further reducedby means of control. As microsteps are related to very little dis-placements, a great quantity of microsteps are required to getthe total displacement. Total displacement should be executedin an acceptable time. As a consequence, the time between mi-crosteps should be reduced. A high-speed data transmission be-tween controller and driver is mandatory when indexing in mi-crostepping mode of operation.

Furthermore, open loop applications are much less expensivethan close loop ones due to encoders. If open loop is chosen,velocity profiles have to be used in order to avoid the step loseeffect.

A general system for the commanding of a stepper motor isshown in Fig. 1. There are three functions: 1) the velocity pro-file generation block; 2) the indexer; and 3) the power drivers.Blocks (1) and (2) are embedded in what we named controller.

After velocity profiles are generated, they have to be trans-lated into pulse intervals by the indexer. Each index pulsemeans that the motor must increment its rotor position in onestep/microstep, hence the name indexer. This block functionsas a velocity-to-time translator. This block is unique to thecommanding of incremental motion devices since other types

Manuscript received November 26, 2001; revised October 16, 2002. Recom-mended by Technical Editor K. Ohnishi. This work was supported in part by theUniversidad Nacional de Mar del Plata under Grant ING-15/G064 and in partby the Agencia Nacional de Promoción Científica y Tecnológica under GrantBID 1201/OC-AR 2000.

D. Carrica is with the Department of Electronics, National University of Mardel Plata, Mar del Plata, Argentina. He is also with He is also with the CentroAustral de Investigaciones Científicas (CADIC), Tierra del Fuego, Argentina.

M. A. Funes is with the Department of Electronics, National University ofMar del Plata, Mar del Plata, Argentina.

S.A. González is with the Laboratorio de Instrumentación y Control, De-partment of Electronics, National University of Mar del Plata, Mar del PlataArgentina. He is also with the Comision de Investigaciones Cientificas (CIC),Buenos Aires, Argentina (e-mail: [email protected]).

Digital Object Identifier 10.1109/TMECH.2003.809160

Fig. 1. Complete control system.

of motors can be commanded just by applying the velocityprofile in form of current or voltage [1], [2].

The implementation of the controller of Fig. 1 can be per-formed by two alternatives: off-line or on-line schemes.

A. Off-Line

In the off-line schemes the timing of the steps/microsteps iscalculated prior the movement [3], [4]. The velocity profile andthe time space between pulses are calculated and then storedin some kind of memory media bundled into the hardware, i.e.,ROM or even hard drives.

A disadvantage of these schemes is that they require an im-portant hardware volume, composed of memories and timers.This volume is proportional to the quantity of motors and theextension and precision of displacements.

B. On-Line

An intelligent system carries out the operation of calculatingthe index pulses through a time lagging sequence generation al-gorithm. In Fig. 2 a flowchart of one basic scheme can be seen.This flowchart contains two main blocks: construction,where the velocity profile is actually developed, and cal-culation, where the time between the current step and the next iscalculated. That is, is the velocity profile generation and

is the indexer of Fig. 1. Often a common block is sharedbecause a single equation computes both the velocity profile andthe . For example, (1) and (2) express a typical algorithmfor a trapezoidal profile [5].

(1)step

(2)

where is the resulting speed, is the maximum speedof the motor, is the total number of steps or microsteps,isthe acceleration of the trapezoidal profile and is the timeof the -th step.

1083-4435/03$17.00 © 2003 IEEE

Page 243: Tesis Funes Marcos

CARRICA et al.: NOVEL STEPPER MOTOR CONTROLLER BASED ON FPGA HARDWARE 121

Fig. 2. On-line algorithms.

These schemes as well as the off-line ones make use of timersfor obtaining the indexed pulses. Since it is necessary one timerper motor, this approach is often discouraged when multiple mo-tors have to be commanded by a single processor.

Another important disadvantage is the computing time, re-quired to compute (1). imposes a practical limit to the speed.Moreover, not only but the timer resolution, , affect themaximum speed as in (3)

(3)

Current timer resolutions are small enough to discard theat the equation. Therefore, (3) turns into (4).

(4)

Standard algorithms fail to reach high speeds, mainly becausethe computing time, . In order to resolve the goal is toprovide a new algorithm with a more effective step generationprocedure without timers.

II. PROPOSEDALGORITHM

The proposed algorithm can be explained as follows. In orderto estimate the time , it is assumed that is times

, since it is an accurate way of measuring time without usingtimers. Therefore, the proposed algorithm has to do the fol-lowing functions during each iteration:

1) Let

Fig. 3. Flow chart of the algorithm.

2) Assume

(5)

where is a positive integer number.3) Verify if assumed allows the wished . Thus, it

means

(6)

where is the reference velocity at theth step.4) If the verification is true, then execute the new step/mi-

crostep. If not, then increment and repeat the process. (points2, 3, and 4)

(7)

From (5) it can be seen that the resolution of is . Theequality in(6) is not possible because of this resolution. Equa-tion (6) becomes the comparison stated in(8)

(8)

Eliminating the division in (8) is mandatory for reducing theiteration time. Therefore a simple contraction as in (9) is pre-ferred

(9)

The new algorithm is based on (5), (7), and (9).in (5) hasthe same meaning as in (4), but with a considerable smaller mag-nitude, since the computations here are very straightforward. It

Page 244: Tesis Funes Marcos

122 IEEE/ASME TRANSACTIONS ON MECHATRONICS, VOL. 8, NO. 1, MARCH 2003

Fig. 4. Intended velocity profile.

is experimentaly demonstrated that aten times less than inconventional algorithms is achieved.

To conclude, the algorithm consists basically on a periodicaccumulative sum until the intended velocity is reached. Fig. 3shows the flowchart of a system that implements (5), (7) and(9). The velocity profiles block was previously executed.

From (5), resolution of the new algorithm is sinceis an integer. resolution in the new algorithm arises to a

velocity quantization problem because velocity is the inverse of, (6). Since the term is a multiple of and ,

it turns out that the speed commanded has the following char-acteristics:

......

(10)

As an example, Fig. 4 shows a trapezoidal profile which startsat and has a maximum . In order to keep track of theintended speed (in discontinuous line), the system commands aninitial value of . This results in an initial speed ofwhich is the closest possible speed to the intended initial speed,

. At , changes to 6. As a consequence a higher speedof occurs. At , produces a commanded speedof . It then follows that at time the commanding speedis which equals the intended velocity profile.

The quantification effect is more remarkable at higher speedswhen times are smaller as . The effect can also be ex-plained since intermediate speeds cannot take place between

and , or between and , nor amongand , etc.

Fig. 5. FPGA based control system.

Therefore, an algorithm has been developed which requiresneither timers nor lookup tables and can work for much higherspeeds. It’s disadvantage is the quantification effect which de-pends on the magnitude of . With current DSP technology, aminimun s is obtainable. This magnitude producesa quantification level of 2000 steps at speeds arround 15 000steps/s, which shows the importance of the problem.

III. H ARDWARE IMPLEMENTATION

In order to reduce the computing time, a hardware imple-mentation is proposed. The algorithm presented in Section II issimple enough to be executed by a custom hardware. Hardwareimplementation permits multiple parallel tasks, thus, providingan effective way of implementing true parallelism which allowsa great reduction of computing time because operations such asthe reference profile generation, multipication and indexationcan be executed in separate blocks and can run independentlyones of the others.

Equations (5) and (9) are replaced by (11) . Although, thismeans no changes in the algorithm, it reduces the pair ofmultiplications to only one. This fact allows an efficient hard-ware implementation without performance demerit. Hardwareimplementation of (5) and (9) is presented in Fig. 5, wherethe block diagram of the controller is shown. The COUNTER,wich counts clock periods, represents the execution of (5).

The hardware implementation of (11) is carried out by theMULTIPLIER and the COMPARATOR

(11)

When the inequation is satisfied, a new step is commanded.The signal is then fed to the DRIVER INTERFACE, which com-mands the pulses to the driver of each motor phase. Fig. 5 showsa four phase motor.

The clock period of hardware implementation is equiva-lent to the computing time in the software execution of the algo-rithm of Section II. The clock period defines the time resolu-tion of the controller. As can be well reduced in hardware ap-

Page 245: Tesis Funes Marcos

CARRICA et al.: NOVEL STEPPER MOTOR CONTROLLER BASED ON FPGA HARDWARE 123

Fig. 6. Position and velocity profile with the FPGA based system.

proach, the quantizacion effect on the mechanical velocity willbe negligible.

Standard implementation of a multiplier is accomplish by acombinatorial structure. This approach is very good regardingthe time because it presents a minimum delay imposed bythe logic gates, but it involves a great number of logic resources,which increase proportionally with the multiplier word length.As an example, a 16 16 bits product requires the 90% of a10 000 logic gates FPGA [6], [7]. In order to overcome theFPGA area problem, a sequential arquitecture for the multiplieris proposed [8], [9]. This approach allows an effective area re-duction of 10 times, but with a greater, i.e., 16 clock pulsesfor a 16-bit word multiplier. However, with a 40 MHz clock,time is only 400 ns which remains neglicted for system perfor-mance. As a consequence, a sequential multiplier was adopted,which permited the implementation of the algorithm in a FPGAof 6000 logic gates.

A trapezoidal profile is generated, with several parameters,such as acceleration, minimum and maximum speed, and stepquantity. The controller decides how the profile must be basedon these parameters, and generates a reference profile to drivethe stepper motor.

As a conclusion, a new controller based on a novel algorithmimplemented by hardware was proposed. The new system pro-vides a good combination to achieve both high speed and highprecision motion on a compact hardware. Furthermore, this con-troller can easily drive full, half and micro-step mode applica-tions due to the flexibility and the reduced computing time withthe FPGA implementation.

IV. EXPERIMENTAL RESULTS

To evaluate the performance of the system, the developed al-gorithm was implemented in a Xilinx FPGA XC4006–3. Thisdevice can run at synchronous system clock rates up to 80 MHzand has a capacity 6000 logic gates. A hybrid stepping motorwas used in the experiments. Motor characteristics: 400 step/rev,inertial moment 1310 kg m , 10 N m. Noaditional load was connected.

Fig. 7. Velocity profile with the FPGA based system.

The position measures were obtained through an incre-mental optical encoder ELAP-E521 with a resolution of 1024pulses/rev whose inertial moment is 10 kg m . It wascoupled through an HELICAL-WA25 with an inertial momentof 10 kg m .

The position curve was obtained by reading the encodersignal with a high resolution timer. The position was off linederived to obtain the speed profile.

The muliplier works with a 40-MHz clock rate, which yielda multiplication time of 400 ns. ns was adopted, wichremains negligible in relation to the motor speed.

The stepper motor must develop a 12 000 step displacementfollowing a reference trapezoidal profile with charasteristics:

stepss, stepss and a max accel-eration stepss .

The resultant speed and position profiles can be seen in Fig. 6.The low time allows an almost continuous profile and veryhigh speeds, higher than those generated by standard softwarealgorithms. Due to the characteristic of the profile, the steppermotor passes through resonance area [5]. This effect can be ob-served at low speeds in the profiles.

Fig. 7 shows a complete profile obtained at high speeds withfull step. Note the continuity at all the effective speed range.

Fig. 8 shows a complete profile obtained for a microstepingapplication. The stepper motor used in this experiment wasa SLO-SYN KML093F14C5 whose characteristics are: 200step/rev, holding torque 816 N cm and a rotor inertia3.32 kg cm . The position values were obtained throughan optical incremental encoder with a resolution of 500pulses/rev. The microstep drive module used was an SLO-SYNMD808, configured to produce 2000 pulses/rev. As a con-sequence, the system must generate a high velocity profilewith stepss, stepss and a maxacceleration stepss . The time adopted forthe application was 400 ns in order to reduce the speed jumpsat to 1000 steps/s, so the speed jump remains under 5%of . This effect can be observed as a ripple component atthe top of the profile.

Page 246: Tesis Funes Marcos

124 IEEE/ASME TRANSACTIONS ON MECHATRONICS, VOL. 8, NO. 1, MARCH 2003

Fig. 8. Velocity profile for microsteping application.

The system achieved very high speed that was unreachablewith standard algorithms executed by a processor. Furthermorethe new controller does not require the timers, wich are necesaryin conventional systems, and the processor was replaced by aFPGA of similar size and equivalent cost.

V. CONCLUSION

A novel algorithm with reduced quantity of operations wasintroduced. This algorithm implemented on FPGA allows a sub-stantial decrease of the equivalent processing time developed byclassic velocity controllers. As a consecuence, the stepper motorcan reach very high speeds never obtained with standard algo-rithm based systems.

Due to the system architecture, one FPGA can drive severalstepper motors simultaneously without increasing the procesingtime. It can drive three stepper motors with current 6000 gatesFPGAs. This advantage make the system very convenient sinceit allows the increase of the number of motors, simply using alarger FPGA.

REFERENCES

[1] B. K. Bose, Ed.,Modern Power Electronics. New York: IEEE Press,1992.

[2] J. V. Wyk, H. Skudelny, and A. Müller-Hellmann, “Power electronics,control of the electromechanical energy conversion process and someapplications,”Proc. Inst. Elect. Eng., vol. 133, no. 6, pp. 369–399, Nov.1986.

[3] J. Crook, “Low cost microprocessor based speed control ,” inProc. 13thAnnu. Symp. Incremental Motion Control System and Devices, P. B. Kuo,Ed., Champaign, IL, May 1984, pp. 25–30.

[4] Z. Kang and S. Qu, “A new methodology for using single micropro-cessor to control DC stepper motors,” inProc. IEEE Int. Conf. IndustrialTechnology, Dec. 1994, pp. 543–545.

[5] T. Kenjo and A. Sugawara, “Stepping motors and their micropro-cessor controls,” inSer. Monographs in Electrical and ElectronicEngineering. Oxford, U.K.: Oxford Univ. Press, 1994.

[6] The Programmable Logic Data Book, Xilinx, San Jose, CA, 1999.[7] (2000) Xilinx Core Generator Tools . Xilinx. [Online]. Available:

http://www.xilinx.com/products/logicore/coregen/index.htm[8] E. Boemo, E. Juárez, and J. Meneses, “Taxonomía de multiplicadores,”

in Proc. 8th DCIS Conf., 1993, pp. 185–190.[9] J. L. Hennessy and D. Patterson,Computer Architecture: A Quantitative

Approach. San Francisco, CA: Morgan Kaufmann, 1996.

Daniel Carrica (M’84–SM’00) was born in Do-lores, Argentina, in 1958. He received the engineerdegree from the National University of Mar del Plata(UNMdP), Mar del Plata, Argentina, in 1984 andthe M.Sc. degree in electronics from the UniversidadPolitécnica de Madrid, Madrid, Spain, in 1992.

In 1984, he joined the Department of Electronics,National University of Mar del Plata (UNMdP), asa Research Assistant. From 1990 to 1991, he was anAssociate Scientist at the European Organization forNuclear Research (CERN), Geneva, Switzerland.

From 1994 to 1996, he was Head of the Department of Electronics, UNMdPwhere he is currently an Associate Professor. He is also with the Centro Australde Investigaciones Científicas (CADIC), Tierra del Fuego, Argentina. Hiscurrent research interests include motion control and power electronics.

Professor Carrica is a Vice President of the Joint Chapter of Argentina IEEESection.

Marcos A. Funes was born in Mar del Plata,Argentina in 1974. In 1999, he received his degreein electronic engineering from the UniversidadNacional de Mar del Plata (UNMdP), Argentina andjoined the Laboratorio de Instrumentación y Control,(UNMdP) as research assistant.

Since 2000, he is Assistant Professor and is cur-rently working toward his Ph.D degree at UNMdP.His current research interests include high densityprogrammable logic devices and digital signalprocessing.

Sergio A. González(M’01) was born in Mar delPlata, Argentina, in 1972. He obtained the electronicengineering degree from the National University ofMar del Plata (UNMdP), Mar del Plata, Argentina,in 1999, where he is currently working toward thePh.D. degree.

Since 1999, he has been an Assistant Professorof control systems at the School of Engineering,UNMdP. Currently, he is a Research Assistant at theLaboratorio de Instrumentación y Control, UNMdP.His research interests include hardware design,

digital signal processing, motion control and electromechanical systemsdynamics.

Mr. González is a Member of the International Federation of Automatic Con-trol.

Page 247: Tesis Funes Marcos

FPGA based stepper motor controller

Sergio A. Gonzalez1, Marcos A. Funes1,2, and Daniel Carrica1,2

1 Laboratorio de Instrumentacion y ControlUniversidad Nacional de Mar del Plata, Argentina

[email protected] CONICET⋆⋆

Abstract. This paper proposes a novel stepper motor controller basedon Field Programable Gate Arrays, showing a remarkable performance.The system provides a combination between a novel algorithm developedby the authors in a previous work and programmable logic to achieveboth high speed and high precision on a compact hardware.

1 Introduction

Several motion control applications in which a load must be moved preciselyinvolve high speed positioning of stepper motors. When multiple stepper motorsmust be controlled, conventional control algorithms fail to produce a high speedstep rate. This problem arose in the simultaneous control and velocity profilegeneration of up to 6 stepper motors in the alignment system of the CERNCompact Linear Collider (CLIC) application [1–3]. The precise positioning of themotors require the use of velocity profiles, which must be adjusted to a certainperformance in speed and acceleration as well as the dynamics of the system inorder to guarantee motion without step-loss. An intelligent system carries outthe operation of calculating the index pulses through a time lagging sequencegeneration algorithm. For example, (1) and (2) express a typical algorithm for atrapezoidal profile [4].

∆t(k) =2√

V 2max − 2 (N − k − 1) a +

√V 2

max − 2 (N − 1) a(1)

V(k) =1 step∆t(k)

(2)

where V(k) is the resulting speed, Vmax is the maximum speed of the motor, N isthe total number of steps or microsteps, a is the acceleration of the trapezoidalprofile and ∆t(k) is the time of the k-th step.

⋆⋆ This work was supported by the Universidad Nacional de Mar del Plata (ING-15/G130) and the Agencia Nacional de Promocion Cientıfica y Tecnologica (BID1201/OC-AR 2002).The authors are with the Department of Electronics, Universi-dad Nacional de Mar del Plata and CONICET, Argentina.

Page 248: Tesis Funes Marcos

2 Sergio A. Gonzalez, Marcos A. Funes, and Daniel Carrica

These schemes as well as the off-line ones make use of timers for obtaining theindexed pulses. Since it is necessary one timer per motor, this approach is oftendiscouraged when multiple motors have to be commanded by a single processor.

Another important disadvantage is the computing time Tc, required to com-pute (1). Tc imposes a practical limit to the speed. Moreover, not only Tc butthe timer resolution, Tr, affect the maximum speed as in (3):

Vmax =1

Tr + Tc(3)

Current timer resolutions are small enough to discard the Tr at the equation.Therefore, (3) turns into (4).

Vmax=1Tc

(4)

Standard algorithms fail to reach high speeds, mainly because the computingtime, Tc. In order to resolve Vmax the goal is to provide a new algorithm with amore effective step generation procedure without timers.

2 Proposed algorithm

The proposed algorithm was introduced in a previous work [5]. The algorithmconsists basically on a periodic accumulative sum until the intended velocityis reached. Fig. 1 shows the basic flowchart of a system that implements thisalgorithm.

From Fig. 1, ∆t(k) resolution of the new algorithm is Tc since nk is an in-teger. ∆t(k) resolution in the new algorithm arises to a velocity quantizationproblem because velocity is the inverse of ∆t(k). Since the term ∆t(k) is a mul-tiple of Tc and nk > 1, it turns out that the speed commanded has the followingcharacteristics:

Vk(n) =

1∆tk

=1

nk · Tc=

Vmax; nk = 1Vmax

2 ; nk = 2...

...Vmax

K ; nk = K

(5)

As an example, Fig. 2 shows a trapezoidal profile which starts at Vmin and hasa maximum Vmax. In order to keep track of the intended speed (in discontinuousline), the system commands an initial value of nk = 7. This results in an initialspeed of Vmax/7 which is the closest possible speed to the intended initial speed,Vmin. At t1, nk changes to 6. As a consequence a higher speed of Vmax/6 occurs.At t2, nk = 5 produces a commanded speed of Vmax/5. It then follows thatat time t6 the commanding speed is Vmax which equals the intended velocityprofile.

The quantification effect is more remarkable at higher speeds when ∆t(k)

times are smaller as Tc. The effect can also be explained since intermediate

Page 249: Tesis Funes Marcos

FPGA based stepper motor controller 3

t( )=n Tk k c

t( )k

th

D

D

Fig. 1. Flow chart of the algorithm

speeds cannot take place between Vmax and Vmax/2. Neither between Vmax/2and Vmax/3, nor among Vmax/3 and Vmax/4, etc.

Therefore, the algorithm developed does not require neither timers nor look-up tables and can work at higher speeds. It’s disadvantage is the quantificationeffect which depends on the magnitude of Tc. With current DSP technology, aminimum Tc = 6µs is obtainable. This Tc magnitude produces a quantificationlevel of 2000 steps at speeds around 15000 steps

s , which shows the importance ofthe problem.

3 Hardware implementation

In order to reduce the computing time, a hardware implementation is proposed.The algorithm presented in Section 2 is simple enough to be executed by a cus-tom hardware. Hardware implementation permits multiple parallel tasks, thus,providing an effective way of implementing true parallelism which allows a greatreduction of computing time because operations such as the reference profile

Page 250: Tesis Funes Marcos

4 Sergio A. Gonzalez, Marcos A. Funes, and Daniel Carrica

Fig. 2. Intended velocity profile

generation, multiplication and indexation can be executed in separate blocksand can run independently ones of the others.

The equations of Fig. 1 are replaced by (6). Although, this means no changesin the algorithm, it reduces the pair of multiplications to only one. This fact al-lows an efficient hardware implementation without performance demerit. Hard-ware implementation of Fig. 1 is presented in Fig. 3, where the block diagramof the controller is shown.

The hardware implementation of (6) is carried out by the MULTIPLIER andthe COMPARATOR.

VR · nk > 1Tc

(6)

When the inequality is satisfied, a new step is commanded. The signal is thenfed to the DRIVER INTERFACE, which commands the pulses to the driver ofeach motor phase. Fig. 3 shows a 4 phases motor.

The clock period Tc of hardware implementation is equivalent to the com-puting time in the software execution of the algorithm of Section 2. The clock

Page 251: Tesis Funes Marcos

FPGA based stepper motor controller 5

period Tc defines the time resolution of the controller. As Tc can be well reducedin hardware approach, the quantization effect on the mechanical velocity will benegligible.

Standard implementation of a multiplier is accomplish by a combinatorialstructure. This approach is very good regarding the Tc time because it presentsa minimum delay imposed by the logic gates, but it involves a great number oflogic resources, which increase proportionally with the multiplier word length. Asan example, a 16×16 bits product requires the 45% of a 20000 logic gates FPGA[6] [7]. In order to overcome the FPGA area problem, a sequential architecture forthe multiplier is proposed [8] [9]. A sequential multiplier allows an effective areareduction of 10 times, but with a greater Tc, i.e. 16 clock pulses for a 16-bit wordmultiplier. However, a second approach using a fast scheme of the sequentialmultiplication (8 pulses per multiplication) achieve a Tc time of only 200 nswith a 40MHz clock. As a consequence, the quantization problem is minimizedand with the current scheme high speed profiles can be achieved to performmicrostepping applications. Also, the proposed scheme require the 12% of thelogic area allowing the implementation of several multipliers in the same FPGA.

A trapezoidal profile is generated, with several parameters, such as acceler-ation, minimum and maximum speed, and step quantity. The controller decideshow the profile must be based on these parameters, and generates a referenceprofile to drive the stepper motor.

Reference velocityprofile generator

MULTIPLIER

DRIVERINTERFACE

VRnk

COMPARATOR

V 1/TR Cx nk ³

COUNTER

ClockTc

PowerDrivers

Steppermotor

VR

x nk

16

1616

16

1/TC

Fig. 3. FPGA based control system

Page 252: Tesis Funes Marcos

6 Sergio A. Gonzalez, Marcos A. Funes, and Daniel Carrica

As a conclusion, a new controller based on a novel algorithm implemented byhardware was proposed. The new system provides a good combination to achieveboth high speed and high precision motion on a compact hardware. Furthermore,this controller can easily drive full, half and micro-step mode applications due tothe flexibility and the reduced computing time with the FPGA implementation.

4 Experimental results

The alignment control system of the CERN Compact Linear Collider (CLIC),must regulate the position of the girders and quadruples with a 10µm precision,so that the trajectory of the beam evolves aligned with the axial axis of cavitiesand quadruples, despite the multiple perturbations that affect the position. Thedisplacement of girders and quadruples is performed through incremental motionmotors. The girders that support the cavities are moved by three motors, whilethe quadruples are moved by five motors, all coupled by ball and socket joints,as schematically shown in Fig. 4. In the 4 sections, there is a grand total of70 motors along a distance of 5.6m. Stepper motors are suitable for precisepositioning in CLIC since motors with small step size are commonly available.The developed algorithm was tested on a prototype hardware where 6 motorsmust be controlled simultaneously, it has communication capacity with otherhierarchic systems in order to produce the complete motion profile through allthe sections.

vertical

motor

girder

horizontal

motor

x

z

vertical

motor

vertical

motor

vertical

motor

vertical

motor

horizontal

motor

horizontal

motor

y2

y1

quadrupole

: pivot

Fig. 4. Motor layout in the girders and in the quadruples

To evaluate the performance of the system, the developed algorithm wasimplemented in a Xilinx FPGA XCS20-4. This device can run at synchronoussystem clock rates up to 80MHz and has a capacity 10000 logic gates. A hybridstepping motor was used in the experiments. Motor characteristics: 400 step

rev ,inertial moment 13 · 10−7 kg m2, Tret = 33 · 10−7 N m. No additional load wasconnected.

Page 253: Tesis Funes Marcos

FPGA based stepper motor controller 7

1 2 3 4 5 60

50

100

150

Position profile

Pos

ition

, [R

EV

]

Time, [s]

1 2 3 4 5 60

20

40

60

80

Velocity profile

Spe

ed, [

RE

V/s

]

Time, [s]

Fig. 5. Position and velocity profile with the FPGA based system

The position measures were obtained through an incremental optical encoderELAP-E521 with a resolution of 1024 pulses per revolution whose inertial mo-ment is 2.5 · 10−6 kg m2. It was coupled through an HELICAL-WA25 with aninertial moment of 2.3 · 10−6 kg m2 .

The position curve was obtained by reading the encoder signal with a highresolution timer. The position was off line derived to obtain the speed profile.

The multiplier works with a 40MHz clock rate, which yield a multiplicationtime of 200 ns. was adopted, which remains negligible in relation to the motorspeed.

The stepper motor must develop a 60000 step displacement following a refer-ence trapezoidal profile with characteristics: Vmin = 500 steps

s , Vmax = 36000 stepss

and a max acceleration amax = 16000 stepss2 .

The resultant speed and position profiles can be seen in Fig. 5. The lowTc time allows an almost continuous profile and very high speeds, higher thanthose generated by standard software algorithms. Due to the characteristic ofthe profile, the stepper motor passes through resonance area [4]. This effect canbe observed at low speeds in the profiles.

Page 254: Tesis Funes Marcos

8 Sergio A. Gonzalez, Marcos A. Funes, and Daniel Carrica

10 20 30 40 50 600

50

100

150

Position profile

Pos

ition

, [R

EV

]

Time, [s]

0 10 20 30 40 50 600

10

20

30

40Velocity profile

Spe

ed, [

RE

V/s

]

Time, [s]

Fig. 6. Position and velocity profile for microstepping application.

Fig. 6 shows a complete profile obtained for a microstepping application. Thestepper motor used in this experiment was a SLO-SYN KML093F14C5 whosecharacteristics are: 200 step

rev , holding torque Thold = 816N cm and a rotor inertia3.32 kg cm2. The position values were obtained through an optical incrementalencoder with a resolution of 500 pulses per revolution. The microstep drivemodule used was an SLO-SYN MD808, configured to produce 2000 pulses perrevolution. As a consequence, the system must generate a high velocity profilewith Vmax = 72000 steps

s . The Tc time adopted for the application was 200 ns inorder to reduce the speed jumps under 5 % of Vmax. This effect can be observedas a ripple component at the top of the profile.

The system achieved very high speed that was unreachable with standardalgorithms executed by a processor. Furthermore the new controller does not re-quire the timers, which are necessary in conventional systems, and the processorwas replaced by a FPGA of similar size and equivalent cost.

Page 255: Tesis Funes Marcos

FPGA based stepper motor controller 9

5 Conclusions

A novel algorithm with reduced quantity of operations was introduced. This al-gorithm implemented on FPGA allows a substantial decrease of the equivalentprocessing time developed by classic velocity controllers. As a consequence, thestepper motor can reach very high speeds never obtained with standard algo-rithm based systems.

Due to the system architecture, one FPGA can drive several stepper motorssimultaneously without increasing the processing time. It can drive three steppermotors with current 10000 gates FPGAs. This advantage make the system veryconvenient since it allows the increase of the number of motors, simply using alarger FPGA.

References

1. W. Coosemans and H. Mainaud, “Pre-alignment of clic using the double-wiremethod,” European Organization of Nuclear Research (CERN), Tech. Rep. 343,July 1997, CLIC-NOTE 343.

2. H. Braun, “Experimental results and technical research and development at CTFII,”in Proc. European Particle Accelerator Conference-EPAC2000, Vienna, Austria,June 20–30, 2000, pp. 48–52. [Online]. Available: http://accelconf.web.cern.ch/accelconf/e00/

3. P. Poirier, “Lalignement dynamique submicrometrique de sections acceleratrices,”Memoire de soutenance du Diplome de Recherche Specialisee en Sciences, UniversiteLouis Pasteur de Strasbourg, September 1991.

4. T. Kenjo and A. Sugawara, Stepping Motors and their Microprocessor Controls,2nd ed., ser. Monographs in Electrical and Electronic Engineering. Oxford, U.K.:Oxford University Press, 1995.

5. D. O. Carrica and S. A. Gonzalez, “Algoritmo eficiente para la generacion de perfilesde velocidad en el accionamiento simultaneo de multiples motores paso a paso,” VIIIReunion de Trabajo en Procesamiento de la Informacion y Control., Vol. I , 1999,pp. 118–122.

6. The Programable Logic Data Book. Xilinx, 2000.7. “Core generator,” http://www.xilinx.com/products/logicore/coregen/index.htm,

2000.8. M. Funes, D. Carrica, and M. Benedetti, “Multiplicadores secuenciales para es-

tructuras FPGA,” IX Reunion de Trabajo en Procesamiento de la Informacion yControl., vol. Vol. II, pp. 646–651, 2001.

9. J. L. Hennessy and D. Patterson, Computer Architecture: A Quantitative Approach.San Francisco, California ISBN: 1-55860-329-8: Morgan Kaufmann Publishers, Inc.,1996.