Professional Documents
Culture Documents
OL
x y y z
NS D- FF
Mealy FSM
qq=state
z = output
x = input qq
00
= transisi
1/1 x/z
0/1 1/1
10 0/0
01 x/z
0/1 1/0
FSM (2)
• Moore FSM : Output hanya tergantung pada present state.
OL z
x NS y D- FF y
Moore FSM
qq = state
zz = output
x = input
= transisi qq/
zz00/01
X=1
x=1
x=0
10/11 X=0
01/11 X=0
x=1
library ieee;
use ieee.std_logic_1164.all;
2 1 1 0 0 2 0 0 1 1
3 0 1 1 0 3 0 1 1 0
4 0 0 1 1 4 1 1 0 0
D=‘1’ D=‘1’
10/
0110
WARP 6.3 Active FSM
Lanjutan ...
• Pada clk properti dibuat seperti • Pada Menu FSM Machine
pd gambar. Sreg0
library IEEE;
use IEEE.std_logic_1164.all;
entity fsm1 is when S3 =>
port (clk: in STD_LOGIC; if D='1' then
D: in STD_LOGIC; Sreg0 <= S4;
L: out STD_LOGIC_VECTOR (3 downto 0)); elsif D='0' then
end; Sreg0 <= S2;
architecture fsm1_arch of fsm1 is end if;
-- SYMBOLIC ENCODED state machine: Sreg0 when S4 =>
type Sreg0_type is (S1, S2, S3, S4); if D='1' then
signal Sreg0: Sreg0_type; Sreg0 <= S1;
begin elsif D='0' then
--concurrent signal assignments Sreg0 <= S3;
--diagram ACTIONS; end if;
Sreg0_machine: process (clk) when others =>
Begin null;
if clk'event and clk = '1' then end case;
case Sreg0 is end if;
when S1 => end process;
if D='0' then
Sreg0 <= S4; -- signal assignment statements
elsif D='1' then -- for combinatorial outputs
Sreg0 <= S2; L_assignment:
end if; L <= "1001" when (Sreg0 = S1) else
when S2 => "1100" when (Sreg0 = S2) else
if D=1 then "0110" when (Sreg0 = S3) else
Sreg0 <= S3; "0011" when (Sreg0 = S4) else
elsif D='0' then "0011";
Sreg0 <= S1;
end if; end fsm1_arch;
Tugas:
• Buatlah tampilan 8 huruf dari belakang Nama Anda dengan
menggunakan FSM!