Отчеты / ЛАБ7
.1.pdf11
Рисунок 8 – Результат моделирования в режиме function.
Для асинхронного счетчика с выходным буфером был написан код на VHDL. Код представлен ниже:
library ieee;
use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity Asyncvh is
port (
C: in std_logic;
CNTin: out std_logic_vector (4 downto 0); CNTout: out std_logic_vector (4 downto 0) );
end;
architecture synth of Asyncvh is component D_countervh is
port (
C: in std_logic;
Q: out std_logic_vector (4 downto 0) );
end component;
signal b: std_logic_vector (4 downto 0); begin
CT1: D_countervh
12
port map (C, b);
CNTin <= b;
process (C) begin
if rising_edge (C) then CNTout <= b;
end if;
end process;
end;
После компиляции кода было проведено моделирование в двух режимах timing и functional. На рисунках 9 и 10 представлено моделирование в двух режимах.
Рисунок 9 – Результат моделирования кода в режиме timing.
Рисунок 10 – Результат моделирования кода в режиме function.
13
2.3 Синхронный счетчик с выходным буфером
Для синхронного счетчика с выходным буфером была составлена таблица истинности. Таблица представлена ниже.
Таблица 3 – Таблица истинности для синхронного счётчика с выходным буфером.
№ сигнала |
Q4 |
Q3 |
Q2 |
Q1 |
Q0 |
|
|
|
|
|
|
0 |
0 |
0 |
0 |
0 |
0 |
|
|
|
|
|
|
1 |
0 |
0 |
0 |
0 |
0 |
|
|
|
|
|
|
2 |
0 |
0 |
0 |
0 |
1 |
|
|
|
|
|
|
3 |
0 |
0 |
0 |
1 |
0 |
|
|
|
|
|
|
4 |
0 |
0 |
0 |
1 |
1 |
|
|
|
|
|
|
5 |
0 |
0 |
1 |
0 |
0 |
|
|
|
|
|
|
6 |
0 |
0 |
1 |
0 |
1 |
|
|
|
|
|
|
7 |
0 |
0 |
1 |
1 |
0 |
|
|
|
|
|
|
8 |
0 |
0 |
1 |
1 |
1 |
|
|
|
|
|
|
9 |
0 |
1 |
0 |
0 |
0 |
|
|
|
|
|
|
10 |
0 |
1 |
0 |
0 |
1 |
|
|
|
|
|
|
11 |
0 |
1 |
0 |
1 |
0 |
|
|
|
|
|
|
12 |
0 |
1 |
0 |
1 |
1 |
|
|
|
|
|
|
13 |
0 |
1 |
1 |
0 |
0 |
|
|
|
|
|
|
14 |
0 |
1 |
1 |
0 |
1 |
|
|
|
|
|
|
15 |
0 |
1 |
1 |
1 |
0 |
|
|
|
|
|
|
16 |
0 |
1 |
1 |
1 |
1 |
|
|
|
|
|
|
17 |
1 |
0 |
0 |
0 |
0 |
|
|
|
|
|
|
18 |
1 |
0 |
0 |
0 |
1 |
|
|
|
|
|
|
14
Таблица 3 – Продолжение таблицы истинности для синхронного счётчика с выходным буфером.
№ сигнала |
Q4 |
Q3 |
Q2 |
Q1 |
Q0 |
|
|
|
|
|
|
19 |
1 |
0 |
0 |
1 |
0 |
|
|
|
|
|
|
20 |
1 |
0 |
0 |
1 |
1 |
|
|
|
|
|
|
21 |
1 |
0 |
1 |
0 |
0 |
|
|
|
|
|
|
22 |
1 |
0 |
1 |
0 |
1 |
|
|
|
|
|
|
23 |
1 |
0 |
1 |
1 |
0 |
|
|
|
|
|
|
Схема для синхронного счетчика представлена на рисунке 11.
Рисунок 11 – Схема синхронного счётчика с выходным буфером.
После построения схемы было проведено моделирование в двух режимах timing и functional. Результаты моделирования представлены на рисунках 12 и 13.
Рисунок 12 – Результат моделирования в режиме timing.
15
Рисунок 13 – Результат моделирования в режиме function.
Для синхронного счетчика с выходным буфером был написан код на
VHDL. Код представлен ниже: library ieee;
use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity Syncvh is
port (
C, R: in std_logic;
CNTin: out std_logic_vector (4 downto 0); CNTout: out std_logic_vector (4 downto 0) );
end;
architecture synth of Syncvh is component SyncCountvh is port (
C, R: in std_logic;
16
Q: out std_logic_vector (4 downto 0)
);
end component;
signal b: std_logic_vector (4 downto 0);
begin
CT1: SyncCountvh
port map (C, R, b);
CNTin <= b;
process (C) begin
if rising_edge (C) then CNTout <= b;
end if;
end process;
end;
После компиляции кода было проведено моделирование в двух режимах timing и functional. На рисунках 14 и 15 представлено моделирование в двух режимах.
Рисунок 14 – Результат моделирования кода в режиме timing.
17
Рисунок 15 – Результат моделирования кода в режиме function.
18
Заключение
В ходе выполнения лабораторной работы были построены совместно регистры и счётчики, также был построен вычислитель функции. Были получены навыки совместного применения регистров и счётчиков.
Был написан отчёт согласно ОС ТУСУР 01-2021