Рисунок 4.8 – Моделирование в режиме Functional. Часть 4
Моделирование в обоих режимах соответствует плану моделирования.
Выходные значения получились идентичны предполагаемому результату.
21
5 ОПИСАНИЕ ПРОГРАММЫ
5.1Конечное устройство
Ниже представлен листинг описания устройства, взаимодействующего с основными тремя блоками:
library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all;
entity god_pleasevhdl is port (
input, C_ext, CLR, nreadd, C_int: in std_logic; C_out: out std_logic;
outt: out std_logic_vector(4 downto 0)); end;
architecture synth of god_pleasevhdl is component BlockIn
port (
input, C_ext, CLR: in std_logic;
Q_reg: out std_logic_vector(5 downto 0); OPERATION: out std_logic_vector(1 downto 0); cnt: out std_logic_vector(4 downto 0));
end component; component BlockOP port (
Q_reg: in std_logic_vector(5 downto 0); OPERATION: in std_logic_vector(1 downto 0); cnt: in std_logic_vector(4 downto 0);
result: out std_logic_vector(4 downto 0)); end component;
component BlockOut
port (
22
C_int, CLR, nreadd: in std_logic; result: in std_logic_vector(4 downto 0); outt: out std_logic_vector(4 downto 0); C_out: out std_logic);
end component;
signal Q_reg: std_logic_vector(5 downto 0);
signal OPERATION: std_logic_vector(1 downto 0); signal cnt: std_logic_vector(4 downto 0);
signal result: std_logic_vector(4 downto 0); begin
B_IN: BlockIn
port map(input, C_ext, CLR, Q_reg, OPERATION, cnt); B_OP: BlockOP
port map(Q_reg, OPERATION, cnt, result); B_OUT: BlockOut
port map(C_int, CLR, nreadd, result, outt, C_out); end;
В программе описываются входы и выходы, а также сигналы, которые будут подаваться и передаваться между блоками. Также производится запуск каждого блока. Входной блок отвечает за распознавание кода операции и входных данных, а также в нем ведется счет выполненных операций. В
операционном блоке происходит формирование выходных значений в зависимости от кода операции и входных данных. В выходном блоке происходит вывод результатов работы, а также формирование выходного тактирующего сигнала C_out в зависимости от сигнала nreadd.
На рисунке 5.1 представлена схема из RTL viewer.
23
Рисунок 5.1 – Схема из RTL viewer
На рисунке 5.2 представлено моделирование операции преобразования из двоичного кода в код МТК-2.
Рисунок 5.2 – Моделирование преобразования кода
Активный уровень тактового сигнала C_out приходится на интервал 957-
1007 нс (для первой операции).
Активный уровень тактового сигнала C_out приходится на интервал 2258-
2308 нс (для второй операции).
На рисунке 5.3 представлено моделирование логической операции.
Рисунок 5.3 – Моделирование логической операции
Активный уровень тактового сигнала C_out приходится на интервал 36573707 нс (для третьей операции).
24
Активный уровень тактового сигнала C_out приходится на интервал 48074857 нс (для четвертой операции).
На рисунке 5.4 представлено моделирование арифметической операции.
Рисунок 5.4 – Моделирование арифметической операции
Активный уровень тактового сигнала C_out приходится на интервал 6007-
6057 нс (для пятой операции).
Активный уровень тактового сигнала C_out приходится на интервал 7207-
7257 нс (для шестой операции).
На рисунке 5.5 представлено моделирование вывода количества выполненных операций и сброса.
Рисунок 5.5 – Моделирование вывода количества выполненных операций и сброса
Активный уровень тактового сигнала C_out приходится на интервал 8507-
8557 нс (для вывода количества операций в первый раз).
Активный уровень тактового сигнала C_out приходится на интервал 99079957 нс (для вывода количества операций во второй раз).
Подаваемые сигналы идентичны тем, что были на входах функциональной схемы. Моделирование соответствует плану моделирования, а выходные сигналы идентичны предполагаемым.
25