diff --git a/gds/sram_1rw0r0w_32_1024_sky130.gds b/gds/sram_1rw0r0w_32_1024_sky130.gds
index 12809dd..a16a24b 100644
--- a/gds/sram_1rw0r0w_32_1024_sky130.gds
+++ b/gds/sram_1rw0r0w_32_1024_sky130.gds
Binary files differ
diff --git a/gds/sram_1rw0r0w_32_256_sky130.gds b/gds/sram_1rw0r0w_32_256_sky130.gds
index 517adc2..691c94b 100644
--- a/gds/sram_1rw0r0w_32_256_sky130.gds
+++ b/gds/sram_1rw0r0w_32_256_sky130.gds
Binary files differ
diff --git a/gds/sram_1rw0r0w_32_512_sky130.gds b/gds/sram_1rw0r0w_32_512_sky130.gds
index 89b5ad5..4ea2763 100644
--- a/gds/sram_1rw0r0w_32_512_sky130.gds
+++ b/gds/sram_1rw0r0w_32_512_sky130.gds
Binary files differ
diff --git a/gds/sram_1rw0r0w_64_512_sky130.gds b/gds/sram_1rw0r0w_64_512_sky130.gds
index 8183185..d516363 100644
--- a/gds/sram_1rw0r0w_64_512_sky130.gds
+++ b/gds/sram_1rw0r0w_64_512_sky130.gds
Binary files differ
diff --git a/lef/sram_1rw0r0w_32_1024_sky130.lef b/lef/sram_1rw0r0w_32_1024_sky130.lef
index eaf7652..0747d8d 100644
--- a/lef/sram_1rw0r0w_32_1024_sky130.lef
+++ b/lef/sram_1rw0r0w_32_1024_sky130.lef
@@ -359,13 +359,13 @@
          RECT  119.68 0.0 120.06 0.38 ;
       END
    END wmask0[3]
-   PIN spare_wen0[0]
+   PIN spare_wen0
       DIRECTION INPUT ;
       PORT
          LAYER met4 ;
          RECT  317.56 0.0 317.94 0.38 ;
       END
-   END spare_wen0[0]
+   END spare_wen0
    PIN dout0[0]
       DIRECTION OUTPUT ;
       PORT
diff --git a/lef/sram_1rw0r0w_32_256_sky130.lef b/lef/sram_1rw0r0w_32_256_sky130.lef
index 799258c..9db0792 100644
--- a/lef/sram_1rw0r0w_32_256_sky130.lef
+++ b/lef/sram_1rw0r0w_32_256_sky130.lef
@@ -345,13 +345,13 @@
          RECT  107.44 0.0 107.82 0.38 ;
       END
    END wmask0[3]
-   PIN spare_wen0[0]
+   PIN spare_wen0
       DIRECTION INPUT ;
       PORT
          LAYER met4 ;
          RECT  306.0 0.0 306.38 0.38 ;
       END
-   END spare_wen0[0]
+   END spare_wen0
    PIN dout0[0]
       DIRECTION OUTPUT ;
       PORT
diff --git a/lef/sram_1rw0r0w_32_512_sky130.lef b/lef/sram_1rw0r0w_32_512_sky130.lef
index d543cf1..0ca3ba1 100644
--- a/lef/sram_1rw0r0w_32_512_sky130.lef
+++ b/lef/sram_1rw0r0w_32_512_sky130.lef
@@ -352,13 +352,13 @@
          RECT  108.12 0.0 108.5 0.38 ;
       END
    END wmask0[3]
-   PIN spare_wen0[0]
+   PIN spare_wen0
       DIRECTION INPUT ;
       PORT
          LAYER met4 ;
          RECT  306.68 0.0 307.06 0.38 ;
       END
-   END spare_wen0[0]
+   END spare_wen0
    PIN dout0[0]
       DIRECTION OUTPUT ;
       PORT
diff --git a/lef/sram_1rw0r0w_64_512_sky130.lef b/lef/sram_1rw0r0w_64_512_sky130.lef
index 52b9509..d969802 100644
--- a/lef/sram_1rw0r0w_64_512_sky130.lef
+++ b/lef/sram_1rw0r0w_64_512_sky130.lef
@@ -604,13 +604,13 @@
          RECT  157.76 0.0 158.14 0.38 ;
       END
    END wmask0[7]
-   PIN spare_wen0[0]
+   PIN spare_wen0
       DIRECTION INPUT ;
       PORT
          LAYER met4 ;
          RECT  543.32 0.0 543.7 0.38 ;
       END
-   END spare_wen0[0]
+   END spare_wen0
    PIN dout0[0]
       DIRECTION OUTPUT ;
       PORT
diff --git a/openlane/user_project_wrapper/config.tcl b/openlane/user_project_wrapper/config.tcl
index 4e2a110..1498604 100755
--- a/openlane/user_project_wrapper/config.tcl
+++ b/openlane/user_project_wrapper/config.tcl
@@ -53,6 +53,7 @@
 	$script_dir/../../verilog/rtl/sram_1rw0r0w_32_1024_sky130.v \
 	$script_dir/../../verilog/rtl/sram_1rw0r0w_32_256_sky130.v \
 	$script_dir/../../verilog/rtl/sram_1rw0r0w_32_512_sky130.v \
+	$script_dir/../../verilog/rtl/sram_1rw0r0w_32_512_sky130.v \
 	$script_dir/../../verilog/rtl/sram_1rw0r0w_64_512_sky130.v"
 #$script_dir/../../verilog/rtl/openram_testchip.v
 
@@ -101,7 +102,6 @@
 set ::env(RUN_KLAYOUT_XOR) 0
 
 # Spray diodes
-
 set ::env(DIODE_INSERTION_STRATEGY) 1
 # The following is because there are no std cells in the example wrapper project.
 #set ::env(SYNTH_TOP_LEVEL) 1
diff --git a/verilog/rtl/openram_defines.v b/verilog/rtl/openram_defines.v
index 67fc5f0..e7d34b1 100644
--- a/verilog/rtl/openram_defines.v
+++ b/verilog/rtl/openram_defines.v
@@ -11,11 +11,13 @@
 // packet order:
 
 // 4 chip_select
+
 // 16 addr0
 // 32 din0
 // 1 csb0
 // 1 web0
 // 4 wmask0
+
 // 16 addr1
 // 32 din1
 // 1 csb1
diff --git a/verilog/rtl/sram_1rw0r0w_32_1024_sky130.v b/verilog/rtl/sram_1rw0r0w_32_1024_sky130.v
index cabcde6..6b94771 100644
--- a/verilog/rtl/sram_1rw0r0w_32_1024_sky130.v
+++ b/verilog/rtl/sram_1rw0r0w_32_1024_sky130.v
@@ -9,11 +9,11 @@
     vssd1,
 `endif
 // Port 0: RW
-    clk0,csb0,web0,wmask0,addr0,din0,dout0
+    clk0,csb0,web0,wmask0,spare_wen0,addr0,din0,dout0
   );
 
   parameter NUM_WMASKS = 4 ;
-  parameter DATA_WIDTH = 32 ;
+  parameter DATA_WIDTH = 33 ;
   parameter ADDR_WIDTH = 10 ;
   parameter RAM_DEPTH = 1 << ADDR_WIDTH;
   // FIXME: This delay is arbitrary.
@@ -29,13 +29,15 @@
   input   csb0; // active low chip select
   input  web0; // active low write control
   input [NUM_WMASKS-1:0]   wmask0; // write mask
-  input [ADDR_WIDTH-1:0]  addr0;
+  input           spare_wen0; // spare mask
+   input [ADDR_WIDTH-1:0] addr0;
   input [DATA_WIDTH-1:0]  din0;
   output [DATA_WIDTH-1:0] dout0;
 
   reg  csb0_reg;
   reg  web0_reg;
   reg [NUM_WMASKS-1:0]   wmask0_reg;
+  reg spare_wen0_reg;
   reg [ADDR_WIDTH-1:0]  addr0_reg;
   reg [DATA_WIDTH-1:0]  din0_reg;
   reg [DATA_WIDTH-1:0]  dout0;
@@ -46,10 +48,11 @@
     csb0_reg = csb0;
     web0_reg = web0;
     wmask0_reg = wmask0;
+    spare_wen0_reg = spare_wen0;
     addr0_reg = addr0;
     din0_reg = din0;
     #(T_HOLD) dout0 = 32'bx;
-    if ( !csb0_reg && web0_reg && VERBOSE ) 
+    if ( !csb0_reg && web0_reg && VERBOSE )
       $display($time," Reading %m addr0=%b dout0=%b",addr0_reg,mem[addr0_reg]);
     if ( !csb0_reg && !web0_reg && VERBOSE )
       $display($time," Writing %m addr0=%b din0=%b wmask0=%b",addr0_reg,din0_reg,wmask0_reg);
@@ -70,6 +73,8 @@
                 mem[addr0_reg][23:16] = din0_reg[23:16];
         if (wmask0_reg[3])
                 mem[addr0_reg][31:24] = din0_reg[31:24];
+        if (spare_wen0_reg)
+                mem[addr0_reg][32] = din0_reg[32];
     end
   end
 
diff --git a/verilog/rtl/sram_1rw0r0w_32_256_sky130.v b/verilog/rtl/sram_1rw0r0w_32_256_sky130.v
index 8af0030..1ec035a 100644
--- a/verilog/rtl/sram_1rw0r0w_32_256_sky130.v
+++ b/verilog/rtl/sram_1rw0r0w_32_256_sky130.v
@@ -9,11 +9,11 @@
     vssd1,
 `endif
 // Port 0: RW
-    clk0,csb0,web0,wmask0,addr0,din0,dout0
+    clk0,csb0,web0,wmask0,spare_wen0,addr0,din0,dout0
   );
 
   parameter NUM_WMASKS = 4 ;
-  parameter DATA_WIDTH = 32 ;
+  parameter DATA_WIDTH = 33 ;
   parameter ADDR_WIDTH = 8 ;
   parameter RAM_DEPTH = 1 << ADDR_WIDTH;
   // FIXME: This delay is arbitrary.
@@ -29,13 +29,15 @@
   input   csb0; // active low chip select
   input  web0; // active low write control
   input [NUM_WMASKS-1:0]   wmask0; // write mask
-  input [ADDR_WIDTH-1:0]  addr0;
+  input           spare_wen0; // spare mask
+   input [ADDR_WIDTH-1:0] addr0;
   input [DATA_WIDTH-1:0]  din0;
   output [DATA_WIDTH-1:0] dout0;
 
   reg  csb0_reg;
   reg  web0_reg;
   reg [NUM_WMASKS-1:0]   wmask0_reg;
+  reg spare_wen0_reg;
   reg [ADDR_WIDTH-1:0]  addr0_reg;
   reg [DATA_WIDTH-1:0]  din0_reg;
   reg [DATA_WIDTH-1:0]  dout0;
@@ -46,10 +48,11 @@
     csb0_reg = csb0;
     web0_reg = web0;
     wmask0_reg = wmask0;
+    spare_wen0_reg = spare_wen0;
     addr0_reg = addr0;
     din0_reg = din0;
     #(T_HOLD) dout0 = 32'bx;
-    if ( !csb0_reg && web0_reg && VERBOSE ) 
+    if ( !csb0_reg && web0_reg && VERBOSE )
       $display($time," Reading %m addr0=%b dout0=%b",addr0_reg,mem[addr0_reg]);
     if ( !csb0_reg && !web0_reg && VERBOSE )
       $display($time," Writing %m addr0=%b din0=%b wmask0=%b",addr0_reg,din0_reg,wmask0_reg);
@@ -70,6 +73,8 @@
                 mem[addr0_reg][23:16] = din0_reg[23:16];
         if (wmask0_reg[3])
                 mem[addr0_reg][31:24] = din0_reg[31:24];
+        if (spare_wen0_reg)
+                mem[addr0_reg][32] = din0_reg[32];
     end
   end
 
diff --git a/verilog/rtl/sram_1rw0r0w_32_512_sky130.v b/verilog/rtl/sram_1rw0r0w_32_512_sky130.v
index a406b4f..138331b 100644
--- a/verilog/rtl/sram_1rw0r0w_32_512_sky130.v
+++ b/verilog/rtl/sram_1rw0r0w_32_512_sky130.v
@@ -9,11 +9,11 @@
     vssd1,
 `endif
 // Port 0: RW
-    clk0,csb0,web0,wmask0,addr0,din0,dout0
+    clk0,csb0,web0,wmask0,spare_wen0,addr0,din0,dout0
   );
 
   parameter NUM_WMASKS = 4 ;
-  parameter DATA_WIDTH = 32 ;
+  parameter DATA_WIDTH = 33 ;
   parameter ADDR_WIDTH = 9 ;
   parameter RAM_DEPTH = 1 << ADDR_WIDTH;
   // FIXME: This delay is arbitrary.
@@ -29,13 +29,15 @@
   input   csb0; // active low chip select
   input  web0; // active low write control
   input [NUM_WMASKS-1:0]   wmask0; // write mask
-  input [ADDR_WIDTH-1:0]  addr0;
+  input           spare_wen0; // spare mask
+   input [ADDR_WIDTH-1:0] addr0;
   input [DATA_WIDTH-1:0]  din0;
   output [DATA_WIDTH-1:0] dout0;
 
   reg  csb0_reg;
   reg  web0_reg;
   reg [NUM_WMASKS-1:0]   wmask0_reg;
+  reg spare_wen0_reg;
   reg [ADDR_WIDTH-1:0]  addr0_reg;
   reg [DATA_WIDTH-1:0]  din0_reg;
   reg [DATA_WIDTH-1:0]  dout0;
@@ -46,10 +48,11 @@
     csb0_reg = csb0;
     web0_reg = web0;
     wmask0_reg = wmask0;
+    spare_wen0_reg = spare_wen0;
     addr0_reg = addr0;
     din0_reg = din0;
     #(T_HOLD) dout0 = 32'bx;
-    if ( !csb0_reg && web0_reg && VERBOSE ) 
+    if ( !csb0_reg && web0_reg && VERBOSE )
       $display($time," Reading %m addr0=%b dout0=%b",addr0_reg,mem[addr0_reg]);
     if ( !csb0_reg && !web0_reg && VERBOSE )
       $display($time," Writing %m addr0=%b din0=%b wmask0=%b",addr0_reg,din0_reg,wmask0_reg);
@@ -70,6 +73,8 @@
                 mem[addr0_reg][23:16] = din0_reg[23:16];
         if (wmask0_reg[3])
                 mem[addr0_reg][31:24] = din0_reg[31:24];
+        if (spare_wen0_reg)
+                mem[addr0_reg][32] = din0_reg[32];
     end
   end
 
diff --git a/verilog/rtl/sram_1rw0r0w_64_512_sky130.v b/verilog/rtl/sram_1rw0r0w_64_512_sky130.v
index 1fabb08..d36ca41 100644
--- a/verilog/rtl/sram_1rw0r0w_64_512_sky130.v
+++ b/verilog/rtl/sram_1rw0r0w_64_512_sky130.v
@@ -9,11 +9,11 @@
     vssd1,
 `endif
 // Port 0: RW
-    clk0,csb0,web0,wmask0,addr0,din0,dout0
+    clk0,csb0,web0,wmask0,spare_wen0,addr0,din0,dout0
   );
 
   parameter NUM_WMASKS = 8 ;
-  parameter DATA_WIDTH = 64 ;
+  parameter DATA_WIDTH = 65 ;
   parameter ADDR_WIDTH = 9 ;
   parameter RAM_DEPTH = 1 << ADDR_WIDTH;
   // FIXME: This delay is arbitrary.
@@ -29,13 +29,15 @@
   input   csb0; // active low chip select
   input  web0; // active low write control
   input [NUM_WMASKS-1:0]   wmask0; // write mask
-  input [ADDR_WIDTH-1:0]  addr0;
+  input           spare_wen0; // spare mask
+   input [ADDR_WIDTH-1:0] addr0;
   input [DATA_WIDTH-1:0]  din0;
   output [DATA_WIDTH-1:0] dout0;
 
   reg  csb0_reg;
   reg  web0_reg;
   reg [NUM_WMASKS-1:0]   wmask0_reg;
+  reg spare_wen0_reg;
   reg [ADDR_WIDTH-1:0]  addr0_reg;
   reg [DATA_WIDTH-1:0]  din0_reg;
   reg [DATA_WIDTH-1:0]  dout0;
@@ -46,10 +48,11 @@
     csb0_reg = csb0;
     web0_reg = web0;
     wmask0_reg = wmask0;
+    spare_wen0_reg = spare_wen0;
     addr0_reg = addr0;
     din0_reg = din0;
     #(T_HOLD) dout0 = 64'bx;
-    if ( !csb0_reg && web0_reg && VERBOSE ) 
+    if ( !csb0_reg && web0_reg && VERBOSE )
       $display($time," Reading %m addr0=%b dout0=%b",addr0_reg,mem[addr0_reg]);
     if ( !csb0_reg && !web0_reg && VERBOSE )
       $display($time," Writing %m addr0=%b din0=%b wmask0=%b",addr0_reg,din0_reg,wmask0_reg);
@@ -78,6 +81,8 @@
                 mem[addr0_reg][55:48] = din0_reg[55:48];
         if (wmask0_reg[7])
                 mem[addr0_reg][63:56] = din0_reg[63:56];
+        if (spare_wen0_reg)
+                mem[addr0_reg][64] = din0_reg[64];
     end
   end
 
diff --git a/verilog/rtl/user_project_wrapper.v b/verilog/rtl/user_project_wrapper.v
index a220195..b87ab89 100644
--- a/verilog/rtl/user_project_wrapper.v
+++ b/verilog/rtl/user_project_wrapper.v
@@ -339,46 +339,49 @@
 sram_1rw0r0w_32_256_sky130 SRAM8
     (
       `ifdef USE_POWER_PINS
-      .vccd1(vccd1),
-      .vssd1(vssd1),
+     .vccd1(vccd1),
+     .vssd1(vssd1),
       `endif
-      .clk0   (clk),
-      .csb0   (csb0[8]),
-      .web0   (web0),
-      .wmask0 (wmask0),
-      .addr0  (addr0),
-      .din0   (din0),
-      .dout0  (sram8_dout0)
+     .clk0   (clk),
+     .csb0   (csb0[8]),
+     .web0   (web0),
+     .wmask0 (wmask0),
+     .addr0  (addr0),
+     .din0   (din0),
+     .dout0  (sram8_dout0),
+     .spare_wen0(1'b0)
      );
 
 sram_1rw0r0w_32_512_sky130 SRAM9
     (
       `ifdef USE_POWER_PINS
-      .vccd1(vccd1),
-      .vssd1(vssd1),
+     .vccd1(vccd1),
+     .vssd1(vssd1),
       `endif
-      .clk0   (clk),
-      .csb0   (csb0[9]),
-      .web0   (web0),
-      .wmask0 (wmask0),
-      .addr0  (addr0),
-      .din0   (din0),
-      .dout0  (sram9_dout0)
+     .clk0   (clk),
+     .csb0   (csb0[9]),
+     .web0   (web0),
+     .wmask0 (wmask0),
+     .addr0  (addr0),
+     .din0   (din0),
+     .dout0  (sram9_dout0),
+     .spare_wen0(1'b0)
      );
 
 sram_1rw0r0w_32_1024_sky130 SRAM10
     (
       `ifdef USE_POWER_PINS
-      .vccd1(vccd1),
-      .vssd1(vssd1),
+     .vccd1(vccd1),
+     .vssd1(vssd1),
       `endif
-      .clk0   (clk),
-      .csb0   (csb0[10]),
-      .web0   (web0),
-      .wmask0 (wmask0),
-      .addr0  (addr0),
-      .din0   (din0),
-      .dout0  (sram10_dout0)
+     .clk0   (clk),
+     .csb0   (csb0[10]),
+     .web0   (web0),
+     .wmask0 (wmask0),
+     .addr0  (addr0),
+     .din0   (din0),
+     .dout0  (sram10_dout0),
+     .spare_wen0(1'b0)
      );
 
 
@@ -386,16 +389,17 @@
 sram_1rw0r0w_64_512_sky130 SRAM11
     (
       `ifdef USE_POWER_PINS
-      .vccd1(vccd1),
-      .vssd1(vssd1),
+     .vccd1(vccd1),
+     .vssd1(vssd1),
       `endif
-      .clk0   (clk),
-      .csb0   (csb0[11]),
-      .web0   (web0),
-      .wmask0 (wmask0),
-      .addr0  (addr0),
-      .din0   ({din0[31:16], 32'd0, din0[15:0]}),
-      .dout0  (temp_sram11_dout0)
+     .clk0   (clk),
+     .csb0   (csb0[11]),
+     .web0   (web0),
+     .wmask0 (wmask0),
+     .addr0  (addr0),
+     .din0   ({din0[31:16], 32'd0, din0[15:0]}),
+     .dout0  (temp_sram11_dout0),
+     .spare_wen0(1'b0)
      );
    assign sram11_dout0 = {temp_sram11_dout0[63:49], temp_sram11_dout0[15:0]};
 
