Рассмотрим VHDL-модель для автомата Мура, граф и общий вид которого представлены на рис. 5.25.
Рисунок 5.25 – Граф переходов автомата Мура
Листинг5.2 – VHDL-модель управляющего автомата Мура
-- Подключение библиотеки ieee.
library IEEE;
use IEEE.std_logic_1164.all;
-- Описание интерфейса устройства
entity FSM is
port (Clk: in STD_LOGIC;
Reset: in STD_LOGIC;
N: in STD_LOGIC;
Sh, L: out STD_LOGIC);
end;
-- Описание архитектуры устройства
architecture FSM of FSM is
type State_type is (S0, S1, S2, S3);
signal State, NextState: State_type;
begin
-- Блок для формирования последовательностной части
Sreg0_CurrentState: process (Clk, reset)
begin
if Reset='1' then
State <= S0;
elsif Clk'event and Clk = '1' then
State <= NextState;
end if;
end process;
-- Блок для формирования комбинационной части
-- Описание переходов состояний по условиям
Sreg0_NextState: process (State, N)
begin
case State is
when S0=> if N='1' then NextState <= S1;
else NextState <= S0;
end if;
when S1=> NextState <= S2;
when S2=> NextState <= S3;
when S3=> if N='1' then
NextState <= S1;
else NextState <= S0;
end if;
when others => NextState <= S0;
end case;
end process;
-- Описание выходных сигналов
Sh<='1' when State=S2 or State=S3 else '0';
L<='1' when State=S1 or State=S3 else '0';
end;