Update macro placement. Remove a dual port mem.
diff --git a/openlane/openram_testchip/config.tcl b/openlane/openram_testchip/config.tcl
index e9e966a..ab3d61e 100644
--- a/openlane/openram_testchip/config.tcl
+++ b/openlane/openram_testchip/config.tcl
@@ -20,7 +20,7 @@
set ::env(VDD_NETS) [list {vccd1} {vccd2} {vdda1} {vdda2}]
set ::env(GND_NETS) [list {vssd1} {vssd2} {vssa1} {vssa2}]
-#set ::env(FP_PIN_ORDER_CFG) $script_dir/pin_order.cfg
+set ::env(FP_PIN_ORDER_CFG) $script_dir/pin_order.cfg
#set ::env(SYNTH_NO_FLAT) 1
set ::env(GLB_RT_ADJUSTMENT) 0.20
diff --git a/openlane/user_project_wrapper/macro.cfg b/openlane/user_project_wrapper/macro.cfg
index 39e0f7c..fde5bc5 100644
--- a/openlane/user_project_wrapper/macro.cfg
+++ b/openlane/user_project_wrapper/macro.cfg
@@ -1,20 +1,51 @@
# Assume the area is equally divided
# Area is roughly 2800 wide and 3400 high
+# Sizes:
# 3400 / 6 = ~600
-#SRAM0 100 200 N
-SRAM1 100 800 N
-SRAM2 100 800 N
-SRAM3 100 1400 N
-SRAM4 100 2000 N
-SRAM5 100 2600 N
+
+# 100 on the bottom and 100 betwen macros
+
+# sky130_sram_1kbyte_1rw1w_8x1024_8
+# 452 x 443
+SRAM0 100 100 N
+
+# sky130_sram_1kbyte_1rw1w_32x256_8
+# 476 x 395
+SRAM1 100 700 N
+
+# sky130_sram_2kbyte_1rw1w_32x512_8
+# 680 x 414
+SRAM2 100 1200 N
+
+# sky130_sram_4kbyte_1rw1w_32x1024_8
+# 690 x 667
+SRAM3 100 1900 N
+
+# sky130_sram_8kbyte_1rw1w_32x2048_8
+# 1094 x 721
+SRAM4 100 2700 N
+
+# sky130_sram_16kbyte_1rw1w_32x4096_8
#SRAM6
# Control is 800 wide with 100 margin
# so 2000
+
+# sram_1rw0r0w_32_256_sky130
+# 473 x 220
SRAM11 2000 800 N
-SRAM10 2000 1400
-SRAM9 2000 2000
-SRAM8 2000 2600
+
+# sram_1rw0r0w_32_512_sky130
+# 476 x 320
+SRAM10 2000 1200
+
+# sram_1rw0r0w_32_1024_sky130
+# 801 x 348
+SRAM9 2000 1500
+
+# sram_1rw0r0w_64_512_sky130
+# 823 x 335
+SRAM8 2000 2300
CONTROL_LOGIC 1000 200 N
diff --git a/verilog/rtl/user_project_wrapper.v b/verilog/rtl/user_project_wrapper.v
index 86c92de..6f123dc 100644
--- a/verilog/rtl/user_project_wrapper.v
+++ b/verilog/rtl/user_project_wrapper.v
@@ -258,30 +258,28 @@
// Only io_out[27] is output
assgin io_oeb = 1'b1 << 21;
-// Not working yet
-// sky130_sram_1kbyte_1r1w_8x1024_8 SRAM0
-// (
-// `ifdef USE_POWER_PINS
-// .vccd1(vccd1),
-// .vssd1(vssd1),
-// `endif
-// .clk0 (sram0_clk),
-// .csb0 (csb0[0]),
-// .web0 (web0),
-// .wmask0 (wmask0),
-// .addr0 (addr0),
-// .din0 (din0),
-// .dout0 (sram0_dout0[7:0]),
-// .clk1 (sram0_clk),
-// .csb1 (csb1[0]),
-// .addr1 (addr1),
-// .dout1 (sram0_dout1[7:0])
-// );
-// assign sram0_dout0 = 0;
-// assign sram0_dout1[31:8] = 0;
-
-
-sky130_sram_1kbyte_1rw1r_8x1024_8 SRAM1
+sky130_sram_1kbyte_1rw1r_8x1024_8 SRAM0
+ (
+ `ifdef USE_POWER_PINS
+ .vccd1(vccd1),
+ .vssd1(vssd1),
+ `endif
+ .clk0 (sram0_clk),
+ .csb0 (csb0[0]),
+ .web0 (web0),
+ .wmask0 (wmask0),
+ .addr0 (addr0),
+ .din0 (din0),
+ .dout0 (sram0_dout0[7:0]),
+ .clk1 (sram0_clk),
+ .csb1 (csb1[0]),
+ .addr1 (addr0),
+ .dout1 (sram0_dout1[7:0])
+ );
+ assign sram0_dout0[31:8] = 0;
+ assign sram0_dout1[31:8] = 0;
+
+sky130_sram_1kbyte_1rw1r_32x256_8 SRAM1
(
`ifdef USE_POWER_PINS
.vccd1(vccd1),
@@ -293,17 +291,15 @@
.wmask0 (wmask0),
.addr0 (addr0),
.din0 (din0),
- .dout0 (sram1_dout0[7:0]),
+ .dout0 (sram1_dout0),
.clk1 (sram1_clk),
.csb1 (csb1[1]),
.addr1 (addr1),
- .dout1 (sram1_dout1[7:0])
+ .dout1 (sram1_dout1)
);
- assign sram1_dout0[31:8] = 0;
- assign sram1_dout1[31:8] = 0;
-sky130_sram_1kbyte_1rw1r_32x256_8 SRAM2
- (
+sky130_sram_2kbyte_1rw1r_32x512_8 SRAM2
+ (p
`ifdef USE_POWER_PINS
.vccd1(vccd1),
.vssd1(vssd1),
@@ -320,9 +316,9 @@
.addr1 (addr1),
.dout1 (sram2_dout1)
);
-
-sky130_sram_2kbyte_1rw1r_32x512_8 SRAM3
- (p
+
+sky130_sram_4kbyte_1rw1r_32x1024_8 SRAM3
+ (
`ifdef USE_POWER_PINS
.vccd1(vccd1),
.vssd1(vssd1),
@@ -339,8 +335,8 @@
.addr1 (addr1),
.dout1 (sram3_dout1)
);
-
-sky130_sram_4kbyte_1rw1r_32x1024_8 SRAM4
+
+sky130_sram_8kbyte_1rw1r_32x2048_8 SRAM4
(
`ifdef USE_POWER_PINS
.vccd1(vccd1),
@@ -358,25 +354,6 @@
.addr1 (addr1),
.dout1 (sram4_dout1)
);
-
-sky130_sram_8kbyte_1rw1r_32x2048_8 SRAM5
- (
- `ifdef USE_POWER_PINS
- .vccd1(vccd1),
- .vssd1(vssd1),
- `endif
- .clk0 (sram5_clk),
- .csb0 (csb0[5]),
- .web0 (web0),
- .wmask0 (wmask0),
- .addr0 (addr0),
- .din0 (din0),
- .dout0 (sram5_dout0),
- .clk1 (sram5_clk),
- .csb1 (csb1[5]),
- .addr1 (addr1),
- .dout1 (sram5_dout1)
- );
// Not working yet
// sky130_sram_16kbyte_1rw1r_32x4096_8 SRAM6