Using new version of wb_wrapper (avoiding generation of setup/hold violations for openram macro, fixed double-operation). Improved dv-test.
diff --git a/verilog/dv/wb_openram/wb_openram.c b/verilog/dv/wb_openram/wb_openram.c
index 57c7036..fd265c0 100644
--- a/verilog/dv/wb_openram/wb_openram.c
+++ b/verilog/dv/wb_openram/wb_openram.c
@@ -84,22 +84,6 @@
reg_mprj_io_18 = GPIO_MODE_MGMT_STD_OUTPUT;
reg_mprj_io_17 = GPIO_MODE_MGMT_STD_OUTPUT;
reg_mprj_io_16 = GPIO_MODE_MGMT_STD_OUTPUT;
- reg_mprj_io_15 = GPIO_MODE_MGMT_STD_OUTPUT;
- reg_mprj_io_14 = GPIO_MODE_MGMT_STD_OUTPUT;
- reg_mprj_io_13 = GPIO_MODE_MGMT_STD_OUTPUT;
- reg_mprj_io_12 = GPIO_MODE_MGMT_STD_OUTPUT;
- reg_mprj_io_11 = GPIO_MODE_MGMT_STD_OUTPUT;
- reg_mprj_io_10 = GPIO_MODE_MGMT_STD_OUTPUT;
- reg_mprj_io_9 = GPIO_MODE_MGMT_STD_OUTPUT;
- reg_mprj_io_8 = GPIO_MODE_MGMT_STD_OUTPUT;
- reg_mprj_io_7 = GPIO_MODE_MGMT_STD_OUTPUT;
- reg_mprj_io_6 = GPIO_MODE_MGMT_STD_OUTPUT;
- reg_mprj_io_5 = GPIO_MODE_MGMT_STD_OUTPUT;
- reg_mprj_io_4 = GPIO_MODE_MGMT_STD_OUTPUT;
- reg_mprj_io_3 = GPIO_MODE_MGMT_STD_OUTPUT;
- reg_mprj_io_2 = GPIO_MODE_MGMT_STD_OUTPUT;
- reg_mprj_io_1 = GPIO_MODE_MGMT_STD_OUTPUT;
- reg_mprj_io_0 = GPIO_MODE_MGMT_STD_OUTPUT;
/* Apply configuration */
reg_mprj_xfer = 1;
@@ -121,11 +105,11 @@
// check dword based on address
if (OPENRAM_MEM(address) != generate_value(address))
{
- reg_mprj_datal = 0xAB61dead;
+ reg_mprj_datal = 0xAB7E0000;
return; // instant fail
}
}
- reg_mprj_datal = 0xAB610000; // pass
+ reg_mprj_datal = 0xAB700000; // pass
}
diff --git a/verilog/dv/wb_openram/wb_openram_tb.v b/verilog/dv/wb_openram/wb_openram_tb.v
index c43f4ef..9bcf0d9 100644
--- a/verilog/dv/wb_openram/wb_openram_tb.v
+++ b/verilog/dv/wb_openram/wb_openram_tb.v
@@ -30,11 +30,11 @@
wire gpio;
wire [37:0] mprj_io;
- wire [15:0] checkpoint;
- wire [15:0] status;
+ wire [11:0] checkpoint;
+ wire [3:0] status;
- assign checkpoint = mprj_io[31:16];
- assign status = mprj_io[15:0];
+ assign checkpoint = mprj_io[31:20];
+ assign status = mprj_io[19:16];
// External clock is used by default. Make this artificially fast for the
@@ -67,14 +67,14 @@
end
initial begin
- wait(checkpoint == 16'h AB60);
+ wait(checkpoint == 12'h AB6);
`ifdef GL
$display("Monitor: Test OpenRAM Project IO (GL) Started");
`else
$display("Monitor: Test OpenRAM Project IO (RTL) Started");
`endif
- wait(checkpoint == 16'h AB61);
- if (status == 16'h 0000) begin
+ wait(checkpoint == 12'h AB7);
+ if (status == 4'h 0) begin
`ifdef GL
$display("Monitor: Test OpenRAM Project IO (GL) Passed");
`else
diff --git a/verilog/gl/user_project_wrapper.v b/verilog/gl/user_project_wrapper.v
index ecae883..977ea18 100644
--- a/verilog/gl/user_project_wrapper.v
+++ b/verilog/gl/user_project_wrapper.v
@@ -53,8 +53,210 @@
output [31:0] wbs_dat_o;
input [3:0] wbs_sel_i;
+ wire \openram_addr0[0] ;
+ wire \openram_addr0[1] ;
+ wire \openram_addr0[2] ;
+ wire \openram_addr0[3] ;
+ wire \openram_addr0[4] ;
+ wire \openram_addr0[5] ;
+ wire \openram_addr0[6] ;
+ wire \openram_addr0[7] ;
+ wire openram_clk0;
+ wire openram_csb0;
+ wire \openram_din0[0] ;
+ wire \openram_din0[10] ;
+ wire \openram_din0[11] ;
+ wire \openram_din0[12] ;
+ wire \openram_din0[13] ;
+ wire \openram_din0[14] ;
+ wire \openram_din0[15] ;
+ wire \openram_din0[16] ;
+ wire \openram_din0[17] ;
+ wire \openram_din0[18] ;
+ wire \openram_din0[19] ;
+ wire \openram_din0[1] ;
+ wire \openram_din0[20] ;
+ wire \openram_din0[21] ;
+ wire \openram_din0[22] ;
+ wire \openram_din0[23] ;
+ wire \openram_din0[24] ;
+ wire \openram_din0[25] ;
+ wire \openram_din0[26] ;
+ wire \openram_din0[27] ;
+ wire \openram_din0[28] ;
+ wire \openram_din0[29] ;
+ wire \openram_din0[2] ;
+ wire \openram_din0[30] ;
+ wire \openram_din0[31] ;
+ wire \openram_din0[3] ;
+ wire \openram_din0[4] ;
+ wire \openram_din0[5] ;
+ wire \openram_din0[6] ;
+ wire \openram_din0[7] ;
+ wire \openram_din0[8] ;
+ wire \openram_din0[9] ;
+ wire \openram_dout0[0] ;
+ wire \openram_dout0[10] ;
+ wire \openram_dout0[11] ;
+ wire \openram_dout0[12] ;
+ wire \openram_dout0[13] ;
+ wire \openram_dout0[14] ;
+ wire \openram_dout0[15] ;
+ wire \openram_dout0[16] ;
+ wire \openram_dout0[17] ;
+ wire \openram_dout0[18] ;
+ wire \openram_dout0[19] ;
+ wire \openram_dout0[1] ;
+ wire \openram_dout0[20] ;
+ wire \openram_dout0[21] ;
+ wire \openram_dout0[22] ;
+ wire \openram_dout0[23] ;
+ wire \openram_dout0[24] ;
+ wire \openram_dout0[25] ;
+ wire \openram_dout0[26] ;
+ wire \openram_dout0[27] ;
+ wire \openram_dout0[28] ;
+ wire \openram_dout0[29] ;
+ wire \openram_dout0[2] ;
+ wire \openram_dout0[30] ;
+ wire \openram_dout0[31] ;
+ wire \openram_dout0[3] ;
+ wire \openram_dout0[4] ;
+ wire \openram_dout0[5] ;
+ wire \openram_dout0[6] ;
+ wire \openram_dout0[7] ;
+ wire \openram_dout0[8] ;
+ wire \openram_dout0[9] ;
+ wire openram_web0;
+ wire \openram_wmask0[0] ;
+ wire \openram_wmask0[1] ;
+ wire \openram_wmask0[2] ;
+ wire \openram_wmask0[3] ;
- user_proj_example mprj (.vccd1(vccd1),
+ sky130_sram_1kbyte_1rw1r_32x256_8 openram_1kB (.csb0(openram_csb0),
+ .web0(openram_web0),
+ .clk0(openram_clk0),
+ .vccd1(vccd1),
+ .vssd1(vssd1),
+ .addr0({\openram_addr0[7] ,
+ \openram_addr0[6] ,
+ \openram_addr0[5] ,
+ \openram_addr0[4] ,
+ \openram_addr0[3] ,
+ \openram_addr0[2] ,
+ \openram_addr0[1] ,
+ \openram_addr0[0] }),
+ .addr1({_NC1,
+ _NC2,
+ _NC3,
+ _NC4,
+ _NC5,
+ _NC6,
+ _NC7,
+ _NC8}),
+ .din0({\openram_din0[31] ,
+ \openram_din0[30] ,
+ \openram_din0[29] ,
+ \openram_din0[28] ,
+ \openram_din0[27] ,
+ \openram_din0[26] ,
+ \openram_din0[25] ,
+ \openram_din0[24] ,
+ \openram_din0[23] ,
+ \openram_din0[22] ,
+ \openram_din0[21] ,
+ \openram_din0[20] ,
+ \openram_din0[19] ,
+ \openram_din0[18] ,
+ \openram_din0[17] ,
+ \openram_din0[16] ,
+ \openram_din0[15] ,
+ \openram_din0[14] ,
+ \openram_din0[13] ,
+ \openram_din0[12] ,
+ \openram_din0[11] ,
+ \openram_din0[10] ,
+ \openram_din0[9] ,
+ \openram_din0[8] ,
+ \openram_din0[7] ,
+ \openram_din0[6] ,
+ \openram_din0[5] ,
+ \openram_din0[4] ,
+ \openram_din0[3] ,
+ \openram_din0[2] ,
+ \openram_din0[1] ,
+ \openram_din0[0] }),
+ .dout0({\openram_dout0[31] ,
+ \openram_dout0[30] ,
+ \openram_dout0[29] ,
+ \openram_dout0[28] ,
+ \openram_dout0[27] ,
+ \openram_dout0[26] ,
+ \openram_dout0[25] ,
+ \openram_dout0[24] ,
+ \openram_dout0[23] ,
+ \openram_dout0[22] ,
+ \openram_dout0[21] ,
+ \openram_dout0[20] ,
+ \openram_dout0[19] ,
+ \openram_dout0[18] ,
+ \openram_dout0[17] ,
+ \openram_dout0[16] ,
+ \openram_dout0[15] ,
+ \openram_dout0[14] ,
+ \openram_dout0[13] ,
+ \openram_dout0[12] ,
+ \openram_dout0[11] ,
+ \openram_dout0[10] ,
+ \openram_dout0[9] ,
+ \openram_dout0[8] ,
+ \openram_dout0[7] ,
+ \openram_dout0[6] ,
+ \openram_dout0[5] ,
+ \openram_dout0[4] ,
+ \openram_dout0[3] ,
+ \openram_dout0[2] ,
+ \openram_dout0[1] ,
+ \openram_dout0[0] }),
+ .dout1({_NC9,
+ _NC10,
+ _NC11,
+ _NC12,
+ _NC13,
+ _NC14,
+ _NC15,
+ _NC16,
+ _NC17,
+ _NC18,
+ _NC19,
+ _NC20,
+ _NC21,
+ _NC22,
+ _NC23,
+ _NC24,
+ _NC25,
+ _NC26,
+ _NC27,
+ _NC28,
+ _NC29,
+ _NC30,
+ _NC31,
+ _NC32,
+ _NC33,
+ _NC34,
+ _NC35,
+ _NC36,
+ _NC37,
+ _NC38,
+ _NC39,
+ _NC40}),
+ .wmask0({\openram_wmask0[3] ,
+ \openram_wmask0[2] ,
+ \openram_wmask0[1] ,
+ \openram_wmask0[0] }));
+ wb_openram_wrapper wb_openram_wrapper (.clk0(openram_clk0),
+ .csb0(openram_csb0),
+ .vccd1(vccd1),
.vssd1(vssd1),
.wb_clk_i(wb_clk_i),
.wb_rst_i(wb_rst_i),
@@ -62,507 +264,79 @@
.wbs_cyc_i(wbs_cyc_i),
.wbs_stb_i(wbs_stb_i),
.wbs_we_i(wbs_we_i),
- .io_in({io_in[37],
- io_in[36],
- io_in[35],
- io_in[34],
- io_in[33],
- io_in[32],
- io_in[31],
- io_in[30],
- io_in[29],
- io_in[28],
- io_in[27],
- io_in[26],
- io_in[25],
- io_in[24],
- io_in[23],
- io_in[22],
- io_in[21],
- io_in[20],
- io_in[19],
- io_in[18],
- io_in[17],
- io_in[16],
- io_in[15],
- io_in[14],
- io_in[13],
- io_in[12],
- io_in[11],
- io_in[10],
- io_in[9],
- io_in[8],
- io_in[7],
- io_in[6],
- io_in[5],
- io_in[4],
- io_in[3],
- io_in[2],
- io_in[1],
- io_in[0]}),
- .io_oeb({io_oeb[37],
- io_oeb[36],
- io_oeb[35],
- io_oeb[34],
- io_oeb[33],
- io_oeb[32],
- io_oeb[31],
- io_oeb[30],
- io_oeb[29],
- io_oeb[28],
- io_oeb[27],
- io_oeb[26],
- io_oeb[25],
- io_oeb[24],
- io_oeb[23],
- io_oeb[22],
- io_oeb[21],
- io_oeb[20],
- io_oeb[19],
- io_oeb[18],
- io_oeb[17],
- io_oeb[16],
- io_oeb[15],
- io_oeb[14],
- io_oeb[13],
- io_oeb[12],
- io_oeb[11],
- io_oeb[10],
- io_oeb[9],
- io_oeb[8],
- io_oeb[7],
- io_oeb[6],
- io_oeb[5],
- io_oeb[4],
- io_oeb[3],
- io_oeb[2],
- io_oeb[1],
- io_oeb[0]}),
- .io_out({io_out[37],
- io_out[36],
- io_out[35],
- io_out[34],
- io_out[33],
- io_out[32],
- io_out[31],
- io_out[30],
- io_out[29],
- io_out[28],
- io_out[27],
- io_out[26],
- io_out[25],
- io_out[24],
- io_out[23],
- io_out[22],
- io_out[21],
- io_out[20],
- io_out[19],
- io_out[18],
- io_out[17],
- io_out[16],
- io_out[15],
- io_out[14],
- io_out[13],
- io_out[12],
- io_out[11],
- io_out[10],
- io_out[9],
- io_out[8],
- io_out[7],
- io_out[6],
- io_out[5],
- io_out[4],
- io_out[3],
- io_out[2],
- io_out[1],
- io_out[0]}),
- .irq({user_irq[2],
- user_irq[1],
- user_irq[0]}),
- .la_data_in({la_data_in[127],
- la_data_in[126],
- la_data_in[125],
- la_data_in[124],
- la_data_in[123],
- la_data_in[122],
- la_data_in[121],
- la_data_in[120],
- la_data_in[119],
- la_data_in[118],
- la_data_in[117],
- la_data_in[116],
- la_data_in[115],
- la_data_in[114],
- la_data_in[113],
- la_data_in[112],
- la_data_in[111],
- la_data_in[110],
- la_data_in[109],
- la_data_in[108],
- la_data_in[107],
- la_data_in[106],
- la_data_in[105],
- la_data_in[104],
- la_data_in[103],
- la_data_in[102],
- la_data_in[101],
- la_data_in[100],
- la_data_in[99],
- la_data_in[98],
- la_data_in[97],
- la_data_in[96],
- la_data_in[95],
- la_data_in[94],
- la_data_in[93],
- la_data_in[92],
- la_data_in[91],
- la_data_in[90],
- la_data_in[89],
- la_data_in[88],
- la_data_in[87],
- la_data_in[86],
- la_data_in[85],
- la_data_in[84],
- la_data_in[83],
- la_data_in[82],
- la_data_in[81],
- la_data_in[80],
- la_data_in[79],
- la_data_in[78],
- la_data_in[77],
- la_data_in[76],
- la_data_in[75],
- la_data_in[74],
- la_data_in[73],
- la_data_in[72],
- la_data_in[71],
- la_data_in[70],
- la_data_in[69],
- la_data_in[68],
- la_data_in[67],
- la_data_in[66],
- la_data_in[65],
- la_data_in[64],
- la_data_in[63],
- la_data_in[62],
- la_data_in[61],
- la_data_in[60],
- la_data_in[59],
- la_data_in[58],
- la_data_in[57],
- la_data_in[56],
- la_data_in[55],
- la_data_in[54],
- la_data_in[53],
- la_data_in[52],
- la_data_in[51],
- la_data_in[50],
- la_data_in[49],
- la_data_in[48],
- la_data_in[47],
- la_data_in[46],
- la_data_in[45],
- la_data_in[44],
- la_data_in[43],
- la_data_in[42],
- la_data_in[41],
- la_data_in[40],
- la_data_in[39],
- la_data_in[38],
- la_data_in[37],
- la_data_in[36],
- la_data_in[35],
- la_data_in[34],
- la_data_in[33],
- la_data_in[32],
- la_data_in[31],
- la_data_in[30],
- la_data_in[29],
- la_data_in[28],
- la_data_in[27],
- la_data_in[26],
- la_data_in[25],
- la_data_in[24],
- la_data_in[23],
- la_data_in[22],
- la_data_in[21],
- la_data_in[20],
- la_data_in[19],
- la_data_in[18],
- la_data_in[17],
- la_data_in[16],
- la_data_in[15],
- la_data_in[14],
- la_data_in[13],
- la_data_in[12],
- la_data_in[11],
- la_data_in[10],
- la_data_in[9],
- la_data_in[8],
- la_data_in[7],
- la_data_in[6],
- la_data_in[5],
- la_data_in[4],
- la_data_in[3],
- la_data_in[2],
- la_data_in[1],
- la_data_in[0]}),
- .la_data_out({la_data_out[127],
- la_data_out[126],
- la_data_out[125],
- la_data_out[124],
- la_data_out[123],
- la_data_out[122],
- la_data_out[121],
- la_data_out[120],
- la_data_out[119],
- la_data_out[118],
- la_data_out[117],
- la_data_out[116],
- la_data_out[115],
- la_data_out[114],
- la_data_out[113],
- la_data_out[112],
- la_data_out[111],
- la_data_out[110],
- la_data_out[109],
- la_data_out[108],
- la_data_out[107],
- la_data_out[106],
- la_data_out[105],
- la_data_out[104],
- la_data_out[103],
- la_data_out[102],
- la_data_out[101],
- la_data_out[100],
- la_data_out[99],
- la_data_out[98],
- la_data_out[97],
- la_data_out[96],
- la_data_out[95],
- la_data_out[94],
- la_data_out[93],
- la_data_out[92],
- la_data_out[91],
- la_data_out[90],
- la_data_out[89],
- la_data_out[88],
- la_data_out[87],
- la_data_out[86],
- la_data_out[85],
- la_data_out[84],
- la_data_out[83],
- la_data_out[82],
- la_data_out[81],
- la_data_out[80],
- la_data_out[79],
- la_data_out[78],
- la_data_out[77],
- la_data_out[76],
- la_data_out[75],
- la_data_out[74],
- la_data_out[73],
- la_data_out[72],
- la_data_out[71],
- la_data_out[70],
- la_data_out[69],
- la_data_out[68],
- la_data_out[67],
- la_data_out[66],
- la_data_out[65],
- la_data_out[64],
- la_data_out[63],
- la_data_out[62],
- la_data_out[61],
- la_data_out[60],
- la_data_out[59],
- la_data_out[58],
- la_data_out[57],
- la_data_out[56],
- la_data_out[55],
- la_data_out[54],
- la_data_out[53],
- la_data_out[52],
- la_data_out[51],
- la_data_out[50],
- la_data_out[49],
- la_data_out[48],
- la_data_out[47],
- la_data_out[46],
- la_data_out[45],
- la_data_out[44],
- la_data_out[43],
- la_data_out[42],
- la_data_out[41],
- la_data_out[40],
- la_data_out[39],
- la_data_out[38],
- la_data_out[37],
- la_data_out[36],
- la_data_out[35],
- la_data_out[34],
- la_data_out[33],
- la_data_out[32],
- la_data_out[31],
- la_data_out[30],
- la_data_out[29],
- la_data_out[28],
- la_data_out[27],
- la_data_out[26],
- la_data_out[25],
- la_data_out[24],
- la_data_out[23],
- la_data_out[22],
- la_data_out[21],
- la_data_out[20],
- la_data_out[19],
- la_data_out[18],
- la_data_out[17],
- la_data_out[16],
- la_data_out[15],
- la_data_out[14],
- la_data_out[13],
- la_data_out[12],
- la_data_out[11],
- la_data_out[10],
- la_data_out[9],
- la_data_out[8],
- la_data_out[7],
- la_data_out[6],
- la_data_out[5],
- la_data_out[4],
- la_data_out[3],
- la_data_out[2],
- la_data_out[1],
- la_data_out[0]}),
- .la_oenb({la_oenb[127],
- la_oenb[126],
- la_oenb[125],
- la_oenb[124],
- la_oenb[123],
- la_oenb[122],
- la_oenb[121],
- la_oenb[120],
- la_oenb[119],
- la_oenb[118],
- la_oenb[117],
- la_oenb[116],
- la_oenb[115],
- la_oenb[114],
- la_oenb[113],
- la_oenb[112],
- la_oenb[111],
- la_oenb[110],
- la_oenb[109],
- la_oenb[108],
- la_oenb[107],
- la_oenb[106],
- la_oenb[105],
- la_oenb[104],
- la_oenb[103],
- la_oenb[102],
- la_oenb[101],
- la_oenb[100],
- la_oenb[99],
- la_oenb[98],
- la_oenb[97],
- la_oenb[96],
- la_oenb[95],
- la_oenb[94],
- la_oenb[93],
- la_oenb[92],
- la_oenb[91],
- la_oenb[90],
- la_oenb[89],
- la_oenb[88],
- la_oenb[87],
- la_oenb[86],
- la_oenb[85],
- la_oenb[84],
- la_oenb[83],
- la_oenb[82],
- la_oenb[81],
- la_oenb[80],
- la_oenb[79],
- la_oenb[78],
- la_oenb[77],
- la_oenb[76],
- la_oenb[75],
- la_oenb[74],
- la_oenb[73],
- la_oenb[72],
- la_oenb[71],
- la_oenb[70],
- la_oenb[69],
- la_oenb[68],
- la_oenb[67],
- la_oenb[66],
- la_oenb[65],
- la_oenb[64],
- la_oenb[63],
- la_oenb[62],
- la_oenb[61],
- la_oenb[60],
- la_oenb[59],
- la_oenb[58],
- la_oenb[57],
- la_oenb[56],
- la_oenb[55],
- la_oenb[54],
- la_oenb[53],
- la_oenb[52],
- la_oenb[51],
- la_oenb[50],
- la_oenb[49],
- la_oenb[48],
- la_oenb[47],
- la_oenb[46],
- la_oenb[45],
- la_oenb[44],
- la_oenb[43],
- la_oenb[42],
- la_oenb[41],
- la_oenb[40],
- la_oenb[39],
- la_oenb[38],
- la_oenb[37],
- la_oenb[36],
- la_oenb[35],
- la_oenb[34],
- la_oenb[33],
- la_oenb[32],
- la_oenb[31],
- la_oenb[30],
- la_oenb[29],
- la_oenb[28],
- la_oenb[27],
- la_oenb[26],
- la_oenb[25],
- la_oenb[24],
- la_oenb[23],
- la_oenb[22],
- la_oenb[21],
- la_oenb[20],
- la_oenb[19],
- la_oenb[18],
- la_oenb[17],
- la_oenb[16],
- la_oenb[15],
- la_oenb[14],
- la_oenb[13],
- la_oenb[12],
- la_oenb[11],
- la_oenb[10],
- la_oenb[9],
- la_oenb[8],
- la_oenb[7],
- la_oenb[6],
- la_oenb[5],
- la_oenb[4],
- la_oenb[3],
- la_oenb[2],
- la_oenb[1],
- la_oenb[0]}),
+ .web0(openram_web0),
+ .addr0({\openram_addr0[7] ,
+ \openram_addr0[6] ,
+ \openram_addr0[5] ,
+ \openram_addr0[4] ,
+ \openram_addr0[3] ,
+ \openram_addr0[2] ,
+ \openram_addr0[1] ,
+ \openram_addr0[0] }),
+ .din0({\openram_dout0[31] ,
+ \openram_dout0[30] ,
+ \openram_dout0[29] ,
+ \openram_dout0[28] ,
+ \openram_dout0[27] ,
+ \openram_dout0[26] ,
+ \openram_dout0[25] ,
+ \openram_dout0[24] ,
+ \openram_dout0[23] ,
+ \openram_dout0[22] ,
+ \openram_dout0[21] ,
+ \openram_dout0[20] ,
+ \openram_dout0[19] ,
+ \openram_dout0[18] ,
+ \openram_dout0[17] ,
+ \openram_dout0[16] ,
+ \openram_dout0[15] ,
+ \openram_dout0[14] ,
+ \openram_dout0[13] ,
+ \openram_dout0[12] ,
+ \openram_dout0[11] ,
+ \openram_dout0[10] ,
+ \openram_dout0[9] ,
+ \openram_dout0[8] ,
+ \openram_dout0[7] ,
+ \openram_dout0[6] ,
+ \openram_dout0[5] ,
+ \openram_dout0[4] ,
+ \openram_dout0[3] ,
+ \openram_dout0[2] ,
+ \openram_dout0[1] ,
+ \openram_dout0[0] }),
+ .dout0({\openram_din0[31] ,
+ \openram_din0[30] ,
+ \openram_din0[29] ,
+ \openram_din0[28] ,
+ \openram_din0[27] ,
+ \openram_din0[26] ,
+ \openram_din0[25] ,
+ \openram_din0[24] ,
+ \openram_din0[23] ,
+ \openram_din0[22] ,
+ \openram_din0[21] ,
+ \openram_din0[20] ,
+ \openram_din0[19] ,
+ \openram_din0[18] ,
+ \openram_din0[17] ,
+ \openram_din0[16] ,
+ \openram_din0[15] ,
+ \openram_din0[14] ,
+ \openram_din0[13] ,
+ \openram_din0[12] ,
+ \openram_din0[11] ,
+ \openram_din0[10] ,
+ \openram_din0[9] ,
+ \openram_din0[8] ,
+ \openram_din0[7] ,
+ \openram_din0[6] ,
+ \openram_din0[5] ,
+ \openram_din0[4] ,
+ \openram_din0[3] ,
+ \openram_din0[2] ,
+ \openram_din0[1] ,
+ \openram_din0[0] }),
.wbs_adr_i({wbs_adr_i[31],
wbs_adr_i[30],
wbs_adr_i[29],
@@ -662,5 +436,9 @@
.wbs_sel_i({wbs_sel_i[3],
wbs_sel_i[2],
wbs_sel_i[1],
- wbs_sel_i[0]}));
+ wbs_sel_i[0]}),
+ .wmask0({\openram_wmask0[3] ,
+ \openram_wmask0[2] ,
+ \openram_wmask0[1] ,
+ \openram_wmask0[0] }));
endmodule
diff --git a/verilog/rtl/user_project_wrapper.v b/verilog/rtl/user_project_wrapper.v
index e37987f..7c2ad82 100644
--- a/verilog/rtl/user_project_wrapper.v
+++ b/verilog/rtl/user_project_wrapper.v
@@ -127,13 +127,13 @@
// OpenRAM interface
// Port 0: RW
- .clk0 (openram_clk0), // clock
- .csb0 (openram_csb0), // active low chip select
- .web0 (openram_web0), // active low write control
- .wmask0 (openram_wmask0), // write mask
- .addr0 (openram_addr0),
- .din0 (openram_dout0),
- .dout0 (openram_din0)
+ .ram_clk0 (openram_clk0), // clock
+ .ram_csb0 (openram_csb0), // active low chip select
+ .ram_web0 (openram_web0), // active low write control
+ .ram_wmask0 (openram_wmask0), // write mask
+ .ram_addr0 (openram_addr0),
+ .ram_din0 (openram_dout0),
+ .ram_dout0 (openram_din0)
);
endmodule // user_project_wrapper
diff --git a/wb_openram_wrapper b/wb_openram_wrapper
index 4cb1a24..1fbcc71 160000
--- a/wb_openram_wrapper
+++ b/wb_openram_wrapper
@@ -1 +1 @@
-Subproject commit 4cb1a246458691460893b9609bb8e470fc52a0a3
+Subproject commit 1fbcc714f22c76fa59a3ecc7fe1547b15da0e41e