[DV] add VPWR and VGND to mem_wb tb
diff --git a/verilog/dv/wb_utests/mem_wb/mem_wb_tb.v b/verilog/dv/wb_utests/mem_wb/mem_wb_tb.v index c604a33..1a9c562 100644 --- a/verilog/dv/wb_utests/mem_wb/mem_wb_tb.v +++ b/verilog/dv/wb_utests/mem_wb/mem_wb_tb.v
@@ -19,6 +19,7 @@ `timescale 1 ns / 1 ps `define UNIT_DELAY #1 +`define USE_POWER_PINS `include "libs.ref/sky130_fd_sc_hd/verilog/primitives.v" `include "libs.ref/sky130_fd_sc_hd/verilog/sky130_fd_sc_hd.v" @@ -42,9 +43,10 @@ wire wb_ack_o; wire [31:0] wb_dat_o; + reg power1; initial begin - wb_clk_i = 0; + wb_clk_i = 0; wb_rst_i = 0; wb_stb_i = 0; // master select-signal for the slave @@ -55,6 +57,17 @@ wb_sel_i = 0; // where data is available on data_i 4-bits end + initial begin // Power-up sequence + power1 <= 1'b0; + #200; + power1 <= 1'b1; + end + + wire VPWR; + wire VGND; + assign VGND = 1'b0; + assign VPWR = power1; + always #1 wb_clk_i = ~wb_clk_i; initial begin @@ -78,18 +91,18 @@ // Reset Operation wb_rst_i = 1; #2; - wb_rst_i = 0; + wb_rst_i = 0; #2; // Randomly Write to memory array - for ( i = 0; i < 1; i = i + 1) begin + for ( i = 0; i < 1; i = i + 1) begin ref_data[i] = $urandom_range(0, 2**30); write(i, ref_data[i]); #2; end #6; - for ( i = 0; i < 1; i = i + 1) begin + for ( i = 0; i < 1; i = i + 1) begin read(i); if (wb_dat_o !== ref_data[i]) begin $display("%c[1;31m",27); @@ -105,16 +118,16 @@ $display ("Monitor: Test Wishbone Memory Passed"); $finish; end - + task write; input [32:0] addr; input [32:0] data; - begin + begin @(posedge wb_clk_i) begin wb_stb_i = 1; wb_cyc_i = 1; - wb_sel_i = 4'hF; - wb_we_i = 1; + wb_sel_i = 4'hF; + wb_we_i = 1; wb_adr_i = addr; wb_dat_i = data; $display("Write Cycle Started."); @@ -127,10 +140,10 @@ $display("Write Cycle Ended."); end endtask - + task read; input [32:0] addr; - begin + begin @(posedge wb_clk_i) begin wb_stb_i = 1; wb_cyc_i = 1; @@ -146,19 +159,23 @@ $display("Read Cycle Ended."); end endtask - + mem_wb uut( + `ifdef USE_POWER_PINS + .VPWR(VPWR), + .VGND(VGND), + `endif .wb_clk_i(wb_clk_i), .wb_rst_i(wb_rst_i), - .wb_adr_i(wb_adr_i), + .wb_adr_i(wb_adr_i), .wb_dat_i(wb_dat_i), .wb_sel_i(wb_sel_i), .wb_we_i(wb_we_i), .wb_cyc_i(wb_cyc_i), .wb_stb_i(wb_stb_i), - .wb_ack_o(wb_ack_o), + .wb_ack_o(wb_ack_o), .wb_dat_o(wb_dat_o) );