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