[DV] Updated wb_utests
diff --git a/verilog/dv/wb_utests/gpio_wb/gpio_wb_tb.v b/verilog/dv/wb_utests/gpio_wb/gpio_wb_tb.v
index f87f055..ea6c772 100644
--- a/verilog/dv/wb_utests/gpio_wb/gpio_wb_tb.v
+++ b/verilog/dv/wb_utests/gpio_wb/gpio_wb_tb.v
@@ -32,7 +32,7 @@
reg [31:0] wb_dat_i;
reg [31:0] wb_adr_i;
- reg [15:0] gpio_in_pad;
+ reg gpio_in_pad;
wire wb_ack_o;
wire [31:0] wb_dat_o;
@@ -71,10 +71,10 @@
wire [31:0] gpio_pu_adr = uut.BASE_ADR | uut.GPIO_PU;
wire [31:0] gpio_pd_adr = uut.BASE_ADR | uut.GPIO_PD;
- reg [15:0] gpio_data;
- reg [15:0] gpio_pu;
- reg [15:0] gpio_pd;
- reg [15:0] gpio_oeb;
+ reg gpio_data;
+ reg gpio_pu;
+ reg gpio_pd;
+ reg gpio_oeb;
initial begin
// Reset Operation
@@ -84,53 +84,53 @@
#2;
// Write to gpio_data reg
- gpio_in_pad = 16'h FFFF;
- gpio_data = 16'h A000;
+ gpio_in_pad = 1'b1;
+ gpio_data = 1'b1;
write(gpio_adr, gpio_data);
#2;
// Read from gpio_data reg
read(gpio_adr);
- if (wb_dat_o !== {gpio_data, gpio_in_pad}) begin
+ if (wb_dat_o !== {30'd0, gpio_data, gpio_in_pad}) begin
$display("Monitor: Error reading from gpio reg");
$finish;
end
#2;
// Write to pull-up reg
- gpio_pu = 16'h 000f;
+ gpio_pu = 1'b1;
write(gpio_pu_adr, gpio_pu);
#2;
// Read from pull-up reg
read(gpio_pu_adr);
- if (wb_dat_o !== {16'd0, gpio_pu}) begin
+ if (wb_dat_o !== {31'd0, gpio_pu}) begin
$display("Monitor: Error reading from gpio pull-up reg");
$finish;
end
#2;
// Write to pull-down reg
- gpio_pd = 16'h 00f0;
+ gpio_pd = 1'b1;
write(gpio_pd_adr, gpio_pd);
#2;
// Read from pull-down reg
read(gpio_pd_adr);
- if (wb_dat_o !== {16'd0, gpio_pd}) begin
+ if (wb_dat_o !== {31'd0, gpio_pd}) begin
$display("Monitor: Error reading from gpio pull-down reg");
$finish;
end
#2;
// Write to gpio enable reg
- gpio_oeb = 16'h 00ff;
+ gpio_oeb = 1'b1;
write(gpio_oeb_adr, gpio_oeb);
#2;
// Read from gpio enable reg
read(gpio_oeb_adr);
- if (wb_dat_o !== {16'd0, gpio_oeb}) begin
+ if (wb_dat_o !== {31'd0, gpio_oeb}) begin
$display("Monitor: Error reading from gpio output enable reg");
$finish;
end
diff --git a/verilog/dv/wb_utests/la_wb/la_wb_tb.v b/verilog/dv/wb_utests/la_wb/la_wb_tb.v
index 92cc551..6839fdc 100644
--- a/verilog/dv/wb_utests/la_wb/la_wb_tb.v
+++ b/verilog/dv/wb_utests/la_wb/la_wb_tb.v
@@ -89,48 +89,11 @@
wb_rst_i = 0;
#2;
- // Write to la data registers
- la_data_0 = $urandom_range(0, 2**32);
- la_data_1 = $urandom_range(0, 2**32);
- la_data_2 = $urandom_range(0, 2**32);
- la_data_3 = $urandom_range(0, 2**32);
-
- write(la_data_adr_0, la_data_0);
- write(la_data_adr_1, la_data_1);
- write(la_data_adr_2, la_data_2);
- write(la_data_adr_3, la_data_3);
-
- #2;
- // Read from la data registers
- read(la_data_adr_0);
- if (wb_dat_o !== la_data_0) begin
- $display("Monitor: Error reading from la data_0 reg");
- $finish;
- end
-
- read(la_data_adr_1);
- if (wb_dat_o !== la_data_1) begin
- $display("Monitor: Error reading from la data_0 reg");
- $finish;
- end
-
- read(la_data_adr_2);
- if (wb_dat_o !== la_data_1) begin
- $display("Monitor: Error reading from la data_0 reg");
- $finish;
- end
-
- read(la_data_adr_3);
- if (wb_dat_o !== la_data_3) begin
- $display("Monitor: Error reading from la data_0 reg");
- $finish;
- end
-
// Write to la emable registers
- la_ena_0 = $urandom_range(0, 2**32);
- la_ena_1 = $urandom_range(0, 2**32);
- la_ena_2 = $urandom_range(0, 2**32);
- la_ena_3 = $urandom_range(0, 2**32);
+ la_ena_0 = 32'h0000_0000;
+ la_ena_1 = 32'h0000_0000;
+ la_ena_2 = 32'h0000_0000;
+ la_ena_3 = 32'h0000_0000;
write(la_ena_adr_0, la_ena_0);
write(la_ena_adr_1, la_ena_1);
@@ -141,27 +104,69 @@
// Read from la data registers
read(la_ena_adr_0);
if (wb_dat_o !== la_ena_0) begin
- $display("Monitor: Error reading from la data_0 reg");
+ $display("Monitor: Error reading from la_ena_0 reg");
$finish;
end
read(la_ena_adr_1);
if (wb_dat_o !== la_ena_1) begin
- $display("Monitor: Error reading from la data_0 reg");
+ $display("Monitor: Error reading from la_ena_1 reg");
$finish;
end
read(la_ena_adr_2);
if (wb_dat_o !== la_ena_1) begin
- $display("Monitor: Error reading from la data_0 reg");
+ $display("Monitor: Error reading from la_ena_2 reg");
$finish;
end
read(la_ena_adr_3);
if (wb_dat_o !== la_ena_3) begin
+ $display("Monitor: Error reading from la_ena_3 reg");
+ $finish;
+ end
+
+ // Write to la data registers
+ la_data_0 = $urandom_range(0, 2**30);
+ la_data_1 = $urandom_range(0, 2**30);
+ la_data_2 = $urandom_range(0, 2**30);
+ la_data_3 = $urandom_range(0, 2**30);
+
+ write(la_data_adr_0, la_data_0);
+ write(la_data_adr_1, la_data_1);
+ write(la_data_adr_2, la_data_2);
+ write(la_data_adr_3, la_data_3);
+
+ // #2;
+ // Read from la data registers
+ read(la_data_adr_0);
+ $display("%0b", wb_dat_o);
+ $display("%0b", la_data_0);
+
+ if (wb_dat_o !== la_data_0) begin
$display("Monitor: Error reading from la data_0 reg");
$finish;
end
+
+ read(la_data_adr_1);
+ if (wb_dat_o !== la_data_1) begin
+ $display("Monitor: Error reading from la data_1 reg");
+ $finish;
+ end
+
+ read(la_data_adr_2);
+ $display("%0b", wb_dat_o);
+ $display("%0b", la_data_0);
+ if (wb_dat_o !== la_data_2) begin
+ $display("Monitor: Error reading from la data_2 reg");
+ $finish;
+ end
+
+ read(la_data_adr_3);
+ if (wb_dat_o !== la_data_3) begin
+ $display("Monitor: Error reading from la data_3 reg");
+ $finish;
+ end
#6;
$display("Monitor: Test LA Wishbone Success!");
$display("Monitor: Test LA Wishbone Passed!");
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 03c13a8..4784397 100644
--- a/verilog/dv/wb_utests/mem_wb/mem_wb_tb.v
+++ b/verilog/dv/wb_utests/mem_wb/mem_wb_tb.v
@@ -18,9 +18,15 @@
`timescale 1 ns / 1 ps
-`define USE_OPENRAM
+`define FUNCTIONAL
+`define UNIT_DELAY #1
-`include "sram_1rw1r_32_8192_8_sky130.v"
+`include "libs.ref/sky130_fd_sc_hd/verilog/primitives.v"
+`include "libs.ref/sky130_fd_sc_hd/verilog/sky130_fd_sc_hd.v"
+
+`include "defines.v"
+`include "DFFRAMBB.v"
+`include "DFFRAM.v"
`include "mem_wb.v"
module mem_wb_tb;
diff --git a/verilog/dv/wb_utests/sysctrl_wb/sysctrl_wb_tb.v b/verilog/dv/wb_utests/sysctrl_wb/sysctrl_wb_tb.v
index 6e5fd14..77140c7 100644
--- a/verilog/dv/wb_utests/sysctrl_wb/sysctrl_wb_tb.v
+++ b/verilog/dv/wb_utests/sysctrl_wb/sysctrl_wb_tb.v
@@ -62,11 +62,9 @@
integer i;
// System Control Default Register Addresses
- wire [31:0] clk1_out_adr = uut.BASE_ADR | uut.CLK1_OUT;
- wire [31:0] clk2_out_adr = uut.BASE_ADR | uut.CLK2_OUT;
+ wire [31:0] clk_out_adr = uut.BASE_ADR | uut.CLK_OUT;
wire [31:0] trap_out_adr = uut.BASE_ADR | uut.TRAP_OUT;
- wire [31:0] irq7_src_adr = uut.BASE_ADR | uut.IRQ7_SRC;
- wire [31:0] irq8_src_adr = uut.BASE_ADR | uut.IRQ8_SRC;
+ wire [31:0] irq_src_adr = uut.BASE_ADR | uut.IRQ_SRC;
reg clk1_output_dest;
reg clk2_output_dest;
@@ -88,42 +86,28 @@
irq_8_inputsrc = 1'b1;
// Write to System Control Registers
- write(clk1_out_adr, clk1_output_dest);
- write(clk2_out_adr, clk2_output_dest);
+ write(clk_out_adr, clk1_output_dest);
write(trap_out_adr, trap_output_dest);
- write(irq7_src_adr, irq_7_inputsrc);
- write(irq8_src_adr, irq_8_inputsrc);
+ write(irq_src_adr, irq_7_inputsrc);
#2;
- read(clk1_out_adr);
+ read(clk_out_adr);
if (wb_dat_o !== clk1_output_dest) begin
$display("Error reading CLK1 output destination register.");
$finish;
end
- read(clk2_out_adr);
- if (wb_dat_o !== clk2_output_dest) begin
- $display("Error reading CLK2 output destination register.");
- $finish;
- end
-
read(trap_out_adr);
if (wb_dat_o !== trap_output_dest) begin
$display("Error reading trap output destination register.");
$finish;
end
- read(irq7_src_adr);
+ read(irq_src_adr);
if (wb_dat_o !== irq_7_inputsrc) begin
$display("Error reading IRQ7 input source register.");
$finish;
end
- read(irq8_src_adr);
- if (wb_dat_o !== irq_8_inputsrc) begin
- $display("Error reading IRQ8 input source register.");
- $finish;
- end
-
$display("Success!");
$display ("Monitor: Test System Control Passed!");
$finish;