Академический Документы
Профессиональный Документы
Культура Документы
Кафедра АПВТ
ОТЧЕТ
Вариант № 3
Выполнили: Проверила:
ст. гр. КИ–16–5 Шевченко О.Ю.
Носов В.С.
Бойченко Д.С.
Левцун Д.К.
Харьков 2019
2
1.1 Цель работы
Научиться разрабатывать, тестировать и верифицировать Verilog-модели
стандартных цифровых устройств.
endmodule
3
Результаты моделирования:
Код testbench:
`timescale 1 ns / 1 ps
module stimulus_simple;
reg A,B,CIN;
wire COUT,SUM;
zadanie2 MOD1(COUT,SUM,A,B,CIN);
initial
begin
A = 1'b0; B = 1'b0; CIN = 1'b0;
#17 CIN = 1'b1;
#17 CIN = 1'b0; B=1'b1;
#17 CIN = 1'b1;
#17 CIN = 1'b0;A=1'b1;B=1'b0;
#17 CIN = 1'b1;
#17 CIN = 1'b0;B=1'b1;
#17 CIN = 1'b1;
#10 $finish;
end
endmodule
4
Результаты моделирования:
Код устройства:
module zadanie3
(input Clk, Clr,
output reg Z0,
output Z1,Z2);
wire w3,w4,w5;
reg w1;
// dataflow
assign w3=w1|~Z0;
assign Z2=~w3;
assign w5=~(w3&w4);
assign w4=Z0|~w1;
assign Z1=~w1;
// pow
always @(posedge Clk, negedge Clr)
if (~Clr) Z0=0;
else Z0=w5;
always @(posedge Clk, negedge Clr)
if (~Clr) w1=0;
else w1=~w1;
endmodule
5
Результаты моделирования:
Код счетчика:
module counter
#(parameter SIZE = 'd8)
( input CLK, RESET,
output reg [SIZE-1:0] COUNTER);
always @(negedge CLK or negedge RESET) begin
if (RESET) COUNTER = 'd0;
else COUNTER = COUNTER + 'd1;
end
endmodule
Результаты моделирования:
Код рагистра:
module shift_reg (input C, R, Shift, input [3:0] D, output reg [3:0] Q);
always @(posedge C)
if (R) Q = 4'b1;
else if (Shift) Q = {Q[0], Q[3:1]};
else Q = D;
endmodule
Код testbench:
`timescale 1 ns / 1 ps
reg [3:0]D, C,R,SHIFT;
wire [3:0]Q;
shift_reg MOD1(C,R,SHIFT,D,Q);
initial
begin
R = 1'b0; C = 1'b0;
#10 C = 1'b1; R = 1'b1;
#10 C = 1'b0; R = 1'b0;
#10 C = 1'b1; SHIFT = 1'b1;
#10 C = 1'b0;
#10 C = 1'b1;
#10 C = 1'b0;
#10 C = 1'b1;
#10 $finish;
end
endmodule
Результаты моделирования:
1.3 Выводы
На данной лабораторной работе были рассмотрены и реализованы
вентильные, dataflow, модели устройств описанные смешанным стилем, а
также поведенческие модели счетчиков и регистров.