61 lines
1.0 KiB
Coq
61 lines
1.0 KiB
Coq
|
module testbench ();
|
||
|
|
||
|
reg clk = 0;
|
||
|
reg rst = 1;
|
||
|
reg req3 = 0;
|
||
|
reg req2 = 0;
|
||
|
reg req1 = 0;
|
||
|
reg req0 = 0;
|
||
|
wire gnt3;
|
||
|
wire gnt2;
|
||
|
wire gnt1;
|
||
|
wire gnt0;
|
||
|
|
||
|
// Clock generator
|
||
|
always #1 clk = ~clk;
|
||
|
integer file;
|
||
|
|
||
|
always @(posedge clk)
|
||
|
$fdisplay(file, "%b", {gnt3, gnt2, gnt1, gnt0});
|
||
|
|
||
|
initial begin
|
||
|
file = $fopen(`outfile);
|
||
|
repeat (5) @ (posedge clk);
|
||
|
rst <= 0;
|
||
|
repeat (1) @ (posedge clk);
|
||
|
req0 <= 1;
|
||
|
repeat (1) @ (posedge clk);
|
||
|
req0 <= 0;
|
||
|
repeat (1) @ (posedge clk);
|
||
|
req0 <= 1;
|
||
|
req1 <= 1;
|
||
|
repeat (1) @ (posedge clk);
|
||
|
req2 <= 1;
|
||
|
req1 <= 0;
|
||
|
repeat (1) @ (posedge clk);
|
||
|
req3 <= 1;
|
||
|
req2 <= 0;
|
||
|
repeat (1) @ (posedge clk);
|
||
|
req3 <= 0;
|
||
|
repeat (1) @ (posedge clk);
|
||
|
req0 <= 0;
|
||
|
repeat (1) @ (posedge clk);
|
||
|
#10 $finish;
|
||
|
end
|
||
|
|
||
|
// Connect the DUT
|
||
|
arbiter U (
|
||
|
clk,
|
||
|
rst,
|
||
|
req3,
|
||
|
req2,
|
||
|
req1,
|
||
|
req0,
|
||
|
gnt3,
|
||
|
gnt2,
|
||
|
gnt1,
|
||
|
gnt0
|
||
|
);
|
||
|
|
||
|
endmodule
|