added functionality for DFFRAM.
diff --git a/verilog/rtl/azadi_soc_top.v b/verilog/rtl/azadi_soc_top_dffram.v similarity index 99% rename from verilog/rtl/azadi_soc_top.v rename to verilog/rtl/azadi_soc_top_dffram.v index 9f7c121..75f507d 100644 --- a/verilog/rtl/azadi_soc_top.v +++ b/verilog/rtl/azadi_soc_top_dffram.v
@@ -263,6 +263,7 @@ .o_Rx_DV(rx_dv_i), .o_Rx_Byte(rx_byte_i) ); + instr_mem_top iccm_adapter( .clk_i(clk_i), .rst_ni(system_rst_ni), @@ -279,23 +280,21 @@ .we_o(instr_we), .rdata_i(instr_rdata) ); - wire [31:0] un_conn1; - sky130_sram_4kbyte_1rw1r_32x1024_8 u_iccm( - `ifdef USE_POWER_PINS - .vccd1(VPWR), - .vssd1(VGND), - `endif - .clk0(clk_i), - .csb0(instr_csb), - .web0(instr_we), - .wmask0(instr_wmask), - .addr0(instr_addr[9:0]), - .din0(instr_wdata), - .dout0(instr_rdata), - .clk1(1'b0), - .csb1(1'b1), - .addr1({10 {1'sb0}}), - .dout1(un_conn1) + + wire [3:0] WE_instr; + assign WE_instr = instr_wmask & {4{~instr_we}}; + + DFFRAM u_iccm( + `ifdef USE_POWER_PINS + .VPWR(VPWR), + .VGND(VGND), + `endif + .CLK(clk_i), + .WE(WE_instr), + .EN(~instr_csb), + .Di(instr_wdata), + .Do(instr_rdata), + .A(instr_addr[7:0]) ); data_mem_top dccm_adapter( .clk_i(clk_i), @@ -309,23 +308,19 @@ .we_o(data_we), .rdata_i(data_rdata) ); - wire [31:0] un_conn2; - sky130_sram_4kbyte_1rw1r_32x1024_8 u_dccm( - `ifdef USE_POWER_PINS - .vccd1(VPWR), - .vssd1(VGND), - `endif - .clk0(clk_i), - .csb0(instr_csb), - .web0(data_we), - .wmask0(data_wmask), - .addr0(data_addr[9:0]), - .din0(data_wdata), - .dout0(data_rdata), - .clk1(1'b0), - .csb1(1'b1), - .addr1({10 {1'sb0}}), - .dout1(un_conn2) + wire [3:0] WE_data; + assign WE_data = data_wmask & {4{~data_we}}; + DFFRAM u_dccm( + `ifdef USE_POWER_PINS + .VPWR(VPWR), + .VGND(VGND), + `endif + .CLK(clk_i), + .WE(WE_data), + .EN(~data_csb), + .Di(data_wdata), + .Do(data_rdata), + .A(data_addr[7:0]) ); endmodule module brq_core ( @@ -23858,4 +23853,4 @@ input csb1; input [ADDR_WIDTH - 1:0] addr1; output [DATA_WIDTH - 1:0] dout1; -endmodule \ No newline at end of file +endmodule
diff --git a/verilog/rtl/azadi_soc_top.v b/verilog/rtl/azadi_soc_top_open.v similarity index 99% copy from verilog/rtl/azadi_soc_top.v copy to verilog/rtl/azadi_soc_top_open.v index 9f7c121..87a6822 100644 --- a/verilog/rtl/azadi_soc_top.v +++ b/verilog/rtl/azadi_soc_top_open.v
@@ -316,7 +316,7 @@ .vssd1(VGND), `endif .clk0(clk_i), - .csb0(instr_csb), + .csb0(data_csb), .web0(data_we), .wmask0(data_wmask), .addr0(data_addr[9:0]), @@ -23858,4 +23858,4 @@ input csb1; input [ADDR_WIDTH - 1:0] addr1; output [DATA_WIDTH - 1:0] dout1; -endmodule \ No newline at end of file +endmodule