Está en la página 1de 11

Microelectrnica

ITT-Sistemas Electrnicos

EL LENGUAJE VHDL
SNTESIS VHDL

MQUINA DE ESTADOS (FSMs)


Define un circuito que pasa por varios estados de salida definidos por el usuario en funcin de una seal CLK.

X(t)

Circuito combinacional (f,g) Q(t) Memoria (flip-flop)

Z(t)

Q(t+1)

clk

f: funcin de transicin g: funcin f i de d salida lid X(t)={x1(t), x2(t), , xn(t)}: variables de entrada Z(t)={z1(t), z2(t), , zn(t)}: variables de salida

Q(t)={q1(t), q2(t), , qn(t)}: estado de la mquina Q(t+1)={q1(t+1), q2(t+1), , qn(t+1)}: prximo estado de la mquina clk : reloj del sistema

METODOLOGAS Y HERRAMIENTAS PARA EL DISEO DE SISTEMAS DIGITALES

Microelectrnica

ITT-Sistemas Electrnicos

EL LENGUAJE VHDL
SNTESIS VHDL

Entradas asncronas X(t) Clculo del Q(t+1) prximo estado (f)


Lgica combinacional

Slo tipo Mealy Q(t) Clculo de las salidas (g)


Lgica combinacional

Memoria

Z(t)

clk

Lgica secuencial

Mquinas de Mealy: las salidas del sistema dependen tanto de las entradas del sistema como del estado actual. Q(t+1)= f[X(t), Q(t)] Z(t) = g[X(t), Q(t)]

Mquina de Moore: las salidas del sistema slo dependen del estado actual. Q(t+1)= f[X(t), Q(t)] Z( ) = g[Q(t)] Z(t) [Q( )]

METODOLOGAS Y HERRAMIENTAS PARA EL DISEO DE SISTEMAS DIGITALES

Microelectrnica

ITT-Sistemas Electrnicos

EL LENGUAJE VHDL
SNTESIS VHDL

Modelado tipo I (Mquinas de Mealy)


Cada uno de los bloques se modela como un proceso independiente. En la parte declarativa de la arquitectura se definen dos seales para almacenar el estado actual y el prximo estado.
type estadosFSM is (estado0, estado1, , estadon); signal estado, prox_estado : estadosFSM;

El clculo del prximo estado se realiza mediante un proceso combinacional, en la lista de sensibilidad se introducen las entradas de la mquina y el estado actual.
process (entradas, estado) begin -- Clculo del prximo estado en funcin de las entradas case estado is when estado0 => if (entradas = valor) then prox_estado <= ; else prox_estado <= ; end if; . when estadon => if (entradas = valor) then prox_estado <= ; else prox_estado <= ; end if; end case; end process;

METODOLOGAS Y HERRAMIENTAS PARA EL DISEO DE SISTEMAS DIGITALES

Microelectrnica

ITT-Sistemas Electrnicos

EL LENGUAJE VHDL
SNTESIS VHDL Un proceso secuencial almacena un elemento de memoria en el que se almacena el estado actual.
process (reloj, entradas_asncronas) begin if (evaluacin_entradas_asncronas) (evaluacin entradas asncronas) then estado <= estado0; -- asignacin del estado inicial elsif relojevent and reloj=1 then estado <= prox_estado; -- asignacin del siguiente estado end if; end process;

El clculo de las salidas se modela mediante un proceso combinacional en cuya lista de sensibilidades se debe incluir el estado actual y las entradas.
process (entradas, (entradas estado) begin -- Clculo de las salidas en funcin del estado actual case estado is when estado0 => if (entradas = valor) then salidas <= ; ; else salidas <= ; end if; . when estadon => if (entradas = valor) then salidas <= ; else salidas <= ; end if; end case; end process;

METODOLOGAS Y HERRAMIENTAS PARA EL DISEO DE SISTEMAS DIGITALES

Microelectrnica

ITT-Sistemas Electrnicos

EL LENGUAJE VHDL
SNTESIS VHDL Ejemplo:
0/0 X RST Z CLK Esquema de la mquina 1/1 q0 0/1 0/0 q1 1/0 Grafo de funcionamiento 1/0 q2 q qi X/Z

entity FSM1 is port ( X, RST, CLK : in std_logic; Z : out std_logic); end FSM1;

METODOLOGAS Y HERRAMIENTAS PARA EL DISEO DE SISTEMAS DIGITALES

Microelectrnica

ITT-Sistemas Electrnicos

EL LENGUAJE VHDL
SNTESIS VHDL
architecture rtl of FSM1 is type estadosFSM is (q0, q1, q2); signal estado, prox_estado : estadosFSM; begin process (X, estado) begin case estado is when q0 => if (X='0') then prox_estado <= q0; else prox_estado <= q1; end if; when q1 => if (X='0') then prox_estado <= q0; else prox_estado <= q2; end if; when q2 => if (X='0') then prox_estado <= q0; else prox_estado <= q2; end if; end case; end process; process (CLK, RST) begin if (RST='1') then estado <= q0; elsif CLK CLK'event event and CLK= CLK='1' 1 then estado <= prox_estado; end if; end process; process (X, estado) begin case estado is when q0 => if (X='0') then Z<= '0'; else Z<='1'; end if; when q1 => Z<='0'; when q2 => Z<=not X; end case; end process; end rtl;
METODOLOGAS Y HERRAMIENTAS PARA EL DISEO DE SISTEMAS DIGITALES

Microelectrnica

ITT-Sistemas Electrnicos

EL LENGUAJE VHDL
SNTESIS VHDL

Modelado tipo II (Mquinas de Mealy)


Se unen en un solo proceso el elemento de memoria que almacena el estado actual y el que calcula el prximo estado. Desaparece la seal que almacena el prximo estado. El proceso para el clculo de las salidas es igual que el descrito para el l tipo ti I. I
process (reloj, entradas_asncronas) begin if (evaluacin_entradas_asncronas) then estado <= estado0; -- asignacin del estado inicial elsif l if relojevent l j t and d reloj=1 l j 1 th then case estado is when estado0 => if (entradas = valor) then estado <= ; else estado d <= ; end if; . when estadon => if (entradas = valor) then estado d <= ; else estado <= ; end if; end case; end if; end process;
METODOLOGAS Y HERRAMIENTAS PARA EL DISEO DE SISTEMAS DIGITALES

Microelectrnica

ITT-Sistemas Electrnicos

EL LENGUAJE VHDL
SNTESIS VHDL Ejemplo:
process (CLK, RST) begin if ( (RST='1') ) then estado <= q0; elsif CLK'event and CLK='1' then case estado is when q0 => if (X='0') then estado <= q0; q ; else estado <= q1; end if; when q1 => if (X='0') then estado <= q0; else estado <= q2; end if; when q2 => if (X='0') then estado <= q0; else estado <= q2; end if; end case; end if; end process;

METODOLOGAS Y HERRAMIENTAS PARA EL DISEO DE SISTEMAS DIGITALES

Microelectrnica

ITT-Sistemas Electrnicos

EL LENGUAJE VHDL
SNTESIS VHDL

Modelado tipo III (Mquina de Moore)


Es vlida nicamente para el caso de mquinas de estados tipo Moore. La mquina se describe como un nico proceso. proceso
process (reloj, entradas_asncronas) begin if (evaluacin_entradas_asncronas) then estado <= estado0; salidas < <= ; ; -- asignacin de salidas para el estado0 elsif relojevent and reloj=1 then -- clculo del estado en funcin de las entradas y -- asignacin del valor de salidas para el prximo estado case estado is when estado0 =>

salidas <= ; ;
if (entradas = valor) then estado <= ; else estado <= ; end if; . when estadon =>

salidas <= ;
if (entradas = valor) then estado <= ; else l estado <= ; end if; end case; end if; end process;

METODOLOGAS Y HERRAMIENTAS PARA EL DISEO DE SISTEMAS DIGITALES

Microelectrnica

ITT-Sistemas Electrnicos

EL LENGUAJE VHDL
SNTESIS VHDL Ejemplo:

process (CLK, RST) begin if (RST=1) then estado <= q0; Z <= 0; elsif CLKevent and CLK=1 then case estado is when q0 => > Z <= 0; if (X=1) then estado <= q1; else estado <= q2; end if; when q1 => Z <= 0; if (X=1) then estado <= q2; else estado < <= q0; end if; when q2 => Z <= 1; if (X=1) then estado <= q0; else estado <= q2; end if; end case; end if; end process;

X RST CLK Z

q0 0 0 1 0 1 q2 1

qi Z

q1 0

METODOLOGAS Y HERRAMIENTAS PARA EL DISEO DE SISTEMAS DIGITALES

10

Microelectrnica

ITT-Sistemas Electrnicos

EL LENGUAJE VHDL
SNTESIS VHDL

Codificacin de estados
Binaria : no es ptima en trminos de retardo y rea cuando el nmero de estados es elevado. q0=000 q0= 000 , q1= q1=001 001 , q2= q2=010 010 , q3= q3=011 011 Gray: elimina los glitches que pudieran aparecer cuando se pasa de un estado al siguiente: q0=000, q1=001, q2=011, q3=010 One H O Hot t : reduce d el l nmero d de recursos utilizados tili d para mquinas con 8 o ms estados: q0=0001, q1=0010, q2=0100, q3=1000 El tipo de codificacin se puede fijar mediante una opcin del sintetizador o bien mediante atributos declarados en los paquetes que se suministran junto a la herramienta. Leonardo Spectrum de Mentor

type estadosFSM is (q0, q1, q2); attribute TYPE_ENCODING_STYLE of estadoFSM : type is ONEHOT;

Synopsis

type estadosFSM is (q0, q1, q2); attribute ENUM_ENCODING : STRING; attribute ENUM_ENCODING of estadoFSM : type is 001 010 011;

Para que haya coincidencia entre los resultados de sntesis y simulacin s u ac es necesario ecesa o usar usa una u a seal se a de inicializacin c a ac que lleve al sistema al estado inicial.
11

METODOLOGAS Y HERRAMIENTAS PARA EL DISEO DE SISTEMAS DIGITALES

También podría gustarte