Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Отчеты / ЛАБ5

.1.pdf
Скачиваний:
9
Добавлен:
05.06.2022
Размер:
1.35 Mб
Скачать

Министерство образования и науки Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования

«ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ» (ТУСУР)

Кафедра комплексной информационной безопасности электронно-

вычислительных систем (КИБЭВС)

ИЗУЧЕНИЕ РАБОТЫ СЧЁТЧИКОВ

Отчет по лабораторной работе №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.

Соседние файлы в папке Отчеты