Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПРМПП.doc
Скачиваний:
49
Добавлен:
07.02.2016
Размер:
8.14 Mб
Скачать

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-проект і повторіть спробу.