aboutsummaryrefslogtreecommitdiffstats
path: root/tests/asicworld/code_hdl_models_arbiter_tb.v
diff options
context:
space:
mode:
Diffstat (limited to 'tests/asicworld/code_hdl_models_arbiter_tb.v')
-rw-r--r--tests/asicworld/code_hdl_models_arbiter_tb.v62
1 files changed, 62 insertions, 0 deletions
diff --git a/tests/asicworld/code_hdl_models_arbiter_tb.v b/tests/asicworld/code_hdl_models_arbiter_tb.v
new file mode 100644
index 000000000..5e7bf46b9
--- /dev/null
+++ b/tests/asicworld/code_hdl_models_arbiter_tb.v
@@ -0,0 +1,62 @@
+module testbench ();
+
+reg clk;
+reg rst;
+reg req3;
+reg req2;
+reg req1;
+reg req0;
+wire gnt3;
+wire gnt2;
+wire gnt1;
+wire gnt0;
+
+// Clock generator
+always #1 clk = ~clk;
+
+initial begin
+ $dumpfile ("arbiter.vcd");
+ $dumpvars();
+ clk = 0;
+ rst = 1;
+ req0 = 0;
+ req1 = 0;
+ req2 = 0;
+ req3 = 0;
+ #10 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