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

лабы / Лабораторная работа 2

.docx
Скачиваний:
3
Добавлен:
24.05.2023
Размер:
513.21 Кб
Скачать

ФЕДЕРАЛЬНОЕ АГЕНТСТВО СВЯЗИ

Федеральное государственное образовательное бюджетное учреждение

высшего профессионального образования

«Санкт-Петербургский государственный университет телекоммуникаций

им. проф. М. А. Бонч-Бруевича»

_________________________________________________________________

Кафедра: «Программной инженерии и вычислительной техники»

Дисциплина: «Микропроцессорные устройства»

Исследование работы ПЦУ

Отчёт по лабораторной работе №2

Выполнил: ст. группы РТ-01

Принял: Анохин Ю.В.

Санкт-Петербург

2022

Лабораторная работа № 2.

Исследование работы ПЦУ.

RS - триггер.

module tr_rs

(input wire s,r,

output wire q,nq);

wire p,np;

assign p = !(s & np);

assign np = !(r & p);

assign q=p;

assign nq=np;

endmodule

D – триггер.

module tr_d

(input wire clk,d,set,res,

output wire q);

reg p;

assign q=p;

always@ (negedge set, negedge res, posedge clk)

begin

if (!set)

p<=1'b1;

else if (!res)

p<=1'b0;

else if(clk)

p<=d;

end

endmodule

JK – триггер.

module tr_jk

(input wire clk, set, res, j, k,

output wire q);

reg p;

assign q=p;

always@ (negedge set, negedge res, posedge clk)

begin

if (!set)

p<=1'b1;

else if (!res)

p<=1'b0;

else if (clk)

case ({j,k})

2'b00: begin p<=p; end

2'b01: begin p<=1'b0; end

2'b10: begin p<=1'b1; end

2'b11: begin p<=!p; end

endcase

end

endmodule

Последовательный регистр.

module shift_rgstr

#(parameter N=8)

( input clk,

input d_in,

output d_out);

reg [N-1:0] d;

assign d_out = d[N-1];

always @ (posedge clk)

begin

d[N-1:1] <= d[N-2:0];

d[0] <= d_in;

end

endmodule

Регистр – защёлка.

module latch_rgstr

#(parameter N=4)

(input [N-1:0] d_in,

input clk,

output [N-1:0]d_out);

reg [N-1:0]q;

assign d_out=q;

always@ (posedge clk)

begin

q<=d_in;

end

endmodule

Буферный регистр.

module buf_rgstr

#(parameter N=4)

(input [N-1:0] d_in,

input clk, ena, res, rd,

output [N-1:0] d_out);

reg [N-1:0]w;

assign d_out=(rd)? (w) : (0);

always@ (posedge clk, negedge res)

begin

if (!res)

w<=0;

else if (clk)

begin

if (ena)

w<=d_in;

else

w<=w;

end

end

endmodule

Соседние файлы в папке лабы