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

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

14

Рис. 6. Функциональное моделирование конечного автомата Мили в САПР Xilinx ISE

14

ЛАБОРАТОРНАЯ РАБОТА № 2

Проектирования автомата Мура с использованием методологии Black Boxes Xilinx System Generator

Цель работы: освоение методологии Black Boxes Xilinx System Generator используемой для разработки цифровых автоматов

Задание:

1)используя одно, двух – и трехпроцессные шаблоны разработайте VHDL-код конечного автомата согласно выбранному заданию c применением атрибута syn_encoding "onehot";

2)реализуйте функциональную модель конечного автомата в любом из доступных вам САПР (САПР Altera Quartus II или Xilinx ISE) и убедитесь в правильности ее функционирования;

3)разработайте имитационную модель конечного автомата в Matlab/Simulink с использованием единственного

VHDL-файла и методологии Black Boxes Xilinx System Generator;

4)осуществите имитационное моделирование и убедитесь в правильности функционирования конечного автомата;

5)извлеките в автоматическом режиме VHDL-код и осуществите функциональное моделирование в Xilinx ISE

Теоретические сведения

Рассмотрим трехпроцессный шаблон описания работы конечного автомата Мура (рис. 7, пример 5). В данном случае используются два сигнала state и next_state перечисляемого типа и три оператора Process. Проект разработаем в САПР ПЛИС Altera Quartus II v13.1 Build 162 c использованием ModelSim Altera Started Edition 10.1 d. Для кодирования состояний цифрового автомата будем использовать метод one

15

hot encoding (ОНЕ - кодирование с одним активным, или горячим состоянием или унитарное кодирование). Кодирование по методу OHE будет определено явно в коде языка VHDL с использованием атрибута syn_encoding "onehot" [2,5].

Рис. 7. Трехпроцессный шаблон описания работы конечного автомата Мура на языке VHDL

LIBRARY ieee;

USE ieee.std_logic_1164.all; ENTITY counter2 IS

PORT(

en,res,clk,ce : IN STD_LOGIC; Max : OUT STD_LOGIC

); END counter2;

ARCHITECTURE a OF counter2 IS

TYPE state_values IS (Stage0, Stage1, Stage2, Stage3); signal state, next_state: state_values;

attribute syn_encoding: string;

attribute syn_encoding of state, next_state: signal is "onehot";

BEGIN

statereg: process(clk,ce,res) begin

if res = '1' then state<=Stage0; 16

elsif (clk'event and clk='1') then

if ce = '1' then state<=next_state; end if;

end if;

end process statereg; process(state, en) begin

case state is when Stage0=>

IF en='1' THEN next_state<=Stage1; else next_state<=Stage0;

END IF; when Stage1=>

IF en='1' THEN next_state<=Stage2; else next_state<=Stage1;

END IF; when Stage2=>

IF en='1' THEN next_state<=Stage3; else next_state<=Stage2;

END IF; when Stage3=>

IF en='1' THEN next_state<=Stage0; else next_state<=Stage3;

END IF; when others=>

next_state<=Stage0; end case;

end process; process (state) begin

case state is when Stage0=> MAX <= '0'; when Stage1=> MAX <= '0'; when Stage2=>

17

MAX <= '0'; when Stage3=> MAX <= '1'; end case;

end process; END a;

Пример 5. Трехпроцессный шаблон описания конечного автомата на языке VHDL использованием атрибута syn_encoding "onehot"

Метод получил такое название потому, что в каждый конкретный момент времени активным (hot) может быть только один триггер состояния. Применение метода ОНЕ для ПЛИС по архитектуре ППВМ наиболее перспективно [4,5]. Метод ОНЕ применительно к ПЛИС по архитектуре ППВМ, дает возможность строить конечные автоматы, которые в общем случае требуют меньших ресурсов и отличаются более высокими скоростными показателями, чем аналогичные конечные автоматы с двоичным кодированием состояний. Повышенное быстродействие по методу ОНЕ обеспечивается меньшим числом уровней логики между рабочими фронтами синхросигналов, чем в случае двоичного кодирования. Логические схемы при этом упрощаются, поскольку метод ОНЕ практически не требует логики декодирования состояний. Получающийся в результате построения конечного автомата набор триггеров похож на структуру типа сдвигового регистра.

Быстродействие конечного автомата типа ОНЕ остается постоянным с увеличением числа состояний. И напротив, быстродействие конечного автомата с высокой степенью кодирования состояний снижается с увеличением количества состояний, поскольку в этом случае для декодирования требуется большее число уровней логики с большим числом линий.

По умолчанию в настройках САПР Quartus II категория

Analysis & Synthesis Settings /More Settings в разделе State 18

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