Отчёт_лр2
.docxМинобрнауки России
Санкт-петербургский государственный
Электротехнический университет
«ЛЭТИ» им. В.И. Ульянова (Ленина)
Кафедра ВТ
Отчёт
Лабораторная работа №2
По дисциплине «Элементарная база цифровых систем»
Тема: ПРОЕКТИРОВАНИЕ КОМБИНАЦИОННОГО УЗЛА
НА ОСНОВЕ ДЕШИФРАТОРА И МУЛЬТИПЛЕКСОРА
Студент гр. 3316 Руденский И.М.
Студент гр. 3316 Четвертак А.Р.
Преподаватель Ельчанинов М.Н.
Санкт-Петербург
2026
Цель работы
Цель работы – получить практические навыки в использовании дешифратора и мультиплексора для воспроизведения произвольных логических функций.
Ход работы
1. В соответствии с вариантом была воспроизведена схема из лабораторной работы №1 с использованием мультиплексора, также была создана аналогичная схема с использованием дешифратора.
Рисунок 1 - Реализация схем с исп. дешифратора и мультиплексора
2. Был создан символ логической схемы, созданной в лабораторной работе №1. Он был помещен на рабочее пространство, к нему были подключены входы.
Рисунок 2 - Символ из л\р №1
3. Было проведено моделирование, которое показало полное соответствие всех трёх схем.
Рисунок 3 - моделирование системы
4. Схема была загружена в ПЛИС, результат моделирования на компьютере полностью совпал с результатом моделирования на ПЛИС.
5. В соответствии с заданием №2 необходимо было создать схему, которая принимает на вход четырёхразрядное число и преобразует его в изображение на семисегментном индикаторе. Для этого была написана программа на verilog, которая сопоставляет числу на входе номера сегментов, которые нужно зажечь. Номера сегментов взяты в соответствии с рис. 4.
Рисунок 4 - сегменты на индикаторе
Текст программы:
module hex7seg (
input wire [3:0] bin, // на вход 4 бита
output reg [6:0] seg // на выход 7 бит
);
/*
reg — используется для сигналов, которым присваивают значение в always или initial блоках.
wire — используется для сигналов, которым присваивают значение через assign или для соединения модулей.
*/
always @(*) begin // @(*) значит что модуль выполняется при изменении значения любого входа
case(bin)
4'h0: seg = 7'b1111110; // если приходит 4битное шестнадцатеричное число со значением 0 (4 - n бит, 'h - система счисления, 0 - значение)
4'h1: seg = 7'b0110000;
4'h2: seg = 7'b1101101;
4'h3: seg = 7'b1111001;
4'h4: seg = 7'b0110011;
4'h5: seg = 7'b1011011;
4'h6: seg = 7'b1011111;
4'h7: seg = 7'b1110000;
4'h8: seg = 7'b1111111;
4'h9: seg = 7'b1111011;
4'hA: seg = 7'b1110111;
4'hB: seg = 7'b0011111;
4'hC: seg = 7'b1001110;
4'hD: seg = 7'b0111101;
4'hE: seg = 7'b1001111;
4'hF: seg = 7'b1000111;
default: seg = 7'b0000000;
endcase
end
endmodule
6. Код был загружен в ПЛИС, при переключении разрядов на индикаторе возникали цифры и буквы в соответствии с заданием.
Вывод
В результате выполненной работы были получены навыки реализации произвольных логических схем с использованием дешифратора и мультиплексора. С помощью этих элементов возможна компактная и удобная реализация больших логических схем. Кроме того, были освоены базовые навыки создания модулей на языке Verilog, что позволило описать систему в виде нескольких строк кода вместо громоздкой логической схемы.
