 
        
        Отчеты / ЛАБ5
.1.pdfМинистерство образования и науки Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования
«ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ» (ТУСУР)
Кафедра комплексной информационной безопасности электронно-
вычислительных систем (КИБЭВС)
ИЗУЧЕНИЕ РАБОТЫ СЧЁТЧИКОВ
Отчет по лабораторной работе №5
по дисциплине «Электроника и схемотехника 2»
Вариант №5
Выполнил:
Студент гр. 710-2
_______ _____Кузьмина А.А.
__.05.2022
Принял: преподаватель каф. КИБЭВС
_______ А.С. Семенов
__.05.2022
Томск - 2021
2
1 Введение
Цель работы: изучение двоичных счётчиков, изучение их принципов построения и работы.
Задание:
1.Составьте таблицы функционирования для схем из табл. 2 согласно варианту. Приведите расчёты для задач делителя частоты и формирования задержки.
2.Соберите схемы заданных счётчиков, делителя частоты и задержки согласно варианту.
3.Промоделируйте работу всех схем в двух режимах. Проведите анализ результатов моделирования разных режимов.
4.Сверьте результаты моделирования с составленными таблицами функционирования и расчётами.
5.Повторите п. 2-4, только для описания устройств вместо схем на холстах .bdf используйте заданный вариантом HDL.
Задание по варианту:
1.Асинхронный – D, счет, М -19;
2.Синхронный – фронт, сброс – а, счет, М- 24;
3.Делитель частоты – Т – 20 нс, D – 0,5;
4.Задержка – f – 50 МГц;
5.HDL – VHDL.
3
2 Ход работы
2.1 Асинхронный счетчик на основе D-триггера
Таблица истинности для счетчика на основе D-триггера представлена
ниже.
Таблица 1 – Таблица истинности для асинхронного счётчика
| № сигнала | Q4 | Q3 | Q2 | Q1 | Q0 | 
| 
 | 
 | 
 | 
 | 
 | 
 | 
| 0 | 0 | 0 | 0 | 0 | 0 | 
| 
 | 
 | 
 | 
 | 
 | 
 | 
| 1 | 0 | 0 | 0 | 0 | 1 | 
| 
 | 
 | 
 | 
 | 
 | 
 | 
| 2 | 0 | 0 | 0 | 1 | 0 | 
| 
 | 
 | 
 | 
 | 
 | 
 | 
| 3 | 0 | 0 | 0 | 1 | 1 | 
| 
 | 
 | 
 | 
 | 
 | 
 | 
| 4 | 0 | 0 | 1 | 0 | 0 | 
| 
 | 
 | 
 | 
 | 
 | 
 | 
| 5 | 0 | 0 | 1 | 0 | 1 | 
| 
 | 
 | 
 | 
 | 
 | 
 | 
| 6 | 0 | 0 | 1 | 1 | 0 | 
| 
 | 
 | 
 | 
 | 
 | 
 | 
| 7 | 0 | 0 | 1 | 1 | 1 | 
| 
 | 
 | 
 | 
 | 
 | 
 | 
| 8 | 0 | 1 | 0 | 0 | 0 | 
| 
 | 
 | 
 | 
 | 
 | 
 | 
| 9 | 0 | 1 | 0 | 0 | 1 | 
| 
 | 
 | 
 | 
 | 
 | 
 | 
| 10 | 0 | 1 | 0 | 1 | 0 | 
| 
 | 
 | 
 | 
 | 
 | 
 | 
| 11 | 0 | 1 | 0 | 1 | 1 | 
| 
 | 
 | 
 | 
 | 
 | 
 | 
| 12 | 0 | 1 | 1 | 0 | 0 | 
| 
 | 
 | 
 | 
 | 
 | 
 | 
| 13 | 0 | 1 | 1 | 0 | 1 | 
| 
 | 
 | 
 | 
 | 
 | 
 | 
| 14 | 0 | 1 | 1 | 1 | 0 | 
| 
 | 
 | 
 | 
 | 
 | 
 | 
| 15 | 0 | 1 | 1 | 1 | 1 | 
| 
 | 
 | 
 | 
 | 
 | 
 | 
| 16 | 1 | 0 | 0 | 0 | 0 | 
| 
 | 
 | 
 | 
 | 
 | 
 | 
| 17 | 1 | 0 | 0 | 0 | 1 | 
| 
 | 
 | 
 | 
 | 
 | 
 | 
| 18 | 1 | 0 | 0 | 1 | 0 | 
| 
 | 
 | 
 | 
 | 
 | 
 | 
| 0 | 0 | 0 | 0 | 0 | 0 | 
| 
 | 
 | 
 | 
 | 
 | 
 | 
 
4
На рисунке 1 изображена схема асинхронного счетчика.
Рисунок 1 - Схема асинхронного счётчика.
После построения схемы было проведено моделирование в двух режимах timing и functional. Результаты моделирования представлены на рисунках 2 и 3.
Рисунок 2 – Результат моделирования в режиме timing.
Рисунок 3 – Результат моделирования в режиме function.
Был написан код для асинхронного счетчика на VHDL. Код представлен
ниже:
5
ibrary ieee;
use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity D_countervh is
port (
C: in std_logic;
Q: out std_logic_vector (4 downto 0) );
end;
architecture synth of D_countervh is signal R: std_logic;
signal cnt: std_logic_vector (4 downto 0); begin
R <= C or not(cnt(4) and cnt(3) and cnt(2) and cnt(1) and cnt(0)); Q <= cnt;
--Q0
process (C,R) begin
if R = '0' then cnt(0) <= '0';
elsif rising_edge (C) then cnt(0) <= not cnt(0); end if;
end process; --Q1
process (cnt(0)) begin
if rising_edge (cnt(0)) then cnt(1) <= not cnt(1); end if;
 
6
end process; --Q2
process (cnt(1),R) begin
if R = '0' then cnt(2) <= '0';
elsif rising_edge (cnt(1)) then cnt(2) <= not cnt(2); end if;
end process; --Q3
process (cnt(2),R) begin
if R = '0' then cnt (3) <= '0';
elsif rising_edge (cnt(2)) then cnt(3) <= not cnt(3); end if;
end process; --Q4
process (cnt(3)) begin
if rising_edge (cnt(3)) then cnt(4) <= not cnt(4); end if;
end process;
end;
После компиляции кода было проведено моделирование в двух режимах timing и functional. На рисунках 4 и 5 представлено моделирование в двух режимах.
Рисунок 4 – Результат моделирования в режиме timing.
 
7
Рисунок 5 – Результат моделирования в режиме function.
2.2 Синхронный счетчик Таблица истинности для синхронного счетчика представлена ниже.
Таблица 2 – Таблица истинности для синхронного счетчика.
| № сигнала | Q4 | Q3 | Q2 | Q1 | Q0 | 
| 
 | 
 | 
 | 
 | 
 | 
 | 
| 0 | 0 | 0 | 0 | 0 | 0 | 
| 
 | 
 | 
 | 
 | 
 | 
 | 
| 1 | 0 | 0 | 0 | 0 | 1 | 
| 
 | 
 | 
 | 
 | 
 | 
 | 
| 2 | 0 | 0 | 0 | 1 | 0 | 
| 
 | 
 | 
 | 
 | 
 | 
 | 
| 3 | 0 | 0 | 0 | 1 | 1 | 
| 
 | 
 | 
 | 
 | 
 | 
 | 
| 4 | 0 | 0 | 1 | 0 | 0 | 
| 
 | 
 | 
 | 
 | 
 | 
 | 
| 5 | 0 | 0 | 1 | 0 | 1 | 
| 
 | 
 | 
 | 
 | 
 | 
 | 
| 6 | 0 | 0 | 1 | 1 | 0 | 
| 
 | 
 | 
 | 
 | 
 | 
 | 
| 7 | 0 | 0 | 1 | 1 | 1 | 
| 
 | 
 | 
 | 
 | 
 | 
 | 
| 8 | 0 | 1 | 0 | 0 | 0 | 
| 
 | 
 | 
 | 
 | 
 | 
 | 
| 9 | 0 | 1 | 0 | 0 | 1 | 
| 
 | 
 | 
 | 
 | 
 | 
 | 
| 10 | 0 | 1 | 0 | 1 | 0 | 
| 
 | 
 | 
 | 
 | 
 | 
 | 
| 11 | 0 | 1 | 0 | 1 | 1 | 
| 
 | 
 | 
 | 
 | 
 | 
 | 
| 12 | 0 | 1 | 1 | 0 | 0 | 
| 
 | 
 | 
 | 
 | 
 | 
 | 
| 13 | 0 | 1 | 1 | 0 | 1 | 
| 
 | 
 | 
 | 
 | 
 | 
 | 
| 14 | 0 | 1 | 1 | 1 | 0 | 
| 
 | 
 | 
 | 
 | 
 | 
 | 
| 15 | 0 | 1 | 1 | 1 | 1 | 
| 
 | 
 | 
 | 
 | 
 | 
 | 
| 16 | 1 | 0 | 0 | 0 | 0 | 
| 
 | 
 | 
 | 
 | 
 | 
 | 
| 17 | 1 | 0 | 0 | 0 | 1 | 
| 
 | 
 | 
 | 
 | 
 | 
 | 
| 18 | 1 | 0 | 0 | 1 | 0 | 
| 
 | 
 | 
 | 
 | 
 | 
 | 
| 19 | 1 | 0 | 0 | 1 | 1 | 
| 
 | 
 | 
 | 
 | 
 | 
 | 
| 20 | 1 | 0 | 1 | 0 | 0 | 
| 
 | 
 | 
 | 
 | 
 | 
 | 
| 21 | 1 | 0 | 1 | 0 | 1 | 
| 
 | 
 | 
 | 
 | 
 | 
 | 
| 22 | 1 | 0 | 1 | 1 | 0 | 
| 
 | 
 | 
 | 
 | 
 | 
 | 
| 23 | 1 | 0 | 1 | 1 | 1 | 
| 
 | 
 | 
 | 
 | 
 | 
 | 
| 0 | 0 | 0 | 0 | 0 | 0 | 
| 
 | 
 | 
 | 
 | 
 | 
 | 
 
8
На рисунке 6 изображена схема синхронного счетчика.
Рисунок 6 – Схема синхронного счетчика.
После построения схемы было проведено моделирование в двух режимах timing и functional. Результаты моделирования представлены на рисунках 7 и 8.
Рисунок 7 – Результат моделирования в режиме timing.
Рисунок 8 – Результат моделирования в режиме function.
Был написан код для асинхронного счетчика на VHDL. Код представлен
ниже:
9
library ieee;
use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity SyncCountvh is
port (
C, R: in std_logic;
Q: out std_logic_vector (4 downto 0) );
end;
architecture synth of SyncCountvh is signal m: std_logic;
signal S: std_logic_vector (4 downto 0); begin
m <= S(4) and not (S(3)) and S(2) and S(1) and S(0); Q <= S;
process (C,R) begin
if rising_edge (C) then
if m = '1' then S <= "00000"; else S <= S + '1';
end if; end if;
if R = '1' then S <= "00000"; end if;
end process; end;
 
10
После компиляции кода было проведено моделирование в двух режимах timing и functional. На рисунках 9 и 10 представлено моделирование в двух режимах.
Рисунок 9 – Результат моделирования в режиме timing.
Рисунок 10 – Результат моделирования в режиме function.
