МІНІСТЕРСТВО ОСВІТИ І НАУКИ, МОЛОДІ ТА СПОРТУ УКРАЇНИ
ДЕРЖАВНИЙ ВИЩИЙ НАВЧАЛЬНИЙ ЗАКЛАД
«УЖГОРОДСЬКИЙ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ»
Інженерно-технічний факультет
Кафедра комп’ютерних систем та мереж
Лабораторна робота №3
з курсу
Технології проектування комп’ютерних систем
Тема: Моделювання транспортної та інерційної затримки часу.
Мета роботи: навчитися описувати транспортну та інерційну затримки часу за допомогою Active-HDL, з’ясовувати принципові відмінності між ними.
Теоретична частина
Інерційна затримка є типовою для більшості реальних систем, в зв’язку з чим у VHDL ця модель використовується за замовчуванням. Оператор after автоматично вважає затримку інерційною, тому ключове слово interial є необов’язковим. Характерною властивістю моделі цієї затримки є те, що дві послідовних зміни вхідного сигналу будуть проігноровані, якщо час між ними коротше, ніж задана затримка.
Для опису поведінки деяких пристроїв інерційна затримка непридатна. Прикладом може бути лінія передачі. Транспортування сигналів по лінії передачі відбувається без будь-яких змін, отже затримка в цьому випадку називається транспортною. Для того, щоби відрізнити її від інерційної затримки, прийнятої у VHDL за замовчуванням, використовується ключове слово transport, яке вказується перед описом значення затримки.
Інерційна затримка
Транспортна затримка
є затримкою за замовчуванням у VHDL, і не вимагає ніяких додаткових декларацій
вимагає використання ключового слова transport
не поширює імпульси, коротші ніж задана затримка
поширює всі зміни вхідного сигналу, незалежно від того, як швидко і як часто вони відбуваються
Описується за допомогою оператора after після якого вказується значення часу
Може застосовуватись до сигналів довільного типу
Індивідуальне завдання
Описати об’єкт з урахуванням затримок часу в його елементах та промоделювати його роботу.
Схема:
/
Код програми:
library IEEE;
use IEEE.STD_LOGIC_1164.all;
entity Lab_34 is
generic (
AND_OR_DELAY: Time:=10 ns;
NOT_DELAY: Time:=6 ns;
TRANS_DELAY: Time:=2 ns
);
port
(Ain: in std_logic;
Bin: in std_logic;
Cin: in std_logic;
Rout: out std_logic
);
end Lab_34;
architecture Lab_34 of Lab_34 is
signal A,B,C,z,t,y,k: STd_logic:= 'U';
begin
DELAY:
process (Ain,Bin,Cin) is
begin
A<= transport Ain after TRANS_DELAY;
B<= transport Bin after TRANS_DELAY;
C<= transport Cin after TRANS_DELAY;
end process;
z<= A or B after AND_OR_DELAY;
t<= not C after NOT_DELAY;
y<= not z after NOT_DELAY;
k<= A or t after AND_OR_DELAY;
Rout<= y and k after AND_OR_DELAY;
end Lab_34;
Результати моделювання:
Транспортні затримки (тривалість вхідних сигналів менша за інерційну затримку логічних елементів):
/
Транспортні затримки (тривалість вхідних сигналів більша за інерційну затримку логічних елементів):
/
Код програми:
library IEEE;
use IEEE.STD_LOGIC_1164.all;
entity Lab_35 is
generic (
AND_OR_DELAY: Time:=12 ns;
NOT_DELAY: Time:=10 ns;
TRANS_DELAY: Time:=5 ns;
REJECT_TIME: Time:=8 ns
);
port
(Ain: in std_logic;
Bin: in std_logic;
Cin: in std_logic;
Rout: out std_logic
);
end Lab_35;
architecture Lab_35 of Lab_35 is
signal A,B,C,z,t,y,k: STd_logic;
begin
DELAY:
process (Ain,Bin,Cin) is
begin
A<= reject REJECT_TIME inertial Ain after TRANS_DELAY;
B<= reject REJECT_TIME inertial Bin after TRANS_DELAY;
C<= reject REJECT_TIME inertial Cin after TRANS_DELAY;
end process;
z<= A or B after AND_OR_DELAY;
t<= not C after NOT_DELAY;
y<= not z after NOT_DELAY;
k<= A or t after AND_OR_DELAY;
Rout<= y and k after AND_OR_DELAY;
end Lab_35;
Інерційні затримки (тривалість вхідних сигналів більша за інерційну затримку логічних елементів):
/
Інерційні затримки (тривалість вхідних сигналів менша за інерційну затримку логічних елементів):
/
Висновок: На лабораторній роботі я ознайомилась з транспортними та інерційними затримками в Active–HDL, та навчилася використовувати їх на практиці. По ходу виконання роботи я з’ясувала основні відмінності між цими видами затримок.