blob: e16ab5e25864c3c2c69c87e76469d2a2a83cc0f5 [file] [log] [blame]
Manar14f7ca02020-10-30 11:58:16 +02001
Manarffe6cad2020-11-09 19:09:04 +02002module storage (
3 // MGMT_AREA R/W Interface
Manar14f7ca02020-10-30 11:58:16 +02004 input mgmt_clk,
Manarffe6cad2020-11-09 19:09:04 +02005 input [`RAM_BLOCKS-1:0] mgmt_ena,
6 input [`RAM_BLOCKS-1:0] mgmt_wen, // not shared
7 input [(`RAM_BLOCKS*4)-1:0] mgmt_wen_mask, // not shared
Manar14f7ca02020-10-30 11:58:16 +02008 input [7:0] mgmt_addr,
9 input [31:0] mgmt_wdata,
Manarffe6cad2020-11-09 19:09:04 +020010 output [(`RAM_BLOCKS*32)-1:0] mgmt_rdata,
Manar14f7ca02020-10-30 11:58:16 +020011
Manarffe6cad2020-11-09 19:09:04 +020012 // MGMT_AREA RO Interface
13 input mgmt_ena_ro,
14 input [7:0] mgmt_addr_ro,
15 output [31:0] mgmt_rdata_ro
Manar14f7ca02020-10-30 11:58:16 +020016);
Manarffe6cad2020-11-09 19:09:04 +020017 sram_1rw1r_32_256_8_sky130 SRAM_0 (
Manar14f7ca02020-10-30 11:58:16 +020018 // MGMT R/W port
19 .clk0(mgmt_clk),
Manarffe6cad2020-11-09 19:09:04 +020020 .csb0(mgmt_ena[0]),
21 .web0(mgmt_wen[0]),
22 .wmask0(mgmt_wen_mask[3:0]),
23 .addr0(mgmt_addr),
Manar14f7ca02020-10-30 11:58:16 +020024 .din0(mgmt_wdata),
Manarffe6cad2020-11-09 19:09:04 +020025 .dout0(mgmt_rdata[31:0]),
Manar14f7ca02020-10-30 11:58:16 +020026 // MGMT RO port
27 .clk1(mgmt_clk),
Manarffe6cad2020-11-09 19:09:04 +020028 .csb1(mgmt_ena_ro),
29 .addr1(mgmt_addr_ro),
30 .dout1(mgmt_rdata_ro)
31 );
32
33 sram_1rw1r_32_256_8_sky130 SRAM_1 (
34 // MGMT R/W port
35 .clk0(mgmt_clk),
36 .csb0(mgmt_ena[1]),
37 .web0(mgmt_wen[1]),
38 .wmask0(mgmt_wen_mask[7:4]),
39 .addr0(mgmt_addr),
40 .din0(mgmt_wdata),
41 .dout0(mgmt_rdata[63:32])
42 );
43
Manar14f7ca02020-10-30 11:58:16 +020044endmodule