From ce05d1a53ea1478b1b11be15053e3b4e02f9ddb1 Mon Sep 17 00:00:00 2001 From: Daniel Newbrook <dwn1c21@soton.ac.uk> Date: Tue, 5 Dec 2023 14:10:19 +0000 Subject: [PATCH] Add 16K and 8K options for SRAM --- sram/verilog/sl_sram.v | 61 +++++++++++++++++++++++++++++------------- 1 file changed, 43 insertions(+), 18 deletions(-) diff --git a/sram/verilog/sl_sram.v b/sram/verilog/sl_sram.v index d99ee2d..64b0786 100644 --- a/sram/verilog/sl_sram.v +++ b/sram/verilog/sl_sram.v @@ -35,7 +35,7 @@ module sl_sram #( // fixed pre-compiled 16K instance supported localparam TIE_EMA = 3'b010; localparam TIE_EMAW = 2'b00; -wire [11:0] ADDR12 = ADDR; +wire [AW-3:0] ADDR12 = ADDR; wire [31:0] WDATA32 = WDATA; wire [31:0] RDATA32; assign RDATA = RDATA32; @@ -44,22 +44,47 @@ wire GWEN = &(~WREN); wire [31:0] WEN32 = { {8{!WREN[3]}},{8{!WREN[2]}},{8{!WREN[1]}},{8{!WREN[0]}} }; localparam TIE_RET1N = 1'b1; - rf_sp_hdf - u_rf_sp_hdf ( -`ifdef POWER_PINS - .VDD (VDD), - .VSS (VSS), -`endif - .Q (RDATA32), - .CLK (HCLK), - .CEN (CEN), - .WEN (WEN32), - .A (ADDR12), - .D (WDATA32), - .EMA (TIE_EMA), - .EMAW (TIE_EMAW), - .GWEN (GWEN), - .RET1N (TIE_RET1N) - ); +generate + if (AW==14) begin + rf_16k + u_rf_sp_hdf ( + `ifdef POWER_PINS + .VDD (VDD), + .VSS (VSS), + `endif + .Q (RDATA32), + .CLK (HCLK), + .CEN (CEN), + .WEN (WEN32), + .A (ADDR12), + .D (WDATA32), + .EMA (TIE_EMA), + .EMAW (TIE_EMAW), + .GWEN (GWEN), + .RET1N (TIE_RET1N) + ); + + end + else if (AW==13) begin + rf_08k + u_rf_sp_hdf ( + `ifdef POWER_PINS + .VDD (VDD), + .VSS (VSS), + `endif + .Q (RDATA32), + .CLK (HCLK), + .CEN (CEN), + .WEN (WEN32), + .A (ADDR12), + .D (WDATA32), + .EMA (TIE_EMA), + .EMAW (TIE_EMAW), + .GWEN (GWEN), + .RET1N (TIE_RET1N) + ); + end +endgenerate + endmodule -- GitLab