Sin t - PowerPoint PPT Presentation

1 / 76
About This Presentation
Title:

Sin t

Description:

Title: Sin t tulo de diapositiva Author: Alex Last modified by: gpaa Created Date: 9/16/1999 9:25:38 PM Document presentation format: Presentaci n en pantalla – PowerPoint PPT presentation

Number of Views:42
Avg rating:3.0/5.0
Slides: 77
Provided by: Alex4160
Category:
Tags: cadence | sin | vhdl

less

Transcript and Presenter's Notes

Title: Sin t


1
José Alejandro Piñeiro Riobó
IMPLEMENTACIÓN VLSI DEL ALGORITMO
CORDIC EN MODO VECTORIZACIÓN UTILIZANDO
RADIX ALTO
1. Algoritmo 2. Arquitectura 3. Implementación 4.
Conclusiones
2
ALGORITMO CORDIC
  • Algoritmo iterativo para la rotación de un
    vector en un sistema de coordenadas lineales,
    circulares o hiperbólicas.

1. Algoritmo 2. Arquitectura 3. Implementación 4.
Conclusiones
  • 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.

3
ALGORITMO CORDIC
  • Algoritmo iterativo para la rotación de un
    vector en un sistema de coordenadas lineales,
    circulares o hiperbólicas.

1. Algoritmo 2. Arquitectura 3. Implementación 4.
Conclusiones
  • 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.

4
ALGORITMO CORDIC
  • Algoritmo iterativo para la rotación de un
    vector en un sistema de coordenadas lineales,
    circulares o hiperbólicas.

1. Algoritmo 2. Arquitectura 3. Implementación 4.
Conclusiones
  • 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.

5
ALGORITMO CORDIC
  • Algoritmo iterativo para la rotación de un
    vector en un sistema de coordenadas lineales,
    circulares o hiperbólicas.

1. Algoritmo 2. Arquitectura 3. Implementación 4.
Conclusiones
  • 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.

6
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.

1. Algoritmo 2. Arquitectura 3. Implementación 4.
Conclusiones
  • 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).

7
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.

1. Algoritmo 2. Arquitectura 3. Implementación 4.
Conclusiones
  • 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).

8
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.

1. Algoritmo 2. Arquitectura 3. Implementación 4.
Conclusiones
  • 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).

9
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.

1. Algoritmo 2. Arquitectura 3. Implementación 4.
Conclusiones
  • 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).

10
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.

1. Algoritmo 2. Arquitectura 3. Implementación 4.
Conclusiones
  • 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).

11
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.

1. Algoritmo 2. Arquitectura 3. Implementación 4.
Conclusiones
  • 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).

12
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 xN1módulo y zN1argumento.
  • Fundamento descomposición del ángulo de
    rotación q en una suma de ángulos elementales
  • Los coeficientes si toman valores enteros en el
    intervalo -(r -1), ... , 0, ... , (r -1),
    siendo el radix r 2b.

1. Algoritmo 2. Arquitectura 3. Implementación 4.
Conclusiones
13
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 xN1módulo y zN1argumento.
  • Fundamento descomposición del ángulo de
    rotación q en una suma de ángulos elementales
  • Los coeficientes si toman valores enteros en el
    intervalo -(r -1), ... , 0, ... , (r -1),
    siendo el radix r 2b.

1. Algoritmo 2. Arquitectura 3. Implementación 4.
Conclusiones
14
ALGORITMO CORDIC CON RADIX ALTO EN MODO
VECTORIZACIÓN
1. Algoritmo 2. Arquitectura 3. Implementación 4.
Conclusiones
Y
q a1 a2 a3 ...
X
15
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 xN1módulo y zN1argumento.
  • Fundamento descomposición del ángulo de
    rotación q en una suma de ángulos elementales
  • Los coeficientes si toman valores enteros en el
    intervalo -(r -1), ... , 0, ... , (r -1),
    siendo el radix r 2b.

1. Algoritmo 2. Arquitectura 3. Implementación 4.
Conclusiones
16
ALGORITMO CORDIC CON RADIX ALTO EN MODO
VECTORIZACIÓN
  • Expresión de las recurrencias
  • di1 di sir -2iwi
  • wi1 r(wi - sidi)
  • zi1 zi tan-1(sir -i)
  • con d1 xin, w1 r yin, z1 0.
  • Los coeficientes si se seleccionan mediante el
    redondeo de wi truncado a t bits fraccionales
  • si round (wit )

1. Algoritmo 2. Arquitectura 3. Implementación 4.
Conclusiones
17
ALGORITMO CORDIC CON RADIX ALTO EN MODO
VECTORIZACIÓN
  • Expresión de las recurrencias
  • di1 di sir -2iwi
  • wi1 r(wi - sidi)
  • zi1 zi tan-1(sir -i)
  • con d1 xin, w1 r yin, z1 0.
  • Los coeficientes si se seleccionan mediante el
    redondeo de wi truncado a t bits fraccionales
  • si round (wit )

1. Algoritmo 2. Arquitectura 3. Implementación 4.
Conclusiones
18
ALGORITMO CORDIC CON RADIX ALTO EN MODO
VECTORIZACIÓN
  • Expresión de las recurrencias
  • di1 di sir -2iwi
  • wi1 r(wi - sidi)
  • zi1 zi tan-1(sir -i)
  • con d1 xin, w1 r yin, z1 0.
  • Los coeficientes si se seleccionan mediante el
    redondeo de wi truncado a t bits fraccionales
  • si round (wit )

1. Algoritmo 2. Arquitectura 3. Implementación 4.
Conclusiones
19
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.

1. Algoritmo 2. Arquitectura 3. Implementación 4.
Conclusiones
  • Para simplificar el primer escalado, se utiliza
    un radix R inferior en la primera
    microrrotación, siendo
  • R 2B gt 2ëb/2û1, para t gt2
  • Extensión del rango de convergencia.
  • Comparación de los F bits más significativos de
    xin e yin.
  • Si yin gt xin2-F, intercambio, z1 p/2 y se
    decrementa.

20
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.

1. Algoritmo 2. Arquitectura 3. Implementación 4.
Conclusiones
  • Para simplificar el primer escalado, se utiliza
    un radix R inferior en la primera
    microrrotación, siendo
  • R 2B gt 2ëb/2û1, para t gt2
  • Extensión del rango de convergencia.
  • Comparación de los F bits más significativos de
    xin e yin.
  • Si yin gt xin2-F, intercambio, z1 p/2 y se
    decrementa.

21
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.

1. Algoritmo 2. Arquitectura 3. Implementación 4.
Conclusiones
  • Para simplificar el primer escalado, se utiliza
    un radix R inferior en la primera
    microrrotación, siendo
  • R 2B gt 2ëb/2û1, para t gt2
  • Extensión del rango de convergencia.
  • Comparación de los F bits más significativos de
    xin e yin.
  • Si yin gt xin2-F, intercambio, z1 p/2 y se
    decrementa.

22
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.

1. Algoritmo 2. Arquitectura 3. Implementación 4.
Conclusiones
  • Para simplificar el primer escalado, se utiliza
    un radix R inferior en la primera
    microrrotación, siendo
  • R 2B gt 2ëb/2û1, para t gt2
  • Extensión del rango de convergencia.
  • Comparación de los F bits más significativos de
    xin e yin.
  • Si yin gt xin2-F, intercambio, z1 p/2 y se
    decrementa.

23
ALGORITMO CORDIC CON RADIX ALTO EN MODO
VECTORIZACIÓN
  • Existencia de un factor de escala Ki en las
    variables d y w en cada microrrotación.
  • El factor de escala global viene dado por
  • K depende del ángulo.
  • Cómputo de ln(K -1) gi1 gi -
    (1/2)ln(1si2r -2i).
  • Compensación evaluando la función exponencial
  • xr xCexp(ln(K -1)) xCK -1

1. Algoritmo 2. Arquitectura 3. Implementación 4.
Conclusiones
24
ALGORITMO CORDIC CON RADIX ALTO EN MODO
VECTORIZACIÓN
  • Existencia de un factor de escala Ki en las
    variables d y w en cada microrrotación.
  • El factor de escala global viene dado por
  • K depende del ángulo.
  • Cómputo de ln(K -1) gi1 gi -
    (1/2)ln(1si2r -2i).
  • Compensación evaluando la función exponencial
  • xr xCexp(ln(K -1)) xCK -1

1. Algoritmo 2. Arquitectura 3. Implementación 4.
Conclusiones
25
ALGORITMO CORDIC CON RADIX ALTO EN MODO
VECTORIZACIÓN
  • Existencia de un factor de escala Ki en las
    variables d y w en cada microrrotación.
  • El factor de escala global viene dado por
  • K depende del ángulo.
  • Cómputo de ln(K -1) gi1 gi -
    (1/2)ln(1si2r -2i).
  • Compensación evaluando la función exponencial
  • xr xCexp(ln(K -1)) xCK -1

1. Algoritmo 2. Arquitectura 3. Implementación 4.
Conclusiones
26
ALGORITMO CORDIC CON RADIX ALTO EN MODO
VECTORIZACIÓN
  • Existencia de un factor de escala Ki en las
    variables d y w en cada microrrotación.
  • El factor de escala global viene dado por
  • K depende del ángulo.
  • Cómputo de ln(K -1) gi1 gi -
    (1/2)ln(1si2r -2i).
  • Compensación evaluando la función exponencial
  • xr xCexp(ln(K -1)) xCK -1

1. Algoritmo 2. Arquitectura 3. Implementación 4.
Conclusiones
27
ALGORITMO CORDIC CON RADIX ALTO EN MODO
VECTORIZACIÓN
  • Existencia de un factor de escala Ki en las
    variables d y w en cada microrrotación.
  • El factor de escala global viene dado por
  • K depende del ángulo.
  • Cómputo de ln(K -1) gi1 gi -
    (1/2)ln(1si2r -2i).
  • Compensación evaluando la función exponencial
  • xr xCexp(ln(K -1)) xCK -1

1. Algoritmo 2. Arquitectura 3. Implementación 4.
Conclusiones
28
(No Transcript)
29
ARQUITECTURA
  • Arquitectura palabra-serie.
  • Formato de punto fijo.
  • Arquitectura para el cálculo del argumento del
    vector de entrada función tan-1(yin/xin).
  • Arquitectura para el cálculo de módulo y
    argumento (xin2yin2)½ y tan-1(yin/xin).

1. Algoritmo 2. Arquitectura 3. Implementación 4.
Conclusiones
30
ARQUITECTURA
  • Arquitectura palabra-serie.
  • Formato de punto fijo.
  • Arquitectura para el cálculo del argumento del
    vector de entrada función tan-1(yin/xin).
  • Arquitectura para el cálculo de módulo y
    argumento (xin2yin2)½ y tan-1(yin/xin).

1. Algoritmo 2. Arquitectura 3. Implementación 4.
Conclusiones
31
ARQUITECTURA
  • Arquitectura palabra-serie.
  • Formato de punto fijo.
  • Arquitectura para el cálculo del argumento del
    vector de entrada función tan-1(yin/xin).
  • Arquitectura para el cálculo de módulo y
    argumento (xin2yin2)½ y tan-1(yin/xin).

1. Algoritmo 2. Arquitectura 3. Implementación 4.
Conclusiones
32
ARQUITECTURA
  • Arquitectura palabra-serie.
  • Formato de punto fijo.
  • Arquitectura para el cálculo del argumento del
    vector de entrada función tan-1(yin/xin).
  • Arquitectura para el cálculo de módulo y
    argumento (xin2yin2)½ y tan-1(yin/xin).

1. Algoritmo 2. Arquitectura 3. Implementación 4.
Conclusiones
33
  • Arquitectura completa Arquitectura argumento
    (modificada) vía g.

gi1 gi - (1/2)ln(1si2r -2i)
34
  • Bloques de M1 y M2.- Obtención de los factores
    de escalado.
  • Bloques de si y ej.- Selección de los
    coeficientes mediante redondeo.
  • Vías d y w.- Realización de los escalados y
    las microrrotaciones.
  • 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
35
IMPLEMENTACIÓN
  • 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

1. Algoritmo 2. Arquitectura 3. Implementación 4.
Conclusiones
36
IMPLEMENTACIÓN
  • 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

1. Algoritmo 2. Arquitectura 3. Implementación 4.
Conclusiones
37
IMPLEMENTACIÓN
  • 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

1. Algoritmo 2. Arquitectura 3. Implementación 4.
Conclusiones
38
IMPLEMENTACIÓN
  • 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

1. Algoritmo 2. Arquitectura 3. Implementación 4.
Conclusiones
39
IMPLEMENTACIÓN
  • 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 mm CMOS doble
    metal de ES2.

1. Algoritmo 2. Arquitectura 3. Implementación 4.
Conclusiones
40
IMPLEMENTACIÓN
  • 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 mm CMOS doble
    metal de ES2.

1. Algoritmo 2. Arquitectura 3. Implementación 4.
Conclusiones
41
IMPLEMENTACIÓN
  • 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 mm CMOS doble
    metal de ES2.

1. Algoritmo 2. Arquitectura 3. Implementación 4.
Conclusiones
42
IMPLEMENTACIÓN
  • 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 mm CMOS doble
    metal de ES2.

1. Algoritmo 2. Arquitectura 3. Implementación 4.
Conclusiones
43
IMPLEMENTACIÓN
  • 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 mm CMOS doble
    metal de ES2.

1. Algoritmo 2. Arquitectura 3. Implementación 4.
Conclusiones
44
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.

1. Algoritmo 2. Arquitectura 3. Implementación 4.
Conclusiones
45
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.

1. Algoritmo 2. Arquitectura 3. Implementación 4.
Conclusiones
46
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.

1. Algoritmo 2. Arquitectura 3. Implementación 4.
Conclusiones
47
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.

1. Algoritmo 2. Arquitectura 3. Implementación 4.
Conclusiones
48
(No Transcript)
49
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 partial1process(b)
begin for i in 0 to 7
loop b0(i)ltb(3i) b1(i)ltb(3i1) b2(i)ltb(3
i2) end loop end process
partial1 partial2process(b0,b1,b2,c) begin for
i in 0 to 7 loop res(i)(0)ltb0(i) xor
((c(0) nand b1(i)) nand ('0' nand b2(i)))
for j in 1 to 40 loop res(i)(j)ltb0(i) xor
((c(j) nand b1(i)) nand (c(j-1) nand
b2(i))) end loop
res(i)(41)ltb0(i) xor ((c(40) nand b1(i)) nand
(c(40) nand b2(i))) end loop end process
partial2
partial3process(res,add_ct,a) begin if
add_ct'0' then PP1(57 downto
42)lt(othersgtres(0)(41)) PP1(41
downto 0)lt res(0) else PP1(57 downto
48)lt(othersgta(40)) PP1(47 downto
7)lt a PP1(6 downto
0)lt(othersgt0) end if PP2(57
downto 44)lt(othersgtres(1)(41))
PP2(43 downto 2)lt res(1) PP3(57
downto 46)lt(othersgtres(2)(41))
PP3(45 downto 4)lt res(2) PP4(57
downto 48)lt(othersgtres(3)(41))
PP4(47 downto 6)lt 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
50
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 partial1process(b)
begin for i in 0 to 7
loop b0(i)ltb(3i) b1(i)ltb(3i1) b2(i)ltb(3
i2) end loop end process
partial1 partial2process(b0,b1,b2,c) begin for
i in 0 to 7 loop res(i)(0)ltb0(i) xor
((c(0) nand b1(i)) nand ('0' nand b2(i)))
for j in 1 to 40 loop res(i)(j)ltb0(i) xor
((c(j) nand b1(i)) nand (c(j-1) nand
b2(i))) end loop
res(i)(41)ltb0(i) xor ((c(40) nand b1(i)) nand
(c(40) nand b2(i))) end loop end process
partial2
partial3process(res,add_ct,a) begin if
add_ct'0' then PP1(57 downto
42)lt(othersgtres(0)(41)) PP1(41
downto 0)lt res(0) else PP1(57 downto
48)lt(othersgta(40)) PP1(47 downto
7)lt a PP1(6 downto
0)lt(othersgt0) end if PP2(57
downto 44)lt(othersgtres(1)(41))
PP2(43 downto 2)lt res(1) PP3(57
downto 46)lt(othersgtres(2)(41))
PP3(45 downto 4)lt res(2) PP4(57
downto 48)lt(othersgtres(3)(41))
PP4(47 downto 6)lt 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
51
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 partial1process(b)
begin for i in 0 to 7
loop b0(i)ltb(3i) b1(i)ltb(3i1) b2(i)ltb(3
i2) end loop end process
partial1 partial2process(b0,b1,b2,c) begin for
i in 0 to 7 loop res(i)(0)ltb0(i) xor
((c(0) nand b1(i)) nand ('0' nand b2(i)))
for j in 1 to 40 loop res(i)(j)ltb0(i) xor
((c(j) nand b1(i)) nand (c(j-1) nand
b2(i))) end loop
res(i)(41)ltb0(i) xor ((c(40) nand b1(i)) nand
(c(40) nand b2(i))) end loop end process
partial2
partial3process(res,add_ct,a) begin if
add_ct'0' then PP1(57 downto
42)lt(othersgtres(0)(41)) PP1(41
downto 0)lt res(0) else PP1(57 downto
48)lt(othersgta(40)) PP1(47 downto
7)lt a PP1(6 downto
0)lt(othersgt0) end if PP2(57
downto 44)lt(othersgtres(1)(41))
PP2(43 downto 2)lt res(1) PP3(57
downto 46)lt(othersgtres(2)(41))
PP3(45 downto 4)lt res(2) PP4(57
downto 48)lt(othersgtres(3)(41))
PP4(47 downto 6)lt 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
52
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 partial1process(b)
begin for i in 0 to 7
loop b0(i)ltb(3i) b1(i)ltb(3i1) b2(i)ltb(3
i2) end loop end process
partial1 partial2process(b0,b1,b2,c) begin for
i in 0 to 7 loop res(i)(0)ltb0(i) xor
((c(0) nand b1(i)) nand ('0' nand b2(i)))
for j in 1 to 40 loop res(i)(j)ltb0(i) xor
((c(j) nand b1(i)) nand (c(j-1) nand
b2(i))) end loop
res(i)(41)ltb0(i) xor ((c(40) nand b1(i)) nand
(c(40) nand b2(i))) end loop end process
partial2
partial3process(res,add_ct,a) begin if
add_ct'0' then PP1(57 downto
42)lt(othersgtres(0)(41)) PP1(41
downto 0)lt res(0) else PP1(57 downto
48)lt(othersgta(40)) PP1(47 downto
7)lt a PP1(6 downto
0)lt(othersgt0) end if PP2(57
downto 44)lt(othersgtres(1)(41))
PP2(43 downto 2)lt res(1) PP3(57
downto 46)lt(othersgtres(2)(41))
PP3(45 downto 4)lt res(2) PP4(57
downto 48)lt(othersgtres(3)(41))
PP4(47 downto 6)lt 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
53
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 partial1process(b)
begin for i in 0 to 7
loop b0(i)ltb(3i) b1(i)ltb(3i1) b2(i)ltb(3
i2) end loop end process
partial1 partial2process(b0,b1,b2,c) begin for
i in 0 to 7 loop res(i)(0)ltb0(i) xor
((c(0) nand b1(i)) nand ('0' nand b2(i)))
for j in 1 to 40 loop res(i)(j)ltb0(i) xor
((c(j) nand b1(i)) nand (c(j-1) nand
b2(i))) end loop
res(i)(41)ltb0(i) xor ((c(40) nand b1(i)) nand
(c(40) nand b2(i))) end loop end process
partial2
partial3process(res,add_ct,a) begin if
add_ct'0' then PP1(57 downto
42)lt(othersgtres(0)(41)) PP1(41
downto 0)lt res(0) else PP1(57 downto
48)lt(othersgta(40)) PP1(47 downto
7)lt a PP1(6 downto
0)lt(othersgt0) end if PP2(57
downto 44)lt(othersgtres(1)(41))
PP2(43 downto 2)lt res(1) PP3(57
downto 46)lt(othersgtres(2)(41))
PP3(45 downto 4)lt res(2) PP4(57
downto 48)lt(othersgtres(3)(41))
PP4(47 downto 6)lt 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
54
RESULTADOS
1. Algoritmo 2. Arquitectura 3. Implementación 4.
Conclusiones
Tabla 1. Estimación de área y retardo de los
principales componentes.
55
RESULTADOS
1. Algoritmo 2. Arquitectura 3. Implementación 4.
Conclusiones
Tabla 2. Aportación de cada vía al área total.
56
RESULTADOS
  • Camino crítico arquitectura argumento
  • RA1 Recodificación mux2 Inverter MAC_w
    mux10 reg_w 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.

1. Algoritmo 2. Arquitectura 3. Implementación 4.
Conclusiones
57
RESULTADOS
  • Camino crítico arquitectura argumento
  • RA1 Recodificación mux2 Inverter MAC_w
    mux10 reg_w 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.

1. Algoritmo 2. Arquitectura 3. Implementación 4.
Conclusiones
58
RESULTADOS
  • Camino crítico arquitectura argumento
  • RA1 Recodificación mux2 Inverter MAC_w
    mux10 reg_w 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.

1. Algoritmo 2. Arquitectura 3. Implementación 4.
Conclusiones
59
RESULTADOS
  • Camino crítico arquitectura argumento
  • RA1 Recodificación mux2 Inverter MAC_w
    mux10 reg_w 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.

1. Algoritmo 2. Arquitectura 3. Implementación 4.
Conclusiones
60
RESULTADOS
  • Camino crítico arquitectura argumento
  • RA1 Recodificación mux2 Inverter MAC_w
    mux10 reg_w 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.

1. Algoritmo 2. Arquitectura 3. Implementación 4.
Conclusiones
61
RESULTADOS
1. Algoritmo 2. Arquitectura 3. Implementación 4.
Conclusiones
  • Tabla 3(a). Comparativa con otras arquitecturas
    CORDIC.
  • Cálculo del argumento

62
RESULTADOS
1. Algoritmo 2. Arquitectura 3. Implementación 4.
Conclusiones
  • Tabla 3(b). Comparativa con otras arquitecturas
    CORDIC.
  • Cálculo de módulo y argumento

63
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
    si y ej, y realización de dos escalados de la
    recurrencia para garantizar convergencia.

1. Algoritmo 2. Arquitectura 3. Implementación 4.
Conclusiones
64
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
    si y ej, y realización de dos escalados de la
    recurrencia para garantizar convergencia.

1. Algoritmo 2. Arquitectura 3. Implementación 4.
Conclusiones
65
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
    si y ej, y realización de dos escalados de la
    recurrencia para garantizar convergencia.

1. Algoritmo 2. Arquitectura 3. Implementación 4.
Conclusiones
66
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
    si y ej, y realización de dos escalados de la
    recurrencia para garantizar convergencia.

1. Algoritmo 2. Arquitectura 3. Implementación 4.
Conclusiones
67
CONCLUSIONES
  • Flujo de diseño basado en VHDL, con ayuda de
    herramientas CAD, y tecnología de diseño de 0.7
    mm.
  • 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.

1. Algoritmo 2. Arquitectura 3. Implementación 4.
Conclusiones
68
CONCLUSIONES
  • Flujo de diseño basado en VHDL, con ayuda de
    herramientas CAD, y tecnología de diseño de 0.7
    mm.
  • 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.

1. Algoritmo 2. Arquitectura 3. Implementación 4.
Conclusiones
69
CONCLUSIONES
  • Flujo de diseño basado en VHDL, con ayuda de
    herramientas CAD, y tecnología de diseño de 0.7
    mm.
  • 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.

1. Algoritmo 2. Arquitectura 3. Implementación 4.
Conclusiones
70
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.

1. Algoritmo 2. Arquitectura 3. Implementación 4.
Conclusiones
71
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.

1. Algoritmo 2. Arquitectura 3. Implementación 4.
Conclusiones
72
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.

1. Algoritmo 2. Arquitectura 3. Implementación 4.
Conclusiones
73
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.

1. Algoritmo 2. Arquitectura 3. Implementación 4.
Conclusiones
74
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.

1. Algoritmo 2. Arquitectura 3. Implementación 4.
Conclusiones
75
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.

1. Algoritmo 2. Arquitectura 3. Implementación 4.
Conclusiones
76
José Alejandro Piñeiro Riobó
IMPLEMENTACIÓN VLSI DEL ALGORITMO
CORDIC EN MODO VECTORIZACIÓN UTILIZANDO
RADIX ALTO
1. Algoritmo 2. Arquitectura 3. Implementación 4.
Conclusiones
Write a Comment
User Comments (0)
About PowerShow.com