Hochladen der vorherigen Laborübungen.
Die Dateien selbst wurden nicht verändert.
This commit is contained in:
97
labor_2/automat/sim/tb_cola.v
Normal file
97
labor_2/automat/sim/tb_cola.v
Normal file
@@ -0,0 +1,97 @@
|
||||
//cola testbench
|
||||
`timescale 1ns/1ps
|
||||
|
||||
module tb_cola();
|
||||
|
||||
reg tb_clk;
|
||||
reg tb_rst;
|
||||
reg tb_enable;
|
||||
reg dut_eineuro;
|
||||
reg dut_zweieuro;
|
||||
|
||||
wire [1:0] dut_ausgabe;
|
||||
wire [1:0] dut_zustand;
|
||||
|
||||
integer i = 0;
|
||||
|
||||
initial begin
|
||||
tb_clk = 1'b0;
|
||||
tb_rst = 1'b0;
|
||||
tb_enable = 1'b0;
|
||||
end
|
||||
|
||||
always begin
|
||||
#10;
|
||||
tb_clk = ~tb_clk;
|
||||
end
|
||||
|
||||
initial begin
|
||||
for (i=0; i<4; i=i+1) begin
|
||||
@(negedge tb_clk);
|
||||
end
|
||||
|
||||
dut_eineuro = 1'b0;
|
||||
dut_zweieuro = 1'b0;
|
||||
|
||||
tb_rst = 1'b1;
|
||||
@(negedge tb_clk)
|
||||
|
||||
tb_rst = 1'b0;
|
||||
@(negedge tb_clk)
|
||||
|
||||
tb_enable = 1'b1;
|
||||
|
||||
for (i=0; i<8; i=i+1) begin
|
||||
@(negedge tb_clk);
|
||||
end
|
||||
|
||||
//Fall 1: 3 mal 1 Euro
|
||||
for (i=0; i<3; i=i+1) begin
|
||||
dut_eineuro = 1'b1;
|
||||
@(negedge tb_clk);
|
||||
dut_eineuro = 1'b0;
|
||||
@(negedge tb_clk);
|
||||
end
|
||||
|
||||
for (i=0; i<=4; i=i+1) begin
|
||||
@(negedge tb_clk);
|
||||
end
|
||||
|
||||
tb_rst = 1'b1;
|
||||
@(negedge tb_clk)
|
||||
|
||||
tb_rst = 1'b0;
|
||||
@(negedge tb_clk)
|
||||
|
||||
for (i=0; i<4; i=i+1) begin
|
||||
@(negedge tb_clk);
|
||||
end
|
||||
|
||||
//Fall 2: 2 Euro + 1 Euro
|
||||
dut_zweieuro = 1'b1;
|
||||
@(negedge tb_clk);
|
||||
dut_zweieuro = 1'b0;
|
||||
@(negedge tb_clk);
|
||||
|
||||
dut_eineuro = 1'b1;
|
||||
@(negedge tb_clk);
|
||||
dut_eineuro = 1'b0;
|
||||
@(negedge tb_clk);
|
||||
|
||||
for (i=0; i<4; i=i+1) begin
|
||||
@(negedge tb_clk);
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
cola cola_dut(
|
||||
.CLK(tb_clk),
|
||||
.RST(tb_rst),
|
||||
.ENABLE(tb_enable),
|
||||
.EINEURO(dut_eineuro),
|
||||
.ZWEIEURO(dut_zweieuro),
|
||||
.AUSGABE(dut_ausgabe),
|
||||
.ZUSTAND(dut_zustand)
|
||||
);
|
||||
|
||||
endmodule
|
||||
Reference in New Issue
Block a user