diff --git a/ASIC/TSMC28nm_HPCP/Synopsys_FC_flow/synopsys_lib_conversion.tcl b/ASIC/TSMC28nm_HPCP/Synopsys_FC_flow/synopsys_lib_conversion.tcl
index b32ac35d7bd678934f39715887c0370c36c351ab..b053c7fbc3b74466e0db91b73316c98b5d7a852b 100644
--- a/ASIC/TSMC28nm_HPCP/Synopsys_FC_flow/synopsys_lib_conversion.tcl
+++ b/ASIC/TSMC28nm_HPCP/Synopsys_FC_flow/synopsys_lib_conversion.tcl
@@ -13,10 +13,16 @@ set sc9mcpp140z_db_file_ff_0p99v_m40C   $sc9mcpp140z_base_path/db/sc9mcpp140z_cl
 set sc9mcpp140z_antenna_file            $sc9mcpp140z_base_path/milkyway/1p8m_5x2z_utalrdl/sc9mcpp140z_cln28ht_base_svt_c35_antenna.clf
 
 # SRAM files (using Arm compiler)
-set sram_lef_file                   $env(SOCLABS_SRAM_CHIPLET_DIR)/memories/sram_32b_32k.lef
-set sram_gds_file                   $env(SOCLABS_SRAM_CHIPLET_DIR)/memories/sram_32b_32k.gds2
-set sram_lib_file_ss_0p81v_125c     $env(SOCLABS_SRAM_CHIPLET_DIR)/memories/sram_32b_32k_ssg_cworstt_0p81v_0p81v_125c.lib
-set sram_db_file_ss_0p81v_125c      $env(SOCLABS_SRAM_CHIPLET_DIR)/memories/sram_32b_32k_ssg_cworstt_0p81v_0p81v_125c.db
+set sram_32k_lef_file                   $env(SOCLABS_SRAM_CHIPLET_DIR)/memories/sram_32b_32k/sram_32b_32k.lef
+set sram_32k_gds_file                   $env(SOCLABS_SRAM_CHIPLET_DIR)/memories/sram_32b_32k/sram_32b_32k.gds2
+set sram_32k_lib_file_ss_0p81v_125c     $env(SOCLABS_SRAM_CHIPLET_DIR)/memories/sram_32b_32k/sram_32b_32k_ssg_cworstt_0p81v_0p81v_125c.lib
+set sram_32k_db_file_ss_0p81v_125c      $env(SOCLABS_SRAM_CHIPLET_DIR)/memories/sram_32b_32k/sram_32b_32k_ssg_cworstt_0p81v_0p81v_125c.db
+
+set sram_16k_lef_file                   $env(SOCLABS_SRAM_CHIPLET_DIR)/memories/sram_32b_16k/sram_32b_16k.lef
+set sram_16k_gds_file                   $env(SOCLABS_SRAM_CHIPLET_DIR)/memories/sram_32b_16k/sram_32b_16k.gds2
+set sram_16k_lib_file_ss_0p81v_125c     $env(SOCLABS_SRAM_CHIPLET_DIR)/memories/sram_32b_16k/sram_32b_16k_ssg_cworstt_0p81v_0p81v_125c.lib
+set sram_16k_db_file_ss_0p81v_125c      $env(SOCLABS_SRAM_CHIPLET_DIR)/memories/sram_32b_16k/sram_32b_16k_ssg_cworstt_0p81v_0p81v_125c.db
+
 
 # Synopsys PLL files
 set Synopsys_PLL_dir /home/dwn1c21/SoC-Labs/Synopsys_ip/IP/PLL/synopsys/dwc_pll3ghz_tsmc28hpcp/1.10a/macro
diff --git a/flist/Top/sram_chiplet_TSMC28nm.flist b/flist/Top/sram_chiplet_TSMC28nm.flist
index 0ddb0496abccaab3f0f0c35c03c05c444e4a3e7a..83f5ae7b4b8b62b9d17db22733914121fbad5e87 100644
--- a/flist/Top/sram_chiplet_TSMC28nm.flist
+++ b/flist/Top/sram_chiplet_TSMC28nm.flist
@@ -21,7 +21,8 @@
 // SRAM Chiplet - SRAM
 $(SOCLABS_SRAM_CHIPLET_DIR)/logical/SRAM/TSMC28nm_hpcp/verilog/SRAM_wrapper.v
 $(SOCLABS_SRAM_CHIPLET_DIR)/logical/SRAM/TSMC28nm_hpcp/verilog/SRAM.v
-$(SOCLABS_SRAM_CHIPLET_DIR)/memories/sram_32b_32k_emulation.v
+$(SOCLABS_SRAM_CHIPLET_DIR)/memories/sram_32b_32k/sram_32b_32k_emulation.v
+$(SOCLABS_SRAM_CHIPLET_DIR)/memories/sram_32b_16k/sram_32b_16k_emulation.v
 
 // SRAM Chiplet - APB subsystem
 $(SOCLABS_SRAM_CHIPLET_DIR)/logical/sram_chiplet_apb_subsystem/verilog/sram_chiplet_apb_subsystem.v
diff --git a/flows/makefile.asic b/flows/makefile.asic
index ebd3767db9219fb8f4c8b2bb97ea6b15374ac067..60d8fcd767b4079d1ea2e22ba5e4838b4921e66f 100644
--- a/flows/makefile.asic
+++ b/flows/makefile.asic
@@ -32,10 +32,10 @@ gen_memories_frontend:
 	cd $(MEM_32K_DIR); $(PHYS_IP)/arm/tsmc/cln28ht/sram_sp_hde_2_svt_mvt/r0p0/bin/sram_sp_hde_2_svt_mvt verilog -spec $(SRAM_32K_SPEC_FILE)
 	cd $(MEM_32K_DIR); $(PHYS_IP)/arm/tsmc/cln28ht/sram_sp_hde_2_svt_mvt/r0p0/bin/sram_sp_hde_2_svt_mvt liberty -spec $(SRAM_32K_SPEC_FILE)
 	echo "Generating 16K SRAM Memory"
-	cd $(MEM_16K_DIR); $(PHYS_IP)/arm/tsmc/cln28ht/sram_sp_hde_2_svt_mvt/r0p0/bin/sram_sp_hde_2_svt_mvt ascii -spec $(MEM_16K_DIR)
-	cd $(MEM_16K_DIR); $(PHYS_IP)/arm/tsmc/cln28ht/sram_sp_hde_2_svt_mvt/r0p0/bin/sram_sp_hde_2_svt_mvt emulation -spec $(MEM_16K_DIR)
-	cd $(MEM_16K_DIR); $(PHYS_IP)/arm/tsmc/cln28ht/sram_sp_hde_2_svt_mvt/r0p0/bin/sram_sp_hde_2_svt_mvt verilog -spec $(MEM_16K_DIR)
-	cd $(MEM_16K_DIR); $(PHYS_IP)/arm/tsmc/cln28ht/sram_sp_hde_2_svt_mvt/r0p0/bin/sram_sp_hde_2_svt_mvt liberty -spec $(MEM_16K_DIR)
+	cd $(MEM_16K_DIR); $(PHYS_IP)/arm/tsmc/cln28ht/sram_sp_hde_2_svt_mvt/r0p0/bin/sram_sp_hde_2_svt_mvt ascii -spec $(SRAM_16K_SPEC_FILE)
+	cd $(MEM_16K_DIR); $(PHYS_IP)/arm/tsmc/cln28ht/sram_sp_hde_2_svt_mvt/r0p0/bin/sram_sp_hde_2_svt_mvt emulation -spec $(SRAM_16K_SPEC_FILE)
+	cd $(MEM_16K_DIR); $(PHYS_IP)/arm/tsmc/cln28ht/sram_sp_hde_2_svt_mvt/r0p0/bin/sram_sp_hde_2_svt_mvt verilog -spec $(SRAM_16K_SPEC_FILE)
+	cd $(MEM_16K_DIR); $(PHYS_IP)/arm/tsmc/cln28ht/sram_sp_hde_2_svt_mvt/r0p0/bin/sram_sp_hde_2_svt_mvt liberty -spec $(SRAM_16K_SPEC_FILE)
 
 gen_memories_backend:
 	@mkdir -p $(MEMORIES_DIR)
@@ -45,7 +45,7 @@ gen_memories_backend:
 	cd $(MEM_32K_DIR); $(PHYS_IP)/arm/tsmc/cln28ht/sram_sp_hde_2_svt_mvt/r0p0/bin/sram_sp_hde_2_svt_mvt lef-fp -spec $(SRAM_32K_SPEC_FILE)
 	cd $(MEM_32K_DIR); $(PHYS_IP)/arm/tsmc/cln28ht/sram_sp_hde_2_svt_mvt/r0p0/bin/sram_sp_hde_2_svt_mvt gds2 -spec $(SRAM_32K_SPEC_FILE)
 	echo "Generating 16K SRAM Memory"
-	cd $(MEM_16K_DIR); $(PHYS_IP)/arm/tsmc/cln28ht/sram_sp_hde_2_svt_mvt/r0p0/bin/sram_sp_hde_2_svt_mvt lef-fp -spec $(MEM_16K_DIR)
-	cd $(MEM_16K_DIR); $(PHYS_IP)/arm/tsmc/cln28ht/sram_sp_hde_2_svt_mvt/r0p0/bin/sram_sp_hde_2_svt_mvt gds2 -spec $(MEM_16K_DIR)
+	cd $(MEM_16K_DIR); $(PHYS_IP)/arm/tsmc/cln28ht/sram_sp_hde_2_svt_mvt/r0p0/bin/sram_sp_hde_2_svt_mvt lef-fp -spec $(SRAM_16K_SPEC_FILE)
+	cd $(MEM_16K_DIR); $(PHYS_IP)/arm/tsmc/cln28ht/sram_sp_hde_2_svt_mvt/r0p0/bin/sram_sp_hde_2_svt_mvt gds2 -spec $(SRAM_16K_SPEC_FILE)
 
 gen_memories: gen_memories_frontend gen_memories_backend
\ No newline at end of file
diff --git a/logical/SRAM/TSMC28nm_hpcp/verilog/SRAM.v b/logical/SRAM/TSMC28nm_hpcp/verilog/SRAM.v
index 99cea2befd754ea2123e0f77765c7af34707b583..6f82eb43ada66312f2a7ede431c44c80c2c228b0 100644
--- a/logical/SRAM/TSMC28nm_hpcp/verilog/SRAM.v
+++ b/logical/SRAM/TSMC28nm_hpcp/verilog/SRAM.v
@@ -12,16 +12,16 @@ module SRAM (
 localparam N_MEMS = 8;
 localparam SEL_W = 3;
 
-reg [N_MEMS-1:0]   CEN_i; //Active low chip select
+reg  [N_MEMS:0]   CEN_i; //Active low chip select
 wire [31:0]         wena_i; 
 wire                gwen_i;
-wire [31:0]         q_i[0:N_MEMS-1];
+wire [31:0]         q_i[0:N_MEMS];
 
 assign wena_i = {{8{memwen[3]}}, {8{memwen[2]}}, {8{memwen[1]}}, {8{memwen[0]}}};
 assign gwen_i = &memwen;
 genvar i;
 
-generate for(i=0; i<N_MEMS; i = i + 1) begin: g_srams
+generate for(i=0; i<N_MEMS-1; i = i + 1) begin: g_srams
     sram_32b_32k u_sram_32b_32k(
         .Q(q_i[i]), 
         .CLK(clk), 
@@ -39,6 +39,35 @@ generate for(i=0; i<N_MEMS; i = i + 1) begin: g_srams
 
 end endgenerate
 
+sram_32b_16k u_sram_32b_16k_0(
+    .Q(q_i[N_MEMS-1]), 
+    .CLK(clk), 
+    .CEN(CEN_i[N_MEMS-1]), 
+    .GWEN(gwen_i), 
+    .A(memaddr[16:2]), 
+    .D(memd), 
+    .WEN(wena_i), 
+    .STOV(1'b0), 
+    .EMA(3'b011), 
+    .EMAW(2'b01), 
+    .EMAS(1'b0), 
+    .RET1N(1'b1)
+);
+sram_32b_16k u_sram_32b_16k_0(
+    .Q(q_i[N_MEMS]), 
+    .CLK(clk), 
+    .CEN(CEN_i[N_MEMS]), 
+    .GWEN(gwen_i), 
+    .A(memaddr[16:2]), 
+    .D(memd), 
+    .WEN(wena_i), 
+    .STOV(1'b0), 
+    .EMA(3'b011), 
+    .EMAW(2'b01), 
+    .EMAS(1'b0), 
+    .RET1N(1'b1)
+);
+
 integer j;
 always @(*) begin 
     for(j=0; j<N_MEMS; j=j+1) begin