Министерство науки и высшего образования Российской Федерации Федеральное государственное автономное образовательное учреждение высшего образования
«ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ» (ТУСУР) Кафедра безопасности информационных систем (БИС)
ПРИМЕНЕНИЕ ТРИГГЕРОВ, РЕГИСТРОВ И СЧЁТЧИКОВ
Отчёт по лабораторной работе №3 По дисциплине «Электроника и схемотехника»
Вариант №21
Студент гр.
_____
Руководитель Доцент кафедры
КИБЭВС, к.т.н., доцент
_______Мальчуков А.Н.
___.___.2026
Томск 2026
Введение
Цель работы – научиться совместно применять триггеры, регистры и счетчики. Постановка задачи:
•Из ЛР1 взять 4 функции:F 22= A ((B C) D), F 21=( A (B C)) D,
F 20=(( A B) C) D, F 19= A (B (C D)). Для них необходимо построить таблицу истинности.
•Собрать схемы на холсте .bdf согласно полученным формулам.
•Для выполнения 4-х параллельных операций организовать прием
ивыдачу согласно данным параметрам: прием - убывающий, последовательным кодом младшими разрядами вперед и синхронный сброс. Выдача - возрастающая, параллельным кодом и активный уровень сигнала «read» равный 1.
•Промоделировать схемы в режимах «Timing» и «Functional» так, чтобы в результате каждая функция принимала значения 0 и 1.
•Сверить с результатами из таблицы истинности и результатом моделирования.
•Повторить эти пункты, только для описания устройств вместо схем на .bdf использовать HDL SV и реализовать автомат для выдачи данных
иих тактирования.
•Создать схему из RTL Viewer для кода HDL.
•Написать выводы о проделанной работе.
2
1 ФУНКЦИОНАЛЬНАЯ СХЕМА
Для функций 22, 21, 20, 19 были составлены схемы на холсте .bdf (рис. 1.1), описаны на SystemVerilog (рис. 2.1) и промоделированы в режимах «Functional» и «Timing» (рис. 3.1-3.2). Также был промоделирован код на SystemVerilog в режимах «Functional» и «Timing» (рис. 3.3-3.4). Схема из RTL viewer для кода HDL представлена на рисунке 2.2.
Функции по заданию:
|
|
|
|
|
|
|
(1.1) |
|
F 22= A |
((B C) D) |
|||||||
|
|
|
|
|
|
|
(1.2) |
|
F 21=( A |
(B C)) D |
|||||||
|
|
|
(1.3) |
|||||
F 20=(( |
A B) |
C) D |
||||||
|
|
|
(1.4) |
|||||
F 19= A (B |
(C D)) |
|||||||
Рисунок 1.1 — Схемы на холсте .bdf для функций 22, 21, 20, 19
3
2 КОД НА SYSTEMVERILOG
Рисунок 2.1 — Описание на SystemVerilog
Строки 1-4. Объявление модуля lab31 с входными сигналами (read, g, cint, RST, cext) и выходными (F19, F20, F21, F22, clkout).
Строки 6-8. Внутренние сигналы:
temp [3:0] – 4-битный регистр для хранения принятого слова (биты: temp[3] – A, temp[2] – B, temp[1] – C, temp[0] – D).
clkout_reg – внутренний регистр для формирования выходного строба clkout.
clr – внутренний сигнал синхронного сброса (формируется из внешнего
RST).
A, B, C, D – промежуточные сигналы для удобства чтения.
4
Строки 10-13. начальная инициализация (выполняется один раз при старте симуляции): temp обнуляется, clkout_reg сбрасывается в 0.
Строка 15. Сигнал clkout повторяет значение внутреннего регистра clkout_reg.
Строки 16-19. Выделение битов из регистра temp: старший бит temp[3] соответствует A, temp[2] – B, temp[1] – C, temp[0] – младшему биту D.
Строки 21-24. Описание комбинационных логических функций: F19 = A & (B | ~(C ^ D)) – функция варианта 19;
F20 = (~(A ^ B) & C) | D – функция варианта 20;
F21 = (A | ~(B ^ C)) & D – функция варианта 21;
F22 = A & ~((B | C) ^ D) – функция варианта 22.
Строки 26-31. Процесс приёма данных (тактирование cext): Чувствителен к спадающему фронту cext (negedge cext) и фронту
сигнала clr (posedge clr).
При clr = 1 регистр temp мгновенно обнуляется (асинхронный сброс). При clr = 0 по каждому спаду cext выполняется сдвиг вправо: temp <=
{g, temp[3:1]}. Новый бит g заносится в старший разряд, остальные сдвигаются вправо. За 4 такта формируется 4-битное слово.
Строки 32-37. Процесс формирования выходного строба (тактирование
cint):
Чувствителен к нарастающему фронту cint (posedge cint) и сигналу clr. При clr = 1 регистр clkout_reg обнуляется.
При clr = 0 по каждому фронту cint в clkout_reg записывается значение. сигнала read. Таким образом, clkout = 1 только во время интервала read = 1.
Строки 38-43. Процесс формирования внутреннего сигнала сброса: Чувствителен к спадающему фронту cext и фронту clr.
При clr = 1 сигнал clr сбрасывается в 0.
При clr = 0 сигнал clr принимает значение внешнего сигнала RST.
5
Рисунок 2.2 — Схема из RTL Viewer для кода SystemVerilog
6
3 МОДЕЛИРОВАНИЕ СХЕМЫ
Рисунок 3.1 — Моделирование схемы «Functional» для схемы
Рисунок 3.2 — Моделирование схемы «Timing» для схемы
Рисунок 3.3 — Моделирование кода «Functional» для SystemVerilog
Рисунок 3.4 — Моделирование кода «Timing» для SystemVerilog
Из-за присутствующей задержки в режиме «Timing» происходят выходы за границы интервала.
Приём первой пачки данных осуществляется по спадающему фронту
cext:
В момент времени t = 200 нс происходит первый активный (спадающий) фронт сигнала cext, на входе g присутствует логический 0.
7
Вмомент времени t = 500 нс — второй спадающий фронт cext, на входе g логический 0.
Вмомент времени t = 800 нс — третий спадающий фронт cext, на входе g логический 0.
Вмомент времени t = 1100 нс — четвёртый спадающий фронт cext, на входе g логическая 1.
Таким образом, принято 4-битное слово ABCD = 1000, младшими разрядами вперед.
Сигнал запроса на чтение read подаётся в активном уровне в интервале времени от 1,3 мкс до 1,5 мкс. По переднему фронту выходного синхросигнала clkout в момент t = 1,35 мкс на выходах устройства фиксируются и становятся достоверными значения вычисленных функций: F19 = 1, F20 = 0, F21 = 0, F22
=1. Сигнал clkout удерживается в активном уровне до момента t = 1,55 мкс, подтверждая валидность данных на шине.
Приём второй пачки данных осуществляется по спадающему фронту
cext:
Вмомент времени t = 1,7 мкс происходит первый активный (спадающий) фронт сигнала cext, на входе g присутствует логическая 1.
Вмомент времени t = 2 мкс — второй спадающий фронт cext, на входе g логический 0.
Вмомент времени t = 2,3 мкс — третий спадающий фронт cext, на входе g логический 0.
Вмомент времени t = 2,6 нс — четвёртый спадающий фронт cext, на входе g логическая 1.
Таким образом, принято 4-битное слово ABCD = 1001, младшими разрядами вперед.
Сигнал запроса на чтение read подаётся в активном уровне в интервале времени от 2,8 мкс до 3,0 мкс. По переднему фронту выходного синхросигнала clkout в момент t = 2,85 мкс на выходах устройства фиксируются и становятся достоверными значения вычисленных функций: F19 = 0, F20 = 1, F21 = 1, F22
8
= 0. Сигнал clkout удерживается в активном уровне до момента t = 3,05 мкс, подтверждая валидность данных на шине.
Сигнал внешнего сброса RST подаётся в интервале времени от 3,3 мкс до 3,5 мкс. Поскольку вариант предусматривает синхронный сброс (s), обнуление всех регистров схемы происходит не мгновенно, а по ближайшему активному (нисходящему) фронту cext в момент времени t = 3,4 мкс. Сразу после активного фронта cext внутренние регистры очищаются, и все выходные функции принимают нулевые значения: F19 = 0, F20 = 0, F21 = 0, F22 = 0.
9
4 ТАБЛИЦА ИСТИННОСТИ
Таблица 1.1 — Таблица истинности
|
Входы |
|
|
|
Выходы |
|
||
|
|
|
|
|
|
|
|
|
A |
B |
|
C |
D |
F22 |
F21 |
F20 |
F19 |
|
|
|
|
|
|
|
|
|
0 |
0 |
|
0 |
0 |
0 |
0 |
0 |
0 |
|
|
|
|
|
|
|
|
|
0 |
0 |
|
0 |
1 |
0 |
1 |
1 |
0 |
|
|
|
|
|
|
|
|
|
0 |
0 |
|
1 |
0 |
0 |
0 |
1 |
0 |
|
|
|
|
|
|
|
|
|
0 |
0 |
|
1 |
1 |
0 |
0 |
1 |
0 |
|
|
|
|
|
|
|
|
|
0 |
1 |
|
0 |
0 |
0 |
0 |
0 |
0 |
|
|
|
|
|
|
|
|
|
0 |
1 |
|
0 |
1 |
0 |
0 |
1 |
0 |
|
|
|
|
|
|
|
|
|
0 |
1 |
|
1 |
0 |
0 |
0 |
0 |
0 |
|
|
|
|
|
|
|
|
|
0 |
1 |
|
1 |
1 |
0 |
1 |
1 |
0 |
|
|
|
|
|
|
|
|
|
1 |
0 |
|
0 |
0 |
1 |
0 |
0 |
1 |
|
|
|
|
|
|
|
|
|
1 |
0 |
|
0 |
1 |
0 |
1 |
1 |
0 |
|
|
|
|
|
|
|
|
|
1 |
0 |
|
1 |
0 |
0 |
0 |
0 |
0 |
|
|
|
|
|
|
|
|
|
1 |
0 |
|
1 |
1 |
1 |
1 |
1 |
1 |
|
|
|
|
|
|
|
|
|
1 |
1 |
|
0 |
0 |
0 |
0 |
0 |
1 |
|
|
|
|
|
|
|
|
|
1 |
1 |
|
0 |
1 |
1 |
1 |
1 |
1 |
|
|
|
|
|
|
|
|
|
1 |
1 |
|
1 |
0 |
0 |
0 |
1 |
1 |
|
|
|
|
|
|
|
|
|
1 |
1 |
|
1 |
1 |
1 |
1 |
1 |
1 |
|
|
|
|
|
|
|
|
|
10
