Set correct indices for storing read out, inefficient csb0 port assignment
diff --git a/verilog/rtl/openram_testchip.v b/verilog/rtl/openram_testchip.v index d5380f2..85d3dce 100644 --- a/verilog/rtl/openram_testchip.v +++ b/verilog/rtl/openram_testchip.v
@@ -128,11 +128,12 @@ end // Store results for read out else if(gpio_sram_load || la_sram_load) begin - sram_register <= {sram_register[`TOTAL_SIZE-1:`TOTAL_SIZE-`SELECT_SIZE-`ADDR_SIZE-1], + + sram_register <= {sram_register[`TOTAL_SIZE-1:`TOTAL_SIZE-`SELECT_SIZE-`ADDR_SIZE], read_data0, - sram_register[`ADDR_SIZE+`DATA_SIZE+2*`WMASK_SIZE+5:`DATA_SIZE+`WMASK_SIZE+3], + sram_register[`ADDR_SIZE+`DATA_SIZE+2*`WMASK_SIZE+3:`DATA_SIZE+`WMASK_SIZE+2], read_data1, - sram_register[`WMASK_SIZE+3:0]}; + sram_register[`WMASK_SIZE+1:0]}; end end @@ -157,8 +158,12 @@ // Apply the correct CSB always @(*) begin - left_csb0 = csb0_temp << chip_select; - left_csb1 = csb1_temp << chip_select; + left_csb0 = {`MAX_CHIPS{1'b1}}; + left_csb0[chip_select] = csb0_temp; + //left_csb0 = csb0_temp << chip_select; + left_csb1 = {`MAX_CHIPS{1'b1}}; + left_csb1[chip_select] = csb1_temp; + //left_csb1 = csb1_temp << chip_select; end // Mux value of correct SRAM data input to feed into @@ -235,7 +240,7 @@ // Output logic always @ (*) begin gpio_out = sram_register[`TOTAL_SIZE-1]; - la_data_out = {16'd0, sram_register}; + la_data_out = sram_register; end endmodule