Академический Документы
Профессиональный Документы
Культура Документы
ALTERNATIVAS DE OPTIMIZACIN
Ignacio E. Sardi, Bruno L. Uberti, Fernando G. Tinetti, Antonio A. Quijano
ftinetti@itba.edu.ar
RESUMEN sistema para luego detallar cada uno de los bloques que
componen el diseo final. Desde el inicio mismo, el
En este trabajo se presenta el diseo de un sumador de nfasis est puesto en la reduccin de tiempo de
nmeros representados en punto flotante siguiendo la operacin para el circuito (sumador). El trabajo que aqu
norma IEEE. Adems de definir una solucin de se presenta tiende al diseo de un ASIC, pero no llega
hardware aplicando los principios de paralelizacin de hasta la obtencin del prototipo fsico. Para una primera
operaciones establecidos por los pipelines, se analizan aproximacin de la sntesis y optimizacin mediante las
las alternativas de optimizacin de tiempo de operacin herramientas de CAD, se ha adoptado provisoriamente
utilizando herramientas de sntesis de hardware a partir una tecnologa CMOS (SXLIB [13]) y la librera y kit de
del lenguaje VHDL. Las alternativas se evalan en diseo incluidos en Alliance. Pero ser parte de una
funcin de la optimizacin de tiempo de operacin y de etapa futura elegir una tecnologa definitiva.
las variaciones de rea de silicio estimadas por las Ms que proveer un nuevo sumador de punto
herramientas de sntesis. Finalmente, se presenta una flotante se muestra un diseo que es fcil y rpido
posible evolucin hacia el cambio del diseo a nivel de gracias a VHDL y mediante las herramientas de sntesis
VHDL del circuito y su impacto en la optimizacin de tambin es fcil y rpida la optimizacin. El sumador se
tiempo. toma ms como ejemplo que como aplicacin final y la
idea no es proveer el mejor o ms rpido sino algunas
1. INTRODUCCION alternativas de optimizacin de tiempo. En el presente
artculo no sera tampoco posible agregar ms detalles
La utilizacin del lenguaje VHDL [1] es aceptada desde del uso de Alliance debido a las limitaciones de
hace mucho tiempo para la utilizacin en el diseo, extensin establecidas. En principio, tanto Alliance
simulacin e implementacin de hardware [2]. Sin como otros entornos de CAD tales como Cadence se
embargo, sigue siendo un problema a resolver la componen de mltiples herramientas usualmente
optimizacin de distintos aspectos de los circuitos independientes, cada una de ellas enfocada a realizar una
diseados a la hora de su implementacin real. En este tarea especfica dentro del ciclo/proceso de diseo.
contexto las herramientas de CAD (Computer Aided En la siguiente seccin, se describe la
Design) como Alliance [3] [4] [5] [6] [7] y Cadence [8] arquitectura completa del circuito. En la seccin 3 se
son de gran utilidad no solamente para el ciclo completo detallan algunos aspectos relevantes de los bloques que
de desarrollo y verificacin de hardware sino tambin componen el sumador en punto flotante. La seccin 4
para el anlisis de alternativas de optimizacin. muestra la sntesis preliminar o sin optimizar del diseo
En este artculo se presenta un ejemplo en funcin de tiempo de operacin y rea de silicio
completo de la utilizacin combinada de VHDL y necesaria. Luego, en la seccin 5 se dan los detalles
herramientas de CAD para el diseo, verificacin y relevantes de la optimizacin utilizando las herramientas
optimizacin de un circuito en particular. Ms de CAD. La seccin 6 comenta las alternativas de
especficamente, se propone resolver en hardware la optimizacin de tiempo a nivel de rediseo en VHDL.
suma de nmeros reales cuya representacin sigue los Finalmente, la seccin 7 detalla las conclusiones y las
lineamientos de la norma IEEE para nmeros de alternativas de trabajo futuro.
precisin simple [9] [10] [11] [12]. El proceso de diseo
comenzar por la descripcin de comportamiento del
1
2. DESCRIPCION DE LA ARQUITECTURA normalizarla y luego se le suma el eventual acarreo
producido en el punto 7.
Dado que el nfasis est puesto en la velocidad de 11. Redondear el nmero segn lo indicado en la norma
operacin del circuito, se propuso realizar el mismo en IEEE 754.
una serie de etapas (pipelined architecture) [14] aunque
en principio implica la utilizacin de mayor rea de Cada uno de estos pasos puede realizarse de distintas
silicio para su fabricacin. Esto a su vez incrementa el maneras y la Figura 1 muestra esquemticamente los
costo total del circuito a expensas de su mejor bloques funcionales que resuelven cada una de estas
rendimiento. tareas. Adems, tambin se muestra cmo se agrupan los
Los nmeros de entrada del sumador se bloques funcionales en un pipeline de cuatro etapas.
consideran representados siguiendo los lineamientos de
la norma IEEE 754 de precisin simple. Aunque el A = (-1) X 1.a 2 P ; B = (-1) Y 1.b 2 Q
X Y P Q a' b'
sumador opera con el cero, no se consideran, sin
embargo, las definiciones de NaN (Not a Number), y el
resto de los nmeros con representacin no normalizada.
Resumiendo, se manejan todos los nmeros ETAPA 1
PASOS 1 a 6
normalizados ms el cero de la definicin de la norma X
COM PARADOR DETECTOR
IEEE. DE CERO
Y
Si se consideran las entradas al sumador A y B SELECTOR DE
como A = (-1)X 1.a 2P y B = (-1)Y 1.b 2Q , donde X e Y SIGNO Z FRACCION
son los signos (1 bit), a y b son las fracciones (23 bits), y R all_zero Otra Fraccin Fraccin
mn(A, B)
P y Q los exponentes (8 bits), se puede calcular la suma AddC
C = A + B = c 2R en los pasos: T DESPLAZADOR
A DERECHA
1. Agregar el bit implcito de la fraccin junto con los
bits de guarda a las mantisas a y b, obteniendo las SignOut
nmero menor T lugares (bits) para igualar los SignOut Exponente Fraccin
2
agregan esquemas grficos para aclarar la descripcin en (SignOut). En la Figura 3 se puede observar la
VHDL. De hecho, se puede notar que hacer la simplicidad de la descripcin de este bloque en VHDL.
descripcin en VHDL provee una manera casi inmediata La salida SignOut se propaga a travs de todo el
de implementacin, dado que se pueden utilizar sobre pipeline hasta llegar a la ltima etapa, estableciendo de
este cdigo las herramientas de sntesis que proveen los esta manera el signo de la operacin. La salida AddC se
entornos de CAD para circuitos integrados. utiliza en la siguiente etapa para saber si se suman o
restan las fracciones.
3.1. Etapa 1
3.1.3. Bloque Detector de Cero
Quizs esta es la etapa que contiene mayor cantidad de Este bloque se encarga de detectar si el resultado puede
bloques funcionales y por lo tanto su descripcin ser la
ms extensa de las cuatro propuestas. architecture ARCH_sign_comp of sign_comp is
begin
3.1.1. Bloque de Comparacin
SignOut <= x when sel = '1' else y;
Este bloque es el encargado de ubicar en el rango AddC <= '1' when x = y else '0';
adecuado los dos operandos, para poder realizar la suma
end ARCH_sign_comp;
dentro del mismo rango, es decir bajo el mismo
exponente. Recibe como entradas a los exponentes y Figura 3: Bloque Signo.
fracciones de los correspondientes nmeros a ser
sumados y tiene como salidas a R=mx(P,Q), T=P-Q dar cero. Para ello verifica que las entradas sean ambas
y Z. La Figura 2 muestra el comportamiento del bloque cero o iguales y de signo contrario. Las entradas de este
en VHDL. bloque son los dos operandos: A y B. En la Figura 4 se
-- ## Celda Comparador ##
muestra el diagrama esquemtico de este bloque.
begin
= 0? = 0? X Y? a=b? P=Q?
Z <= '0' when p < q else out = 1 out = 1 out = 1 out = 1 ou t = 1
'1' when p > q else
'0' when a < b else
si a & P si b & Q si X Y si a=b si P=Q
'1'; =0 =0
=1 si A=B=0 =1 si A=( - B)
Figura 2: Bloque Comparador.
3
que se encargan de dirigir el flujo de datos de cada una pipeline. Dentro de los circuitos combinacionales se
de las fracciones. Se utiliza la informacin que est tienen dos tipos distintos de desplazadores, uno lineal
[15] y otro logartmico [16]. El primero es ms lento que
Architecture ARCH_zero_verif of zero_verification is el logartmico debido a la cantidad de compuertas en
Signal a_info : std_logic_vector(30 downto 0); paralelo que tiene conectadas pero su diseo y ruteo en
signal b_info : std_logic_vector(30 downto 0); layout es ms sencillo. Un posible esquema de
signal zero_a : std_logic;
signal zero_b : std_logic; implementacin del desplazador logartmico se muestra
signal eq_inputs : std_logic; en la Figura 7, donde cada bloque representa un
signal all_inputs_zero : std_logic;
multiplexor que es manejado por un bit de seleccin.
begin
-- creacin de un solo vector para facilitar la
a a a a ...
comp. 0
a_info (22 downto 0) <= a;
a_info (30 downto 23) <= p; Shift
b_info (22 downto 0) <= b;
b_info (30 downto 23) <= q; 1 0 1 0 1 0 1 0
zero_a <= '1' when a_info=("000"&X"0000000") else
'0';
zero_b <= '1' when b_info=("000"&X"0000000") else
'0';
eq_inputs <= '1' when ((x/=y)and(a=b)and(q=p))else
0
'0';
all_inputs_zero <= '1' when (zero_a='1' and Shift
zero_b='1') else '0'; 1 0 1 0 1 0 1 0
all_zero <= '0' when (all_inputs_zero or eq_inputs)
else '1';
end ARCH_zero_verif;
0
Figura 5: Bloque Detector de Cero.
Shift
contenida en la seal sel que, de hecho, es la seal Z 1 0 1 0 1 0 1 0
producida en el bloque Comparador. Por la salida
denominada mux_out1 saldr la fraccin que
corresponda al menor de los dos nmeros. Por la otra
salida, mux_out2 saldr la fraccin que corresponda al
nmero mayor. En la Figura 6 se muestra el cdigo Figura 7: Esquema del Desplazador.
VHDL que describe este bloque, donde adems se puede
notar una vez ms el poder de descripcin de este La Figura 8 muestra de manera reducida (no
lenguaje. estn las lneas de cdigo que son similares a las
4
incluidas) la descripcin en VHDL del bloque de El grfico de la Figura 10 muestra de manera
desplazamiento. esquemtica la operacin de este bloque e indica cmo
Nuevamente se dio prioridad al aumento en la es tenido en cuenta el caso de desborde de mantisa,
velocidad de operacin (reduccin de tiempo), por lo operando con una seal interna de carry para indicar el
que el desplazador implementado fue el logartmico. desborde y poniendo el resultado de la operacin en el
Este circuito combinacional consta de una serie de rango correcto. En el caso de ocurrir desborde, una seal
etapas (5 en total) para poder desplazar a la entrada en es enviada al restador de exponentes, ubicada en la
32 veces (25 ya que es logartmico en base 2). La ltima etapa del pipeline, para indicarle que tiene que
primera etapa desplaza en 1, las segunda en 2, la tercera ajustar el exponente por el desborde producido en la
en 4, la cuarta en 8 y la quinta en 16. Tomando operacin parcial.
combinaciones de stas se puede desplazar al dato de 0 a
31. AddC Bit extra F_1 Bit extra F_2
de carry de carry
0 0
5
de un priority encoder [17], o sea que este bloque recibe velocidad produce un gasto mayor en rea de silicio.
como entrada un conjunto de 31 bits dentro de los cuales
se encuentra la fraccin junto con los bits de guarda y se architecture ARCH_exp_sub of exp_sub is
fija en donde aparece el primer 1 lgico desde el bit ms signal carry_vector : std_logic_vector
significativo hasta el menos significativo codificando (7 downto 0) := X"00";
dicha posicin en forma binaria y dando este valor como begin
resultado del bloque. La Figura 11 muestra de manera
carry_vector(0) <= carry;
reducida (para no repetir lneas de cdigo similares) la exponente <= r - u + carry_vector;
descripcin en VHDL del bloque que cuenta los ceros al
principio de la fraccin de entrada. end ARCH_exp_sub;
6
profundidad de la red lgica. Luego para la funcin bloques que pertenecen al camino crtico de propagacin
lgica de cada nodo de la red, trata de encontrar en la de las seales. Sin embargo, la asociacin de los bloques
biblioteca que contiene la tecnologa utilizada, un de hardware a cada etapa de un pipeline no
conjunto de celdas que produce la misma ecuacin necesariamente puede ser hecha por las herramientas de
lgica de dicho nodo. Este proceso habitualmente es sntesis, dado que en este caso, debera ser posible
llamado standard cell mapping. Por ltimo, realiza el especificar que se trata de un pipeline (algo que no es
clculo del camino crtico, el reconexionado de las posible, por ejemplo, en VHDL de manera explcita). De
compuertas para disminuir el delay y la capacidad, alguna manera, la informacin de ms alto nivel que
agregando buffers entre ellas si fuere necesario. Tambin proporcionan las herramientas de sntesis es la
realiza el clculo del rea. Dentro de los diferentes identificacin de los bloques de hardware que
etapas para minimizar el tiempo de propagacin o el rea pertenecen al camino crtico de propagacin de las
de silicio, el algoritmo permite ajustar en forma seales. Esta informacin de camino crtico se utiliza en
porcentual cul de estos dos parmetros se requiere la Tabla 1 para calcular el tiempo total de operacin de
optimizar en mayor medida. cada etapa. Especficamente, el tiempo de cada etapa
En la Tabla 1 se muestra un resumen de los estar dado por la suma de los tiempos de propagacin
tiempos de propagacin de cada bloque con el rea de de los bloques del camino crtico dentro de la etapa. Esto
silicio ocupada. se diferencia del rea necesaria para implementar cada
etapa, que ser la suma de las reas de todos los bloques
Etapa Bloque Tipo Tiempo Area que pertenecen a la etapa.
(ps) (2) Una vez que se tiene la informacin de sntesis
Etapa 1 Signo - 506 4500 agrupada por etapas y con los tiempos de cada etapa
Comparador* CLA1 5982 576500 dados por los bloques del camino crtico, se puede
2
Comparador RCA 16947 303500 calcular el tiempo de operacin del pipeline. En el caso
Detector de Cero - 1923 136500
Selector de Frac.* - 643 157750
de la informacin de la Tabla 1, el tiempo est
Desplazador a Der.* - 2366 306250 determinado por la Etapa 2, que es la de mayor tiempo
Registros* - 882 565750 de propagacin: 11681 ps.
Total E1 CLA 9873 1747250 En vez de sintetizar y optimizar todo el circuito,
Etapa 2 Sumador* CLA 10799 837000 que es modo default de operacin, tambin es posible
Sumador RCA 18228 471000 realizar sntesis y optimizacin local, manteniendo la
Registros* - 882 325500 estructura de la descripcin inicial (se mantienen la
Total E2 CLA 11681 1162500
mayora de las seales intermedias). Esta forma de
Etapa 3 Contador de Ceros* - 2404 155750
optimizacin local es ideal para circuitos grandes como
Desplazador a Izq.* - 2655 337750
Flip Flop Neg. - 882 7750 pueden ser los sumadores y comparadores en este caso.
Registros* - 882 379750 En la tabla anterior los resultados mostrados no tuvieron
Total E3 5941 881000 en cuenta esta opcin ya que el default del CAD es la
Etapa 4 Restador* CLA 4855 383250 optimizacin global en la que se remueven la mayora de
Restador RCA 5047 543000 las seales intermedias de manera que las salidas se
Redondeo de Frac. RCA 2698 217250 expresan en trminos de las entradas o de registros
Registros* - 882 310000
internos.
Total E4 CLA 5737 910500
ps: picosegundo (10-12 seg). * Camino Crtico
1
CLA: Carry LookAhead. 2
RCA: Ripple Carry Adder. 5. OPTIMIZACION DE SNTESIS
Tabla 1: Tiempo y Area sin Optimizaciones de Sntesis. En una implementacin del estilo pipeline es necesario,
en lo posible, que los tiempos de cada una de las etapas
La optimizacin realizada en este caso fue un sean similares. Analizando los datos de la Tabla 1, sera
50% en rea y un 50% en delay de todo el cirtuito. Esto necesario mejorar las Etapas 1 y 2 para acercarlas a los
significa que las herramientas de optimizacin intentan tiempos de las Etapas 3 y 4. Para esto se puede hacer uso
el mejor balance entre el rea ocupada y el tiempo de de las herramientas de optimizacin y sntesis que se
propagacin de las seales en todo el pipeline. Este es el mencionaron anteriormente, con la utilizacin de los
modo de operacin estndar (o default) a menos que se parmetros del algoritmo en forma local a estas etapas
indique explcitamente lo contrario. (1 y 2), variando el costo de optimizacin entre rea y
Se debe notar que las herramientas de sntesis delay (en forma porcentual).
de los entornos de CAD para circuitos integrados En el caso de la Etapa 1, se tienen varios
proporcionan toda la informacin que aparece en la bloques a optimizar. Para evitar una cantidad muy
Tabla 1 en cuanto a los bloques: el tiempo de grande de posibilidades de optimizacin y de tiempo de
propagacin de cada bloque, rea de silicio estimada y ejecucin de las herramientas, se decidi optimizar el
7
bloque dentro de esta etapa que tiene ms de la mitad del tiempos. En particular, optimizando solamente al bloque
tiempo de operacin total: el comparador. En el caso de sumador, la Etapa 1 pasara a ser la de mayor tiempo de
la Etapa 2 no hay posibilidades de eleccin, se debe todo el pipeline. Dado que se ha obtenido una mejora
mejorar el sumador. ms que significativa para la Etapa 2 se aplicarn las
Se analizar primero el sumador de la Etapa 2 opciones de optimizacin al bloque Comparador de la
por ser el bloque de mayor tiempo absoluto de todo el Etapa 1 para mejorar su tiempo de operacin.
pipeline. La Figura 14 muestra grficamente los La Figura 15 muestra grficamente los
resultados de varias alternativas de optimizacin para el resultados de varias alternativas de optimizacin para el
bloque Sumador. Estas alternativas son paramtricas bloque Comparador. A diferencia de lo que sucede en el
para las herramientas de Alliance utilizadas para la bloque Sumador, las opciones de optimizacin sobre el
sntesis. Sobre el eje x se muestra el tiempo de operacin bloque Comparador no son muy consistentes en cuanto a
de cada alternativa, comenzando por el tiempo inicial de la relacin tiempo-rea. Sin embargo, de notarse que las
la Tabla 1, es decir 10799 ps. Adems, para cada una de variaciones de rea son muy pequeas: en el rango de
las alternativas de optimizacin se da una estimacin de -0.2% a +0.3%. Esto significa que se puede optimizar el
la variacin (aumento) del rea de silicio ocupada en tiempo de propagacin casi con la misma rea de silicio
forma porcentual respecto del total sobre el eje y. En el (se debe recordar una vez ms el carcter heurstico de
caso del tiempo inicial no se tiene ninguna variacin, los algoritmos utilizados para la sntesis).
pero el mejor tiempo de operacin del circuito obtenido
por optimizacin, 5801 ps, implica un aumento Comparador
aproximado de 16% del total del rea del pipeline.
3.0
2.5
Sumador Aumento de Area Total (%)
20 2.0
18
1.5
16
Aumento de Area Total (%)
14 1.0
12
0.5
10
8 0.0
6
-0.5
4 5982 5948 5473 5410 5408 5106 4964
2 T iempo (ps)
0
10799 9625 9270 9040 6329 6064 5801 Figura 15: Optimizacin en Sntesis: Comparador.
T iempo (ps)
Otra de las caractersticas del bloque
Figura 14: Optimizacin en Sntesis: Sumador. Comparador que es esencialmente distinta del bloque
Sumador es que la optimizacin de tiempo es mucho
En general, se puede observar que a mayor menor: poco ms de 1000 ps, que representa una
optimizacin de tiempo se tiene mayor rea ocupada. La ganancia de aproximadamente 17%. Sin embargo, desde
excepcin est dada en los dos ltimos valores de el punto de vista del rea ocupada, esta ganancia del
optimizacin: aunque el tiempo de operacin se reduce 17% se obtiene casi al mismo costo que el pipeline
de 6064 ps a 5801 ps el rea ocupada tambin se reduce. original, dado que solamente se necesita poco ms de
Esto da una idea de las caractersticas heursticas de los 0.1% ms de rea total.
algoritmos de optimizacin y su combinacin con los En resumen, aplicando las optimizaciones a los
algoritmos (tambin heursticos) de ubicacin de celdas dos bloques, Sumador y Comparador, se estara en la
y ruteo de seales. Por otro lado, aunque el rea total del situacin que describe la Tabla 2 en cuanto a tiempos de
circuito aumenta, la ganancia en tiempo total de operacin de cada etapa. La mejora de los tiempos de
operacin del pipeline puede ser de casi 5000 ps propagacin de las etapas ms lentas lleva a mejorar
(10799-5801 = 4988 ps). Evidentemente en este bloque significativamente el tiempo de operacin del pipeline.
en particular la ganancia de tiempo es cercana al 50% Una vez aplicadas las optimizaciones que se han
(utilizando solamente 16% ms de rea), pero no se detallado y con los tiempos de las etapas que se
conoce an la ganancia exacta de todo el pipeline porque muestran en la Tabla 2, el tiempo de operacin de todo
se deben tener en cuenta todas las etapas y su relacin de el pipeline est determinado por la Etapa 1: 8855 ps. En
8
trminos de mejora porcentual, la ganancia ha sido 50% del tiempo de propagacin no puede ser
significativa: de 11681 ps a 8855 ps, es decir un poco optimizado ms de manera significativa.
ms del 24% de mejora. Y esto utilizando poco ms de Sin embargo, es de esperar que haya alguna forma de
16% de rea para todo el circuito. mejorar los tiempos de operacin del pipeline dado que
la Etapa 1 tiene un tiempo bastante mayor de operacin
Etapa Tiempo (ps) Area (2) que el resto de las etapas.
Etapa 1 8855 1161250 Una posible solucin, que es bastante inmediata
Etapa 2 6683 3512250 en el contexto de los pipelines: subdividir la etapa mayor
Etapa 3 5941 881000 para obtener dos etapas nuevas, ambas de menor tiempo.
Etapa 4 5737 910500 En este caso, la informacin de la Tabla 1 respecto de
los bloques que pertenecen al camino crtico puede ser
Tabla 2: Tiempo y rea Con Optimizaciones de Sntesis. de gran ayuda: el bloque de comparacin se incluye en la
nueva Etapa 1 y el resto de los bloques se consideran
Otro resultado de inters que est relacionado parte de la nueva Etapa 2. Las dems etapas solamente
con el rea de silicio utilizada es la cantidad de se renumeran.
transistores que posee el core. El CAD de diseo posee El rediseo del pipeline, aunque elegante, tiene
herramientas para extraer el mapa de transistores del costos asociados. Como mnimo en trminos de rea, se
circuito total y de cada bloque por separado. La cantidad deben agregar los registros intermedios entre las nuevas
utilizada fue alrededor de 24000 y en la Figura 16 se Etapas 1 y 2. Sin embargo, la ganancia en tiempo por el
muestra el ASIC del sumador de punto flotante. rediseo es importante: la nueva Etapa 1 tendra tiempo
de operacin de 4964 ps (Comparador con su
correspondiente optimizacin en sntesis) ms 882 ps de
los nuevos flip flops. En total: 5886 ps, valor muy
similar al de las ltimas dos etapas. La nueva Etapa 2 no
tendra un impacto significativo en los tiempos de
propagacin, ya que sumara: 643 ps (Selector de
Fraccin) ms 2366 ps (Desplazador a Derecha) ms
882 ps (Registros) lo cual implica, en total, 3891 ps.
Ahora el tiempo de operacin del pipeline estara
determinado por la nueva Etapa 3 (que contiene el
Sumador) y sera de 6683 ps (Tabla 2). Se debe notar
que la mayora del trabajo realizado en la optimizacin
de sntesis sigue siendo til: los tiempos que se
obtuvieron antes (los detallados en la seccin anterior,
en este caso) se reutilizan y no es necesario recalcular
nuevos. Es de esperar que esto se mantenga siempre y
cuando el rediseo mantenga la mayora de los bloques
funcionales como en este caso.
Otro de los costos asociados al rediseo
(subdividiendo una etapa en dos nuevas) que no es tan
Figura 16: ASIC del Sumador.
inmediato: ahora el tiempo de llenado y de vaciado del
pipeline no es el mismo, dado que se tiene una etapa
6. OPTIMIZACION POR REDISEO
ms. Por lo tanto sera mayor, por ejemplo, el costo de
que el pipeline entre en rgimen y se obtengan los
Aunque la mejora obtenida en cuanto a optimizacin
primeros resultados. Es importante que a nivel de
desde los resultados de sntesis de la Tabla 1 ha sido
rediseo en VHDL, el costo es mnimo por la potencia
significativa, an quedan posibilidades de optimizacin.
misma del lenguaje de descripcin.
Lo inmediato sera seguir aplicando alternativas de
optimizacin disponibles en las herramientas de sntesis
7. CONCLUSIONES Y TRABAJO FUTURO
como se ha mostrado en la seccin anterior. Sin
embargo, es de esperar que estas optimizaciones no
Se ha presentado un sumador de nmeros representados
aporten muchas mejoras significativas porque:
en punto flotante siguiendo la norma definida por IEEE.
La Etapa 1 es la que ahora (Tabla 2) determina el
La potencia de VHDL permite una rpida especificacin
tiempo de operacin del pipeline.
y simulacin del circuito, con lo cual se puede pensar
La Etapa 1 ya ha sido parcialmente optimizada. En ms rpidamente en la optimizacin del mismo. Las
particular, el bloque de la Etapa 1 que tiene ms del optimizaciones hechas a nivel de las herramientas de
9
sntesis pueden ser muy tiles. En el caso de este artculo [4] Kai-shing Lam, Frederic Ak, Alliance Tutorial, Part 2
se obtiene una mejora de ms de 24% de tiempo de Logic Synthesis, Pierre & Marie Curie University, France, pp.
operacin con poco ms de 16% ms de rea de silicio 14-18, 2004. Included in the Alliance distribution available at:
necesaria para la implementacin. http://www-asim.lip6.fr/pub/alliance/distribution/latest/
Aunque son tiles y necesarias, las [5] Kai-shing Lam, Frederic Ak, Alliance Tutorial, Part 3
herramientas de sntesis y optimizacin tienen un lmite. Place and Route, Pierre & Marie Curie University, France, pp.
En el caso presentado, si se necesita optimizar mucho 2-7, 2004. Included in the Alliance distribution available at:
ms del 24% de tiempo de operacin se debe recurrir http://www-asim.lip6.fr/pub/alliance/distribution/latest/
necesariamente al rediseo del circuito o de partes del
mismo. Nuevamente la potencia de VHDL simplifica en [6] Greiner A., F. Pcheux, ALLIANCE . A Complete Set of
gran medida esta tarea. Por otro lado, las herramientas CAD Tools for Teaching VLSI Design, Proceedings of the
incluidas en los CAD para circuitos integrados no Third Eurochip Workshop on VLSI Design Training, pp. 230-
necesariamente proveen los resultados en la forma 37, Grenoble, France, Sept. 1992.
necesaria para una correcta evaluacin. En el caso del [7] quipe Architecture des Systmes et Micro-lectronique,
sumador, el entorno de CAD no identifica ms que Alliance: A Complete CAD System for VLSI Design, LIP 6,
bloques de hardware y por lo tanto debe reorganizarse la Universit Pierre et Marie Courie, France.
salida de las herramientas para identificar claramente las http://www-asim.lip6.fr/pub/alliance/distribution/latest/
etapas del pipeline en cuanto a bloques que contienen y
cules bloques dentro de cada etapa son importantes en [8] Virginia Polytechnic Institute and State University,
cuanto a su pertenencia al camino crtico de propagacin Cadence tutorial for VLSI Design, January 25, 2003.
de las seales. http://www.ee.vt.edu/~ha/cadtools/cadence/cadence.html
En trminos de la continuidad de las tareas de
[9] ANSI/IEEE Std 754-1985, IEEE Standard for Binary
diseo, el paso inmediato sera la definicin de un Floating-Point Arithmetic, The Institute of Electrical and
sumador que cumple la norma IEEE de punto flotante de Electrionics Engineers, pp. 3-13, 1985.
simple y doble precisin. Esto implica, por ejemplo,
incluir el manejo de NaN y nmeros no normalizados. [10] Seidel P-M., Even G., On the Design of Fast IEEE
En cuanto a la implementacin se debera elegir una Floating Point Adders, 15th IEEE Symposium on Computer
tecnologa definitiva, y esto puede significar un posible Arithmetic, p. 184, June 11 - 13, 2001, Vail, Colorado.
cambio a otra herramienta de CAD como Cadence.
Desde el punto de vista de las alternativas de mejorar los [11] Koren I., Computer Arithmetic Algorithms, 2nd. Edition,
tiempos de diseo, es importante considerar la A. K. Peters, Natik, MA, 2002, ISBN 1-56881-160-8.
paralelizacin de la simulacin de cdigo VHDL. Esto [12] Jain S. A., Low Power Single-Precision IEEE Floating
permitira definir un conjunto de casos de pruebas mayor Point Unit, Master of Engineering, MIT, May 2003.
y por lo tanto aumentara tambin la confiabilidad del
diseo en VHDL. Otra de las tareas que ha demostrado [13] SXLIB Standard Cell Library Description.
que consume mucho tiempo es la de optimizacin va las http://www.vlsitechnology.org/html/sx_description.html
herramientas de sntesis. En particular, las heursticas
consumen mucho tiempo de ejecucin, principalmente [14] Kai Hwang, Advanced Computer Architecture:
sobre los bloques de hardware ms complejos. Sin Parallelism, Scalability, Programmability. McGraw-Hill
embargo, en este caso se estaran modificando las Science/Engineering/Math, Dec. 1992, ISBN: 0070316228
herramientas mismas del CAD. [15] Neil Weste, Kamran Eshraghian, Principles of CMOS
VLSI Design, Addison-Wesley Publishing Company, USA,
8. REFERENCIAS 1985.
[1] IEEE Standard VHDL Language Reference Manual, Std. [16] Jan M. Rabaey, Anantha Chandrakasan, and Borivoje
1076-1993, IEEE, NY, 1993. Nikolic, Digital Integrated Circuits - A Design Perspective,
Second Edition, Prentice Hall, 2003, ISBN 0-13-090996-3.
[2] J. Bhasker, A VHDL Primer, Prentice Hall PTR, Upper
Saddle River NJ 07458, 1995. [17] John F. Wakerly, Diseo Digital Principios y Practicas,
Prentice Hall Hispanoamericana, 53500 Naucalpan de Jurez
[3] Kai-shing Lam, Frederic Ak, Alliance Tutorial, Part 1 Mxico, 1992.
VHDL Modeling and Simulation, Pierre & Marie Curie
University, France, pp. 2-16, 2004. Alliance distribution: [18] William Stallings, Organizacin y Arquitectura de
http://www-asim.lip6.fr/pub/alliance/distribution/latest Computadores, Prentice Hall, Madrid, 1997.
10