Материал: Методические указания к выполнению лабораторных работ по дисциплине «Проектирование цифровых устройств в базисе ПЛИС» для студентов направления «Электроника и наноэлектроника». Строгонов А.В., Кошелева Н.Н

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

BEGIN

IF reset = '1' THEN MAX_reg <= '0'; is_Chart <= IN_st0;

ELSIF clk'EVENT AND clk = '1' THEN IF enb = '1' THEN

is_Chart <= is_Chart_next; MAX_reg <= MAX_reg_next; END IF;

END IF;

END PROCESS Chart_process;

Chart_output : PROCESS (is_Chart, En, MAX_reg) BEGIN

is_Chart_next <= is_Chart; MAX_reg_next <= MAX_reg; CASE is_Chart IS

WHEN IN_st0 => IF En = '1' THEN

MAX_reg_next <= '0'; is_Chart_next <= IN_st1; END IF;

WHEN IN_st1 => IF En = '1' THEN

MAX_reg_next <= '0'; is_Chart_next <= IN_st2; END IF;

WHEN IN_st2 => IF En = '1' THEN

MAX_reg_next <= '0'; is_Chart_next <= IN_st3; END IF;

WHEN OTHERS =>

IF En = '1' THEN MAX_reg_next <= '1'; is_Chart_next <= IN_st0; END IF;

END CASE;

END PROCESS Chart_output; MAX_1 <= MAX_reg_next;

9

ce_out <= clk_enable; MAX <= MAX_1; END rtl;

Пример 3. Отредактированный код автомата Мили на языке VHDL полученный с использованием Simulink HDL Coder системы Matlab/Simulink

LIBRARY ieee;

USE ieee.std_logic_1164.ALL; USE ieee.numeric_std.ALL; LIBRARY UNISIM;

USE UNISIM.Vcomponents.ALL; ENTITY avt_sch_avt_sch_sch_tb IS END avt_sch_avt_sch_sch_tb;

ARCHITECTURE behavioral OF avt_sch_avt_sch_sch_tb IS

COMPONENT avt_sch

 

PORT( clk

:

IN

STD_LOGIC;

ares

:

IN

STD_LOGIC;

clk_ena

:

IN

STD_LOGIC;

en

:

IN

STD_LOGIC;

ce_out

:

OUT

STD_LOGIC;

MAX

:

OUT

STD_LOGIC);

END COMPONENT;

 

 

SIGNAL clk :

STD_LOGIC;

SIGNAL ares:

STD_LOGIC:= '0';

SIGNAL clk_ena

:

STD_LOGIC:= '1';

SIGNAL en

:

STD_LOGIC:= '1';

SIGNAL ce_out

:

STD_LOGIC;

SIGNAL MAX

:

STD_LOGIC;

-- Clock period definitions constant clk_period : time := 100 ns; BEGIN

UUT: avt_sch PORT MAP( clk => clk, ares => ares,

clk_ena => clk_ena, en => en,

ce_out => ce_out,

10

MAX => MAX

);

-- Clock process definitions clk_process :process begin

clk <= '0';

wait for clk_period/2; clk <= '1';

wait for clk_period/2;

end process; tb : process

begin

wait for 100 ns; en <= '1'; wait for 100 ns; en <= '1'; wait for 100 ns; en <= '1'; wait for 100 ns; en <= '1';

wait; end process;

END;

Пример 4. Испытательный стенд автомата Мили

Вопросы для отчета

1.Дайте определение автомата Мили, Мура?

2.Приведите структурная схема синхронного конечного автомата Мили?

3.Какие функции выполняет цифровой автомат?

4.Методы кодирования автоматов?

5.Нарисуйте схему счетчика-делителя на три с двоичным кодированием

11

12

Рис. 4. Модель конечного автомата Мили в системе Matlab/Simulink с использованием Stateflowдиаграммы: а) верхний уровень; б) нижний уровень иерархии; в) диаграмма переходов, разработанная с помощью пакета расширения Stateflow; г) свойства диаграммы

12

13

Рис. 5. Имитационное моделирование конечного автомата Мили в системе Matlab/Simulink

13

Источник: https://studfile.net/preview/16563550/