Vhdl модель автомата Мили рис.3 имеет вид:
-- Автомат Мили с 5 состояниями
libraryieee;
use ieee.std_logic_1164.all;
entity mealy is
port ( clock, reset : in std_logic;
data_out :out std_logic;
data_in :in std_logic_vector (1 downto 0));
end mealy;
architecture behave of mealy is
type state_values is (st0, stl, st2,st3,st4);
signal pres_state, next_state: state_values;
begin
-- FSM register
statereg: process (clock, reset)
begin
if (reset = ‘0’ then
pres_state < = st0;
elsif (clock'event and clock ='1') then
pres_state <= next_state;
end if;
end process statereg;
-- FSM combinational block fsm: process (pres_state, data_in) begin
case pres_state is
when st0 = >
case data_in is
when '00' => next_state <= st0,
when '01' => next_state <= st4;
when '10'=> next_state <= stl;
when '11' => next _state <= st2;
when others = > next_state < = (others < = 'x');
end case;
when st1=>
case data_in is
when '00' => next_state <= st0;
when '10' => next_state <= st2;
when others => next_state<=st1;
end case;
when st2 = >
case data_in is
when '00' => next_state <= stl;
when '01' => next_state <= stl;
when '10' => next_state <= st3;
when '11' => next_state <= st3;
when others => next_state <= (others<='x');
end case;
when st3 = >
case data_in is
when '01' => next_state <= st4;
when '11' => next_state <= st4;
when others => next_state <= st3;
end case;
when st4 = >
case data_in is
when '11' => next_state <= st4;
when others => next_state <= st0;
end case;
when others => next_state <= st0;
end case;
end process fsm;
-- Mealy output definition using pres_state when data_in
outputs: process(pres_state, data_in)
begin
case pres_state is
when st0=>
case data_in is
when ‘00’ => data_out<='0';
when others => data_out<='1';
end case;
when st1=>data_out<='0';
when st2=>
case data_in is
when ‘00’ => data_out<='0';
when ‘01’ => data_out<='0';
when others => data_out<='1';
end case;
when st3=>data_out<='1';
when st4=>
case data_in is
when ‘10’ => data_out<='1';
when ‘11’ => data_out<='1';
when others => data_out<='0';
end case;
when others => data_out<='0';
end case;
end process outputs;
endbehave;
Требования безопасности труда
Питание IBM-PCсовместимого компьютера осуществляется от сети 220 В, 50 Гц. При работе с ним должны выполняться общие правила работы с электрическими установками.
Все коммутации устройств IBM-PCсовместимого компьютера должны проводиться при отключенном питании.
При работе с USBпортом запрещается опираться на соседний компьютер.
Запрещается выполнять коммутации устройств через заднюю панель компьютера.
При замеченных неполадках следует обратиться к преподавателю.
Порядок проведения работы
1. Подготовка к выполнению лабораторной работы.
Разработка VHDLмоделей дешифраторов и мультиплексоров и их верификация должны быть проведены в средеGHDL.
Выполнение лабораторной работы проводится в аудитории под контролем преподавателя.
Перед выполнением лабораторной работы необходимо проверить наличие защитного заземления, исправность схем аварийного отключения питания.
2. Порядок выполнения лабораторной работы:
- в соответствии с разработанной принципиальной электрической схемой, выполнить необходимые коммутации на макетной плате FLEX8000 (target);
- подсоединить к контрольным точкам щупы осциллографа;
- включить питание (подсоединить FLEX8000 к удлинителюUSB);
- при правильном соединении загорается светодиод HL1;
- при возникновении проблем с соединением необходимо обратиться к преподавателю;
- сконфигурировать ПЛИС FLEX8000 в средеGHDL(Host PC+target);
- наблюдать временные диаграммы в контрольных точках, обеспечивая синхронизацию органами управления осциллографа;
- при несоответствии наблюдаемых осциллограмм заданию, необходимо повторить синтез VHDLмоделей схем с учетом отмеченных недостатков; затем необходимо провести верификациюVHDLмодели. Внесенные изменения необходимо согласовать с преподавателем и повторить валидациюVHDLмодели (Host PC);
- скопировать временные диаграммы с экрана осциллографа.