![Page 1: 1. Algoritmo 2. Arquitectura 3. Implementación 4. Conclusiones IMPLEMENTACIÓN VLSI DEL ALGORITMO CORDIC EN MODO VECTORIZACIÓN UTILIZANDO RADIX ALTO](https://reader033.vdocumento.com/reader033/viewer/2022061301/54d7468c497959bd1d8b57c6/html5/thumbnails/1.jpg)
1. Algoritmo
2. Arquitectura
3. Implementación
4. Conclusiones
IMPLEMENTACIÓN VLSI
DEL ALGORITMO CORDIC
EN MODO VECTORIZACIÓN
UTILIZANDO RADIX ALTO
José Alejandro Piñeiro Riobó
![Page 2: 1. Algoritmo 2. Arquitectura 3. Implementación 4. Conclusiones IMPLEMENTACIÓN VLSI DEL ALGORITMO CORDIC EN MODO VECTORIZACIÓN UTILIZANDO RADIX ALTO](https://reader033.vdocumento.com/reader033/viewer/2022061301/54d7468c497959bd1d8b57c6/html5/thumbnails/2.jpg)
1. Algoritmo
2. Arquitectura
3. Implementación
4. Conclusiones
ALGORITMO CORDIC
Algoritmo iterativo para la rotación de un vector en un sistema de coordenadas lineales, circulares o hiperbólicas.
Permite realizar transformaciones de coordenadas y el cálculo de una gran variedad de funciones trigonométricas e hiperbólicas, entre otras.
Utilizado en procesado digital de señales y gráficos 3D, álgebra matricial, radar y robótica, entre otras aplicaciones.
![Page 3: 1. Algoritmo 2. Arquitectura 3. Implementación 4. Conclusiones IMPLEMENTACIÓN VLSI DEL ALGORITMO CORDIC EN MODO VECTORIZACIÓN UTILIZANDO RADIX ALTO](https://reader033.vdocumento.com/reader033/viewer/2022061301/54d7468c497959bd1d8b57c6/html5/thumbnails/3.jpg)
1. Algoritmo
2. Arquitectura
3. Implementación
4. Conclusiones
ALGORITMO CORDIC
Algoritmo iterativo para la rotación de un vector en un sistema de coordenadas lineales, circulares o hiperbólicas.
Permite realizar transformaciones de coordenadas y el cálculo de una gran variedad de funciones trigonométricas e hiperbólicas, entre otras.
Utilizado en procesado digital de señales y gráficos 3D, álgebra matricial, radar y robótica, entre otras aplicaciones.
![Page 4: 1. Algoritmo 2. Arquitectura 3. Implementación 4. Conclusiones IMPLEMENTACIÓN VLSI DEL ALGORITMO CORDIC EN MODO VECTORIZACIÓN UTILIZANDO RADIX ALTO](https://reader033.vdocumento.com/reader033/viewer/2022061301/54d7468c497959bd1d8b57c6/html5/thumbnails/4.jpg)
1. Algoritmo
2. Arquitectura
3. Implementación
4. Conclusiones
ALGORITMO CORDIC
Algoritmo iterativo para la rotación de un vector en un sistema de coordenadas lineales, circulares o hiperbólicas.
Permite realizar transformaciones de coordenadas y el cálculo de una gran variedad de funciones trigonométricas e hiperbólicas, entre otras.
Utilizado en procesado digital de señales y gráficos 3D, álgebra matricial, radar y robótica, entre otras aplicaciones.
![Page 5: 1. Algoritmo 2. Arquitectura 3. Implementación 4. Conclusiones IMPLEMENTACIÓN VLSI DEL ALGORITMO CORDIC EN MODO VECTORIZACIÓN UTILIZANDO RADIX ALTO](https://reader033.vdocumento.com/reader033/viewer/2022061301/54d7468c497959bd1d8b57c6/html5/thumbnails/5.jpg)
1. Algoritmo
2. Arquitectura
3. Implementación
4. Conclusiones
ALGORITMO CORDIC
Algoritmo iterativo para la rotación de un vector en un sistema de coordenadas lineales, circulares o hiperbólicas.
Permite realizar transformaciones de coordenadas y el cálculo de una gran variedad de funciones trigonométricas e hiperbólicas, entre otras.
Utilizado en procesado digital de señales y gráficos 3D, álgebra matricial, radar y robótica, entre otras aplicaciones.
![Page 6: 1. Algoritmo 2. Arquitectura 3. Implementación 4. Conclusiones IMPLEMENTACIÓN VLSI DEL ALGORITMO CORDIC EN MODO VECTORIZACIÓN UTILIZANDO RADIX ALTO](https://reader033.vdocumento.com/reader033/viewer/2022061301/54d7468c497959bd1d8b57c6/html5/thumbnails/6.jpg)
1. Algoritmo
2. Arquitectura
3. Implementación
4. Conclusiones
ALGORITMO CORDIC
Formulación convencional: recurrencia radix 2 (se extrae 1 bit del resultado en cada iteración). Iteraciones lentas. Elevada latencia para un tamaño de
palabra elevado. Soluciones: Uso de sumadores rápidos (CLA) y/o aritmética
redundante (carry-save, signed-digit). Empleo de recurrencias con un radix alto r
2b (se extraen b bits del resultado en cada iteración).
![Page 7: 1. Algoritmo 2. Arquitectura 3. Implementación 4. Conclusiones IMPLEMENTACIÓN VLSI DEL ALGORITMO CORDIC EN MODO VECTORIZACIÓN UTILIZANDO RADIX ALTO](https://reader033.vdocumento.com/reader033/viewer/2022061301/54d7468c497959bd1d8b57c6/html5/thumbnails/7.jpg)
1. Algoritmo
2. Arquitectura
3. Implementación
4. Conclusiones
ALGORITMO CORDIC
Formulación convencional: recurrencia radix 2 (se extrae 1 bit del resultado en cada iteración). Iteraciones lentas. Elevada latencia para un tamaño de
palabra elevado. Soluciones: Uso de sumadores rápidos (CLA) y/o aritmética
redundante (carry-save, signed-digit). Empleo de recurrencias con un radix alto r
2b (se extraen b bits del resultado en cada iteración).
![Page 8: 1. Algoritmo 2. Arquitectura 3. Implementación 4. Conclusiones IMPLEMENTACIÓN VLSI DEL ALGORITMO CORDIC EN MODO VECTORIZACIÓN UTILIZANDO RADIX ALTO](https://reader033.vdocumento.com/reader033/viewer/2022061301/54d7468c497959bd1d8b57c6/html5/thumbnails/8.jpg)
1. Algoritmo
2. Arquitectura
3. Implementación
4. Conclusiones
ALGORITMO CORDIC
Formulación convencional: recurrencia radix 2 (se extrae 1 bit del resultado en cada iteración). Iteraciones lentas. Elevada latencia para un tamaño de
palabra elevado. Soluciones: Uso de sumadores rápidos (CLA) y/o aritmética
redundante (carry-save, signed-digit). Empleo de recurrencias con un radix alto r
2b (se extraen b bits del resultado en cada iteración).
![Page 9: 1. Algoritmo 2. Arquitectura 3. Implementación 4. Conclusiones IMPLEMENTACIÓN VLSI DEL ALGORITMO CORDIC EN MODO VECTORIZACIÓN UTILIZANDO RADIX ALTO](https://reader033.vdocumento.com/reader033/viewer/2022061301/54d7468c497959bd1d8b57c6/html5/thumbnails/9.jpg)
1. Algoritmo
2. Arquitectura
3. Implementación
4. Conclusiones
ALGORITMO CORDIC
Formulación convencional: recurrencia radix 2 (se extrae 1 bit del resultado en cada iteración). Iteraciones lentas. Elevada latencia para un tamaño de
palabra elevado. Soluciones: Uso de sumadores rápidos (CLA) y/o aritmética
redundante (carry-save, signed-digit). Empleo de recurrencias con un radix alto r
2b (se extraen b bits del resultado en cada iteración).
![Page 10: 1. Algoritmo 2. Arquitectura 3. Implementación 4. Conclusiones IMPLEMENTACIÓN VLSI DEL ALGORITMO CORDIC EN MODO VECTORIZACIÓN UTILIZANDO RADIX ALTO](https://reader033.vdocumento.com/reader033/viewer/2022061301/54d7468c497959bd1d8b57c6/html5/thumbnails/10.jpg)
1. Algoritmo
2. Arquitectura
3. Implementación
4. Conclusiones
ALGORITMO CORDIC
Formulación convencional: recurrencia radix 2 (se extrae 1 bit del resultado en cada iteración). Iteraciones lentas. Elevada latencia para un tamaño de
palabra elevado. Soluciones: Uso de sumadores rápidos (CLA) y/o aritmética
redundante (carry-save, signed-digit). Empleo de recurrencias con un radix alto r
2b (se extraen b bits del resultado en cada iteración).
![Page 11: 1. Algoritmo 2. Arquitectura 3. Implementación 4. Conclusiones IMPLEMENTACIÓN VLSI DEL ALGORITMO CORDIC EN MODO VECTORIZACIÓN UTILIZANDO RADIX ALTO](https://reader033.vdocumento.com/reader033/viewer/2022061301/54d7468c497959bd1d8b57c6/html5/thumbnails/11.jpg)
1. Algoritmo
2. Arquitectura
3. Implementación
4. Conclusiones
ALGORITMO CORDIC
Formulación convencional: recurrencia radix 2 (se extrae 1 bit del resultado en cada iteración). Iteraciones lentas. Elevada latencia para un tamaño de
palabra elevado. Soluciones: Uso de sumadores rápidos (CLA) y/o aritmética
redundante (carry-save, signed-digit). Empleo de recurrencias con un radix alto r
2b (se extraen b bits del resultado en cada iteración).
![Page 12: 1. Algoritmo 2. Arquitectura 3. Implementación 4. Conclusiones IMPLEMENTACIÓN VLSI DEL ALGORITMO CORDIC EN MODO VECTORIZACIÓN UTILIZANDO RADIX ALTO](https://reader033.vdocumento.com/reader033/viewer/2022061301/54d7468c497959bd1d8b57c6/html5/thumbnails/12.jpg)
1. Algoritmo
2. Arquitectura
3. Implementación
4. Conclusiones
ALGORITMO CORDIC CON RADIX ALTO EN MODO VECTORIZACIÓN
Modo vectorización.- Rotación del vector inicial hasta que se sitúa sobre el eje de coordenadas X. Resultados: xN1=módulo y zN1=argumento.
Fundamento: descomposición del ángulo de rotación en una suma de ángulos elementales:
Los coeficientes i toman valores enteros en el intervalo {(r 1), ... , 0, ... , (r 1)}, siendo el radix r 2b.
![Page 13: 1. Algoritmo 2. Arquitectura 3. Implementación 4. Conclusiones IMPLEMENTACIÓN VLSI DEL ALGORITMO CORDIC EN MODO VECTORIZACIÓN UTILIZANDO RADIX ALTO](https://reader033.vdocumento.com/reader033/viewer/2022061301/54d7468c497959bd1d8b57c6/html5/thumbnails/13.jpg)
1. Algoritmo
2. Arquitectura
3. Implementación
4. Conclusiones
ALGORITMO CORDIC CON RADIX ALTO EN MODO VECTORIZACIÓN
Modo vectorización.- Rotación del vector inicial hasta que se sitúa sobre el eje de coordenadas X. Resultados: xN1=módulo y zN1=argumento.
Fundamento: descomposición del ángulo de rotación en una suma de ángulos elementales:
Los coeficientes i toman valores enteros en el intervalo {(r 1), ... , 0, ... , (r 1)}, siendo el radix r 2b.
![Page 14: 1. Algoritmo 2. Arquitectura 3. Implementación 4. Conclusiones IMPLEMENTACIÓN VLSI DEL ALGORITMO CORDIC EN MODO VECTORIZACIÓN UTILIZANDO RADIX ALTO](https://reader033.vdocumento.com/reader033/viewer/2022061301/54d7468c497959bd1d8b57c6/html5/thumbnails/14.jpg)
1. Algoritmo
2. Arquitectura
3. Implementación
4. Conclusiones
ALGORITMO CORDIC CON RADIX ALTO EN MODO VECTORIZACIÓN
Y
X
![Page 15: 1. Algoritmo 2. Arquitectura 3. Implementación 4. Conclusiones IMPLEMENTACIÓN VLSI DEL ALGORITMO CORDIC EN MODO VECTORIZACIÓN UTILIZANDO RADIX ALTO](https://reader033.vdocumento.com/reader033/viewer/2022061301/54d7468c497959bd1d8b57c6/html5/thumbnails/15.jpg)
1. Algoritmo
2. Arquitectura
3. Implementación
4. Conclusiones
ALGORITMO CORDIC CON RADIX ALTO EN MODO VECTORIZACIÓN
Modo vectorización.- Rotación del vector inicial hasta que se sitúa sobre el eje de coordenadas X. Resultados: xN1=módulo y zN1=argumento.
Fundamento: descomposición del ángulo de rotación en una suma de ángulos elementales:
Los coeficientes i toman valores enteros en el intervalo {(r 1), ... , 0, ... , (r 1)}, siendo el radix r 2b.
![Page 16: 1. Algoritmo 2. Arquitectura 3. Implementación 4. Conclusiones IMPLEMENTACIÓN VLSI DEL ALGORITMO CORDIC EN MODO VECTORIZACIÓN UTILIZANDO RADIX ALTO](https://reader033.vdocumento.com/reader033/viewer/2022061301/54d7468c497959bd1d8b57c6/html5/thumbnails/16.jpg)
1. Algoritmo
2. Arquitectura
3. Implementación
4. Conclusiones
Expresión de las recurrencias:
d[i1] d[i] ir 2i[i]
[i1] r([i] id[i])
z[i1] z[i] tan1(ir i)
con d[1] xin, [1] r yin, z[1] 0.
Los coeficientes i se seleccionan mediante
el redondeo de [i] truncado a t bits fraccionales:
i round ([i]t )
ALGORITMO CORDIC CON RADIX ALTO EN MODO VECTORIZACIÓN
![Page 17: 1. Algoritmo 2. Arquitectura 3. Implementación 4. Conclusiones IMPLEMENTACIÓN VLSI DEL ALGORITMO CORDIC EN MODO VECTORIZACIÓN UTILIZANDO RADIX ALTO](https://reader033.vdocumento.com/reader033/viewer/2022061301/54d7468c497959bd1d8b57c6/html5/thumbnails/17.jpg)
1. Algoritmo
2. Arquitectura
3. Implementación
4. Conclusiones
Expresión de las recurrencias:
d[i1] d[i] ir 2i[i]
[i1] r([i] id[i])
z[i1] z[i] tan1(ir i)
con d[1] xin, [1] r yin, z[1] 0.
Los coeficientes i se seleccionan mediante
el redondeo de [i] truncado a t bits fraccionales:
i round ([i]t )
ALGORITMO CORDIC CON RADIX ALTO EN MODO VECTORIZACIÓN
![Page 18: 1. Algoritmo 2. Arquitectura 3. Implementación 4. Conclusiones IMPLEMENTACIÓN VLSI DEL ALGORITMO CORDIC EN MODO VECTORIZACIÓN UTILIZANDO RADIX ALTO](https://reader033.vdocumento.com/reader033/viewer/2022061301/54d7468c497959bd1d8b57c6/html5/thumbnails/18.jpg)
1. Algoritmo
2. Arquitectura
3. Implementación
4. Conclusiones
Expresión de las recurrencias:
d[i1] d[i] ir 2i[i]
[i1] r([i] id[i])
z[i1] z[i] tan1(ir i)
con d[1] xin, [1] r yin, z[1] 0.
Los coeficientes i se seleccionan mediante
el redondeo de [i] truncado a t bits fraccionales:
i round ([i]t )
ALGORITMO CORDIC CON RADIX ALTO EN MODO VECTORIZACIÓN
![Page 19: 1. Algoritmo 2. Arquitectura 3. Implementación 4. Conclusiones IMPLEMENTACIÓN VLSI DEL ALGORITMO CORDIC EN MODO VECTORIZACIÓN UTILIZANDO RADIX ALTO](https://reader033.vdocumento.com/reader033/viewer/2022061301/54d7468c497959bd1d8b57c6/html5/thumbnails/19.jpg)
1. Algoritmo
2. Arquitectura
3. Implementación
4. Conclusiones
ALGORITMO CORDIC CON RADIX ALTO EN MODO VECTORIZACIÓN
Necesidad de dos escalados de la recurrencia (empleo de los factores M1 y M2) para asegurar convergencia. Uno antes y otro después de la primera microrrotación.
Para simplificar el primer escalado, se utiliza un radix R inferior en la primera microrrotación, siendo:
R 2B 2b/21, para t 2
Extensión del rango de convergencia. Comparación de los F bits más significativos de xin e
yin. Si yin xin+2F, intercambio, z[1] /2 y se
decrementa.
![Page 20: 1. Algoritmo 2. Arquitectura 3. Implementación 4. Conclusiones IMPLEMENTACIÓN VLSI DEL ALGORITMO CORDIC EN MODO VECTORIZACIÓN UTILIZANDO RADIX ALTO](https://reader033.vdocumento.com/reader033/viewer/2022061301/54d7468c497959bd1d8b57c6/html5/thumbnails/20.jpg)
1. Algoritmo
2. Arquitectura
3. Implementación
4. Conclusiones
ALGORITMO CORDIC CON RADIX ALTO EN MODO VECTORIZACIÓN
Necesidad de dos escalados de la recurrencia (empleo de los factores M1 y M2) para asegurar convergencia. Uno antes y otro después de la primera microrrotación.
Para simplificar el primer escalado, se utiliza un radix R inferior en la primera microrrotación, siendo:
R 2B 2b/21, para t 2
Extensión del rango de convergencia. Comparación de los F bits más significativos de xin e
yin. Si yin xin+2F, intercambio, z[1] /2 y se
decrementa.
![Page 21: 1. Algoritmo 2. Arquitectura 3. Implementación 4. Conclusiones IMPLEMENTACIÓN VLSI DEL ALGORITMO CORDIC EN MODO VECTORIZACIÓN UTILIZANDO RADIX ALTO](https://reader033.vdocumento.com/reader033/viewer/2022061301/54d7468c497959bd1d8b57c6/html5/thumbnails/21.jpg)
1. Algoritmo
2. Arquitectura
3. Implementación
4. Conclusiones
ALGORITMO CORDIC CON RADIX ALTO EN MODO VECTORIZACIÓN
Necesidad de dos escalados de la recurrencia (empleo de los factores M1 y M2) para asegurar convergencia. Uno antes y otro después de la primera microrrotación.
Para simplificar el primer escalado, se utiliza un radix R inferior en la primera microrrotación, siendo:
R 2B 2b/21, para t 2
Extensión del rango de convergencia. Comparación de los F bits más significativos de xin e
yin. Si yin xin+2F, intercambio, z[1] /2 y se
decrementa.
![Page 22: 1. Algoritmo 2. Arquitectura 3. Implementación 4. Conclusiones IMPLEMENTACIÓN VLSI DEL ALGORITMO CORDIC EN MODO VECTORIZACIÓN UTILIZANDO RADIX ALTO](https://reader033.vdocumento.com/reader033/viewer/2022061301/54d7468c497959bd1d8b57c6/html5/thumbnails/22.jpg)
1. Algoritmo
2. Arquitectura
3. Implementación
4. Conclusiones
ALGORITMO CORDIC CON RADIX ALTO EN MODO VECTORIZACIÓN
Necesidad de dos escalados de la recurrencia (empleo de los factores M1 y M2) para asegurar convergencia. Uno antes y otro después de la primera microrrotación.
Para simplificar el primer escalado, se utiliza un radix R inferior en la primera microrrotación, siendo:
R 2B 2b/21, para t 2
Extensión del rango de convergencia. Comparación de los F bits más significativos de xin e
yin. Si yin xin+2F, intercambio, z[1] /2 y se
decrementa.
![Page 23: 1. Algoritmo 2. Arquitectura 3. Implementación 4. Conclusiones IMPLEMENTACIÓN VLSI DEL ALGORITMO CORDIC EN MODO VECTORIZACIÓN UTILIZANDO RADIX ALTO](https://reader033.vdocumento.com/reader033/viewer/2022061301/54d7468c497959bd1d8b57c6/html5/thumbnails/23.jpg)
1. Algoritmo
2. Arquitectura
3. Implementación
4. Conclusiones
ALGORITMO CORDIC CON RADIX ALTO EN MODO VECTORIZACIÓN
Existencia de un factor de escala Ki en las variables d y en cada microrrotación.
El factor de escala global viene dado por:
K depende del ángulo.
Cómputo de ln(K 1): g[i1] g[i] (1/2)ln(1i2r 2i).
Compensación evaluando la función exponencial:
xr xC·exp(ln(K 1)) xC·K
![Page 24: 1. Algoritmo 2. Arquitectura 3. Implementación 4. Conclusiones IMPLEMENTACIÓN VLSI DEL ALGORITMO CORDIC EN MODO VECTORIZACIÓN UTILIZANDO RADIX ALTO](https://reader033.vdocumento.com/reader033/viewer/2022061301/54d7468c497959bd1d8b57c6/html5/thumbnails/24.jpg)
1. Algoritmo
2. Arquitectura
3. Implementación
4. Conclusiones
ALGORITMO CORDIC CON RADIX ALTO EN MODO VECTORIZACIÓN
Existencia de un factor de escala Ki en las variables d y en cada microrrotación.
El factor de escala global viene dado por:
K depende del ángulo.
Cómputo de ln(K 1): g[i1] g[i] (1/2)ln(1i2r 2i).
Compensación evaluando la función exponencial:
xr xC·exp(ln(K 1)) xC·K
![Page 25: 1. Algoritmo 2. Arquitectura 3. Implementación 4. Conclusiones IMPLEMENTACIÓN VLSI DEL ALGORITMO CORDIC EN MODO VECTORIZACIÓN UTILIZANDO RADIX ALTO](https://reader033.vdocumento.com/reader033/viewer/2022061301/54d7468c497959bd1d8b57c6/html5/thumbnails/25.jpg)
1. Algoritmo
2. Arquitectura
3. Implementación
4. Conclusiones
ALGORITMO CORDIC CON RADIX ALTO EN MODO VECTORIZACIÓN
Existencia de un factor de escala Ki en las variables d y en cada microrrotación.
El factor de escala global viene dado por:
K depende del ángulo.
Cómputo de ln(K 1): g[i1] g[i] (1/2)ln(1i2r 2i).
Compensación evaluando la función exponencial:
xr xC·exp(ln(K 1)) xC·K
![Page 26: 1. Algoritmo 2. Arquitectura 3. Implementación 4. Conclusiones IMPLEMENTACIÓN VLSI DEL ALGORITMO CORDIC EN MODO VECTORIZACIÓN UTILIZANDO RADIX ALTO](https://reader033.vdocumento.com/reader033/viewer/2022061301/54d7468c497959bd1d8b57c6/html5/thumbnails/26.jpg)
1. Algoritmo
2. Arquitectura
3. Implementación
4. Conclusiones
ALGORITMO CORDIC CON RADIX ALTO EN MODO VECTORIZACIÓN
Existencia de un factor de escala Ki en las variables d y en cada microrrotación.
El factor de escala global viene dado por:
K depende del ángulo.
Cómputo de ln(K 1): g[i1] g[i] (1/2)ln(1i2r 2i).
Compensación evaluando la función exponencial:
xr xC·exp(ln(K 1)) xC·K
![Page 27: 1. Algoritmo 2. Arquitectura 3. Implementación 4. Conclusiones IMPLEMENTACIÓN VLSI DEL ALGORITMO CORDIC EN MODO VECTORIZACIÓN UTILIZANDO RADIX ALTO](https://reader033.vdocumento.com/reader033/viewer/2022061301/54d7468c497959bd1d8b57c6/html5/thumbnails/27.jpg)
1. Algoritmo
2. Arquitectura
3. Implementación
4. Conclusiones
ALGORITMO CORDIC CON RADIX ALTO EN MODO VECTORIZACIÓN
Existencia de un factor de escala Ki en las variables d y en cada microrrotación.
El factor de escala global viene dado por:
K depende del ángulo.
Cómputo de ln(K 1): g[i1] g[i] (1/2)ln(1i2r 2i).
Compensación evaluando la función exponencial:
xr xC·exp(ln(K 1)) xC·K
![Page 28: 1. Algoritmo 2. Arquitectura 3. Implementación 4. Conclusiones IMPLEMENTACIÓN VLSI DEL ALGORITMO CORDIC EN MODO VECTORIZACIÓN UTILIZANDO RADIX ALTO](https://reader033.vdocumento.com/reader033/viewer/2022061301/54d7468c497959bd1d8b57c6/html5/thumbnails/28.jpg)
![Page 29: 1. Algoritmo 2. Arquitectura 3. Implementación 4. Conclusiones IMPLEMENTACIÓN VLSI DEL ALGORITMO CORDIC EN MODO VECTORIZACIÓN UTILIZANDO RADIX ALTO](https://reader033.vdocumento.com/reader033/viewer/2022061301/54d7468c497959bd1d8b57c6/html5/thumbnails/29.jpg)
1. Algoritmo
2. Arquitectura
3. Implementación
4. Conclusiones
ARQUITECTURA
Arquitectura palabra-serie.
Formato de punto fijo.
Arquitectura para el cálculo del argumento del vector de entrada: función tan1(yin/xin).
Arquitectura para el cálculo de módulo y argumento: (xin
2yin2)½ y tan1(yin/xin).
![Page 30: 1. Algoritmo 2. Arquitectura 3. Implementación 4. Conclusiones IMPLEMENTACIÓN VLSI DEL ALGORITMO CORDIC EN MODO VECTORIZACIÓN UTILIZANDO RADIX ALTO](https://reader033.vdocumento.com/reader033/viewer/2022061301/54d7468c497959bd1d8b57c6/html5/thumbnails/30.jpg)
1. Algoritmo
2. Arquitectura
3. Implementación
4. Conclusiones
ARQUITECTURA
Arquitectura palabra-serie.
Formato de punto fijo.
Arquitectura para el cálculo del argumento del vector de entrada: función tan1(yin/xin).
Arquitectura para el cálculo de módulo y argumento: (xin
2yin2)½ y tan1(yin/xin).
![Page 31: 1. Algoritmo 2. Arquitectura 3. Implementación 4. Conclusiones IMPLEMENTACIÓN VLSI DEL ALGORITMO CORDIC EN MODO VECTORIZACIÓN UTILIZANDO RADIX ALTO](https://reader033.vdocumento.com/reader033/viewer/2022061301/54d7468c497959bd1d8b57c6/html5/thumbnails/31.jpg)
1. Algoritmo
2. Arquitectura
3. Implementación
4. Conclusiones
ARQUITECTURA
Arquitectura palabra-serie.
Formato de punto fijo.
Arquitectura para el cálculo del argumento del vector de entrada: función tan1(yin/xin).
Arquitectura para el cálculo de módulo y argumento: (xin
2yin2)½ y tan1(yin/xin).
![Page 32: 1. Algoritmo 2. Arquitectura 3. Implementación 4. Conclusiones IMPLEMENTACIÓN VLSI DEL ALGORITMO CORDIC EN MODO VECTORIZACIÓN UTILIZANDO RADIX ALTO](https://reader033.vdocumento.com/reader033/viewer/2022061301/54d7468c497959bd1d8b57c6/html5/thumbnails/32.jpg)
1. Algoritmo
2. Arquitectura
3. Implementación
4. Conclusiones
ARQUITECTURA
Arquitectura palabra-serie.
Formato de punto fijo.
Arquitectura para el cálculo del argumento del vector de entrada: función tan1(yin/xin).
Arquitectura para el cálculo de módulo y argumento: (xin
2yin2)½ y tan1(yin/xin).
![Page 33: 1. Algoritmo 2. Arquitectura 3. Implementación 4. Conclusiones IMPLEMENTACIÓN VLSI DEL ALGORITMO CORDIC EN MODO VECTORIZACIÓN UTILIZANDO RADIX ALTO](https://reader033.vdocumento.com/reader033/viewer/2022061301/54d7468c497959bd1d8b57c6/html5/thumbnails/33.jpg)
Arquitectura completa Arquitectura argumento
(modificada) vía g.
z[i1] z[i] tan1(ir i)
d[i1] d[i] ir 2i[i][i1] r([i] id[i])
g[i1] g[i] (1/2)ln(1i
2r 2i)
g[j1] r (g[j] rj
ln(1ejr j))
d[j1] d[j] ejd[j]r j
![Page 34: 1. Algoritmo 2. Arquitectura 3. Implementación 4. Conclusiones IMPLEMENTACIÓN VLSI DEL ALGORITMO CORDIC EN MODO VECTORIZACIÓN UTILIZANDO RADIX ALTO](https://reader033.vdocumento.com/reader033/viewer/2022061301/54d7468c497959bd1d8b57c6/html5/thumbnails/34.jpg)
Vías d y .- Realización de los escalados y las microrrotaciones.
Bloques de M1 y M2.- Obtención de los factores de escalado.
Bloques de i y ej.- Selección de los coeficientes mediante redondeo.
Vía z.- Determinación del ángulo elemental en cada microrrotación y cómputo del ángulo total.
Vía g.- Cómputo de ln(K 1) y, junto con la vía d, realización de las iteraciones de compensación. Unidad de control (FSM).
g
![Page 35: 1. Algoritmo 2. Arquitectura 3. Implementación 4. Conclusiones IMPLEMENTACIÓN VLSI DEL ALGORITMO CORDIC EN MODO VECTORIZACIÓN UTILIZANDO RADIX ALTO](https://reader033.vdocumento.com/reader033/viewer/2022061301/54d7468c497959bd1d8b57c6/html5/thumbnails/35.jpg)
1. Algoritmo
2. Arquitectura
3. Implementación
4. Conclusiones
Parámetros de diseño. Precisión: n 32 bits. Radix r 512, valor t 3 bits . Radix R 32, valor F 5 bits. Tamaño de palabra interno: q 38 bits
fraccionales.
Es necesario realizar N 4 microrrotaciones para alcanzar la precisión de n 32 bits.
n B (N 1)·b
IMPLEMENTACIÓN
![Page 36: 1. Algoritmo 2. Arquitectura 3. Implementación 4. Conclusiones IMPLEMENTACIÓN VLSI DEL ALGORITMO CORDIC EN MODO VECTORIZACIÓN UTILIZANDO RADIX ALTO](https://reader033.vdocumento.com/reader033/viewer/2022061301/54d7468c497959bd1d8b57c6/html5/thumbnails/36.jpg)
1. Algoritmo
2. Arquitectura
3. Implementación
4. Conclusiones
Parámetros de diseño. Precisión: n 32 bits. Radix r 512, valor t 3 bits . Radix R 32, valor F 5 bits. Tamaño de palabra interno: q 38 bits
fraccionales.
Es necesario realizar N 4 microrrotaciones para alcanzar la precisión de n 32 bits.
n B (N 1)·b
IMPLEMENTACIÓN
![Page 37: 1. Algoritmo 2. Arquitectura 3. Implementación 4. Conclusiones IMPLEMENTACIÓN VLSI DEL ALGORITMO CORDIC EN MODO VECTORIZACIÓN UTILIZANDO RADIX ALTO](https://reader033.vdocumento.com/reader033/viewer/2022061301/54d7468c497959bd1d8b57c6/html5/thumbnails/37.jpg)
1. Algoritmo
2. Arquitectura
3. Implementación
4. Conclusiones
Parámetros de diseño. Precisión: n 32 bits. Radix r 512, valor t 3 bits . Radix R 32, valor F 5 bits. Tamaño de palabra interno: q 38 bits
fraccionales.
Es necesario realizar N 4 microrrotaciones para alcanzar la precisión de n 32 bits.
n B (N 1)·b
IMPLEMENTACIÓN
![Page 38: 1. Algoritmo 2. Arquitectura 3. Implementación 4. Conclusiones IMPLEMENTACIÓN VLSI DEL ALGORITMO CORDIC EN MODO VECTORIZACIÓN UTILIZANDO RADIX ALTO](https://reader033.vdocumento.com/reader033/viewer/2022061301/54d7468c497959bd1d8b57c6/html5/thumbnails/38.jpg)
1. Algoritmo
2. Arquitectura
3. Implementación
4. Conclusiones
Parámetros de diseño. Precisión: n 32 bits. Radix r 512, valor t 3 bits . Radix R 32, valor F 5 bits. Tamaño de palabra interno: q 38 bits
fraccionales.
Es necesario realizar N 4 microrrotaciones para alcanzar la precisión de n 32 bits.
n B (N 1)·b
IMPLEMENTACIÓN
![Page 39: 1. Algoritmo 2. Arquitectura 3. Implementación 4. Conclusiones IMPLEMENTACIÓN VLSI DEL ALGORITMO CORDIC EN MODO VECTORIZACIÓN UTILIZANDO RADIX ALTO](https://reader033.vdocumento.com/reader033/viewer/2022061301/54d7468c497959bd1d8b57c6/html5/thumbnails/39.jpg)
1. Algoritmo
2. Arquitectura
3. Implementación
4. Conclusiones
Flujo de diseño basado en VHDL.
Herramientas CAD utilizadas en el diseño lógico: HDLdesk, de Cadence (simulación
funcional de los componentes). Design Analyzer, de Synopsys (síntesis
lógica y simulación pre-layout).
Librería de celdas estándar 0.7 m CMOS doble metal de ES2.
IMPLEMENTACIÓN
![Page 40: 1. Algoritmo 2. Arquitectura 3. Implementación 4. Conclusiones IMPLEMENTACIÓN VLSI DEL ALGORITMO CORDIC EN MODO VECTORIZACIÓN UTILIZANDO RADIX ALTO](https://reader033.vdocumento.com/reader033/viewer/2022061301/54d7468c497959bd1d8b57c6/html5/thumbnails/40.jpg)
1. Algoritmo
2. Arquitectura
3. Implementación
4. Conclusiones
Flujo de diseño basado en VHDL.
Herramientas CAD utilizadas en el diseño lógico: HDLdesk, de Cadence (simulación
funcional de los componentes). Design Analyzer, de Synopsys (síntesis
lógica y simulación pre-layout).
Librería de celdas estándar 0.7 m CMOS doble metal de ES2.
IMPLEMENTACIÓN
![Page 41: 1. Algoritmo 2. Arquitectura 3. Implementación 4. Conclusiones IMPLEMENTACIÓN VLSI DEL ALGORITMO CORDIC EN MODO VECTORIZACIÓN UTILIZANDO RADIX ALTO](https://reader033.vdocumento.com/reader033/viewer/2022061301/54d7468c497959bd1d8b57c6/html5/thumbnails/41.jpg)
1. Algoritmo
2. Arquitectura
3. Implementación
4. Conclusiones
Flujo de diseño basado en VHDL.
Herramientas CAD utilizadas en el diseño lógico: HDLdesk, de Cadence (simulación
funcional de los componentes). Design Analyzer, de Synopsys (síntesis
lógica y simulación pre-layout).
Librería de celdas estándar 0.7 m CMOS doble metal de ES2.
IMPLEMENTACIÓN
![Page 42: 1. Algoritmo 2. Arquitectura 3. Implementación 4. Conclusiones IMPLEMENTACIÓN VLSI DEL ALGORITMO CORDIC EN MODO VECTORIZACIÓN UTILIZANDO RADIX ALTO](https://reader033.vdocumento.com/reader033/viewer/2022061301/54d7468c497959bd1d8b57c6/html5/thumbnails/42.jpg)
1. Algoritmo
2. Arquitectura
3. Implementación
4. Conclusiones
Flujo de diseño basado en VHDL.
Herramientas CAD utilizadas en el diseño lógico: HDLdesk, de Cadence (simulación
funcional de los componentes). Design Analyzer, de Synopsys (síntesis
lógica y simulación pre-layout).
Librería de celdas estándar 0.7 m CMOS doble metal de ES2.
IMPLEMENTACIÓN
![Page 43: 1. Algoritmo 2. Arquitectura 3. Implementación 4. Conclusiones IMPLEMENTACIÓN VLSI DEL ALGORITMO CORDIC EN MODO VECTORIZACIÓN UTILIZANDO RADIX ALTO](https://reader033.vdocumento.com/reader033/viewer/2022061301/54d7468c497959bd1d8b57c6/html5/thumbnails/43.jpg)
1. Algoritmo
2. Arquitectura
3. Implementación
4. Conclusiones
Flujo de diseño basado en VHDL.
Herramientas CAD utilizadas en el diseño lógico: HDLdesk, de Cadence (simulación
funcional de los componentes). Design Analyzer, de Synopsys (síntesis
lógica y simulación pre-layout).
Librería de celdas estándar 0.7 m CMOS doble metal de ES2.
IMPLEMENTACIÓN
![Page 44: 1. Algoritmo 2. Arquitectura 3. Implementación 4. Conclusiones IMPLEMENTACIÓN VLSI DEL ALGORITMO CORDIC EN MODO VECTORIZACIÓN UTILIZANDO RADIX ALTO](https://reader033.vdocumento.com/reader033/viewer/2022061301/54d7468c497959bd1d8b57c6/html5/thumbnails/44.jpg)
1. Algoritmo
2. Arquitectura
3. Implementación
4. Conclusiones
IMPLEMENTACIÓN
Multiplicadores-Acumuladores (MAC):
Evaluación de la operación: h a b ·c.
Representación de los operandos: Complemento a dos: sumando ( a ) y
multiplicando ( c ). SD-radix 4: multiplicador ( b ); reduce
a la mitad el número de productos parciales a acumular.
![Page 45: 1. Algoritmo 2. Arquitectura 3. Implementación 4. Conclusiones IMPLEMENTACIÓN VLSI DEL ALGORITMO CORDIC EN MODO VECTORIZACIÓN UTILIZANDO RADIX ALTO](https://reader033.vdocumento.com/reader033/viewer/2022061301/54d7468c497959bd1d8b57c6/html5/thumbnails/45.jpg)
1. Algoritmo
2. Arquitectura
3. Implementación
4. Conclusiones
IMPLEMENTACIÓN
Multiplicadores-Acumuladores (MAC):
Evaluación de la operación: h a b ·c.
Representación de los operandos: Complemento a dos: sumando ( a ) y
multiplicando ( c ). SD-radix 4: multiplicador ( b ); reduce
a la mitad el número de productos parciales a acumular.
![Page 46: 1. Algoritmo 2. Arquitectura 3. Implementación 4. Conclusiones IMPLEMENTACIÓN VLSI DEL ALGORITMO CORDIC EN MODO VECTORIZACIÓN UTILIZANDO RADIX ALTO](https://reader033.vdocumento.com/reader033/viewer/2022061301/54d7468c497959bd1d8b57c6/html5/thumbnails/46.jpg)
1. Algoritmo
2. Arquitectura
3. Implementación
4. Conclusiones
IMPLEMENTACIÓN
Multiplicadores-Acumuladores (MAC):
Evaluación de la operación: h a b ·c.
Representación de los operandos: Complemento a dos: sumando ( a ) y
multiplicando ( c ). SD-radix 4: multiplicador ( b ); reduce
a la mitad el número de productos parciales a acumular.
![Page 47: 1. Algoritmo 2. Arquitectura 3. Implementación 4. Conclusiones IMPLEMENTACIÓN VLSI DEL ALGORITMO CORDIC EN MODO VECTORIZACIÓN UTILIZANDO RADIX ALTO](https://reader033.vdocumento.com/reader033/viewer/2022061301/54d7468c497959bd1d8b57c6/html5/thumbnails/47.jpg)
1. Algoritmo
2. Arquitectura
3. Implementación
4. Conclusiones
IMPLEMENTACIÓN
Multiplicadores-Acumuladores (MAC):
Evaluación de la operación: h a b ·c.
Representación de los operandos: Complemento a dos: sumando ( a ) y
multiplicando ( c ). SD-radix 4: multiplicador ( b ); reduce
a la mitad el número de productos parciales a acumular.
![Page 48: 1. Algoritmo 2. Arquitectura 3. Implementación 4. Conclusiones IMPLEMENTACIÓN VLSI DEL ALGORITMO CORDIC EN MODO VECTORIZACIÓN UTILIZANDO RADIX ALTO](https://reader033.vdocumento.com/reader033/viewer/2022061301/54d7468c497959bd1d8b57c6/html5/thumbnails/48.jpg)
![Page 49: 1. Algoritmo 2. Arquitectura 3. Implementación 4. Conclusiones IMPLEMENTACIÓN VLSI DEL ALGORITMO CORDIC EN MODO VECTORIZACIÓN UTILIZANDO RADIX ALTO](https://reader033.vdocumento.com/reader033/viewer/2022061301/54d7468c497959bd1d8b57c6/html5/thumbnails/49.jpg)
ARCHITECTURE behave OF mac_d IS
-- Declaración del componente CSA_TREE-- Declaración de señales y constantes
for U1 : csa_tree Use Entity work.csa_tree(crypt);
BEGIN
partial1:process(b)begin for i in 0 to 7 loop
b0(i)<=b(3*i);b1(i)<=b(3*i+1);b2(i)<=b(3*i+2);
end loop;end process partial1;
partial2:process(b0,b1,b2,c)beginfor i in 0 to 7 loop res(i)(0)<=b0(i) xor ((c(0) nand b1(i)) nand ('0' nand b2(i))); for j in 1 to 40 loop
res(i)(j)<=b0(i) xor ((c(j) nand b1(i)) nand (c(j-1) nand b2(i)));
end loop; res(i)(41)<=b0(i) xor ((c(40) nand b1(i))
nand (c(40) nand b2(i)));end loop;end process partial2;
partial3:process(res,add_ct,a)begin
if add_ct='0' then PP1(57 downto 42)<=(others=>res(0)(41)); PP1(41 downto 0)<= res(0);else PP1(57 downto 48)<=(others=>a(40)); PP1(47 downto 7)<= a; PP1(6 downto 0)<=(others=>’0’);end if;
PP2(57 downto 44)<=(others=>res(1)(41)); PP2(43 downto 2)<= res(1); PP3(57 downto 46)<=(others=>res(2)(41)); PP3(45 downto 4)<= res(2); PP4(57 downto 48)<=(others=>res(3)(41)); PP4(47 downto 6)<= res(3); -- Sigue la construcción de prod. parc. hasta PP8
end process partial3;
U1 : csa_tree port map (PP1,PP2,PP3,PP4,PP5,PP6,PP7,PP8,ssm,crr);
END behave;
![Page 50: 1. Algoritmo 2. Arquitectura 3. Implementación 4. Conclusiones IMPLEMENTACIÓN VLSI DEL ALGORITMO CORDIC EN MODO VECTORIZACIÓN UTILIZANDO RADIX ALTO](https://reader033.vdocumento.com/reader033/viewer/2022061301/54d7468c497959bd1d8b57c6/html5/thumbnails/50.jpg)
ARCHITECTURE behave OF mac_d IS
-- Declaración del componente CSA_TREE-- Declaración de señales y constantes
for U1 : csa_tree Use Entity work.csa_tree(crypt);
BEGIN
partial1:process(b)begin for i in 0 to 7 loop
b0(i)<=b(3*i);b1(i)<=b(3*i+1);b2(i)<=b(3*i+2);
end loop;end process partial1;
partial2:process(b0,b1,b2,c)beginfor i in 0 to 7 loop res(i)(0)<=b0(i) xor ((c(0) nand b1(i)) nand ('0' nand b2(i))); for j in 1 to 40 loop
res(i)(j)<=b0(i) xor ((c(j) nand b1(i)) nand (c(j-1) nand b2(i)));
end loop; res(i)(41)<=b0(i) xor ((c(40) nand b1(i))
nand (c(40) nand b2(i)));end loop;end process partial2;
partial3:process(res,add_ct,a)begin
if add_ct='0' then PP1(57 downto 42)<=(others=>res(0)(41)); PP1(41 downto 0)<= res(0);else PP1(57 downto 48)<=(others=>a(40)); PP1(47 downto 7)<= a; PP1(6 downto 0)<=(others=>’0’);end if;
PP2(57 downto 44)<=(others=>res(1)(41)); PP2(43 downto 2)<= res(1); PP3(57 downto 46)<=(others=>res(2)(41)); PP3(45 downto 4)<= res(2); PP4(57 downto 48)<=(others=>res(3)(41)); PP4(47 downto 6)<= res(3); -- Sigue la construcción de prod. parc. hasta PP8
end process partial3;
U1 : csa_tree port map (PP1,PP2,PP3,PP4,PP5,PP6,PP7,PP8,ssm,crr);
END behave;
![Page 51: 1. Algoritmo 2. Arquitectura 3. Implementación 4. Conclusiones IMPLEMENTACIÓN VLSI DEL ALGORITMO CORDIC EN MODO VECTORIZACIÓN UTILIZANDO RADIX ALTO](https://reader033.vdocumento.com/reader033/viewer/2022061301/54d7468c497959bd1d8b57c6/html5/thumbnails/51.jpg)
ARCHITECTURE behave OF mac_d IS
-- Declaración del componente CSA_TREE-- Declaración de señales y constantes
for U1 : csa_tree Use Entity work.csa_tree(crypt);
BEGIN
partial1:process(b)begin for i in 0 to 7 loop
b0(i)<=b(3*i);b1(i)<=b(3*i+1);b2(i)<=b(3*i+2);
end loop;end process partial1;
partial2:process(b0,b1,b2,c)beginfor i in 0 to 7 loop res(i)(0)<=b0(i) xor ((c(0) nand b1(i)) nand ('0' nand b2(i))); for j in 1 to 40 loop
res(i)(j)<=b0(i) xor ((c(j) nand b1(i)) nand (c(j-1) nand b2(i)));
end loop; res(i)(41)<=b0(i) xor ((c(40) nand b1(i))
nand (c(40) nand b2(i)));end loop;end process partial2;
partial3:process(res,add_ct,a)begin
if add_ct='0' then PP1(57 downto 42)<=(others=>res(0)(41)); PP1(41 downto 0)<= res(0);else PP1(57 downto 48)<=(others=>a(40)); PP1(47 downto 7)<= a; PP1(6 downto 0)<=(others=>’0’);end if;
PP2(57 downto 44)<=(others=>res(1)(41)); PP2(43 downto 2)<= res(1); PP3(57 downto 46)<=(others=>res(2)(41)); PP3(45 downto 4)<= res(2); PP4(57 downto 48)<=(others=>res(3)(41)); PP4(47 downto 6)<= res(3); -- Sigue la construcción de prod. parc. hasta PP8
end process partial3;
U1 : csa_tree port map (PP1,PP2,PP3,PP4,PP5,PP6,PP7,PP8,ssm,crr);
END behave;
![Page 52: 1. Algoritmo 2. Arquitectura 3. Implementación 4. Conclusiones IMPLEMENTACIÓN VLSI DEL ALGORITMO CORDIC EN MODO VECTORIZACIÓN UTILIZANDO RADIX ALTO](https://reader033.vdocumento.com/reader033/viewer/2022061301/54d7468c497959bd1d8b57c6/html5/thumbnails/52.jpg)
ARCHITECTURE behave OF mac_d IS
-- Declaración del componente CSA_TREE-- Declaración de señales y constantes
for U1 : csa_tree Use Entity work.csa_tree(crypt);
BEGIN
partial1:process(b)begin for i in 0 to 7 loop
b0(i)<=b(3*i);b1(i)<=b(3*i+1);b2(i)<=b(3*i+2);
end loop;end process partial1;
partial2:process(b0,b1,b2,c)beginfor i in 0 to 7 loop res(i)(0)<=b0(i) xor ((c(0) nand b1(i)) nand ('0' nand b2(i))); for j in 1 to 40 loop
res(i)(j)<=b0(i) xor ((c(j) nand b1(i)) nand (c(j-1) nand b2(i)));
end loop; res(i)(41)<=b0(i) xor ((c(40) nand b1(i))
nand (c(40) nand b2(i)));end loop;end process partial2;
partial3:process(res,add_ct,a)begin
if add_ct='0' then PP1(57 downto 42)<=(others=>res(0)(41)); PP1(41 downto 0)<= res(0);else PP1(57 downto 48)<=(others=>a(40)); PP1(47 downto 7)<= a; PP1(6 downto 0)<=(others=>’0’);end if;
PP2(57 downto 44)<=(others=>res(1)(41)); PP2(43 downto 2)<= res(1); PP3(57 downto 46)<=(others=>res(2)(41)); PP3(45 downto 4)<= res(2); PP4(57 downto 48)<=(others=>res(3)(41)); PP4(47 downto 6)<= res(3); -- Sigue la construcción de prod. parc. hasta PP8
end process partial3;
U1 : csa_tree port map (PP1,PP2,PP3,PP4,PP5,PP6,PP7,PP8,ssm,crr);
END behave;
![Page 53: 1. Algoritmo 2. Arquitectura 3. Implementación 4. Conclusiones IMPLEMENTACIÓN VLSI DEL ALGORITMO CORDIC EN MODO VECTORIZACIÓN UTILIZANDO RADIX ALTO](https://reader033.vdocumento.com/reader033/viewer/2022061301/54d7468c497959bd1d8b57c6/html5/thumbnails/53.jpg)
ARCHITECTURE behave OF mac_d IS
-- Declaración del componente CSA_TREE-- Declaración de señales y constantes
for U1 : csa_tree Use Entity work.csa_tree(crypt);
BEGIN
partial1:process(b)begin for i in 0 to 7 loop
b0(i)<=b(3*i);b1(i)<=b(3*i+1);b2(i)<=b(3*i+2);
end loop;end process partial1;
partial2:process(b0,b1,b2,c)beginfor i in 0 to 7 loop res(i)(0)<=b0(i) xor ((c(0) nand b1(i)) nand ('0' nand b2(i))); for j in 1 to 40 loop
res(i)(j)<=b0(i) xor ((c(j) nand b1(i)) nand (c(j-1) nand b2(i)));
end loop; res(i)(41)<=b0(i) xor ((c(40) nand b1(i))
nand (c(40) nand b2(i)));end loop;end process partial2;
partial3:process(res,add_ct,a)begin
if add_ct='0' then PP1(57 downto 42)<=(others=>res(0)(41)); PP1(41 downto 0)<= res(0);else PP1(57 downto 48)<=(others=>a(40)); PP1(47 downto 7)<= a; PP1(6 downto 0)<=(others=>’0’);end if;
PP2(57 downto 44)<=(others=>res(1)(41)); PP2(43 downto 2)<= res(1); PP3(57 downto 46)<=(others=>res(2)(41)); PP3(45 downto 4)<= res(2); PP4(57 downto 48)<=(others=>res(3)(41)); PP4(47 downto 6)<= res(3); -- Sigue la construcción de prod. parc. hasta PP8
end process partial3;
U1 : csa_tree port map (PP1,PP2,PP3,PP4,PP5,PP6,PP7,PP8,ssm,crr);
END behave;
![Page 54: 1. Algoritmo 2. Arquitectura 3. Implementación 4. Conclusiones IMPLEMENTACIÓN VLSI DEL ALGORITMO CORDIC EN MODO VECTORIZACIÓN UTILIZANDO RADIX ALTO](https://reader033.vdocumento.com/reader033/viewer/2022061301/54d7468c497959bd1d8b57c6/html5/thumbnails/54.jpg)
1. Algoritmo
2. Arquitectura
3. Implementación
4. Conclusiones
Tabla 1. Estimación de área y retardo de los principales componentes.
RESULTADOS
Componente Área (nand) Retardo (ns)MACs 2x 4455 11.76
Tabla B[ej] 6493 16.83Tabla ln(M2) 5422 15.05Tabla B[e1] 5154 14.01Tabla M2 4429 13.20Tabla Ai 3129 12.04CLAs 2516 7.98
Tabla Tab_z 2515 11.72Tabla e1 2382 10.46
![Page 55: 1. Algoritmo 2. Arquitectura 3. Implementación 4. Conclusiones IMPLEMENTACIÓN VLSI DEL ALGORITMO CORDIC EN MODO VECTORIZACIÓN UTILIZANDO RADIX ALTO](https://reader033.vdocumento.com/reader033/viewer/2022061301/54d7468c497959bd1d8b57c6/html5/thumbnails/55.jpg)
1. Algoritmo
2. Arquitectura
3. Implementación
4. Conclusiones
Tabla 2. Aportación de cada vía al área total.
RESULTADOS
Vía Área (nand) Área (%)Vía g 24485 52%
Vías d y 12557 27%Obtención M1 y M2 5005 11%
Vía z 4128 9%Selección i y ej 431 1%
Unidad de control 93 0%TOTAL 46699 100%
![Page 56: 1. Algoritmo 2. Arquitectura 3. Implementación 4. Conclusiones IMPLEMENTACIÓN VLSI DEL ALGORITMO CORDIC EN MODO VECTORIZACIÓN UTILIZANDO RADIX ALTO](https://reader033.vdocumento.com/reader033/viewer/2022061301/54d7468c497959bd1d8b57c6/html5/thumbnails/56.jpg)
1. Algoritmo
2. Arquitectura
3. Implementación
4. Conclusiones
RESULTADOS
Camino crítico arquitectura argumento: RA1 Recodificación mux2 Inverter MAC_
mux10 reg_: aprox. 29 ns ( 11.5 tfa ; 1 tfa = 2.56 ns).
Camino crítico arquitectura módulo y argumento: RA1 Mod Tabla Ai mux15 mux19 CSA_g
mux17 reg_g: aprox. 32 ns ( 12.5 tfa).
Segundo escalado dividido en dos ciclos: caminos de 28 y 21 ns, respectivamente.
![Page 57: 1. Algoritmo 2. Arquitectura 3. Implementación 4. Conclusiones IMPLEMENTACIÓN VLSI DEL ALGORITMO CORDIC EN MODO VECTORIZACIÓN UTILIZANDO RADIX ALTO](https://reader033.vdocumento.com/reader033/viewer/2022061301/54d7468c497959bd1d8b57c6/html5/thumbnails/57.jpg)
1. Algoritmo
2. Arquitectura
3. Implementación
4. Conclusiones
RESULTADOS
Camino crítico arquitectura argumento: RA1 Recodificación mux2 Inverter MAC_
mux10 reg_: aprox. 29 ns ( 11.5 tfa ; 1 tfa = 2.56 ns).
Camino crítico arquitectura módulo y argumento: RA1 Mod Tabla Ai mux15 mux19 CSA_g
mux17 reg_g: aprox. 32 ns ( 12.5 tfa).
Segundo escalado dividido en dos ciclos: caminos de 28 y 21 ns, respectivamente.
![Page 58: 1. Algoritmo 2. Arquitectura 3. Implementación 4. Conclusiones IMPLEMENTACIÓN VLSI DEL ALGORITMO CORDIC EN MODO VECTORIZACIÓN UTILIZANDO RADIX ALTO](https://reader033.vdocumento.com/reader033/viewer/2022061301/54d7468c497959bd1d8b57c6/html5/thumbnails/58.jpg)
1. Algoritmo
2. Arquitectura
3. Implementación
4. Conclusiones
RESULTADOS
Camino crítico arquitectura argumento: RA1 Recodificación mux2 Inverter MAC_
mux10 reg_: aprox. 29 ns ( 11.5 tfa ; 1 tfa = 2.56 ns).
Camino crítico arquitectura módulo y argumento: RA1 Mod Tabla Ai mux15 mux19 CSA_g
mux17 reg_g: aprox. 32 ns ( 12.5 tfa).
Segundo escalado dividido en dos ciclos: caminos de 28 y 21 ns, respectivamente.
![Page 59: 1. Algoritmo 2. Arquitectura 3. Implementación 4. Conclusiones IMPLEMENTACIÓN VLSI DEL ALGORITMO CORDIC EN MODO VECTORIZACIÓN UTILIZANDO RADIX ALTO](https://reader033.vdocumento.com/reader033/viewer/2022061301/54d7468c497959bd1d8b57c6/html5/thumbnails/59.jpg)
1. Algoritmo
2. Arquitectura
3. Implementación
4. Conclusiones
RESULTADOS
Camino crítico arquitectura argumento: RA1 Recodificación mux2 Inverter MAC_
mux10 reg_: aprox. 29 ns ( 11.5 tfa ; 1 tfa = 2.56 ns).
Camino crítico arquitectura módulo y argumento: RA1 Mod Tabla Ai mux15 mux19 CSA_g
mux17 reg_g: aprox. 32 ns ( 12.5 tfa).
Segundo escalado dividido en dos ciclos: caminos de 28 y 21 ns, respectivamente.
![Page 60: 1. Algoritmo 2. Arquitectura 3. Implementación 4. Conclusiones IMPLEMENTACIÓN VLSI DEL ALGORITMO CORDIC EN MODO VECTORIZACIÓN UTILIZANDO RADIX ALTO](https://reader033.vdocumento.com/reader033/viewer/2022061301/54d7468c497959bd1d8b57c6/html5/thumbnails/60.jpg)
1. Algoritmo
2. Arquitectura
3. Implementación
4. Conclusiones
RESULTADOS
Camino crítico arquitectura argumento: RA1 Recodificación mux2 Inverter MAC_
mux10 reg_: aprox. 29 ns ( 11.5 tfa ; 1 tfa = 2.56 ns).
Camino crítico arquitectura módulo y argumento: RA1 Mod Tabla Ai mux15 mux19 CSA_g
mux17 reg_g: aprox. 32 ns ( 12.5 tfa).
Segundo escalado dividido en dos ciclos: caminos de 28 y 21 ns, respectivamente.
![Page 61: 1. Algoritmo 2. Arquitectura 3. Implementación 4. Conclusiones IMPLEMENTACIÓN VLSI DEL ALGORITMO CORDIC EN MODO VECTORIZACIÓN UTILIZANDO RADIX ALTO](https://reader033.vdocumento.com/reader033/viewer/2022061301/54d7468c497959bd1d8b57c6/html5/thumbnails/61.jpg)
1. Algoritmo
2. Arquitectura
3. Implementación
4. Conclusiones
RESULTADOS
arquitectura ciclo dereloj
latencia tiempo aumento develocidad
radix 2 – noredundante
8.0 tfa 33 ciclos 264.0 tfa 3.3
radix 2 –redundante
5.5 tfa 33 ciclos 181.5 tfa 2.2
radix 4 –redundante
8.0 tfa 17 ciclos 136.0 tfa 1.7
radix 512 –redundante
11.5 tfa 7 ciclos 80.5 tfa 1.0
Tabla 3(a). Comparativa con otras arquitecturas CORDIC. Cálculo del argumento
![Page 62: 1. Algoritmo 2. Arquitectura 3. Implementación 4. Conclusiones IMPLEMENTACIÓN VLSI DEL ALGORITMO CORDIC EN MODO VECTORIZACIÓN UTILIZANDO RADIX ALTO](https://reader033.vdocumento.com/reader033/viewer/2022061301/54d7468c497959bd1d8b57c6/html5/thumbnails/62.jpg)
1. Algoritmo
2. Arquitectura
3. Implementación
4. Conclusiones
Tabla 3(b). Comparativa con otras arquitecturas CORDIC. Cálculo de módulo y argumento
RESULTADOS
arquitectura ciclo dereloj
latencia tiempo aumento develocidad
radix 2 – noredundante
8.0 tfa 33 ciclos 264.0 tfa 2.1
radix 2 –redundante
5.5 tfa 39 ciclos 214.5 tfa 1.7
radix 4 –redundante
8.0 tfa 25 ciclos 200.0 tfa 1.6
radix 512 –redundante
12.5 tfa 10 ciclos 125.0 tfa 1.0
![Page 63: 1. Algoritmo 2. Arquitectura 3. Implementación 4. Conclusiones IMPLEMENTACIÓN VLSI DEL ALGORITMO CORDIC EN MODO VECTORIZACIÓN UTILIZANDO RADIX ALTO](https://reader033.vdocumento.com/reader033/viewer/2022061301/54d7468c497959bd1d8b57c6/html5/thumbnails/63.jpg)
1. Algoritmo
2. Arquitectura
3. Implementación
4. Conclusiones
Implementación VLSI de una arquitectura serie, en punto fijo, precisión de 32 bits, de CORDIC en modo vectorización y coordenadas circulares.
Recurrencia con radix alto (r 512) en las microrrotaciones, con aritmética redundante.
Selección mediante redondeo de los coeficientes i y ej, y realización de dos escalados de la recurrencia para garantizar convergencia.
CONCLUSIONES
![Page 64: 1. Algoritmo 2. Arquitectura 3. Implementación 4. Conclusiones IMPLEMENTACIÓN VLSI DEL ALGORITMO CORDIC EN MODO VECTORIZACIÓN UTILIZANDO RADIX ALTO](https://reader033.vdocumento.com/reader033/viewer/2022061301/54d7468c497959bd1d8b57c6/html5/thumbnails/64.jpg)
1. Algoritmo
2. Arquitectura
3. Implementación
4. Conclusiones
Implementación VLSI de una arquitectura serie, en punto fijo, precisión de 32 bits, de CORDIC en modo vectorización y coordenadas circulares.
Recurrencia con radix alto (r 512) en las microrrotaciones, con aritmética redundante.
Selección mediante redondeo de los coeficientes i y ej, y realización de dos escalados de la recurrencia para garantizar convergencia.
CONCLUSIONES
![Page 65: 1. Algoritmo 2. Arquitectura 3. Implementación 4. Conclusiones IMPLEMENTACIÓN VLSI DEL ALGORITMO CORDIC EN MODO VECTORIZACIÓN UTILIZANDO RADIX ALTO](https://reader033.vdocumento.com/reader033/viewer/2022061301/54d7468c497959bd1d8b57c6/html5/thumbnails/65.jpg)
1. Algoritmo
2. Arquitectura
3. Implementación
4. Conclusiones
Implementación VLSI de una arquitectura serie, en punto fijo, precisión de 32 bits, de CORDIC en modo vectorización y coordenadas circulares.
Recurrencia con radix alto (r 512) en las microrrotaciones, con aritmética redundante.
Selección mediante redondeo de los coeficientes i y ej, y realización de dos escalados de la recurrencia para garantizar convergencia.
CONCLUSIONES
![Page 66: 1. Algoritmo 2. Arquitectura 3. Implementación 4. Conclusiones IMPLEMENTACIÓN VLSI DEL ALGORITMO CORDIC EN MODO VECTORIZACIÓN UTILIZANDO RADIX ALTO](https://reader033.vdocumento.com/reader033/viewer/2022061301/54d7468c497959bd1d8b57c6/html5/thumbnails/66.jpg)
1. Algoritmo
2. Arquitectura
3. Implementación
4. Conclusiones
Implementación VLSI de una arquitectura serie, en punto fijo, precisión de 32 bits, de CORDIC en modo vectorización y coordenadas circulares.
Recurrencia con radix alto (r 512) en las microrrotaciones, con aritmética redundante.
Selección mediante redondeo de los coeficientes i y ej, y realización de dos escalados de la recurrencia para garantizar convergencia.
CONCLUSIONES
![Page 67: 1. Algoritmo 2. Arquitectura 3. Implementación 4. Conclusiones IMPLEMENTACIÓN VLSI DEL ALGORITMO CORDIC EN MODO VECTORIZACIÓN UTILIZANDO RADIX ALTO](https://reader033.vdocumento.com/reader033/viewer/2022061301/54d7468c497959bd1d8b57c6/html5/thumbnails/67.jpg)
1. Algoritmo
2. Arquitectura
3. Implementación
4. Conclusiones
Flujo de diseño basado en VHDL, con ayuda de herramientas CAD, y tecnología de diseño de 0.7 m.
Aumento de velocidad entre un 50% y un 100% con respecto a arquitecturas CORDIC tradicionales.
Primera implementación realizada del algoritmo CORDIC con radix alto.
CONCLUSIONES
![Page 68: 1. Algoritmo 2. Arquitectura 3. Implementación 4. Conclusiones IMPLEMENTACIÓN VLSI DEL ALGORITMO CORDIC EN MODO VECTORIZACIÓN UTILIZANDO RADIX ALTO](https://reader033.vdocumento.com/reader033/viewer/2022061301/54d7468c497959bd1d8b57c6/html5/thumbnails/68.jpg)
1. Algoritmo
2. Arquitectura
3. Implementación
4. Conclusiones
Flujo de diseño basado en VHDL, con ayuda de herramientas CAD, y tecnología de diseño de 0.7 m.
Aumento de velocidad entre un 50% y un 100% con respecto a arquitecturas CORDIC tradicionales.
Primera implementación realizada del algoritmo CORDIC con radix alto.
CONCLUSIONES
![Page 69: 1. Algoritmo 2. Arquitectura 3. Implementación 4. Conclusiones IMPLEMENTACIÓN VLSI DEL ALGORITMO CORDIC EN MODO VECTORIZACIÓN UTILIZANDO RADIX ALTO](https://reader033.vdocumento.com/reader033/viewer/2022061301/54d7468c497959bd1d8b57c6/html5/thumbnails/69.jpg)
1. Algoritmo
2. Arquitectura
3. Implementación
4. Conclusiones
Flujo de diseño basado en VHDL, con ayuda de herramientas CAD, y tecnología de diseño de 0.7 m.
Aumento de velocidad entre un 50% y un 100% con respecto a arquitecturas CORDIC tradicionales.
Primera implementación realizada del algoritmo CORDIC con radix alto.
CONCLUSIONES
![Page 70: 1. Algoritmo 2. Arquitectura 3. Implementación 4. Conclusiones IMPLEMENTACIÓN VLSI DEL ALGORITMO CORDIC EN MODO VECTORIZACIÓN UTILIZANDO RADIX ALTO](https://reader033.vdocumento.com/reader033/viewer/2022061301/54d7468c497959bd1d8b57c6/html5/thumbnails/70.jpg)
1. Algoritmo
2. Arquitectura
3. Implementación
4. Conclusiones
Líneas de investigación abiertas:
Implementación con un radix menor, para estudiar su impacto sobre área y velocidad.
Implementación de la arquitectura segmentada.
Extensión a modo rotación.
Extensión a sistemas de coordenadas lineal e hiperbólico, e introducción del algoritmo recurrente de división.
CONCLUSIONES
![Page 71: 1. Algoritmo 2. Arquitectura 3. Implementación 4. Conclusiones IMPLEMENTACIÓN VLSI DEL ALGORITMO CORDIC EN MODO VECTORIZACIÓN UTILIZANDO RADIX ALTO](https://reader033.vdocumento.com/reader033/viewer/2022061301/54d7468c497959bd1d8b57c6/html5/thumbnails/71.jpg)
1. Algoritmo
2. Arquitectura
3. Implementación
4. Conclusiones
Líneas de investigación abiertas:
Implementación con un radix menor, para estudiar su impacto sobre área y velocidad.
Implementación de la arquitectura segmentada.
Extensión a modo rotación.
Extensión a sistemas de coordenadas lineal e hiperbólico, e introducción del algoritmo recurrente de división.
CONCLUSIONES
![Page 72: 1. Algoritmo 2. Arquitectura 3. Implementación 4. Conclusiones IMPLEMENTACIÓN VLSI DEL ALGORITMO CORDIC EN MODO VECTORIZACIÓN UTILIZANDO RADIX ALTO](https://reader033.vdocumento.com/reader033/viewer/2022061301/54d7468c497959bd1d8b57c6/html5/thumbnails/72.jpg)
1. Algoritmo
2. Arquitectura
3. Implementación
4. Conclusiones
Líneas de investigación abiertas:
Implementación con un radix menor, para estudiar su impacto sobre área y velocidad.
Implementación de la arquitectura segmentada.
Extensión a modo rotación.
Extensión a sistemas de coordenadas lineal e hiperbólico, e introducción del algoritmo recurrente de división.
CONCLUSIONES
![Page 73: 1. Algoritmo 2. Arquitectura 3. Implementación 4. Conclusiones IMPLEMENTACIÓN VLSI DEL ALGORITMO CORDIC EN MODO VECTORIZACIÓN UTILIZANDO RADIX ALTO](https://reader033.vdocumento.com/reader033/viewer/2022061301/54d7468c497959bd1d8b57c6/html5/thumbnails/73.jpg)
1. Algoritmo
2. Arquitectura
3. Implementación
4. Conclusiones
Líneas de investigación abiertas:
Implementación con un radix menor, para estudiar su impacto sobre área y velocidad.
Implementación de la arquitectura segmentada.
Extensión a modo rotación.
Extensión a sistemas de coordenadas lineal e hiperbólico, e introducción del algoritmo recurrente de división.
CONCLUSIONES
![Page 74: 1. Algoritmo 2. Arquitectura 3. Implementación 4. Conclusiones IMPLEMENTACIÓN VLSI DEL ALGORITMO CORDIC EN MODO VECTORIZACIÓN UTILIZANDO RADIX ALTO](https://reader033.vdocumento.com/reader033/viewer/2022061301/54d7468c497959bd1d8b57c6/html5/thumbnails/74.jpg)
1. Algoritmo
2. Arquitectura
3. Implementación
4. Conclusiones
Líneas de investigación abiertas:
Implementación con un radix menor, para estudiar su impacto sobre área y velocidad.
Implementación de la arquitectura segmentada.
Extensión a modo rotación.
Extensión a sistemas de coordenadas lineal e hiperbólico, e introducción del algoritmo recurrente de división.
CONCLUSIONES
![Page 75: 1. Algoritmo 2. Arquitectura 3. Implementación 4. Conclusiones IMPLEMENTACIÓN VLSI DEL ALGORITMO CORDIC EN MODO VECTORIZACIÓN UTILIZANDO RADIX ALTO](https://reader033.vdocumento.com/reader033/viewer/2022061301/54d7468c497959bd1d8b57c6/html5/thumbnails/75.jpg)
1. Algoritmo
2. Arquitectura
3. Implementación
4. Conclusiones
Líneas de investigación abiertas:
Implementación con un radix menor, para estudiar su impacto sobre área y velocidad.
Implementación de la arquitectura segmentada.
Extensión a modo rotación.
Extensión a sistemas de coordenadas lineal e hiperbólico, e introducción del algoritmo recurrente de división.
CONCLUSIONES
![Page 76: 1. Algoritmo 2. Arquitectura 3. Implementación 4. Conclusiones IMPLEMENTACIÓN VLSI DEL ALGORITMO CORDIC EN MODO VECTORIZACIÓN UTILIZANDO RADIX ALTO](https://reader033.vdocumento.com/reader033/viewer/2022061301/54d7468c497959bd1d8b57c6/html5/thumbnails/76.jpg)
1. Algoritmo
2. Arquitectura
3. Implementación
4. Conclusiones
IMPLEMENTACIÓN VLSI
DEL ALGORITMO CORDIC
EN MODO VECTORIZACIÓN
UTILIZANDO RADIX ALTO
José Alejandro Piñeiro Riobó