Professional Documents
Culture Documents
Técnicas de
de Síntese
Síntese Lógica
Lógica
• Síntese Sequencial
• (Geração de Macros)
• Optimização Lógica Multinível
• Mapeamento Tecnológico
Sel2
Lógica Sel1
Saídas
Entradas
Lógica
Estado *
Seguinte
Reset RegEstado En
Clk
Clk RegistoRES
INI
Sel=XX
En=0
Botoes = 100 001
010
AB BC AC
sempre
sempre
sempre
FIM
Sel=XX
En=0
outras
OPER
Entradas
000 / XX0 Lógica
Estado
XXX / XX0 Seguinte
Reset RegEstado
FIM Clk
Outras / XX0
clk
Entrada E
Lógica Saída S
Saídas
Estado
E clk
Reg E' E
Lógica S E'
Reg
S'
Saídas S
Estado
S'
E clk
Lógica S E
Saídas Reg S' S
Estado S'
E clk
Reg E'
Lógica S E
Saídas E'
Estado S
INI
Lógica
100 / 001 010 / 111 001 / 011 Saídas
Reg
Entradas
OPER Lógica
Estado
Seguinte
XXX / XX0
Reset RegEstado
Clk
FIM
000 / XX0
Outras / XX0
Synthesis->Properties
VHDL
-- codificacao binaria
type STATE_TYPE is (S1, S2, S3, S4);
-- codificacao one-hot
type STATE_TYPE is (S1, S2, S3, S4);
...
CASE estado_actual IS
WHEN S1 => estado_seguinte <= S2 ;
...
-- requer “others” se não é enum!
WHEN others => estado_seguinte <= "XX" ;
END CASE;
...
ROM
Saídas
Entradas
Lógica
Estado
Seguinte
+
Saídas
Reset RegEstado
Clk
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity romfsm is
port (entradas : in std_logic_vector(2 downto 0);
clk, reset : in std_logic;
saidas : out std_logic_vector(1 downto 0));
end romfsm;