Testbench erweitert, kommentiert.

This commit is contained in:
2024-02-21 19:14:41 +01:00
parent 42c7f91e77
commit 5fa42b7409

View File

@@ -1,12 +1,19 @@
//Testbench: jk-ff
//Einstellung der Zeitskalierung
`timescale 1ns/1ps `timescale 1ns/1ps
module tb_jk-ff; module tb_jk-ff;
//Definition globaler Pins
reg clk; reg clk;
reg res; reg res;
reg en; reg en;
//Zählervariable i
integer i; integer i;
//Zu Beginn werden alle Pins auf 0 gesetzt.
initial begin initial begin
clk = 1'b0; clk = 1'b0;
res = 1'b0; res = 1'b0;
@@ -15,24 +22,30 @@ initial begin
dut_k = 1'b0; dut_k = 1'b0;
end end
//Starten eines Clocks mit 50 kHz
always begin always begin
#10 clk = ~clk; #10 clk = ~clk;
end end
//Definition der Ein- und Ausgänge vom dut
reg dut_j; reg dut_j;
reg dut_k; reg dut_k;
wire dut_q; wire dut_q;
//Ablauf des Testszenarios
initial begin initial begin
//Warte 4 Clock-Zyklen
for (i=0;i<4;i=i+1) begin for (i=0;i<4;i=i+1) begin
@ (negedge clk); @ (negedge clk);
end end
//Reset ein und aus
res = ~res; res = ~res;
#40 #40
res = ~res; res = ~res;
//Alle Schaltmöglichkeiten für JK probieren (getriggert auf pos. Flanke)
@ (posedge clk); @ (posedge clk);
dut_j = 1'b0; dut_j = 1'b0;
dut_k = 1'b1; dut_k = 1'b1;
@@ -46,8 +59,10 @@ initial begin
dut_j = 1'b0; dut_j = 1'b0;
dut_k = 1'b0; dut_k = 1'b0;
//Enable Eingang aktivieren
en = 1'b1; en = 1'b1;
//Alle Schaltmöglichkeiten für JK probieren (getriggert auf pos. Flanke)
@ (negedge clk); @ (negedge clk);
dut_j = 1'b0; dut_j = 1'b0;
dut_k = 1'b1; dut_k = 1'b1;
@@ -65,6 +80,7 @@ initial begin
end end
//Instanziierung des jk-ff
jk-ff dut( jk-ff dut(
.R(res), .R(res),
.CLK(clk), .CLK(clk),