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