You are on page 1of 6

PONTIFICIA UNIVERSIDAD JAVERIANA SECCIONAL CALI INGENIERA ELECTRNICA ARQUITECTURA DEL COMPUTADOR I Descripcin de I* O+JETIVOS Comprender algunos de los

diferentes estilos existentes para la descripcin de mquinas secuenciales finitas usando VHDL. Hacer una comparacin del desempeo del hardware descrito usando algunos de estos estilos de descripcin. sar los distintos ni!eles de a"straccin que permite el lengua#e VHDL en la descripcin de hardware secuencial sincrnico. !"#in$s sec#enci$%es &ini'$s #s$nd( V)DL*

II*

INTRODUCCIN

Descripcin de mquinas de estado finitas (FSM) usando VHDL. $xisten di!ersos estilos para la descripcin de %&'s usando VHDL. Cada uno de ellos ser(a el ms apropiado dependiendo de la herramienta de s(ntesis ) del tipo de mquina que se desea implementar. $l primer estilo presentado a continuacin pertenece a un grupo llamado es'i%( e,p%-ci'( *+,- donde la mquina de estados se descri"e usando un proceso com"inacional para la lgica de estado siguiente ) de las salidas ) un proceso secuencial para la asignacin sincrnica del estado siguiente. $n seguida se presenta un "osque#o de lo que ser(a una descripcin en VHDL de este estilo.
entity FSM is port( reloj, reset : in std_logic; -- Reloj y reset del sistema x1, ..., xn : in std_logic; -- Entradas de la FSM z1, ..., zm : out std_logic -- Salidas de la FSM end FSM architecture estilo1 of FSM is type estados is (s!, ..., s" ; signal estado: estados; signal nxt_estado: estados; begin process(estado, x1, ..., xn -- #roceso com$inatorio begin

nxt_estado %& estado; -- se conser'a es estado act(al "or de)ecto case estado is when s! &* -- Estado s! ; -- +cciones del estado s!: ; -- asignaci,n de estado "r,ximo ; -- asignaci,n de las salidas when s" &* -- Estado s" ; -- +cciones del estado s!: ; -- asignaci,n de estado "r,ximo ; -- asignaci,n de las salidas when others &* nxt_estado %& s!; -- +signaci,n "or de)ecto end case; end process; process(reloj,reset -- #roceso sec(encial begin if(reset & -!- then estado %& s!; -- Reset as.ncrono elsif(reloj-e'ent and reloj&-1- then estado %& nxt_estado; -- /ransici,n s.ncrona end if; end process; end estilo1;

&e o"ser!a que en el proceso com"inatorio se recorren todos los posi"les !alores de los estados de la mquina ) se asignan las salidas ) el estado futuro de acuerdo con el !alor del estado actual. $l proceso secuencial posee dos asignaciones. La asignacin sincrnica del estado siguiente ) una asignacin asincrnica usada para hacer un reset so"re la mquina de estados. La siguiente figura muestra una mquina de estados que ser!ir de e#emplo para mostrar los diferentes estilos de descripcin.
.2.3 020

s. .2.

s0

02.

.2.

020

s/

02.

s1

.20 Figura 1. Diagrama de estados.

La descripcin de la %&' de la figura +- usando el primer estilo de descripcin !isto ser(a.


entity FSM is port( reloj, reset x z

: in std_logic; : in std_logic; : out std_logic

end FSM architecture estilo1 of FSM is type estados is (s!, s1, s0, s1 ; signal estado: estados; signal nxt_estado: estados; begin process(estado, x begin nxt_estado %& estado; case estado is when s! &* -- Estado s! z %& !; -- +signaci,n de la salida if(x&2!2 then 3- Estado )(t(ro nxt_estado %& s1; else nxt_estado %& s0; end if; when s1 &* -- Estado s1 z %& x; -- salida nxt_estado %& s!; -- estado )(t(ro when s0 &* -- Estado s0 z %& 2!2; if(x & 2!2 then nxt_estado %& s1; else nxt_estado %& s1; end if; when s1 &* -- Estado s1 z %& 212; if(x & 212 then nxt_estado %& s1; end if; end case; end process; process(reloj,reset -- #roceso sec(encial begin if(reset & -!- then estado %& s!; -- Reset as.ncrono elsif(reloj-e'ent and reloj&-1- then estado %& nxt_estado; -- /ransici,n s.ncrona end if; end process; end estilo1;

$n el siguiente de los estilos que se !an a estudiar- existe un /nico proceso secuencialdonde se hacen en forma simultnea la transicin de estados ) la asignacin de los estados futuros ) las salidas. 0 continuacin se presenta una descripcin de este estilo para la %&' mostrada en la figura +.
architecture estilo0 of FSM is type estados is (s!, s1, s0, s1 ; signal estado: estados; begin process(reloj,reset -- #roceso com$inatorio begin if(reset&-!-)then estado %& s!; -- Reset del sistema elsif(reloj2e'ent and reloj & -1-)then case estado is when s! &* -- Estado s! z %& !; -- +signaci,n de la salida if(x&2!2 then 3- Estado )(t(ro estado %& s1; else estado %& s0; end if; when s1 &* -- Estado s1 z %& x; -- salida estado %& s!; -- estado )(t(ro when s0 &* -- Estado s0 z %& 2!2; if(x & 2!2 then 3- Estado "r,ximo estado %& s1; else estado %& s1; end if; when s1 &* -- Estado s1 z %& 212; if(x & 212 then estado %& s1; end if; end case; end if; end process; end estilo0;

Como puede !erse- la salida del sistema depende solo del estado actual- por lo que la herramienta de s(ntesis de"e llegar a una !ersin Moore de la %&' que se est descri"iendo. $ste estilo de descripcin es menos eficiente ) puede llegar a generar ms estados de los que aparentemente se estn especificando. La eficiencia de este estilo de descripcin depende de la efecti!idad de la herramienta de s(ntesis para la minimi1ar los estados de la mquina. &in em"argo- se usa mucho dada su simplicidad ) que solo se usa un proceso en la descripcin. 2am"i3n se trata de una descripcin segura- )a que no ha) asignacin concurrente de seales.

%inalmente- se presenta un estilo de descripcin que parece particularmente eficiente para su implementacin en dispositi!os lgicos programa"les ) en casos en donde la %&' posee una cantidad de estados considera"le. La idea es usar un elemento de memoria 4un "it5 por cada uno de los estados que posea la mquina. $n un momento dado solo uno de los "its de estado puede estar acti!o- indicando que ese es el estado presente en el que se encuentra la mquina. La lgica com"inatoria del estado futuro ) de las salidas se hace de manera mu) simple. &e de"en com"inar las !aria"les de entrada ) las de estado en forma de ecuaciones lgicas. $stas ecuaciones pueden estar dentro de un proceso o simplemente aparecer como sentencias concurrentes.
architecture estilo1 of FSM is signal estado: std_logic_'ector(1 downto ! ; -- 4aria$les de estado begin process(reloj,reset -- #roceso com$inatorio begin if(reset&-!-)then estado %& 5!!!15; -- Reset del sistema elsif(reloj2e'ent and reloj & -1-)then case estado is when s! &* -- Estado s! if(x&2!2 then 3- Estado )(t(ro estado %& 5!!1!5; else estado %& 5!1!!5; end if; when s1 &* -- Estado s1 estado %& 5!!!15; -- estado )(t(ro when s0 &* -- Estado s0 if(x & 2!2 then 3- Estado "r,ximo estado %& 5!!!15; else estado %& 51!!!5; end if; when s1 &* -- Estado s1 if(x & 212 then estado %& 5!!!15; end if; end case; end if; end process; z %& (estado(1 and x or estado(1 ; -- +signaci,n de la salida end estilo1;

Recomendaciones para s ntesis. 0unque VHDL tenga similitud con lengua#es de programacin de alto ni!el como 0D0 ) C- se trata de un lengua#e de descripcin de hardware. La descripcin en el lengua#e VHDL refle#a una arquitectura.

&i esta arquitectura no ha sido cuidadosamente diseada- los resultados de la s(ntesis pueden no ser ptimos. $l cdigo que parece elegante desde el punto de !ista de un lengua#e de alto ni!el puede no ser el ms eficiente desde el punto de !ista de la s(ntesis. 6or eso se recomienda la utili1acin de cdigo simple ) fuertemente ligado a la implementacin. 6ara garanti1ar la limpie1a de cdigo ) garanti1ar el mximo control so"re el resultado final de la s(ntesis se hacen las siguientes recomendaciones. sar al mximo tipos de datos estndar- reconocidos e implementados por la herramienta de s(ntesis. 7o usar !aria"les para modelar registros. Los elementos de memoria constitu)en elementos hardware que de"en decidirse antes de la s(ntesis ) declararse como seales en la descripcin VHDL. 2anto por la legi"ilidad del cdigo- como por ra1ones de s(ntesis- las sentencias case son preferi"les al encadenamiento de sentencias if ... t!en ... e"se. $s recomenda"le el uso de funciones ) procedimientos para encapsular cdigo con una funcionalidad dada. PROCEDIMIENTO +. sar los tres estilos de descripcin !istos para la simulacin de un contador "inario de 8 a 9. $l contador de"e tener una seal de reset asincrnico ) un ha"ilitador de cuenta. :. 0 partir del archi!o de reportes generado por la herramienta de s(ntesis hacer una comparacin de los tres estilos de diseo en t3rminos de rea ocupada ) frecuencia mxima de funcionamiento. ;. Hacer comparaciones de la s(ntesis de los diseos para algunos de los dispositi!os que soporta la herramienta '0<6L & ==. IV* +I+LIOGRAFA

III*

0ldana %enando- >urriel ?afael ) Lpe1 Carlos. VHDL. Lengua#e estndar de diseo electrnico. 'c @raw Hill. +AA9. >hasBer- Ca)aram. 0 VHDL primer- +AAA. 6are#a 0lexander- Vera 'ario. 7i!eles de a"straccin ) modelamiento VHDL. ni!ersidad del Valle. :888.

You might also like