4 семестр / Цифровая электроника / lab6_zif
.docxМИНОБРНАУКИ РОССИИ
Санкт-Петербургский государственный
электротехнический университет
«ЛЭТИ» им. В.И. Ульянова (Ленина)
Кафедра РС
отчет
по лабораторной работе №6
по дисциплине «Цифровая электроника»
Тема: Синхронные двоичные счетчики
Вариант 13
Студент гр. 4493 |
|
Шевцов А.И. |
Преподаватель |
|
Овчинников М.А. |
Санкт-Петербург
2026
Задание
Изменить код программы (Регистр сдвига «неправильная версия»). Открыть полученную схему в RTL-Viewer, построить временные диаграммы. Что изменилось в схеме, почему? |
|
|
|
Изучить работу схемы в RTL Viever. Как работает дешифратор и на каких элементах он основан? Зачем нужен сигнал dig? Какой индикатор используется в задании, с общим катодом или с общим анодом? |
|
|
|
П. 1 Собрать схему четырехразрядного регистра сдвига
Код для схемы четырехразрядного регистра сдвига
module sdvig (clock, data_in,load,qa, qb, qc, qd);
input clock, load;
input [3:0] data_in;
output reg qa, qb, qc, qd;
always @(posedge clock)
begin
if (load)
begin
qa<=data_in[0];
qb<=data_in[1];
qc<=data_in[2];
qd<=data_in[3];
end
else
begin
qb<=qa;
qc<=qb;
qd<=qc;
qa<=qd;
end
end
endmodule
Рис. 1 Результат работы RTL-viewer для схемы схему четырехразрядного регистра сдвига
Рис. 2 Временная диаграмма для схемы четырехразрядного регистра сдвига
Измененный код для схемы четырехразрядного регистра сдвига
module sdvig (clock, ds, qa, qb, qc, qd);
input clock, ds;
output reg qa, qb, qc, qd;
always @(posedge clock)
begin
qa=ds;
qb=qa;
qc=qb;
qd=qc;
end
endmodule
Рис. 3 Результат работы RTL-viewer для неправильной схемы четырехразрядного регистра сдвига
Рис. 4 Временная диаграмма неправильной схемы четырехразрядного регистра сдвига
Вопрос
Что изменилось в схеме, почему?
1 схема на каждый такт при сигнале load = 1 присваивает выходным сигналам соответствующие значения входного, при load = 0 сдвигает значения
2 схема: Исчез сигнал загрузки load Вместо неблокирующих присваиваний используются блокирующие, поэтому входной сигнал последовательно копируется на все выходные во время одного такта.
П.2 Собрать схему дешифратора , тип 2 (дешифратор – схема преобразования двоичного кода в унитарный). Для этого воспользоваться кодом 2 из приложения. Код схемы дешифратора 2 х 4
module dc2x4 (in, out);
input [1:0] in;
output [3:0] out;
assign out = 1 <<in;
endmodule
Рис. 5 Результат RTL-viewer для схемы дешифратора 2 х 4
Рис. 6 Временная диаграмма схемы дешифратора 2 х 4
П.3 Собрать схему дешифратора двоичного кода в код семисегментного индикатора. Для этого воспользоваться кодом 4 из приложения. Самостоятельно дописать коды символов с D по F
Код для схемы дешифратора двоичного кода в код cемисегментного индикатора
module seg7 (bcd, dig, leds);
input [3:0] bcd;
output dig;
output reg [7:1] leds;
always @ (bcd)
case (bcd)
0: leds = 7'b1000000;
1: leds = 7'b1111001;
2: leds = 7'b0100100;
3: leds = 7'b0110000;
4: leds = 7'b0011001;
5: leds = 7'b0010010;
6: leds = 7'b0000010;
7: leds = 7'b1111000;
8: leds = 7'b0000000;
9: leds = 7'b0010000;
4'hA: leds = 7'b0001000;
4'hB: leds = 7'b0000011;
4'hC: leds = 7'b1000110;
4'hD: leds = 7'b0100001;
4'hE: leds = 7'b0000110;
4'hF: leds = 7'b0001110;
default: leds = 7'b0101010;
endcase
assign dig = 1;
endmodule
Рис. 7 Результат RTL-viewer для схемы дешифратора двоичного кода в код cемисегментного индикатора
Вопрос
Как работает дешифратор и на каких элементах он основан? Зачем нужен сигнал dig? Какой индикатор используется в задании, с общим катодом или с общим анодом?
Дешифратор преобразует двоичный код в 7-битный используя заданную таблицу истинности, дешифратор основан на элементах ИЛИ. dig - сигнал выбора разряда, так как индикатор одноразрядный он постоянно активирует единственный разряд. Индикатор с общим анодом, так как сигнал для 0 = 7'b1000000; не горит сегмент g = 1, поэтому сигнал 0 соответствует горящему сегменту, а 1 неактивному, что является свойством индикатора с общим анодом.
П.4 К коду задания 3 добавить счетчик с управлением от кварцевого резонатора (50 МГц). Из всех выходов 32-разрядного счетчика для отображения информации взять q[27:24]. Какова частота смены состояний на индикаторе?
Код для схемы с счетчиком с управлением от кварцевого резонатора
module freq (clk, dig, leds);
input clk;
reg [31:0] counter;
output dig;
output reg [7:1] leds;
always @ (posedge clk)
counter <= counter + 32'd1;
always @ (counter[27:24])
case (counter[27:24])
0: leds = 7'b1000000;
1: leds = 7'b1111001;
2: leds = 7'b0100100;
3: leds = 7'b0110000;
4: leds = 7'b0011001;
5: leds = 7'b0010010;
6: leds = 7'b0000010;
7: leds = 7'b1111000;
8: leds = 7'b0000000;
9: leds = 7'b0010000;
4'hA: leds = 7'b0001000;
4'hB: leds = 7'b0000011;
4'hC: leds = 7'b1000110;
4'hD: leds = 7'b0100001;
4'hE: leds = 7'b0000110;
4'hF: leds = 7'b0001110;
default: leds = 7'b0101010;
endcase
assign dig = 1;
endmodule
Рис. 8 Результат RTL-viewer для схемы дешифратора двоичного кода в код cемисегментного индикатора с счетчиком с управлением от кварцевого резонатора
Вопрос
Какова частота смены состояний на индикаторе?
Вывод
Четырехразрядный регистр сдвига на каждый такт при сигнале load = 1 копирует входной сигнал на выход, при сигнале load = 0 производит побитовый сдвиг влево. При изменении неблокирующих присваиваний на блокирующие схема вместо сдвига синхронно присваивает выходным сигналам значение входного. Дешифратор 2х4 преобразует 2-битовый сигнал в 4-битовый по правилу out = 1<<in Выходной сигнал – 1 сдвинутый влево на in битов Дешифратор двоичного кода в код cемисегментного индикатора преобразует двоичный код в 7-битный используя заданную таблицу истинности, дешифратор основан на элементах ИЛИ. dig - сигнал выбора разряда, так как индикатор одноразрядный он постоянно активирует единственный разряд. При добавлении 32-разрядного счетчика для управления индикатором необходимо выбрать определенные выходы счетчика, тогда младшие разряды используются как делитель частоты, а старшие не используются.

,
тип 2 (дешифратор – схема преобразования
двоичного кода в унитарный). Для этого
воспользоваться кодом 2 из приложения.
Изучить схему, реализованную в
RTL-Viewer.
Построить временные диаграммы,
иллюстрирующие работу устройства.
Период входного сигнала задать 40 нс.