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

Отчёт_лр2

.docx
Скачиваний:
0
Добавлен:
06.05.2026
Размер:
103.59 Кб
Скачать

Минобрнауки России

Санкт-петербургский государственный

Электротехнический университет

«ЛЭТИ» им. В.И. Ульянова (Ленина)

Кафедра ВТ

Отчёт

Лабораторная работа №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, что позволило описать систему в виде нескольких строк кода вместо громоздкой логической схемы.

Соседние файлы в предмете Элементная база цифровых систем