aboutsummaryrefslogtreecommitdiff
path: root/hdl/wb_slave_ctrl_testbench.v
diff options
context:
space:
mode:
Diffstat (limited to 'hdl/wb_slave_ctrl_testbench.v')
-rw-r--r--hdl/wb_slave_ctrl_testbench.v90
1 files changed, 90 insertions, 0 deletions
diff --git a/hdl/wb_slave_ctrl_testbench.v b/hdl/wb_slave_ctrl_testbench.v
new file mode 100644
index 0000000..36640fd
--- /dev/null
+++ b/hdl/wb_slave_ctrl_testbench.v
@@ -0,0 +1,90 @@
+`timescale 1ns / 1ps
+
+module wb_slave_ctrl_testbench;
+
+ // Inputs
+ reg wb_clk_i;
+ reg wb_rst_i;
+ reg [31:0] wb_dat_i;
+ reg [4:0] wb_adr_i;
+ reg wb_we_i;
+ reg [3:0] wb_sel_i;
+ reg wb_cyc_i;
+ reg wb_stb_i;
+ reg [7:0] data_i;
+ reg [7:0] step_i;
+
+ // Outputs
+ wire [31:0] wb_dat_o;
+ wire wb_ack_o;
+ wire [7:0] data_o;
+ wire [7:0] step_o;
+ wire data_val_o;
+ wire step_val_o;
+
+ // Instantiate the Unit Under Test (UUT)
+ wb_slave_ctrl uut (
+ .wb_clk_i(wb_clk_i),
+ .wb_rst_i(wb_rst_i),
+ .wb_dat_i(wb_dat_i),
+ .wb_adr_i(wb_adr_i),
+ .wb_we_i(wb_we_i),
+ .wb_sel_i(wb_sel_i),
+ .wb_cyc_i(wb_cyc_i),
+ .wb_stb_i(wb_stb_i),
+ .wb_dat_o(wb_dat_o),
+ .wb_ack_o(wb_ack_o),
+ .data_o(data_o),
+ .step_o(step_o),
+ .data_val_o(data_val_o),
+ .step_val_o(step_val_o),
+ .data_i(data_i),
+ .step_i(step_i)
+ );
+
+ initial begin
+ forever begin
+ wb_clk_i = ~wb_clk_i;
+ #100;
+ end
+ end
+
+
+ initial begin
+ // Initialize Inputs
+ wb_clk_i = 0;
+ wb_rst_i = 0;
+ wb_dat_i = 0;
+ wb_adr_i = 0;
+ wb_we_i = 0;
+ wb_sel_i = 0;
+ wb_cyc_i = 0;
+ wb_stb_i = 0;
+ data_i = 0;
+ step_i = 0;
+
+ // Wait 100 ns for global reset to finish
+ #100;
+
+ wb_rst_i = 1;
+ #100;
+ wb_rst_i = 0;
+
+ #100;
+ data_i = 8'b00001111;
+ step_i = 8'b00001010;
+ wb_cyc_i = 1;
+ wb_stb_i = 1;
+ wb_we_i = 0;
+ wb_adr_i = 1;
+
+ #100;
+ #100;
+ #100;
+
+ wb_cyc_i = 0;
+ wb_stb_i = 0;
+ end
+
+endmodule
+