1. Algoritmo 2. Arquitectura 3. Implementación 4. Conclusiones IMPLEMENTACIÓN VLSI DEL ALGORITMO...

76
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ó

Transcript of 1. Algoritmo 2. Arquitectura 3. Implementación 4. Conclusiones IMPLEMENTACIÓN VLSI DEL ALGORITMO...

Page 1: 1. Algoritmo 2. Arquitectura 3. Implementación 4. Conclusiones  IMPLEMENTACIÓN VLSI DEL ALGORITMO CORDIC EN MODO VECTORIZACIÓN UTILIZANDO RADIX ALTO

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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
Page 29: 1. Algoritmo 2. Arquitectura 3. Implementación 4. Conclusiones  IMPLEMENTACIÓN VLSI DEL ALGORITMO CORDIC EN MODO VECTORIZACIÓN UTILIZANDO RADIX ALTO

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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
Page 49: 1. Algoritmo 2. Arquitectura 3. Implementación 4. Conclusiones  IMPLEMENTACIÓN VLSI DEL ALGORITMO CORDIC EN MODO VECTORIZACIÓN UTILIZANDO RADIX ALTO

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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ó