blob: a290525bcc9f969ccc1e62bde99256876d750ebb [file] [log] [blame]
Matt Venn08cd6eb2020-11-16 12:01:14 +01001`default_nettype none
Manar14f7ca02020-10-30 11:58:16 +02002
Manarffe6cad2020-11-09 19:09:04 +02003module storage (
4 // MGMT_AREA R/W Interface
Manar14f7ca02020-10-30 11:58:16 +02005 input mgmt_clk,
Manarffe6cad2020-11-09 19:09:04 +02006 input [`RAM_BLOCKS-1:0] mgmt_ena,
7 input [`RAM_BLOCKS-1:0] mgmt_wen, // not shared
8 input [(`RAM_BLOCKS*4)-1:0] mgmt_wen_mask, // not shared
Manar14f7ca02020-10-30 11:58:16 +02009 input [7:0] mgmt_addr,
10 input [31:0] mgmt_wdata,
Manarffe6cad2020-11-09 19:09:04 +020011 output [(`RAM_BLOCKS*32)-1:0] mgmt_rdata,
Manar14f7ca02020-10-30 11:58:16 +020012
Manarffe6cad2020-11-09 19:09:04 +020013 // MGMT_AREA RO Interface
14 input mgmt_ena_ro,
15 input [7:0] mgmt_addr_ro,
16 output [31:0] mgmt_rdata_ro
Manar14f7ca02020-10-30 11:58:16 +020017);
Manarffe6cad2020-11-09 19:09:04 +020018 sram_1rw1r_32_256_8_sky130 SRAM_0 (
Manar14f7ca02020-10-30 11:58:16 +020019 // MGMT R/W port
20 .clk0(mgmt_clk),
Manarffe6cad2020-11-09 19:09:04 +020021 .csb0(mgmt_ena[0]),
22 .web0(mgmt_wen[0]),
23 .wmask0(mgmt_wen_mask[3:0]),
24 .addr0(mgmt_addr),
Manar14f7ca02020-10-30 11:58:16 +020025 .din0(mgmt_wdata),
Manarffe6cad2020-11-09 19:09:04 +020026 .dout0(mgmt_rdata[31:0]),
Manar14f7ca02020-10-30 11:58:16 +020027 // MGMT RO port
28 .clk1(mgmt_clk),
Manarffe6cad2020-11-09 19:09:04 +020029 .csb1(mgmt_ena_ro),
30 .addr1(mgmt_addr_ro),
31 .dout1(mgmt_rdata_ro)
32 );
33
34 sram_1rw1r_32_256_8_sky130 SRAM_1 (
35 // MGMT R/W port
36 .clk0(mgmt_clk),
37 .csb0(mgmt_ena[1]),
38 .web0(mgmt_wen[1]),
39 .wmask0(mgmt_wen_mask[7:4]),
40 .addr0(mgmt_addr),
41 .din0(mgmt_wdata),
42 .dout0(mgmt_rdata[63:32])
43 );
44
Tim Edwards581068f2020-11-19 12:45:25 -050045endmodule
46`default_nettype wire