- •К лабораторным работам
- •1 Компьютерное моделирование с помощью ewb
- •1.1 Основные технические характеристики микросхем
- •1.2 Типы логики
- •1.3 «Стандартные» микросхемы
- •1.4 Семиотика «стандартных» микросхем
- •1.5 Микросхемы-аналоги
- •1.6 Техническая документация
- •1.7 Краткий англо-русский словарь терминов
- •2 Разработка испытательного стенда
- •3 Структурное моделирование с помощью сапр aldec active-hdl
- •4 Моделювання мікропрограмного автомата
- •4.1 Мікропрограмний автомат
- •4.2 Абстрактний автомат
- •4.3 Мова опису цифрових систем vhdl
- •4.4 Модель мікропрограмного автомату
- •4.5 Побудова графу переходів
- •X: in std_logic_vector (1 to 4); -- логічні умови
- •4.6 Моделювання роботи автомата
- •4.7 Отримання часових діаграм
- •4.8 Хід роботи
- •4.10 Контрольні запитання
- •5 Економічне кодування станів автомату
- •5.1 Структурний автомат
- •5.2 Тригери
- •5.3 Економічне кодування станів
- •5.4 Хід роботи
- •5.6 Контрольні запитання
- •6 Канонічний метод структурного синтезу
- •6.1 Кодована форма пст
- •6.2 Складання логічної схеми
- •6.3 Ціна логічної схеми за Квайном
- •6.4 Хід роботи
- •6.6 Контрольні запитання
- •7 Проектування мікропрограмного автомата
- •7.1 Реалізація автомату на плм
- •7.2 Хід роботи
- •7.4 Контрольні запитання
- •Література
4.6 Моделювання роботи автомата
4.6.1 Знайдіть всі найкоротші шляхи вигляду (a1, ai), де ai А. Кожен найкоротший шлях повинен складатися з найменшої кількості транзитивних переходів. Наприклад, в табл.4.5 приведені результати такого аналізу для МПА S1.
4.6.2 Для перевірки правильності роботи МПА S1 складається тестова послідовність вхідних сигналів. Процес відлагодження краще автоматизувати. Для цього використовують випробувальний стенд (test bench) – VHDL-програму, за допомогою якої можна автоматично генерувати тестову вхідну послідовність і спостерігати реакцію системи на неї. Один з варіантів такої програми наведений в листингу 4.2.
Таблиця 4.5 – Таблиця найкоротших шляхів МПА S1
Час |
t=1 |
t=2 |
t=3 | ||||||
|
X(1) |
a(1) |
Y(1) |
X(2) |
a(2) |
Y(2) |
X(3) |
a(3) |
Y(3) |
(a1, a2) |
– |
a2 |
y1y3 |
|
|
|
|
|
|
(a1, a3) |
– |
a2 |
y1y3 |
|
a3 |
y2y3 |
|
|
|
(a1, a4) |
– |
a2 |
y1y3 |
|
a4 |
y4 |
|
|
|
(a1, a5) |
– |
a2 |
y1y3 |
|
a3 |
y2y3 |
– |
a5 |
y1y4 |
(a1, a6) |
– |
a2 |
y1y3 |
|
a6 |
y2 |
|
|
|
(a1, a7) |
– |
a2 |
y1y3 |
|
a4 |
y4 |
|
a7 |
y5 |
(a1, a8) |
– |
a2 |
y1y3 |
|
a6 |
y2 |
|
a8 |
y6 |
Листинг 4.2 – Файл MOORE_TB.VHD
library ieee;
use ieee.std_logic_1164.all;
entity moore_tb is
end moore_tb;
architecture TB_ARCHITECTURE of moore_tb is
-- Компонент – автомат Мура
component moore
port(
CLK : in STD_LOGIC;
RESET : in STD_LOGIC;
x : in STD_LOGIC_VECTOR (1 to 4);
y : out STD_LOGIC_VECTOR (1 to 6) );
end component;
-- Тестові сигнали
signal CLK : STD_LOGIC;
signal RESET : STD_LOGIC;
signal x : STD_LOGIC_VECTOR (1 to 4);
signal y : STD_LOGIC_VECTOR (1 to 6);
begin
-- Спосіб підключення компонента
UUT : moore
port map (
CLK => CLK,
RESET => RESET,
x => x,
y => y
);
STIMULUS: process -- Тестова послідовність
begin
x <= "0000";
CLK <= '0';
RESET <= '1'; -- a1
wait for 50 ns;
CLK <= '1';
wait for 50 ns;
CLK <= '0';
RESET <= '0';
wait for 50 ns;
CLK <= '1'; -- a2
wait for 50 ns;
x <= "1010";
CLK <= '0';
wait for 50 ns;
CLK <= '1'; -- a4
wait for 50 ns;
CLK <= '0';
wait for 50 ns;
-- -- -- і т.ін. -- -- --
wait;
end process;
end TB_ARCHITECTURE;
-- Конфігурація випробувального стенду
configuration TESTBENCH_FOR_moore of moore_tb is
for TB_ARCHITECTURE
for UUT : moore
use entity work.moore(automat);
end for;
end for;
end TESTBENCH_FOR_moore;
4.6.3 У вікні Design Browser оберіть піктограму Add New File. У вікні, що з'явилося, вкажіть режим VHDL Source File.
4.6.4 За допомогою редактора HDE введіть програму випробувального стенду, що генерує тестову вхідну послідовність, яка відповідає переходу автомата найкоротшим шляхом від стану a1 до стану a4. Ім'я entity VHDL-проекту – moore_tb, ім'я architecture – tb_architecture. Конфігурація випробувального стенду задається модулем testbench_for_moore.
4.6.5 Збережіть програму з ім'ям mooreN_tb.vhd і додайте його в проект (N – номер індивідуального завдання).
4.6.6 У вікні Design Browser знайдіть піктограму опису об'єктів файлу mooreN_tb.vhd (moore_tb (tb_architecture)). Клацніть правою кнопкою на ній і в контекстному меню виберіть команду Set as Top-Level (зробити файлом верхнього рівня).
Рисунок 4.9 – Настройка файлу верхнього рівня
4.6.7 Виконайте компіляцію проекту. Якщо будуть знайдені помилки, внесіть виправлення і повторіть компіляцію.
4.6.8 В головному меню виберіть команду Simulation → Initialize Simulation (почати моделювання).
4.6.9 Активізуйте вікно графу переходів автомата. Клацаючи мишкою на кнопці Trace over transition, виконайте покрокове відлагодження МПА Мура для заданої випробувальним стендом тестової послідовності вхідних сигналів. Результати трасування повинні співпадати з тим, що очікується отримати. Поточний активний стан відображається жовтим кольором на графі переходів.
4.6.10 Якщо поведінка автомата S1 відрізняється від очікуваного, внесіть зміни в VHDL-проект і повторіть спробу.