diff --git a/.gitignore b/.gitignore
index e023287d61b9195cac67289f00b447db3476bb2f..97bd184e793fbe07c10dd140671c18dad0e88ca0 100644
--- a/.gitignore
+++ b/.gitignore
@@ -49,6 +49,8 @@ ASIC/*/*/Synopsys_FC/io_lib
 ASIC/*/*/Synopsys_FC/legalizer_debug_plots
 
 ASIC/*/*/Synopsys_FC/libs
+ASIC/*/*/Synopsys_FC/reports
+ASIC/*/*/Synopsys_FC/logs
 ASIC/*/*/Synopsys_FC/work
 
 ASIC/Synopsys/Formality/FM_INFO/*
diff --git a/ASIC/TSMC28nm/38pin/Synopsys_FC/FC_flow.tcl b/ASIC/TSMC28nm/38pin/Synopsys_FC/FC_flow.tcl
deleted file mode 100644
index 5f51a5eeec97f7afefe325f42dc99274a572c742..0000000000000000000000000000000000000000
--- a/ASIC/TSMC28nm/38pin/Synopsys_FC/FC_flow.tcl
+++ /dev/null
@@ -1,51 +0,0 @@
-# Main flow for Synopsys fusion compiler 
-set REPORT_DIR $env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/reports
-set LOG_DIR $env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/logs
-
-# Design setup: read libraries and RTL 
-redirect -tee -file $LOG_DIR/01_design_setup.log {source ./design_setup.tcl}
-
-# Floorplan setup
-redirect -tee -file $LOG_DIR/02_init_floorplan.log {initialize_floorplan -control_type die -use_site_row -side_length {1111.1111111 1111.11111} -core_offset {140}}
-redirect -tee -file $LOG_DIR/03_floorplan.log {source ./floorplan/fp.tcl}
-place_io
-# Read Constraints
-redirect -tee -file $LOG_DIR/04_constraints.log {read_sdc ../../constraints.sdc}
-
-# Power Plan
-load_upf nanosoc_chip_pads.upf
-create_voltage_area -power_domains ACCEL 
-create_voltage_area -power_domains PD_DBG
-create_voltage_area -power_domains PD_SYS
- 
-create_voltage_area_shape -voltage_area ACCEL \
-				-region {{{140.000 140.000} {370.655 311.165}}} \
-				-guard_band {2 2}
-
-create_voltage_area_shape -voltage_area PD_DBG \
-				-region {{{703.115 140.000} {971.040 329.520}}} \
-				-guard_band {2 2}
-create_voltage_area_shape -voltage_area PD_SYS \
-				-region {{{234.000 453.940} {548.100 645.665}}} \
-				-guard_band {2 2}
-
-create_pg_region {pg_accel} -voltage_area {ACCEL}
-create_pg_region {pg_dbg} -voltage_area {PD_DBG}
-create_pg_region {pg_sys} -voltage_area {PD_SYS}
-
-redirect -tee -file $LOG_DIR/05_power_plan.log {source ./power_plan.tcl}
-
-# Init coarse placement
-redirect -tee -file $LOG_DIR/06_init_placement.log {source ./init_placement.tcl}
-
-# Physical aware synthesis
-redirect -tee -file $LOG_DIR/07_compile.log {compile_fusion}
-redirect -tee -file $REPORT_DIR/timing_01_compile.rep {report_timing}
-save_lib nanosoc_chip_pads.dlib
-
-redirect -tee -file $LOG_DIR/08_clock_tree.log {synthesize_clock_trees -clocks {clk swdclk}}
-redirect -tee -file $LOG_DIR/09_clock_opt.log {clock_opt}
-redirect -tee -file $REPORT_DIR/timing_02_clock_opt.rep {report_timing}
-
-
-
diff --git a/ASIC/TSMC28nm/38pin/Synopsys_FC/design_setup.tcl b/ASIC/TSMC28nm/38pin/Synopsys_FC/design_setup.tcl
deleted file mode 100644
index 7e44835bf109166bfcc269618781e38bd1029547..0000000000000000000000000000000000000000
--- a/ASIC/TSMC28nm/38pin/Synopsys_FC/design_setup.tcl
+++ /dev/null
@@ -1,31 +0,0 @@
-set sc9mcpp240z_base_path /home/dwn1c21/SoC-Labs/phys_ip/arm/tsmc/cln28ht/sc12mcpp140z_base_svt_c35/r2p0
-set cln28ht_tech_path /home/dwn1c21/SoC-Labs/phys_ip/arm/tsmc/cln28ht/arm_tech/r1p0
-
-set TLU_dir /home/dwn1c21/SoC-Labs/phys_ip/arm/tsmc/cln28ht/arm_tech/r1p0/synopsys_tluplus/1p8m_5x2z_utalrdl
-
-set TLU_cbest $TLU_dir/cbest.tluplus
-set TLU_cworst $TLU_dir/cworst.tluplus
-set TLU_rcbest $TLU_dir/rcbest.tluplus
-set TLU_rcworst $TLU_dir/rcworst.tluplus
-set TLU_map $TLU_dir/tluplus.map
-
-create_lib nanosoc_chip_pads.dlib \
-    -technology $cln28ht_tech_path/milkyway/1p8m_5x2z_utalrdl/sc12mcpp140z_tech.tf \
-    -ref_libs {./cln28ht/ ./cln28ht_pmk/ ./cln28ht_ret/ ./sram_16k/ ./rom_via/ ./io_lib/ ./pad_lib/}
-
-source $env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/flist/dc_flist.tcl
-analyze -format verilog $env(SOCLABS_PROJECT_DIR)/nanosoc_tech/ASIC/nanosoc_chip_pads/tsmc28hpcp/nanosoc_chip_pads_38pin.v
-
-elaborate nanosoc_chip_pads
-set_top_module nanosoc_chip_pads
-
-redirect -tee -file ./lib_cell_summary.log {report_lib -cell_summary cln28ht}
-redirect -tee -file ./lib_cell_pmk_summary.log {report_lib -cell_summary cln28ht_pmk}
-redirect -tee -file ./lib_cell_ret_summary.log {report_lib -cell_summary cln28ht_ret}
-
-read_parasitic_tech -name cbest   -tlup $TLU_cbest -layermap $TLU_map -sanity_check advanced
-read_parasitic_tech -name cworst  -tlup $TLU_cworst -layermap $TLU_map -sanity_check advanced
-read_parasitic_tech -name rcbest  -tlup $TLU_rcbest -layermap $TLU_map -sanity_check advanced
-read_parasitic_tech -name rcworst -tlup $TLU_rcworst -layermap $TLU_map -sanity_check advanced
-
-save_lib nanosoc_chip_pads.dlib
diff --git a/ASIC/TSMC28nm/38pin/Synopsys_FC/floorplan/floorplan.def b/ASIC/TSMC28nm/38pin/Synopsys_FC/floorplan/floorplan.def
index d6f55e61f0bd705211fe4d0465be905b6bd3be39..f85dc7a18f6029be8a20c8d55331bee2eaa1f134 100644
--- a/ASIC/TSMC28nm/38pin/Synopsys_FC/floorplan/floorplan.def
+++ b/ASIC/TSMC28nm/38pin/Synopsys_FC/floorplan/floorplan.def
@@ -2,12 +2,12 @@
 # Fusion Compiler write_def
 # Release      : U-2022.12
 # User Name    : dwn1c21
-# Date         : Fri Oct 25 13:42:48 2024
+# Date         : Tue Apr 15 19:30:50 2025
 # 
 VERSION 5.8 ;
 DIVIDERCHAR "/" ;
 BUSBITCHARS "[]" ;
 DESIGN nanosoc_chip_pads ;
 UNITS DISTANCE MICRONS 1000 ;
-DIEAREA ( 0 0 ) ( 0 1110700 ) ( 1111040 1110700 ) ( 1111040 0 ) ;
+DIEAREA ( 0 0 ) ( 0 1610400 ) ( 1111100 1610400 ) ( 1111100 0 ) ;
 END DESIGN
diff --git a/ASIC/TSMC28nm/38pin/Synopsys_FC/floorplan/floorplan.tcl b/ASIC/TSMC28nm/38pin/Synopsys_FC/floorplan/floorplan.tcl
index 34eb70e0d6233d6bba3cb024dd500cbbfbcb1e3f..9a053489d182278335a32dc37bda3c25998316fb 100644
--- a/ASIC/TSMC28nm/38pin/Synopsys_FC/floorplan/floorplan.tcl
+++ b/ASIC/TSMC28nm/38pin/Synopsys_FC/floorplan/floorplan.tcl
@@ -1,6 +1,6 @@
 ################################################################################
 #
-# Created by fc write_floorplan on Fri Oct 25 13:42:48 2024
+# Created by fc write_floorplan on Tue Apr 15 19:30:50 2025
 #
 ################################################################################
 
diff --git a/ASIC/TSMC28nm/38pin/Synopsys_FC/floorplan/floorplan_compare_data.txt b/ASIC/TSMC28nm/38pin/Synopsys_FC/floorplan/floorplan_compare_data.txt
index 9b75f8bb7e6f0761ac431ebed19494ba9d241086..2cb4692a81bd4b913dab40fe48b33c17832c27ed 100644
--- a/ASIC/TSMC28nm/38pin/Synopsys_FC/floorplan/floorplan_compare_data.txt
+++ b/ASIC/TSMC28nm/38pin/Synopsys_FC/floorplan/floorplan_compare_data.txt
@@ -1,6 +1,6 @@
 ################################################################################
 #
-# Created by fc compare_floorplans on Fri Oct 25 13:42:48 2024
+# Created by fc compare_floorplans on Tue Apr 15 19:30:51 2025
 #
 # DO NOT EDIT - automatically generated file
 #
@@ -8,37 +8,34 @@
 
 START nanosoc_chip_pads
  MACROS
-  u_nanosoc_chip/u_system/u_ss_cpu/u_region_bootrom_0/u_bootrom_cpu_0/u_bootrom/u_sl_rom { {140.0000 919.4450} {304.6650 970.7000} }
-  u_nanosoc_chip/u_system/u_ss_cpu/u_region_imem_0/u_imem_0/u_sram/genblk1.u_sram { {626.6800 781.1650} {798.8600 970.7000} }
-  u_nanosoc_chip/u_system/u_ss_cpu/u_region_dmem_0/u_dmem_0/u_sram/genblk1.u_sram { {798.8600 781.1650} {971.0400 970.7000} }
-  u_nanosoc_chip/u_system/u_ss_expansion/u_region_expram_l/u_expram_l/u_sram/genblk1.u_sram { {798.8600 563.3200} {971.0400 752.8550} }
-  u_nanosoc_chip/u_system/u_ss_expansion/u_region_expram_h/u_expram_h/u_sram/genblk1.u_sram { {626.6800 563.3200} {798.8600 752.8550} }
+  u_nanosoc_chip/u_system/u_ss_cpu/u_region_bootrom_0/u_bootrom_cpu_0/u_bootrom/u_sl_rom { {180.0000 1399.3550} {275.0500 1430.4000} }
+  u_nanosoc_chip/u_system/u_ss_cpu/u_region_imem_0/u_imem_0/u_sram/genblk1.u_sram { {758.9200 1051.3300} {931.1000 1240.8650} }
+  u_nanosoc_chip/u_system/u_ss_cpu/u_region_dmem_0/u_dmem_0/u_sram/genblk1.u_sram { {586.7400 1051.3300} {758.9200 1240.8650} }
+  u_nanosoc_chip/u_system/u_ss_expansion/u_region_expram_l/u_expram_l/u_sram/genblk1.u_sram { {758.9200 1240.8650} {931.1000 1430.4000} }
+  u_nanosoc_chip/u_system/u_ss_expansion/u_region_expram_h/u_expram_h/u_sram/genblk1.u_sram { {586.7400 1240.8650} {758.9200 1430.4000} }
  PINS
-  VDDIO { {555.5200 555.3500} {555.5201 555.3501} }
-  VSSIO { {555.5200 555.3500} {555.5201 555.3501} }
-  VDD { {555.5200 555.3500} {555.5201 555.3501} }
-  VSS { {555.5200 555.3500} {555.5201 555.3501} }
-  VDDACC { {555.5200 555.3500} {555.5201 555.3501} }
-  SE { {555.5200 555.3500} {555.5201 555.3501} }
-  CLK { {555.5200 555.3500} {555.5201 555.3501} }
-  TEST { {555.5200 555.3500} {555.5201 555.3501} }
-  NRST { {555.5200 555.3500} {555.5201 555.3501} }
-  P0[7] { {555.5200 555.3500} {555.5201 555.3501} }
-  P0[6] { {555.5200 555.3500} {555.5201 555.3501} }
-  P0[5] { {555.5200 555.3500} {555.5201 555.3501} }
-  P0[4] { {555.5200 555.3500} {555.5201 555.3501} }
-  P0[3] { {555.5200 555.3500} {555.5201 555.3501} }
-  P0[2] { {555.5200 555.3500} {555.5201 555.3501} }
-  P0[1] { {555.5200 555.3500} {555.5201 555.3501} }
-  P0[0] { {555.5200 555.3500} {555.5201 555.3501} }
-  P1[7] { {555.5200 555.3500} {555.5201 555.3501} }
-  P1[6] { {555.5200 555.3500} {555.5201 555.3501} }
-  P1[5] { {555.5200 555.3500} {555.5201 555.3501} }
-  P1[4] { {555.5200 555.3500} {555.5201 555.3501} }
-  P1[3] { {555.5200 555.3500} {555.5201 555.3501} }
-  P1[2] { {555.5200 555.3500} {555.5201 555.3501} }
-  P1[1] { {555.5200 555.3500} {555.5201 555.3501} }
-  P1[0] { {555.5200 555.3500} {555.5201 555.3501} }
-  SWDIO { {555.5200 555.3500} {555.5201 555.3501} }
-  SWDCK { {555.5200 555.3500} {555.5201 555.3501} }
+  VDDIO { {1110.7600 804.6750} {1111.1000 804.7250} }
+  VSSIO { {555.5750 1610.1200} {555.6250 1610.4000} }
+  SE { {0.0000 804.6750} {0.3400 804.7250} }
+  CLK { {70.0500 222.0150} {73.0500 238.0650} }
+  TEST { {1038.0500 797.1750} {1041.0500 813.2250} }
+  NRST { {70.0500 352.0550} {73.0500 368.1050} }
+  P0[7] { {920.2500 70.0500} {936.3000 73.0500} }
+  P0[6] { {70.0500 1262.3350} {73.0500 1278.3850} }
+  P0[5] { {70.0500 1132.2950} {73.0500 1148.3450} }
+  P0[4] { {70.0500 1002.2550} {73.0500 1018.3050} }
+  P0[3] { {70.0500 872.2150} {73.0500 888.2650} }
+  P0[2] { {70.0500 742.1750} {73.0500 758.2250} }
+  P0[1] { {70.0500 612.1350} {73.0500 628.1850} }
+  P0[0] { {70.0500 482.0950} {73.0500 498.1450} }
+  P1[7] { {257.6300 70.0500} {273.6800 73.0500} }
+  P1[6] { {340.4550 70.0500} {356.5050 73.0500} }
+  P1[5] { {423.2850 70.0500} {439.3350 73.0500} }
+  P1[4] { {506.1100 70.0500} {522.1600 73.0500} }
+  P1[3] { {588.9400 70.0500} {604.9900 73.0500} }
+  P1[2] { {671.7650 70.0500} {687.8150 73.0500} }
+  P1[1] { {754.5950 70.0500} {770.6450 73.0500} }
+  P1[0] { {837.4200 70.0500} {853.4700 73.0500} }
+  SWDIO { {1038.0500 1079.2550} {1041.0500 1095.3050} }
+  SWDCK { {1038.0500 1361.3350} {1041.0500 1377.3850} }
 END nanosoc_chip_pads
diff --git a/ASIC/TSMC28nm/38pin/Synopsys_FC/floorplan/fp.tcl b/ASIC/TSMC28nm/38pin/Synopsys_FC/floorplan/fp.tcl
index 059b00a2130c7fac183d69ce138f595af3ad6e48..3b8ca2a23e80958e8fc05b2677b2aa14fe69c770 100644
--- a/ASIC/TSMC28nm/38pin/Synopsys_FC/floorplan/fp.tcl
+++ b/ASIC/TSMC28nm/38pin/Synopsys_FC/floorplan/fp.tcl
@@ -1,6 +1,6 @@
 ################################################################################
 #
-# Created by fc write_floorplan on Fri Oct 25 13:42:48 2024
+# Created by fc write_floorplan on Tue Apr 15 19:30:50 2025
 #
 ################################################################################
 
@@ -20,107 +20,42 @@ read_def  ${_dirName__0}/floorplan.def
 set cellInst [get_cells { \
     u_nanosoc_chip/u_system/u_ss_cpu/u_region_bootrom_0/u_bootrom_cpu_0/u_bootrom/u_sl_rom \
     }]
-set_attribute -quiet -objects $cellInst -name orientation -value R0
-set_attribute -quiet -objects $cellInst -name origin -value { 140.0000 919.4450 \
-    }
+set_attribute -quiet -objects $cellInst -name orientation -value R90
+set_attribute -quiet -objects $cellInst -name origin -value { 275.0500 \
+    1399.3550 }
 set_attribute -quiet -objects $cellInst -name status -value placed
-create_keepout_margin -type hard -outer { 1.0000 1.0000 1.0000 1.0000 } { \
-    u_nanosoc_chip/u_system/u_ss_cpu/u_region_bootrom_0/u_bootrom_cpu_0/u_bootrom/u_sl_rom \
-    }
-create_keepout_margin -type soft -outer { 2.0000 2.0000 2.0000 2.0000 } { \
-    u_nanosoc_chip/u_system/u_ss_cpu/u_region_bootrom_0/u_bootrom_cpu_0/u_bootrom/u_sl_rom \
-    }
-create_keepout_margin -type hard_macro -outer { 1.0000 1.0000 1.0000 1.0000 } { \
-    u_nanosoc_chip/u_system/u_ss_cpu/u_region_bootrom_0/u_bootrom_cpu_0/u_bootrom/u_sl_rom \
-    }
-create_keepout_margin -type routing_blockage -outer { 2.0000 2.0000 2.0000 \
-    2.0000 } -layers { M1 VIA1 M2 VIA2 M3 VIA3 M4 } { \
-    u_nanosoc_chip/u_system/u_ss_cpu/u_region_bootrom_0/u_bootrom_cpu_0/u_bootrom/u_sl_rom \
-    }
 
 set cellInst [get_cells { \
     u_nanosoc_chip/u_system/u_ss_cpu/u_region_imem_0/u_imem_0/u_sram/genblk1.u_sram \
     }]
 set_attribute -quiet -objects $cellInst -name orientation -value R90
-set_attribute -quiet -objects $cellInst -name origin -value { 798.8600 781.1650 \
-    }
+set_attribute -quiet -objects $cellInst -name origin -value { 931.1000 \
+    1051.3300 }
 set_attribute -quiet -objects $cellInst -name status -value placed
-create_keepout_margin -type hard -outer { 1.0000 1.0000 1.0000 1.0000 } { \
-    u_nanosoc_chip/u_system/u_ss_cpu/u_region_imem_0/u_imem_0/u_sram/genblk1.u_sram \
-    }
-create_keepout_margin -type soft -outer { 2.0000 2.0000 2.0000 2.0000 } { \
-    u_nanosoc_chip/u_system/u_ss_cpu/u_region_imem_0/u_imem_0/u_sram/genblk1.u_sram \
-    }
-create_keepout_margin -type hard_macro -outer { 1.0000 1.0000 1.0000 1.0000 } { \
-    u_nanosoc_chip/u_system/u_ss_cpu/u_region_imem_0/u_imem_0/u_sram/genblk1.u_sram \
-    }
-create_keepout_margin -type routing_blockage -outer { 2.0000 2.0000 2.0000 \
-    2.0000 } -layers { M1 VIA1 M2 VIA2 M3 VIA3 M4 } { \
-    u_nanosoc_chip/u_system/u_ss_cpu/u_region_imem_0/u_imem_0/u_sram/genblk1.u_sram \
-    }
 
 set cellInst [get_cells { \
     u_nanosoc_chip/u_system/u_ss_cpu/u_region_dmem_0/u_dmem_0/u_sram/genblk1.u_sram \
     }]
 set_attribute -quiet -objects $cellInst -name orientation -value R90
-set_attribute -quiet -objects $cellInst -name origin -value { 971.0400 781.1650 \
-    }
+set_attribute -quiet -objects $cellInst -name origin -value { 758.9200 \
+    1051.3300 }
 set_attribute -quiet -objects $cellInst -name status -value placed
-create_keepout_margin -type hard -outer { 1.0000 1.0000 1.0000 1.0000 } { \
-    u_nanosoc_chip/u_system/u_ss_cpu/u_region_dmem_0/u_dmem_0/u_sram/genblk1.u_sram \
-    }
-create_keepout_margin -type soft -outer { 2.0000 2.0000 2.0000 2.0000 } { \
-    u_nanosoc_chip/u_system/u_ss_cpu/u_region_dmem_0/u_dmem_0/u_sram/genblk1.u_sram \
-    }
-create_keepout_margin -type hard_macro -outer { 1.0000 1.0000 1.0000 1.0000 } { \
-    u_nanosoc_chip/u_system/u_ss_cpu/u_region_dmem_0/u_dmem_0/u_sram/genblk1.u_sram \
-    }
-create_keepout_margin -type routing_blockage -outer { 2.0000 2.0000 2.0000 \
-    2.0000 } -layers { M1 VIA1 M2 VIA2 M3 VIA3 M4 } { \
-    u_nanosoc_chip/u_system/u_ss_cpu/u_region_dmem_0/u_dmem_0/u_sram/genblk1.u_sram \
-    }
 
 set cellInst [get_cells { \
     u_nanosoc_chip/u_system/u_ss_expansion/u_region_expram_l/u_expram_l/u_sram/genblk1.u_sram \
     }]
 set_attribute -quiet -objects $cellInst -name orientation -value R90
-set_attribute -quiet -objects $cellInst -name origin -value { 971.0400 563.3200 \
-    }
+set_attribute -quiet -objects $cellInst -name origin -value { 931.1000 \
+    1240.8650 }
 set_attribute -quiet -objects $cellInst -name status -value placed
-create_keepout_margin -type hard -outer { 1.0000 1.0000 1.0000 1.0000 } { \
-    u_nanosoc_chip/u_system/u_ss_expansion/u_region_expram_l/u_expram_l/u_sram/genblk1.u_sram \
-    }
-create_keepout_margin -type soft -outer { 2.0000 2.0000 2.0000 2.0000 } { \
-    u_nanosoc_chip/u_system/u_ss_expansion/u_region_expram_l/u_expram_l/u_sram/genblk1.u_sram \
-    }
-create_keepout_margin -type hard_macro -outer { 1.0000 1.0000 1.0000 1.0000 } { \
-    u_nanosoc_chip/u_system/u_ss_expansion/u_region_expram_l/u_expram_l/u_sram/genblk1.u_sram \
-    }
-create_keepout_margin -type routing_blockage -outer { 2.0000 2.0000 2.0000 \
-    2.0000 } -layers { M1 VIA1 M2 VIA2 M3 VIA3 M4 } { \
-    u_nanosoc_chip/u_system/u_ss_expansion/u_region_expram_l/u_expram_l/u_sram/genblk1.u_sram \
-    }
 
 set cellInst [get_cells { \
     u_nanosoc_chip/u_system/u_ss_expansion/u_region_expram_h/u_expram_h/u_sram/genblk1.u_sram \
     }]
 set_attribute -quiet -objects $cellInst -name orientation -value R90
-set_attribute -quiet -objects $cellInst -name origin -value { 798.8600 563.3200 \
-    }
+set_attribute -quiet -objects $cellInst -name origin -value { 758.9200 \
+    1240.8650 }
 set_attribute -quiet -objects $cellInst -name status -value placed
-create_keepout_margin -type hard -outer { 1.0000 1.0000 1.0000 1.0000 } { \
-    u_nanosoc_chip/u_system/u_ss_expansion/u_region_expram_h/u_expram_h/u_sram/genblk1.u_sram \
-    }
-create_keepout_margin -type soft -outer { 2.0000 2.0000 2.0000 2.0000 } { \
-    u_nanosoc_chip/u_system/u_ss_expansion/u_region_expram_h/u_expram_h/u_sram/genblk1.u_sram \
-    }
-create_keepout_margin -type hard_macro -outer { 1.0000 1.0000 1.0000 1.0000 } { \
-    u_nanosoc_chip/u_system/u_ss_expansion/u_region_expram_h/u_expram_h/u_sram/genblk1.u_sram \
-    }
-create_keepout_margin -type routing_blockage -outer { 2.0000 2.0000 2.0000 \
-    2.0000 } -layers { M1 VIA1 M2 VIA2 M3 VIA3 M4 } { \
-    u_nanosoc_chip/u_system/u_ss_expansion/u_region_expram_h/u_expram_h/u_sram/genblk1.u_sram \
-    }
 
 
 ################################################################################
@@ -140,22 +75,6 @@ remove_bounds -all
 ################################################################################
 
 
-################################################################################
-# Blockages
-################################################################################
-
-remove_routing_blockages -all -force
-
-remove_placement_blockages -all -force
-
-remove_pin_blockages -all
-
-remove_shaping_blockages -all
-
-################################################################################
-# User attributes of blockages
-################################################################################
-
 ################################################################################
 # Module Boundaries
 ################################################################################
@@ -166,35 +85,10 @@ if [sizeof_collection $hbCells] {
 }
 
 
-################################################################################
-# I/O guides
-################################################################################
-
-remove_io_guides -all
-
-create_io_guide -name main_io_ring.left -side left -line { {0.0000 110.0000} \
-    890.7000 } -offset {0.0000 0.0000} -pad_cells { uPAD_CLK_I uPAD_NRST_I \
-    uPAD_P0_00 uPAD_P0_01 uPAD_P0_02 uPAD_P0_03 uPAD_P0_04 uPAD_P0_05 uPAD_P0_06 }
-create_io_guide -name main_io_ring.bottom -side bottom -line { {1001.0400 \
-    0.0000} 891.0400 } -offset {0.0000 0.0000} -pad_cells { uPAD_P0_07 \
-    uPAD_P1_00 uPAD_P1_01 uPAD_P1_02 uPAD_P1_03 uPAD_P1_04 uPAD_P1_05 \
-    uPAD_P1_06 uPAD_P1_07 uPAD_SE_I }
-create_io_guide -name main_io_ring.right -side right -line { {1111.0400 \
-    1000.7000} 890.7000 } -offset {0.0000 0.0000} -pad_cells { uPAD_SWDCK_I \
-    uPAD_SWDIO_IO uPAD_TEST_I uPAD_VDDACC_0 uPAD_VDDACC_1 uPAD_VDDACC_2 \
-    uPAD_VDDIO_0 uPAD_VDDIO_2 uPAD_VDDIO_3 }
-create_io_guide -name main_io_ring.top -side top -line { {110.0000 1110.7000} \
-    891.0400 } -offset {0.0000 0.0000} -pad_cells { uPAD_VDD_0 uPAD_VDD_1 \
-    uPAD_VDD_2 uPAD_VDD_3 uPAD_VSSIO_0 uPAD_VSSIO_1 uPAD_VSS_0 uPAD_VSS_1 \
-    uPAD_VSS_2 uPAD_VSS_3 }
-
-################################################################################
-# User attributes of I/O guides
-################################################################################
-
-
 ################################################################################
 # User attributes of current block
 ################################################################################
 
+set_attribute [current_design] achieved_target_routing_density 0.0
+set_attribute [current_design] expanded_util 0.71
 
diff --git a/ASIC/TSMC28nm/38pin/Synopsys_FC/init_placement.tcl b/ASIC/TSMC28nm/38pin/Synopsys_FC/init_placement.tcl
deleted file mode 100644
index 1fe3a0cc10b4fe2d754395cfd45684879e04b451..0000000000000000000000000000000000000000
--- a/ASIC/TSMC28nm/38pin/Synopsys_FC/init_placement.tcl
+++ /dev/null
@@ -1,16 +0,0 @@
-set_parasitic_parameters -early_spec cbest -early_temperature -40 -late_spec cworst -late_temperature 125 -library nanosoc_chip_pads.dlib
-set_operating_conditions -max_library cln28ht -max ssg_cworstt_max_0p81v_125c -min_library cln28ht -min ffg_cbestt_min_0p99v_m40c
-set_temperature -40 -min 125 -corners default
-set_voltage 0.81 -min 0.99 -corners default
-
-
-set_voltage -min 0.99 -corners default -object_list [get_supply_nets {VDD}] 0.81
-set_voltage -min 0.99 -corners default -object_list [get_supply_nets {VDD_SYS}] 0.81
-set_voltage -min 0.99 -corners default -object_list [get_supply_nets {VDD_DBG}] 0.81
-set_voltage -min 0.99 -corners default -object_list [get_supply_nets {VDDACC}] 0.81
-set_voltage -min 0.0 -corners default -object_list [get_supply_nets {VSS}] 0.0
-redirect -tee -file ./precompile_checks.log {compile_fusion -check_only}
-
-explore_logic_hierarchy -create_module_boundary -nested -cell [get_cells -design [current_block] {u_nanosoc_chip u_nanosoc_chip_cfg}]
-explore_logic_hierarchy -place -rectangular
-save_lib nanosoc_chip_pads.dlib
diff --git a/ASIC/TSMC28nm/38pin/Synopsys_FC/makefile b/ASIC/TSMC28nm/38pin/Synopsys_FC/makefile
new file mode 100644
index 0000000000000000000000000000000000000000..3345d9ef0039b085e955a2cae92066bf5c8c43d6
--- /dev/null
+++ b/ASIC/TSMC28nm/38pin/Synopsys_FC/makefile
@@ -0,0 +1,30 @@
+LIBS_DIR:=./libs
+REPORT_DIR:=./reports
+LOG_DIR:=./logs
+WORK_DIR:=./work
+
+make_directories:
+	mkdir -p $(LIBS_DIR)
+	mkdir -p $(REPORT_DIR)
+	mkdir -p $(LOG_DIR)
+	mkdir -p $(WORK_DIR)
+
+generate_libs: make_directories
+	cd $(LIBS_DIR); lc_shell -f ../scripts/synopsys_lib_conversion.tcl;
+
+fusion_init_design:
+	cd $(WORK_DIR); fc_shell -f ../scripts/1_design_setup.tcl;
+
+fusion_synthesis:
+	cd $(WORK_DIR); fc_shell -f ../scripts/2_synthesis.tcl;
+
+fusion_clock_opt:
+	cd $(WORK_DIR); fc_shell -f ../scripts/3_clock.tcl 
+
+fusion_route:
+	cd $(WORK_DIR); fc_shell;
+
+fusion_full_flow: fusion_init_design fusion_synthesis fusion_clock_opt fusion_route
+
+all: generate_libs fusion_full_flow
+
diff --git a/ASIC/TSMC28nm/38pin/Synopsys_FC/nanosoc_chip_pads.upf b/ASIC/TSMC28nm/38pin/Synopsys_FC/nanosoc_chip_pads.upf
deleted file mode 100644
index 63e386c00a7042c76b577de20016ba8100d2af98..0000000000000000000000000000000000000000
--- a/ASIC/TSMC28nm/38pin/Synopsys_FC/nanosoc_chip_pads.upf
+++ /dev/null
@@ -1,138 +0,0 @@
-
-################################################################################
-# Create power domains
-################################################################################
-create_power_domain TOP
-create_power_domain ACCEL  -elements {u_nanosoc_chip/u_system/u_ss_expansion/u_region_exp/u_ss_accelerator}
-create_power_domain PD_SYS -elements  u_nanosoc_chip/u_system/u_ss_cpu/u_cpu_0/u_slcorem0_integration/u_cortexm0/u_top/u_sys
-create_power_domain PD_DBG -elements {u_nanosoc_chip/u_system/u_ss_cpu/u_cpu_0/u_slcorem0_integration/u_cortexm0/u_top/u_dbg \
-                                      u_nanosoc_chip/u_system/u_ss_cpu/u_cpu_0/u_slcorem0_integration/u_dap/u_ap}
-
-################################################################################
-# Create and logically connect power ports and nets
-################################################################################
-
-# Always on VDD
-create_supply_port VDD
-create_supply_net  VDD -domain TOP
-create_supply_net  VDD -domain PD_SYS -reuse
-create_supply_net  VDD -domain PD_DBG -reuse
-connect_supply_net VDD -ports VDD
-
-# Ground
-create_supply_port VSS
-create_supply_net  VSS -domain TOP
-create_supply_net  VSS -domain PD_SYS -reuse
-create_supply_net  VSS -domain PD_DBG -reuse
-create_supply_net  VSS -domain ACCEL -reuse
-connect_supply_net VSS -ports VSS
-
-# Switched VDD
-create_supply_net VDD_SYS -domain PD_SYS -resolve parallel
-create_supply_net VDD_DBG -domain PD_DBG -resolve parallel
-
-# VDDACC 
-create_supply_port VDDACC
-create_supply_net VDDACC -domain ACCEL
-connect_supply_net VDDACC -ports VDDACC
-
-################################################################################
-# Assign power supplies to power domains
-################################################################################
-
-set_domain_supply_net TOP    -primary_power_net VDD     -primary_ground_net VSS
-set_domain_supply_net ACCEL  -primary_power_net VDDACC  -primary_ground_net VSS 
-set_domain_supply_net PD_SYS -primary_power_net VDD_SYS -primary_ground_net VSS
-set_domain_supply_net PD_DBG -primary_power_net VDD_DBG -primary_ground_net VSS
-
-################################################################################
-# Create Power Switches
-################################################################################
-
-create_power_switch uswitch1 -domain PD_SYS \
-                             -input_supply_port  {VDD     VDD} \
-                             -output_supply_port {VDD_SYS VDD_SYS} \
-	                     -control_port {SYSPWRDOWN u_nanosoc_chip/u_system/u_ss_cpu/u_cpu_0/u_core_prmu/u_cortexm0_pmu/SYSPWRDOWN} \
-                             -ack_port {SYSPWRDOWNACK u_nanosoc_chip/u_system/u_ss_cpu/u_cpu_0/u_core_prmu/u_cortexm0_pmu/SYSPWRDOWNACK {SYSPWRDOWN}} \
-                             -ack_delay {SYSPWRDOWNACK 65000} \
-                             -on_state  {on_state  VDD {!SYSPWRDOWN}} \
-                             -off_state {off_state     { SYSPWRDOWN}}
-
-create_power_switch uswitch2 -domain PD_DBG \
-                             -input_supply_port  {VDD     VDD} \
-                             -output_supply_port {VDD_DBG VDD_DBG} \
-	                     -control_port {DBGPWRDOWN u_nanosoc_chip/u_system/u_ss_cpu/u_cpu_0/u_core_prmu/u_cortexm0_pmu/DBGPWRDOWN} \
-                             -ack_port {DBGPWRDOWNACK u_nanosoc_chip/u_system/u_ss_cpu/u_cpu_0/u_core_prmu/u_cortexm0_pmu/DBGPWRDOWNACK {DBGPWRDOWN}} \
-                             -ack_delay {DBGPWRDOWNACK 65000} \
-                             -on_state  {on_state  VDD {!DBGPWRDOWN}} \
-                             -off_state {off_state     { DBGPWRDOWN}}
-
-################################################################################
-# Set Isolation Controls
-#   - iso_low1, iso_high1 at PD_SYS outputs
-#   - iso_low2 at PD_DBG outputs
-################################################################################
-
-set_isolation         iso_low1 -domain PD_SYS \
-                               -isolation_power_net VDD \
-                               -isolation_ground_net VSS \
-                               -clamp_value 0 \
-                               -applies_to outputs
-
-# The signals that need to be clamped HIGH
-set_isolation        iso_high1 -domain PD_SYS \
-                               -isolation_power_net VDD \
-                               -isolation_ground_net VSS \
-                               -clamp_value 1 \
-                               -elements {u_nanosoc_chip/u_system/u_ss_cpu/u_cpu_0/u_slcorem0_integration/u_cortexm0/u_top/u_sys/sleeping_o \
-                                          u_nanosoc_chip/u_system/u_ss_cpu/u_cpu_0/u_slcorem0_integration/u_cortexm0/u_top/u_sys/sleep_deep_o}
-
-set_isolation_control iso_low1 -domain PD_SYS \
-                               -isolation_signal u_nanosoc_chip/u_system/u_ss_cpu/u_cpu_0/u_core_prmu/u_cortexm0_pmu/SYSISOLATEn \
-                               -isolation_sense low \
-                               -location parent
-
-set_isolation_control iso_high1 -domain PD_SYS \
-                               -isolation_signal u_nanosoc_chip/u_system/u_ss_cpu/u_cpu_0/u_core_prmu/u_cortexm0_pmu/SYSISOLATEn \
-                               -isolation_sense low \
-                               -location parent
-
-set_isolation         iso_low2 -domain PD_DBG \
-                               -isolation_power_net VDD \
-                               -isolation_ground_net VSS \
-                               -clamp_value 0 \
-                               -applies_to outputs
-
-set_isolation_control iso_low2 -domain PD_DBG \
-                               -isolation_signal u_nanosoc_chip/u_system/u_ss_cpu/u_cpu_0/u_core_prmu/u_cortexm0_pmu/DBGISOLATEn \
-                               -isolation_sense low \
-                               -location parent
-
-################################################################################
-# Set Retention 
-################################################################################
-
-set_retention drff -domain PD_SYS -retention_power_net VDD -retention_ground_net VSS
-set_retention_control drff -domain PD_SYS -save_signal {u_nanosoc_chip/u_system/u_ss_cpu/u_cpu_0/u_core_prmu/u_cortexm0_pmu/SYSRETAINn high} \
-                           -restore_signal {u_nanosoc_chip/u_system/u_ss_cpu/u_cpu_0/u_core_prmu/u_cortexm0_pmu/SYSRETAINn low}
-
-map_retention_cell drff -domain PD_SYS -lib_cell_type DRFF
-
-################################################################################
-# Define port states
-################################################################################
-
-add_port_state VSS              -state {on 0.0 0.0 0.0}
-add_port_state VDD              -state {on 0.81 0.9 0.99}
-add_port_state VDDACC           -state {on 0.81 0.9 0.99}
-add_port_state uswitch1/VDD_SYS -state {on 0.81 0.9 0.99} -state {off 0.0 0.0 0.0}
-add_port_state uswitch2/VDD_DBG -state {on 0.81 0.9 0.99} -state {off 0.0 0.0 0.0}
-
-################################################################################
-# Define power state table
-################################################################################
-
-create_pst cm0_pst -supplies           {VSS  VDD  VDD_SYS  VDD_DBG VDDACC}
-add_pst_state run -pst cm0_pst -state  {on   on   on       off     on    }
-add_pst_state slp -pst cm0_pst -state  {on   on   off      off     on    }
-add_pst_state dbg -pst cm0_pst -state  {on   on   on       on      on    }
diff --git a/ASIC/TSMC28nm/38pin/Synopsys_FC/power_plan.tcl b/ASIC/TSMC28nm/38pin/Synopsys_FC/power_plan.tcl
deleted file mode 100644
index 014f1a83598cbc7e4a24a45563740f22984b44d7..0000000000000000000000000000000000000000
--- a/ASIC/TSMC28nm/38pin/Synopsys_FC/power_plan.tcl
+++ /dev/null
@@ -1,28 +0,0 @@
-connect_pg_net -create_nets_only
-connect_pg_net -automatic
-
-create_pg_ring_pattern ring_pattern -horizontal_layer M7 -horizontal_width {5} -horizontal_spacing {2}\
-                                    -vertical_layer M8 -vertical_width {5} -vertical_spacing {2}
-set_pg_strategy core_ring -pattern {{name: ring_pattern} {nets: {VDD VDDACC VSS}} {offset: {3 3}}} -core 
-compile_pg -strategies core_ring
-
-
-create_pg_mesh_pattern mesh_pattern -layers {{{vertical_layer: M8} {width: 1} {pitch: 30} {offset: 20}} \
-                                                {{horizontal_layer: M5} {width: 1} {pitch: 30} {offset: 20}}}
-set_pg_strategy M5M8_mesh -pattern {{name: mesh_pattern} {nets: {VDD VDDACC VSS}}} -core
-compile_pg -strategies M5M8_mesh
-
-
-create_pg_std_cell_conn_pattern std_pattern -layers {M1} -check_std_cell_drc false -mark_as_follow_pin false -rail_width {0.13 0.13}
-set_pg_strategy std_cell_accel -voltage_areas ACCEL -pattern {{name : std_pattern}{nets : {VDDACC VSS}}}
-set_pg_strategy std_cell_dbg -voltage_areas PD_DBG -pattern {{name : std_pattern}{nets : {VDD_DBG VSS}}}
-set_pg_strategy std_cell_sys -voltage_areas PD_SYS -pattern {{name : std_pattern}{nets : {VDD_SYS VSS}}}
-
-set_pg_strategy std_cell_strat -voltage_areas DEFAULT_VA -pattern {{name: std_pattern} {nets: {VDD VSS}}}
-
-compile_pg -strategies std_cell_accel
-compile_pg -strategies std_cell_dbg
-compile_pg -strategies std_cell_sys
-
-
-compile_pg -strategies std_cell_strat
diff --git a/ASIC/TSMC28nm/38pin/Synopsys_FC/scripts/1_design_setup.tcl b/ASIC/TSMC28nm/38pin/Synopsys_FC/scripts/1_design_setup.tcl
new file mode 100644
index 0000000000000000000000000000000000000000..019bbb94ae227dad12d5a45a121ef92013bd863b
--- /dev/null
+++ b/ASIC/TSMC28nm/38pin/Synopsys_FC/scripts/1_design_setup.tcl
@@ -0,0 +1,239 @@
+# Import verilog and setup libraries
+set_host_options -max_cores 8 -num_processes 8
+
+# Set paths !!! Please edit for your system !!!
+set sc9mcpp240z_base_path /home/dwn1c21/SoC-Labs/phys_ip/arm/tsmc/cln28ht/sc12mcpp140z_base_svt_c35/r2p0
+set cln28ht_tech_path /home/dwn1c21/SoC-Labs/phys_ip/arm/tsmc/cln28ht/arm_tech/r1p0
+
+set TLU_dir /home/dwn1c21/SoC-Labs/phys_ip/arm/tsmc/cln28ht/arm_tech/r1p0/synopsys_tluplus/1p8m_5x2z_utalrdl
+
+set TLU_cbest $TLU_dir/cbest.tluplus
+set TLU_cbest_T $TLU_dir/cbest_T.tluplus
+set TLU_cworst_T $TLU_dir/cworst_T.tluplus
+set TLU_cworst $TLU_dir/cworst.tluplus
+set TLU_rcbest_T $TLU_dir/rcbest_T.tluplus
+set TLU_rcbest $TLU_dir/rcbest.tluplus
+set TLU_rcworst_T $TLU_dir/rcworst_T.tluplus
+set TLU_rcworst $TLU_dir/rcworst.tluplus
+set TLU_typical $TLU_dir/typical.tluplus
+set TLU_map $TLU_dir/tluplus.map
+
+#Create the design library 
+create_lib nanosoc_chip_pads.dlib \
+    -technology $cln28ht_tech_path/milkyway/1p8m_5x2z_utalrdl/sc12mcpp140z_tech.tf \
+    -ref_libs {../libs/cln28ht/ ../libs/cln28ht_pmk/ ../libs/cln28ht_ret/ ../libs/sram_16k/ ../libs/sram_32k/ ../libs/sram_64k/ ../libs/rom_via/ ../libs/io_lib/ ../libs/pad_lib/ ../libs/bump_lib/}
+
+source $env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/flist/dc_flist.tcl
+analyze -format verilog $env(SOCLABS_PROJECT_DIR)/nanosoc_tech/ASIC/nanosoc_chip_pads/tsmc28hpcp/nanosoc_chip_pads_38pin.v
+
+elaborate nanosoc_chip_pads
+set_top_module nanosoc_chip_pads
+
+redirect -tee -file ../logs/lib_cell_summary.log {report_lib -cell_summary cln28ht}
+redirect -tee -file ../logs/lib_cell_pmk_summary.log {report_lib -cell_summary cln28ht_pmk}
+redirect -tee -file ../logs/lib_cell_ret_summary.log {report_lib -cell_summary cln28ht_ret}
+redirect -tee -file ../logs/lib_cell_bump_summary.log {report_lib -cell_summary bump_lib}
+
+remove_modes -all
+remove_corners -all
+remove_scenarios -all
+
+read_parasitic_tech -name cbest -tlup $TLU_cbest -layermap $TLU_map -sanity_check advanced
+read_parasitic_tech -name cbest_T -tlup $TLU_cbest_T -layermap $TLU_map -sanity_check advanced
+read_parasitic_tech -name cworst_T -tlup $TLU_cworst_T -layermap $TLU_map -sanity_check advanced
+read_parasitic_tech -name cworst -tlup $TLU_cworst -layermap $TLU_map -sanity_check advanced
+read_parasitic_tech -name rcbest_T -tlup $TLU_rcbest_T -layermap $TLU_map -sanity_check advanced
+read_parasitic_tech -name rcbest -tlup $TLU_rcbest -layermap $TLU_map -sanity_check advanced
+read_parasitic_tech -name rcworst_T -tlup $TLU_rcworst_T -layermap $TLU_map -sanity_check advanced
+read_parasitic_tech -name rcworst -tlup $TLU_rcworst -layermap $TLU_map -sanity_check advanced
+read_parasitic_tech -name typical -tlup $TLU_typical -layermap $TLU_map -sanity_check advanced
+
+set_technology -node 28
+
+## Setup scenarios as below
+create_mode hold_mode
+create_corner hold_corner
+create_scenario -name hold_scenario -mode hold_mode -corner hold_corner
+set_scenario_status hold_scenario -none -setup false -hold true -leakage_power true -dynamic_power false -max_transition true -max_capacitance false -min_capacitance true -active true
+
+set_app_options -name time.convert_constraint_from_bc_wc -value bc_only
+read_sdc ../../../constraints.sdc
+
+
+create_mode setup_mode
+create_corner setup_corner
+create_scenario -name setup_scenario -mode setup_mode -corner setup_corner
+set_scenario_status setup_scenario -none -setup true -hold false -leakage_power true -dynamic_power true -max_transition true -max_capacitance true -min_capacitance false -active true
+
+set_app_options -name time.convert_constraint_from_bc_wc -value wc_only
+read_sdc ../../../constraints.sdc
+
+set_app_options -name time.convert_constraint_from_bc_wc -value none
+
+## hold - FFGNP V=+10% T=-40 and 125, parasitics cworst cbest rcworst rcbest
+#         SSSGNP V=-10%, T=-40 and 125, parasitics cworst and rcworst
+current_corner hold_corner
+set_parasitic_parameters -early_spec cbest -early_temperature -40 -late_spec cworst -late_temperature 125 -library nanosoc_chip_pads.dlib
+set_operating_conditions -max_library cln28ht -max ssg_cworstt_max_0p81v_125c -min_library cln28ht -min ffg_cbestt_min_0p99v_m40c
+set_temperature 125 -min -40 -corners hold_corner
+set_voltage 0.81 -min 0.99 -corners hold_corner
+
+## setup SSGNP V=-10%, T=-40 parasitics cworst_t rcworst_t
+#        TT V=-10%, T=85C parasitics cworst_t rcworst_t
+current_corner setup_corner
+set_parasitic_parameters -early_spec cworst_T -early_temperature -40 -late_spec rcworst_T -late_temperature 125 -library nanosoc_chip_pads.dlib
+set_operating_conditions -max_library cln28ht -max ssg_cworstt_max_0p81v_125c -min_library cln28ht -min tt_ctypical_max_0p90v_25c
+set_temperature 85 -min -40 -corners setup_corner
+set_voltage 0.81 -corners setup_corner
+
+
+## max transition - SSGNP V=-10% T=-40 P=cworst_t rcworst_t
+
+## typical power - TT V=V T=85C P=ctypical
+
+# Max IR drop - FFG V=V T=125 P=cworst
+
+# Signal EM - FFG V=V T=125 P=rcworst_c cworst_T
+
+redirect -file ../reports/design_setup.report_scenarios.rpt {report_scenarios} 
+
+save_block nanosoc_cip_pads
+save_lib nanosoc_chip_pads.dlib
+
+initialize_floorplan -control_type die -use_site_row -side_length {1111.1111 1611.11111} -core_offset {180}
+source ../floorplan/fp.tcl
+
+remove_io_guides -all 
+
+create_io_ring -name main_io -pad_cell_list {uPAD_CLK_I uPAD_NRST_I uPAD_P0_00 uPAD_P0_01 uPAD_P0_02 uPAD_P0_03 uPAD_P0_04 uPAD_P0_05 uPAD_P0_06 uPAD_P0_07 uPAD_P1_00 uPAD_P1_01 uPAD_P1_02 uPAD_P1_03 uPAD_P1_04 uPAD_P1_05 uPAD_P1_06 uPAD_P1_07 uPAD_SE_I uPAD_SWDCK_I uPAD_SWDIO_IO uPAD_TEST_I uPAD_VDDACC_0 uPAD_VDDACC_1 uPAD_VDDACC_2 uPAD_VDDIO_0 uPAD_VDDIO_2 uPAD_VDDIO_3 uPAD_VDD_0 uPAD_VDD_1 uPAD_VDD_2 uPAD_VDD_3 uPAD_VSSIO_0 uPAD_VSSIO_1 uPAD_VSS_0 uPAD_VSS_1 uPAD_VSS_2 uPAD_VSS_3}
+create_io_corner_cell {main_io.left main_io.top} -reference_cell PCORNER_G
+create_io_corner_cell {main_io.bottom main_io.left} -reference_cell PCORNER_G
+create_io_corner_cell {main_io.top main_io.right} -reference_cell PCORNER_G
+create_io_corner_cell {main_io.right main_io.bottom} -reference_cell PCORNER_G
+
+place_io
+create_io_filler_cells -io_guides [get_io_guides {main_io.top main_io.right main_io.bottom main_io.left}] -reference_cells PFILLER5_G -prefix io_filler
+create_io_filler_cells -io_guides [get_io_guides {main_io.top main_io.right main_io.bottom main_io.left}] -reference_cells PFILLER0005_G -prefix io_filler
+
+
+# Power Plan
+load_upf ../scripts/nanosoc_chip_pads.upf
+
+create_voltage_area -power_domains ACCEL 
+# create_voltage_area -power_domains PD_DBG
+# create_voltage_area -power_domains PD_SYS
+ 
+create_voltage_area_shape -voltage_area ACCEL \
+				-region {{{180.500 180.000} {925.150 1000.000}}} \
+				-guard_band {2 2}
+
+#create_voltage_area_shape -voltage_area PD_DBG \
+#				-region {{{140.000 673.000} {464.150 970.400}}} \
+#				-guard_band {2 2}
+#create_voltage_area_shape -voltage_area PD_SYS \
+#				-region {{{594.440 523.900} {1012.365 970.400}}} \
+#				-guard_band {2 2}
+
+create_pg_region {pg_accel} -voltage_area {ACCEL}
+# create_pg_region {pg_dbg} -voltage_area {PD_DBG}
+# create_pg_region {pg_sys} -voltage_area {PD_SYS}
+
+
+source ../scripts/power_plan.tcl
+
+save_block 
+save_lib nanosoc_chip_pads.dlib
+
+set topMetalLayer 8;
+set RDLMetal AP;
+set RDLVia RV;
+remove_antenna_rules
+
+define_antenna_layer_rule \
+  -mode 4 \
+  -layer "$RDLMetal" \
+  -ratio 2000 \
+  -diode_ratio {0.000025 0 8000 30000}
+
+define_antenna_rule \
+  -mode 1 \
+  -diode_mode 4 \
+  -metal_ratio 0 \
+  -cut_ratio 20
+
+define_antenna_layer_rule  \
+            -mode 1 \
+            -layer "M$topMetalLayer" \
+            -ratio 5000 \
+            -diode_ratio {0.000025 0 8000 50000}
+
+define_antenna_layer_rule  \
+            -mode 1 \
+            -layer "$RDLVia" \
+            -ratio 200 \
+            -diode_ratio {0.000025 0 83 400}
+
+for {set i 1} {$i < $topMetalLayer} {incr i} {
+  define_antenna_layer_rule  \
+    -mode 1 \
+    -layer "VIA$i" \
+    -ratio 20 \
+    -diode_ratio {0.000025 0 210 900}
+}
+
+define_antenna_rule  \
+  -mode 2 \
+  -diode_mode 4 \
+  -metal_ratio 0 \
+  -cut_ratio 0
+
+for {set i 1} {$i < $topMetalLayer} {incr i} {
+  define_antenna_layer_rule  \
+    -mode 2 \
+    -layer "M$i" \
+    -ratio 5000 \
+    -diode_ratio {0.000025 0 456 43000}
+}
+
+define_antenna_layer_rule  \
+    -mode 2 \
+    -layer "M$topMetalLayer" \
+    -ratio 5000 \
+    -diode_ratio {0.000025 0 8000 50000}
+
+for {set i 1} {$i < $topMetalLayer} {incr i} {
+  define_antenna_layer_rule  \
+    -mode 2 \
+    -layer "VIA$i" \
+    -ratio 900 \
+    -diode_ratio {0.000025 0 210 900}
+}
+
+##### Routing Option Related to Antenna Fixing #####
+set_parameter -name doAntennaConx -value 4 -module droute
+
+redirect -tee -file ../reports/antenna_rules.rpt {report_antenna_rules}
+
+set_voltage -min 0.99 -corners hold_corner -object_list [get_supply_nets {VDD}] 0.81
+set_voltage -min 0.99 -corners hold_corner -object_list [get_supply_nets {VDDACC}] 0.81
+set_voltage -min 1.98 -corners hold_corner -object_list [get_supply_nets {AVDDHV}] 1.62
+set_voltage -min 0.99 -corners hold_corner -object_list [get_supply_nets {AVDD}] 0.81
+set_voltage -min 0.0 -corners hold_corner -object_list [get_supply_nets {VSS}] 0.0
+set_voltage -min 0.0 -corners hold_corner -object_list [get_supply_nets {AGND}] 0.0
+
+set_voltage -corners setup_corner -object_list [get_supply_nets {VDD}] 0.81
+set_voltage -corners setup_corner -object_list [get_supply_nets {VDDACC}] 0.81
+set_voltage -corners setup_corner -object_list [get_supply_nets {AVDDHV}] 1.62
+set_voltage -corners setup_corner -object_list [get_supply_nets {AVDD}] 0.81
+set_voltage -corners setup_corner -object_list [get_supply_nets {VSS}] 0.0
+set_voltage -corners setup_corner -object_list [get_supply_nets {AGND}] 0.0
+
+
+redirect -tee -file ./precompile_checks.log {compile_fusion -check_only}
+
+explore_logic_hierarchy -create_module_boundary -nested -cell [get_cells -design [current_block] {u_nanosoc_chip u_nanosoc_chip_cfg}]
+explore_logic_hierarchy -place -rectangular
+
+
+save_block 
+save_lib nanosoc_chip_pads.dlib
diff --git a/ASIC/TSMC28nm/38pin/Synopsys_FC/scripts/2_synthesis.tcl b/ASIC/TSMC28nm/38pin/Synopsys_FC/scripts/2_synthesis.tcl
new file mode 100644
index 0000000000000000000000000000000000000000..0ee623a9325017a0259e7c81519296b7bc889405
--- /dev/null
+++ b/ASIC/TSMC28nm/38pin/Synopsys_FC/scripts/2_synthesis.tcl
@@ -0,0 +1,29 @@
+open_lib nanosoc_chip_pads.dlib/
+open_block nanosoc_chip_pads
+
+set_host_options -max_cores 16 -num_processes 16
+set REPORT_DIR ../reports
+set LOG_DIR ../logs
+
+set_qor_strategy -stage synthesis -metric timing
+
+
+# Compile fusion takes about 6.5 hrs to run
+set_stage -step synthesis
+compile_fusion -to initial_opto
+
+redirect -tee -file $REPORT_DIR/timing_02a_initial_opto_max.rep {report_timing -delay_type max}
+redirect -tee -file $REPORT_DIR/timing_02a_initial_opto_min.rep {report_timing -delay_type min}
+save_block 
+
+set_stage -step compile_place
+compile_fusion -from final_place
+
+redirect -tee -file $REPORT_DIR/timing_02b_compile_fusion_max.rep {report_timing -delay_type max}
+redirect -tee -file $REPORT_DIR/timing_02b_compile_fusion_min.rep {report_timing -delay_type min}
+
+redirect -tee -file $REPORT_DIR/qor_02_compile_fusion.rep {report_qor}
+save_block
+save_lib nanosoc_chip_pads.dlib
+
+exit
diff --git a/ASIC/TSMC28nm/38pin/Synopsys_FC/scripts/3_clock.tcl b/ASIC/TSMC28nm/38pin/Synopsys_FC/scripts/3_clock.tcl
new file mode 100644
index 0000000000000000000000000000000000000000..f04e1e2910183ab1a5939e0cd94f78addeb82c39
--- /dev/null
+++ b/ASIC/TSMC28nm/38pin/Synopsys_FC/scripts/3_clock.tcl
@@ -0,0 +1,33 @@
+open_lib nanosoc_chip_pads.dlib/
+open_block nanosoc_chip_pads
+
+set_host_options -max_cores 16 -num_processes 16
+set REPORT_DIR ../reports
+set LOG_DIR ../logs
+
+# Clock opt cts
+set_stage -step cts
+
+clock_opt -from build_clock -to build_clock
+redirect -tee -file $REPORT_DIR/timing_03a_CTS_max.rep {report_timing -delay_type max}
+redirect -tee -file $REPORT_DIR/timing_03a_CTS_min.rep {report_timing -delay_type min}
+save_block
+
+clock_opt -from route_clock -to route_clock
+redirect -tee -file $REPORT_DIR/timing_03b_CTS_max.rep {report_timing -delay_type max}
+redirect -tee -file $REPORT_DIR/timing_03b_CTS_min.rep {report_timing -delay_type min}
+save_block
+
+set_app_options -name time.aocvm_enable_analysis -value true ;
+
+set_stage -step post_cts_opto
+clock_opt -from final_opto -to final_opto
+redirect -tee -file $REPORT_DIR/timing_03c_CTS_max.rep {report_timing -delay_type max}
+redirect -tee -file $REPORT_DIR/timing_03c_CTS_min.rep {report_timing -delay_type min}
+
+redirect -tee -file $REPORT_DIR/qor_03_CTS.rep {report_qor}
+
+save_block
+save_lib nanosoc_chip_pads.dlib
+
+exit
\ No newline at end of file
diff --git a/ASIC/TSMC28nm/38pin/Synopsys_FC/scripts/4_route.tcl b/ASIC/TSMC28nm/38pin/Synopsys_FC/scripts/4_route.tcl
new file mode 100644
index 0000000000000000000000000000000000000000..0c8af2c1454a3d772001c0d51688d5c3ef084972
--- /dev/null
+++ b/ASIC/TSMC28nm/38pin/Synopsys_FC/scripts/4_route.tcl
@@ -0,0 +1,24 @@
+open_lib nanosoc_chip_pads.dlib/
+open_block nanosoc_chip_pads
+
+set_host_options -max_cores 16 -num_processes 16
+set REPORT_DIR ../reports
+set LOG_DIR ../logs
+
+set_stage -step route
+route_auto
+
+redirect -tee -file $REPORT_DIR/timing_04a_route_auto_max.rep {report_timing -delay_type max}
+redirect -tee -file $REPORT_DIR/timing_04a_route_auto_min.rep {report_timing -delay_type min}
+
+set_stage -step post_route 
+route_opt
+redirect -tee -file $REPORT_DIR/timing_04b_route_opt_max.rep {report_timing -delay_type max}
+redirect -tee -file $REPORT_DIR/timing_04b_route_opt_min.rep {report_timing -delay_type min}
+
+redirect -tee -file $REPORT_DIR/qor_04_route.rep {report_qor}
+
+save_block
+save_lib nanosoc_chip_pads.dlib
+
+exit
\ No newline at end of file
diff --git a/ASIC/TSMC28nm/38pin/Synopsys_FC/scripts/io_plan.tcl b/ASIC/TSMC28nm/38pin/Synopsys_FC/scripts/io_plan.tcl
new file mode 100644
index 0000000000000000000000000000000000000000..ce9918fee4c628bb7e28023865f59aad4bd79996
--- /dev/null
+++ b/ASIC/TSMC28nm/38pin/Synopsys_FC/scripts/io_plan.tcl
@@ -0,0 +1,15 @@
+
+remove_io_guides -all 
+
+create_io_guide -name {main_io.top} -side top -line {{110.000 2639.600} 1950.94} -offset {0.000 0.000} -pad_cells [list  ]
+create_io_guide -name {main_io.bottom} -side bottom -line {{2060.940 0.000} 1950.94} -offset {0.000 0.000} -pad_cells [list ]
+create_io_guide -name {main_io.left} -side left -line {{0.000 110.000} 2419.6} -offset {0.000 0.000} -pad_cells [list ]
+create_io_guide -name {main_io.right} -side right -line {{2170.940 2529.600} 2419.6} -offset {0.000 0.000} -pad_cells [list ]
+
+
+create_io_corner_cell {main_io.left main_io.top} -reference_cell PCORNER_G
+create_io_corner_cell {main_io.bottom main_io.left} -reference_cell PCORNER_G
+create_io_corner_cell {main_io.top main_io.right} -reference_cell PCORNER_G
+create_io_corner_cell {main_io.right main_io.bottom} -reference_cell PCORNER_G
+
+place_io
diff --git a/ASIC/TSMC28nm/38pin/Synopsys_FC/scripts/nanosoc_chip_pads.upf b/ASIC/TSMC28nm/38pin/Synopsys_FC/scripts/nanosoc_chip_pads.upf
new file mode 100644
index 0000000000000000000000000000000000000000..2228499341d2c5b4e8a8eb3bfe5844899470e5c2
--- /dev/null
+++ b/ASIC/TSMC28nm/38pin/Synopsys_FC/scripts/nanosoc_chip_pads.upf
@@ -0,0 +1,169 @@
+
+################################################################################
+# Create power domains
+################################################################################
+create_power_domain TOP
+create_power_domain ACCEL  -elements {u_nanosoc_chip/u_system/u_ss_expansion/u_region_exp/u_ss_accelerator}
+#create_power_domain PD_SYS -elements  u_nanosoc_chip/u_system/u_ss_cpu/u_cpu_0/u_slcorem0_integration/u_cortexm0/u_top/u_sys
+#create_power_domain PD_DBG -elements {u_nanosoc_chip/u_system/u_ss_cpu/u_cpu_0/u_slcorem0_integration/u_cortexm0/u_top/u_dbg \
+#                                      u_nanosoc_chip/u_system/u_ss_cpu/u_cpu_0/u_slcorem0_integration/u_dap/u_ap}
+
+################################################################################
+# Create and logically connect power ports and nets
+################################################################################
+
+# Always on VDD
+create_supply_port VDD
+create_supply_net  VDD -domain TOP
+#create_supply_net  VDD -domain PD_SYS -reuse
+#create_supply_net  VDD -domain PD_DBG -reuse
+connect_supply_net VDD -ports VDD
+
+
+# Ground
+create_supply_port VSS
+create_supply_net  VSS -domain TOP
+#create_supply_net  VSS -domain PD_SYS -reuse
+#create_supply_net  VSS -domain PD_DBG -reuse
+create_supply_net  VSS -domain ACCEL -reuse
+connect_supply_net VSS -ports VSS
+
+# Switched VDD
+#create_supply_net VDD_SYS -domain PD_SYS -resolve parallel
+#create_supply_net VDD_DBG -domain PD_DBG -resolve parallel
+
+# VDDACC 
+create_supply_port VDDACC
+create_supply_net VDDACC -domain ACCEL
+connect_supply_net VDDACC -ports VDDACC
+
+
+create_supply_port AVDD 
+create_supply_net AVDD -domain TOP
+connect_supply_net AVDD -ports AVDD
+
+create_supply_port AVDDHV 
+create_supply_net  AVDDHV -domain TOP
+connect_supply_net AVDDHV -ports AVDDHV
+
+create_supply_port AGND 
+create_supply_net AGND -domain TOP
+connect_supply_net AGND -ports AGND
+
+
+################################################################################
+# Assign power supplies to power domains
+################################################################################
+
+set_domain_supply_net TOP    -primary_power_net VDD     -primary_ground_net VSS
+set_domain_supply_net ACCEL  -primary_power_net VDDACC  -primary_ground_net VSS 
+#set_domain_supply_net PD_SYS -primary_power_net VDD_SYS -primary_ground_net VSS
+#set_domain_supply_net PD_DBG -primary_power_net VDD_DBG -primary_ground_net VSS
+################################################################################
+# Create Power Switches
+################################################################################
+
+#create_power_switch uswitch1 -domain PD_SYS \
+#                             -input_supply_port  {VDD     VDD} \
+#                             -output_supply_port {VDD_SYS VDD_SYS} \
+#	                     -control_port {SYSPWRDOWN u_nanosoc_chip/u_system/u_ss_cpu/u_cpu_0/u_core_prmu/u_cortexm0_pmu/SYSPWRDOWN} \
+#                             -ack_port {SYSPWRDOWNACK u_nanosoc_chip/u_system/u_ss_cpu/u_cpu_0/u_core_prmu/u_cortexm0_pmu/SYSPWRDOWNACK {SYSPWRDOWN}} \
+#                             -ack_delay {SYSPWRDOWNACK 65000} \
+#                             -on_state  {on_state  VDD {!SYSPWRDOWN}} \
+#                             -off_state {off_state     { SYSPWRDOWN}}
+#
+#create_power_switch uswitch2 -domain PD_DBG \
+#                             -input_supply_port  {VDD     VDD} \
+#                             -output_supply_port {VDD_DBG VDD_DBG} \
+#	                     -control_port {DBGPWRDOWN u_nanosoc_chip/u_system/u_ss_cpu/u_cpu_0/u_core_prmu/u_cortexm0_pmu/DBGPWRDOWN} \
+#                             -ack_port {DBGPWRDOWNACK u_nanosoc_chip/u_system/u_ss_cpu/u_cpu_0/u_core_prmu/u_cortexm0_pmu/DBGPWRDOWNACK {DBGPWRDOWN}} \
+#                             -ack_delay {DBGPWRDOWNACK 65000} \
+#                             -on_state  {on_state  VDD {!DBGPWRDOWN}} \
+#                             -off_state {off_state     { DBGPWRDOWN}}
+#
+################################################################################
+# Set Isolation Controls
+#   - iso_low1, iso_high1 at PD_SYS outputs
+#   - iso_low2 at PD_DBG outputs
+################################################################################
+
+#set_isolation         iso_low1 -domain PD_SYS \
+#                               -isolation_power_net VDD \
+#                               -isolation_ground_net VSS \
+#                               -clamp_value 0 \
+#                               -applies_to outputs
+
+# The signals that need to be clamped HIGH
+#set_isolation        iso_high1 -domain PD_SYS \
+#                               -isolation_power_net VDD \
+#                               -isolation_ground_net VSS \
+#                               -clamp_value 1 \
+#                               -elements {u_nanosoc_chip/u_system/u_ss_cpu/u_cpu_0/u_slcorem0_integration/u_cortexm0/u_top/u_sys/sleeping_o \
+#                                          u_nanosoc_chip/u_system/u_ss_cpu/u_cpu_0/u_slcorem0_integration/u_cortexm0/u_top/u_sys/sleep_deep_o}
+#
+#set_isolation_control iso_low1 -domain PD_SYS \
+#                               -isolation_signal u_nanosoc_chip/u_system/u_ss_cpu/u_cpu_0/u_core_prmu/u_cortexm0_pmu/SYSISOLATEn \
+#                               -isolation_sense low \
+#                               -location parent
+#
+#set_isolation_control iso_high1 -domain PD_SYS \
+#                               -isolation_signal u_nanosoc_chip/u_system/u_ss_cpu/u_cpu_0/u_core_prmu/u_cortexm0_pmu/SYSISOLATEn \
+#                               -isolation_sense low \
+#                               -location parent
+#
+#set_isolation         iso_low2 -domain PD_DBG \
+#                               -isolation_power_net VDD \
+#                               -isolation_ground_net VSS \
+#                               -clamp_value 0 \
+#                               -applies_to outputs
+#
+#set_isolation_control iso_low2 -domain PD_DBG \
+#                               -isolation_signal u_nanosoc_chip/u_system/u_ss_cpu/u_cpu_0/u_core_prmu/u_cortexm0_pmu/DBGISOLATEn \
+#                               -isolation_sense low \
+#                               -location parent
+#
+################################################################################
+# Set Retention 
+################################################################################
+
+#set_retention drff -domain PD_SYS -retention_power_net VDD -retention_ground_net VSS
+#set_retention_control drff -domain PD_SYS -save_signal {u_nanosoc_chip/u_system/u_ss_cpu/u_cpu_0/u_core_prmu/u_cortexm0_pmu/SYSRETAINn high} \
+#                           -restore_signal {u_nanosoc_chip/u_system/u_ss_cpu/u_cpu_0/u_core_prmu/u_cortexm0_pmu/SYSRETAINn low}
+#
+#map_retention_cell drff -domain PD_SYS -lib_cells [list DRFFQ_X1M_A12PP140ZTLTS_C30C35 \
+#                                                        DRFFQ_X2M_A12PP140ZTLTS_C30C35 \
+#                                                        DRFFQ_X3M_A12PP140ZTLTS_C30C35 \
+#                                                        DRFFQ_X4M_A12PP140ZTLTS_C30C35 \
+#                                                        DRFFRPQ_X1M_A12PP140ZTLTS_C30C35 \
+#                                                        DRFFRPQ_X2M_A12PP140ZTLTS_C30C35 \
+#                                                        DRFFRPQ_X3M_A12PP140ZTLTS_C30C35 \
+#                                                        DRFFRPQ_X4M_A12PP140ZTLTS_C30C35 \
+#                                                        DRFFSQ_X1M_A12PP140ZTLTS_C30C35 \
+#                                                        DRFFSQ_X2M_A12PP140ZTLTS_C30C35 \
+#                                                        DRFFSQ_X3M_A12PP140ZTLTS_C30C35 \
+#                                                        DRFFSQ_X4M_A12PP140ZTLTS_C30C35]
+
+################################################################################
+# Define port states
+################################################################################
+
+add_port_state VSS              -state {on 0.0 0.0 0.0}
+add_port_state VDD              -state {on 0.81 0.9 0.99}
+add_port_state VDDACC           -state {on 0.81 0.9 0.99}
+# add_port_state uswitch1/VDD_SYS -state {on 0.81 0.9 0.99} -state {off 0.0 0.0 0.0}
+# add_port_state uswitch2/VDD_DBG -state {on 0.81 0.9 0.99} -state {off 0.0 0.0 0.0}
+add_port_state AVDD              -state {on 0.81 0.9 0.99}
+add_port_state AVDDHV              -state {on 1.62 1.8 1.98}
+add_port_state AGND              -state {on 0.0 0.0 0.0}
+
+################################################################################
+# Define power state table
+################################################################################
+
+# create_pst cm0_pst -supplies           {VSS  VDD  VDD_SYS  VDD_DBG VDDACC AVDD  AVDDHV   }
+# add_pst_state run -pst cm0_pst -state  {on   on   on       off     on     on    on       }
+# add_pst_state slp -pst cm0_pst -state  {on   on   off      off     on     on    on       }
+# add_pst_state dbg -pst cm0_pst -state  {on   on   on       on      on     on    on       }
+
+create_pst cm0_pst -supplies           {VSS  VDD  VDDACC AVDD  AVDDHV   }
+add_pst_state run -pst cm0_pst -state  {on   on   on     on    on       }
diff --git a/ASIC/TSMC28nm/38pin/Synopsys_FC/scripts/power_plan.tcl b/ASIC/TSMC28nm/38pin/Synopsys_FC/scripts/power_plan.tcl
new file mode 100644
index 0000000000000000000000000000000000000000..b8e539d38c9c54d348850a14188a07da25181920
--- /dev/null
+++ b/ASIC/TSMC28nm/38pin/Synopsys_FC/scripts/power_plan.tcl
@@ -0,0 +1,29 @@
+connect_pg_net -create_nets_only
+connect_pg_net -automatic
+
+create_pg_ring_pattern ring_pattern -horizontal_layer M7 -horizontal_width {5} -horizontal_spacing {2}\
+                                    -vertical_layer M6 -vertical_width {4} -vertical_spacing {2} -nets {AGND AVDD AVDDHV VDD VSS}
+
+set_pg_strategy core_ring -pattern {{name: ring_pattern} {nets: {VDD VSS VDDACC AVDD AVDDHV AGND}} {offset: {3 3}}} -core 
+compile_pg -strategies core_ring
+
+
+create_pg_mesh_pattern mesh_pattern -layers {{{vertical_layer: M6} {width: 4} {pitch: 30.566} {offset: 21.5}} \
+                                                {{horizontal_layer: M5} {width: 4} {pitch: 30} {offset: 20}}}
+set_pg_strategy M5M6_mesh -pattern {{name: mesh_pattern} {nets: {VDD VDDACC VSS}}} -core -extension {{{stop : first_target}}}
+compile_pg -strategies M5M6_mesh
+
+
+create_pg_std_cell_conn_pattern std_pattern -layers {M2} -check_std_cell_drc false -mark_as_follow_pin false -rail_width {0.13 0.13}
+set_pg_strategy std_cell_accel -voltage_areas ACCEL -pattern {{name : std_pattern}{nets : {VDDACC VSS}}} 
+#set_pg_strategy std_cell_dbg -voltage_areas PD_DBG -pattern {{name : std_pattern}{nets : {VDD_DBG VSS}}} 
+#set_pg_strategy std_cell_sys -voltage_areas PD_SYS -pattern {{name : std_pattern}{nets : {VDD_SYS VSS}}} 
+
+set_pg_strategy std_cell_strat -voltage_areas DEFAULT_VA -pattern {{name: std_pattern} {nets: {VDD VSS}}} 
+
+compile_pg -strategies std_cell_accel
+#compile_pg -strategies std_cell_dbg
+#compile_pg -strategies std_cell_sys
+
+
+compile_pg -strategies std_cell_strat
diff --git a/ASIC/TSMC28nm/38pin/Synopsys_FC/scripts/synopsys_lib_conversion.tcl b/ASIC/TSMC28nm/38pin/Synopsys_FC/scripts/synopsys_lib_conversion.tcl
new file mode 100644
index 0000000000000000000000000000000000000000..e4789845dc1c6674ede6ec582cab3c69c6e749fa
--- /dev/null
+++ b/ASIC/TSMC28nm/38pin/Synopsys_FC/scripts/synopsys_lib_conversion.tcl
@@ -0,0 +1,262 @@
+## Paths Please Edit for your system
+set cln28ht_tech_path           /home/dwn1c21/SoC-Labs/phys_ip/arm/tsmc/cln28ht/arm_tech/r1p0
+set standard_cell_base_path     /home/dwn1c21/SoC-Labs/phys_ip/arm/tsmc/cln28ht/sc12mcpp140z_base_svt_c35/r2p0
+set pmk_base_path               /home/dwn1c21/SoC-Labs/phys_ip/arm/tsmc/cln28ht/sc12mcpp140z_pmk_svt_c35/r1p0
+set ret_base_path               /home/dwn1c21/SoC-Labs/phys_ip/arm/tsmc/cln28ht/sc12mcpp140z_rklo_lvt_svt_c30_c35/r1p0
+
+# Technology files
+set cln28ht_tech_file                       $cln28ht_tech_path/milkyway/1p8m_5x2z_utalrdl/sc12mcpp140z_tech.tf
+set cln28ht_lef_file                        $cln28ht_tech_path/lef/1p8m_5x2z_utalrdl/sc12mcpp140z_tech.lef
+
+# Standard Cell libraries
+set standard_cell_lef_file                  $standard_cell_base_path/lef/sc12mcpp140z_cln28ht_base_svt_c35.lef
+set standard_cell_gds_file                  $standard_cell_base_path/gds2/sc12mcpp140z_cln28ht_base_svt_c35.gds2
+set standard_cell_db_file_ss_0p81v_125C     $standard_cell_base_path/db/sc12mcpp140z_cln28ht_base_svt_c35_ssg_cworstt_max_0p81v_125c.db
+set standard_cell_db_file_tt_0p90v_25C      $standard_cell_base_path/db/sc12mcpp140z_cln28ht_base_svt_c35_tt_ctypical_max_0p90v_25c.db
+set standard_cell_db_file_ff_0p99v_m40C     $standard_cell_base_path/db/sc12mcpp140z_cln28ht_base_svt_c35_ffg_cbestt_min_0p99v_m40c.db
+set standard_cell_antenna_file              $standard_cell_base_path/milkyway/1p8m_5x2z_utalrdl/sc12mcpp140z_cln28ht_base_svt_c35_antenna.clf
+
+# Power Management Kit 
+set pmk_lef_file                            $pmk_base_path/lef/sc12mcpp140z_cln28ht_pmk_svt_c35.lef
+set pmk_gds_file                            $pmk_base_path/gds2/sc12mcpp140z_cln28ht_pmk_svt_c35.gds2
+set pmk_db_file_ss_0p81v_125C               $pmk_base_path/db/sc12mcpp140z_cln28ht_pmk_svt_c35_ssg_cworstt_max_0p81v_125c.db
+set pmk_db_file_tt_0p90v_25C                $pmk_base_path/db/sc12mcpp140z_cln28ht_pmk_svt_c35_tt_ctypical_max_0p90v_25c.db
+set pmk_db_file_ff_0p99v_m40C               $pmk_base_path/db/sc12mcpp140z_cln28ht_pmk_svt_c35_ffg_cbestt_min_0p99v_m40c.db
+set pmk_antenna_file                        $pmk_base_path/milkyway/1p8m_5x2z_utalrdl/sc12mcpp140z_cln28ht_pmk_svt_c35_antenna.clf
+
+# Retention Kit
+set ret_lef_file                            $ret_base_path/lef/sc12mcpp140z_cln28ht_rklo_lvt_svt_c30_c35.lef
+set ret_gds_file                            $ret_base_path/gds2/sc12mcpp140z_cln28ht_rklo_lvt_svt_c30_c35.gds2
+set ret_db_file_ss_0p81v_125C               $ret_base_path/db/sc12mcpp140z_cln28ht_rklo_lvt_svt_c30_c35_ssg_cworstt_max_0p81v_125c.db
+set ret_db_file_tt_0p90v_25C                $ret_base_path/db/sc12mcpp140z_cln28ht_rklo_lvt_svt_c30_c35_tt_ctypical_max_0p90v_25c.db
+set ret_db_file_ff_0p99v_m40C               $ret_base_path/db/sc12mcpp140z_cln28ht_rklo_lvt_svt_c30_c35_ffg_cbestt_min_0p99v_m40c.db
+set ret_antenna_file                        $ret_base_path/milkyway/1p8m_5x2z_utalrdl/sc12mcpp140z_cln28ht_rklo_lvt_svt_c30_c35_antenna.clf
+
+
+# IO Paths
+set TSMC_28NM_PDK_PATH          /home/dwn1c21/SoC-Labs/phys_ip/TSMC/28
+set tphn28hpcpgv18_lef_file     $TSMC_28NM_PDK_PATH/CMOS/HPC+/IO1.8V/iolib/STAGGERED/tphn28hpcpgv18_170d_FE/TSMCHOME/digital/Back_End/lef/tphn28hpcpgv18_110a/mt_2/9lm/lef/tphn28hpcpgv18_9lm.lef
+set tphn28hpcpgv18_lib_path     $TSMC_28NM_PDK_PATH/CMOS/HPC+/IO1.8V/iolib/STAGGERED/tphn28hpcpgv18_170d_FE/TSMCHOME/digital/Front_End/timing_power_noise/NLDM/tphn28hpcpgv18_170a
+set IO_TT_0p9v_1p8v_25c_db      $tphn28hpcpgv18_lib_path/tphn28hpcpgv18tt0p9v1p8v25c.db
+set IO_FF_0p99v_1p98v_m40c_db   $tphn28hpcpgv18_lib_path/tphn28hpcpgv18ffg0p99v1p98vm40c.db
+set IO_SS_0p81v_1p62v_125c_db   $tphn28hpcpgv18_lib_path/tphn28hpcpgv18ssg0p81v1p62v125c.db
+
+set pad_lef_file /home/dwn1c21/SoC-Labs/phys_ip/TSMC/28/iolib/tpbn28v_160a_FE/TSMCHOME/digital/Back_End/lef/tpbn28v_160a/cup/8m/8M_5X2Z/lef/tpbn28v_8lm.lef
+set bump_lef_file /home/dwn1c21/SoC-Labs/phys_ip/TSMC/28/iolib/tpbn28v_160a_FE/TSMCHOME/digital/Back_End/lef/tpbn28v_160a/fc/fc_eu/MTRDL/8m/8M_Z/lef/tpbn28v_8lm.lef
+
+# SRAM files (using Arm compiler)
+set sram_16k_path                       $env(SOCLABS_PROJECT_DIR)/memories/sram_16k
+set sram_16k_lef_file                   $sram_16k_path/sram_16k.lef
+set sram_16k_gds_file                   $sram_16k_path/sram_16k.gds2
+set sram_16k_lib_file_ss_0p81v_125c     $sram_16k_path/sram_16k_ssg_cworstt_0p81v_0p81v_125c.lib
+set sram_16k_lib_file_tt_0p90v_25c      $sram_16k_path/sram_16k_tt_ctypical_0p90v_0p90v_25c.lib
+set sram_16k_lib_file_ff_0p99v_m40c     $sram_16k_path/sram_16k_ffg_cbestt_0p99v_0p99v_m40c.lib
+set sram_16k_db_file_ss_0p81v_125c      $sram_16k_path/sram_16k_ssg_cworstt_0p81v_0p81v_125c.db
+set sram_16k_db_file_tt_0p90v_25c       $sram_16k_path/sram_16k_tt_ctypical_0p90v_0p90v_25c.db
+set sram_16k_db_file_ff_0p99v_m40c      $sram_16k_path/sram_16k_ffg_cbestt_0p99v_0p99v_m40c.db
+
+set sram_32k_path                       $env(SOCLABS_PROJECT_DIR)/memories/sram_32k
+set sram_32k_lef_file                   $sram_32k_path/sram_32k.lef
+set sram_32k_gds_file                   $sram_32k_path/sram_32k.gds2
+set sram_32k_lib_file_ss_0p81v_125c     $sram_32k_path/sram_32k_ssg_cworstt_0p81v_0p81v_125c.lib
+set sram_32k_lib_file_tt_0p90v_25c      $sram_32k_path/sram_32k_tt_ctypical_0p90v_0p90v_25c.lib
+set sram_32k_lib_file_ff_0p99v_m40c     $sram_32k_path/sram_32k_ffg_cbestt_0p99v_0p99v_m40c.lib
+set sram_32k_db_file_ss_0p81v_125c      $sram_32k_path/sram_32k_ssg_cworstt_0p81v_0p81v_125c.db
+set sram_32k_db_file_tt_0p90v_25c       $sram_32k_path/sram_32k_tt_ctypical_0p90v_0p90v_25c.db
+set sram_32k_db_file_ff_0p99v_m40c      $sram_32k_path/sram_32k_ffg_cbestt_0p99v_0p99v_m40c.db
+
+set sram_64k_path                       $env(SOCLABS_PROJECT_DIR)/memories/sram_64k
+set sram_64k_lef_file                   $sram_64k_path/sram_64k.lef
+set sram_64k_gds_file                   $sram_64k_path/sram_64k.gds2
+set sram_64k_lib_file_ss_0p81v_125c     $sram_64k_path/sram_64k_ssg_cworstt_0p81v_0p81v_125c.lib
+set sram_64k_lib_file_tt_0p90v_25c      $sram_64k_path/sram_64k_tt_ctypical_0p90v_0p90v_25c.lib
+set sram_64k_lib_file_ff_0p99v_m40c     $sram_64k_path/sram_64k_ffg_cbestt_0p99v_0p99v_m40c.lib
+set sram_64k_db_file_ss_0p81v_125c      $sram_64k_path/sram_64k_ssg_cworstt_0p81v_0p81v_125c.db
+set sram_64k_db_file_tt_0p90v_25c       $sram_64k_path/sram_64k_tt_ctypical_0p90v_0p90v_25c.db
+set sram_64k_db_file_ff_0p99v_m40c      $sram_64k_path/sram_64k_ffg_cbestt_0p99v_0p99v_m40c.db
+
+set sram_flash_data_path                    $env(SOCLABS_PROJECT_DIR)/memories/sram_flash_data
+set sram_flash_cache_lef_file               $sram_flash_data_path/sram_flash_cache.lef
+set sram_flash_cache_gds_file               $sram_flash_data_path/sram_flash_cache.gds2
+set sram_flash_cache_lib_file_ss_0p81v_125c $sram_flash_data_path/sram_flash_cache_ssg_cworstt_0p81v_0p81v_125c.lib
+set sram_flash_cache_lib_file_tt_0p90v_25c  $sram_flash_data_path/sram_flash_cache_tt_ctypical_0p90v_0p90v_25c.lib
+set sram_flash_cache_lib_file_ff_0p99v_m40c $sram_flash_data_path/sram_flash_cache_ffg_cbestt_0p99v_0p99v_m40c.lib
+set sram_flash_cache_db_file_ss_0p81v_125c  $sram_flash_data_path/sram_flash_cache_ssg_cworstt_0p81v_0p81v_125c.db
+set sram_flash_cache_db_file_tt_0p90v_25c   $sram_flash_data_path/sram_flash_cache_tt_ctypical_0p90v_0p90v_25c.db
+set sram_flash_cache_db_file_ff_0p99v_m40c  $sram_flash_data_path/sram_flash_cache_ffg_cbestt_0p99v_0p99v_m40c.db
+
+set sram_flash_tag_path                     $env(SOCLABS_PROJECT_DIR)/memories/sram_flash_tag
+set sram_flash_tag_lef_file                 $sram_flash_tag_path/sram_flash_tag.lef
+set sram_flash_tag_gds_file                 $sram_flash_tag_path/sram_flash_tag.gds2
+set sram_flash_tag_lib_file_ss_0p81v_125c   $sram_flash_tag_path/sram_flash_tag_ssg_cworstt_0p81v_0p81v_125c.lib
+set sram_flash_tag_lib_file_tt_0p90v_25c    $sram_flash_tag_path/sram_flash_tag_tt_ctypical_0p90v_0p90v_25c.lib
+set sram_flash_tag_lib_file_ff_0p99v_m40c   $sram_flash_tag_path/sram_flash_tag_ffg_cbestt_0p99v_0p99v_m40c.lib
+set sram_flash_tag_db_file_ss_0p81v_125c    $sram_flash_tag_path/sram_flash_tag_ssg_cworstt_0p81v_0p81v_125c.db
+set sram_flash_tag_db_file_tt_0p90v_25c     $sram_flash_tag_path/sram_flash_tag_tt_ctypical_0p90v_0p90v_25c.db
+set sram_flash_tag_db_file_ff_0p99v_m40c    $sram_flash_tag_path/sram_flash_tag_ffg_cbestt_0p99v_0p99v_m40c.db
+
+# ROM Files (using arm Compiler)
+set rom_path                        $env(SOCLABS_PROJECT_DIR)/memories/bootrom
+set rom_via_lef_file                $rom_path/rom_via.lef       
+set rom_via_gds_file                $rom_path/rom_via.gds2
+set rom_via_lib_file_ss_0p81v_125c  $rom_path/rom_via_ssg_cworstt_0p81v_0p81v_125c.lib
+set rom_via_lib_file_tt_0p90v_25c   $rom_path/rom_via_tt_ctypical_0p90v_0p90v_25c.lib
+set rom_via_lib_file_ff_0p99v_m40c  $rom_path/rom_via_ffg_cbestt_0p99v_0p99v_m40c.lib
+set rom_via_db_file_ss_0p81v_125c   $rom_path/rom_via_ssg_cworstt_0p81v_0p81v_125c.db
+set rom_via_db_file_tt_0p90v_25c    $rom_path/rom_via_tt_ctypical_0p90v_0p90v_25c.db
+set rom_via_db_file_ff_0p99v_m40c   $rom_path/rom_via_ffg_cbestt_0p99v_0p99v_m40c.db
+
+# Synopsys PLL files
+set Synopsys_PLL_dir /home/dwn1c21/SoC-Labs/Synopsys_ip/IP/PLL/synopsys/dwc_pll3ghz_tsmc28hpcp/1.10a/macro
+set Synopsys_PLL_lef_file $Synopsys_PLL_dir/lef/5m4x0z/dwc_z19606ts_ns_merged.lef
+set Synopsys_PLL_db_file $Synopsys_PLL_dir/timing/lib_pg/dwc_z19606ts_ns_ssg0p81v125c_cworst_pg.db
+set Synopsys_PLL_gds_file $Synopsys_PLL_dir/gds/5m4x0z/dwc_z19606ts_ns.gds
+
+# Synopsys Temperature sensor files
+set Synopsys_TS_dir /home/dwn1c21/SoC-Labs/Synopsys_ip/IP/Southampton_28hpcp_pd_vm_ts_vmps_pvtc/1.01b
+set Synopsys_TS_lef_file $Synopsys_TS_dir/lef/mr74127.lef
+set Synopsys_TS_lib_file $Synopsys_TS_dir/liberty/mr74127_wc_vmin_125c.lib
+set Synopsys_TS_db_file $Synopsys_TS_dir/db/mr74127_wc_vmin_125c.db
+set Synopsys_TS_gds_file $Synopsys_TS_dir/gdsii/mr74127_v1r1.gds
+
+# Synopsys Process detector Files
+set Synopsys_PD_dir /home/dwn1c21/SoC-Labs/Synopsys_ip/IP/Southampton_28hpcp_pd_vm_ts_vmps_pvtc/dwc_sensors_pd_tsmc28hpcp_1.00a/synopsys/dwc_sensors_pd_tsmc28hpcp/1.00a
+set Synopsys_PD_lef_file    $Synopsys_PD_dir/lef/mr74125.lef
+set Synopsys_PD_lib_file    $Synopsys_PD_dir/liberty/mr74125_wc_vmin_125c.lib
+set Synopsys_PD_db_file     $Synopsys_PD_dir/db/mr74125_wc_vmin_125c.db
+set Synopsys_PD_gds_file    $Synopsys_PD_dir/gds/mr74125_v1r2.gds
+
+# Synopsys Voltage Monitor files
+set Synopsys_VM_dir /home/dwn1c21/SoC-Labs/Synopsys_ip/IP/Southampton_28hpcp_pd_vm_ts_vmps_pvtc/dwc_sensors_vm_shrink_tsmc28hpcp_1.00a/synopsys/dwc_sensors_vm_shrink_tsmc28hpcp/1.00a
+set Synopsys_VM_lef_file    $Synopsys_VM_dir/lef/mr74140.lef
+set Synopsys_VM_lib_file    $Synopsys_VM_dir/liberty/mr74140_wc_vmin_125c.lib
+set Synopsys_VM_db_file     $Synopsys_VM_dir/db/mr74140_wc_vmin_125c.db
+set Synopsys_VM_gds_file    $Synopsys_VM_dir/gdsii/mr74140_v1r1.gds
+
+# Create standard cell fusion library
+create_fusion_lib -dbs [list $standard_cell_db_file_ss_0p81v_125C $standard_cell_db_file_tt_0p90v_25C $standard_cell_db_file_ff_0p99v_m40C]  -lefs [list $cln28ht_lef_file $standard_cell_lef_file] -technology $cln28ht_tech_file cln28ht
+save_fusion_lib cln28ht
+close_fusion_lib cln28ht
+
+# Create Power Management Kit fusion library
+create_fusion_lib -dbs [list $pmk_db_file_ss_0p81v_125C $pmk_db_file_tt_0p90v_25C $pmk_db_file_ff_0p99v_m40C] -lefs [list $cln28ht_lef_file $pmk_lef_file] -technology $cln28ht_tech_file cln28ht_pmk
+save_fusion_lib cln28ht_pmk
+close_fusion_lib cln28ht_pmk
+
+# Create Retention fusion library
+create_fusion_lib -dbs [list $ret_db_file_ss_0p81v_125C $ret_db_file_tt_0p90v_25C $ret_db_file_ff_0p99v_m40C] -lefs [list $cln28ht_lef_file $ret_lef_file] -technology $cln28ht_tech_file cln28ht_ret
+save_fusion_lib cln28ht_ret
+close_fusion_lib cln28ht_ret
+
+# 16K SRAM
+read_lib $sram_16k_lib_file_ss_0p81v_125c 
+write_lib -output $sram_16k_db_file_ss_0p81v_125c -format db SRAM_16K_ssg_cworstt_0p81v_0p81v_125c
+close_lib -all
+
+read_lib $sram_16k_lib_file_tt_0p90v_25c 
+write_lib -output $sram_16k_db_file_tt_0p90v_25c -format db SRAM_16K_tt_ctypical_0p90v_0p90v_25c
+close_lib -all
+
+read_lib $sram_16k_lib_file_ff_0p99v_m40c 
+write_lib -output $sram_16k_db_file_ff_0p99v_m40c -format db SRAM_16K_ffg_cbestt_0p99v_0p99v_m40c
+close_lib -all
+
+create_fusion_lib -dbs [list $sram_16k_db_file_ss_0p81v_125c $sram_16k_db_file_tt_0p90v_25c $sram_16k_db_file_ff_0p99v_m40c] -lefs $sram_16k_lef_file -technology $cln28ht_tech_file sram_16k
+save_fusion_lib sram_16k
+close_fusion_lib sram_16k
+
+# 32K SRAM
+read_lib $sram_32k_lib_file_ss_0p81v_125c 
+write_lib -output $sram_32k_db_file_ss_0p81v_125c -format db SRAM_32K_ssg_cworstt_0p81v_0p81v_125c
+close_lib -all
+
+read_lib $sram_32k_lib_file_tt_0p90v_25c 
+write_lib -output $sram_32k_db_file_tt_0p90v_25c -format db SRAM_32K_tt_ctypical_0p90v_0p90v_25c
+close_lib -all
+
+read_lib $sram_32k_lib_file_ff_0p99v_m40c 
+write_lib -output $sram_32k_db_file_ff_0p99v_m40c -format db SRAM_32K_ffg_cbestt_0p99v_0p99v_m40c
+close_lib -all
+
+create_fusion_lib -dbs [list $sram_32k_db_file_ss_0p81v_125c $sram_32k_db_file_tt_0p90v_25c $sram_32k_db_file_ff_0p99v_m40c] -lefs $sram_32k_lef_file -technology $cln28ht_tech_file sram_32k
+save_fusion_lib sram_32k
+close_fusion_lib sram_32k
+
+# 64K SRAM
+read_lib $sram_64k_lib_file_ss_0p81v_125c 
+write_lib -output $sram_64k_db_file_ss_0p81v_125c -format db SRAM_64K_ssg_cworstt_0p81v_0p81v_125c
+close_lib -all
+
+read_lib $sram_64k_lib_file_tt_0p90v_25c 
+write_lib -output $sram_64k_db_file_tt_0p90v_25c -format db SRAM_64K_tt_ctypical_0p90v_0p90v_25c
+close_lib -all
+
+read_lib $sram_64k_lib_file_ff_0p99v_m40c 
+write_lib -output $sram_64k_db_file_ff_0p99v_m40c -format db SRAM_64K_ffg_cbestt_0p99v_0p99v_m40c
+close_lib -all
+
+create_fusion_lib -dbs [list $sram_64k_db_file_ss_0p81v_125c $sram_64k_db_file_tt_0p90v_25c $sram_64k_db_file_ff_0p99v_m40c] -lefs $sram_64k_lef_file -technology $cln28ht_tech_file sram_64k
+save_fusion_lib sram_64k
+close_fusion_lib sram_64k
+
+# Boot ROM
+read_lib $rom_via_lib_file_ss_0p81v_125c 
+write_lib -output $rom_via_db_file_ss_0p81v_125c -format db rom_via_ssg_cworstt_0p81v_0p81v_125c
+close_lib -all
+
+read_lib $rom_via_lib_file_tt_0p90v_25c 
+write_lib -output $rom_via_db_file_tt_0p90v_25c -format db rom_via_tt_ctypical_0p90v_0p90v_25c
+close_lib -all
+
+read_lib $rom_via_lib_file_ff_0p99v_m40c 
+write_lib -output $rom_via_db_file_ff_0p99v_m40c -format db rom_via_ffg_cbestt_0p99v_0p99v_m40c
+close_lib -all
+
+create_fusion_lib -dbs [list $rom_via_db_file_ss_0p81v_125c $rom_via_db_file_tt_0p90v_25c $rom_via_db_file_ff_0p99v_m40c] -lefs $rom_via_lef_file -technology $cln28ht_tech_file rom_via
+save_fusion_lib rom_via
+close_fusion_lib rom_via
+
+# IO Lib
+create_fusion_lib -dbs [list $IO_SS_0p81v_1p62v_125c_db $IO_TT_0p9v_1p8v_25c_db $IO_FF_0p99v_1p98v_m40c_db] -lefs $tphn28hpcpgv18_lef_file -technology $cln28ht_tech_file io_lib
+save_fusion_lib io_lib
+close_fusion_lib io_lib
+
+# Synopsys PLL
+create_fusion_lib -dbs $Synopsys_PLL_db_file -lefs $Synopsys_PLL_lef_file -technology $cln28ht_tech_file Synopsys_PLL
+save_fusion_lib Synopsys_PLL
+close_fusion_lib Synopsys_PLL
+
+# Synopsys TS
+read_lib $Synopsys_TS_lib_file
+write_lib -output $Synopsys_TS_db_file -format db mr74127_wc_vmin_125c
+close_lib -all
+create_fusion_lib -dbs $Synopsys_TS_db_file -lefs $Synopsys_TS_lef_file -technology $cln28ht_tech_file Synopsys_TS
+save_fusion_lib Synopsys_TS
+close_fusion_lib Synopsys_TS
+
+# Synopsys PD
+read_lib $Synopsys_PD_lib_file
+write_lib -output $Synopsys_PD_db_file -format db mr74125_wc_vmin_125c
+close_lib -all
+create_fusion_lib -dbs $Synopsys_PD_db_file -lefs $Synopsys_PD_lef_file -technology $cln28ht_tech_file Synopsys_PD
+save_fusion_lib Synopsys_PD
+close_fusion_lib Synopsys_PD
+
+# Synopsys VM
+read_lib $Synopsys_VM_lib_file
+write_lib -output $Synopsys_VM_db_file -format db mr74140_wc_vmin_125c
+close_lib -all
+create_fusion_lib -dbs $Synopsys_VM_db_file -lefs $Synopsys_VM_lef_file -technology $cln28ht_tech_file Synopsys_VM
+save_fusion_lib Synopsys_VM
+close_fusion_lib Synopsys_VM
+
+
+# Pad Libs
+create_fusion_lib -lefs $pad_lef_file -technology $cln28ht_tech_file pad_lib
+save_fusion_lib pad_lib
+close_fusion_lib pad_lib
+
+create_fusion_lib -lefs $bump_lef_file -technology $cln28ht_tech_file bump_lib
+save_fusion_lib bump_lib
+close_fusion_lib bump_lib
+exit
\ No newline at end of file
diff --git a/ASIC/TSMC28nm/38pin/Synopsys_FC/synopsys_lib_conversion.tcl b/ASIC/TSMC28nm/38pin/Synopsys_FC/synopsys_lib_conversion.tcl
deleted file mode 100644
index 0e54a812fa410c71f725f9668874da0e1c8f47b7..0000000000000000000000000000000000000000
--- a/ASIC/TSMC28nm/38pin/Synopsys_FC/synopsys_lib_conversion.tcl
+++ /dev/null
@@ -1,126 +0,0 @@
-## Paths Please Edit for your system
-set cln28ht_tech_path           /home/dwn1c21/SoC-Labs/phys_ip/arm/tsmc/cln28ht/arm_tech/r1p0
-set standard_cell_base_path     /home/dwn1c21/SoC-Labs/phys_ip/arm/tsmc/cln28ht/sc12mcpp140z_base_svt_c35/r2p0
-set pmk_base_path               /home/dwn1c21/SoC-Labs/phys_ip/arm/tsmc/cln28ht/sc12mcpp140z_pmk_svt_c35/r1p0
-set ret_base_path               /home/dwn1c21/SoC-Labs/phys_ip/arm/tsmc/cln28ht/sc12mcpp140z_rklo_lvt_svt_c30_c35/r1p0
-
-# Technology files
-set cln28ht_tech_file                       $cln28ht_tech_path/milkyway/1p8m_5x2z_utalrdl/sc12mcpp140z_tech.tf
-set cln28ht_lef_file                        $cln28ht_tech_path/lef/1p8m_5x2z_utalrdl/sc12mcpp140z_tech.lef
-
-# Standard Cell libraries
-set standard_cell_lef_file                  $standard_cell_base_path/lef/sc12mcpp140z_cln28ht_base_svt_c35.lef
-set standard_cell_gds_file                  $standard_cell_base_path/gds2/sc12mcpp140z_cln28ht_base_svt_c35.gds2
-set standard_cell_db_file_ss_0p81v_125C     $standard_cell_base_path/db/sc12mcpp140z_cln28ht_base_svt_c35_ssg_cworstt_max_0p81v_125c.db
-set standard_cell_db_file_tt_0p90v_25C      $standard_cell_base_path/db/sc12mcpp140z_cln28ht_base_svt_c35_tt_ctypical_max_0p90v_25c.db
-set standard_cell_db_file_ff_0p99v_m40C     $standard_cell_base_path/db/sc12mcpp140z_cln28ht_base_svt_c35_ffg_cbestt_min_0p99v_m40c.db
-set standard_cell_antenna_file              $standard_cell_base_path/milkyway/1p8m_5x2z_utalrdl/sc12mcpp140z_cln28ht_base_svt_c35_antenna.clf
-
-# Power Management Kit 
-set pmk_lef_file                            $pmk_base_path/lef/sc12mcpp140z_cln28ht_pmk_svt_c35.lef
-set pmk_gds_file                            $pmk_base_path/gds2/sc12mcpp140z_cln28ht_pmk_svt_c35.gds2
-set pmk_db_file_ss_0p81v_125C               $pmk_base_path/db/sc12mcpp140z_cln28ht_pmk_svt_c35_ssg_cworstt_max_0p81v_125c.db
-set pmk_db_file_tt_0p90v_25C                $pmk_base_path/db/sc12mcpp140z_cln28ht_pmk_svt_c35_tt_ctypical_max_0p90v_25c.db
-set pmk_db_file_ff_0p99v_m40C               $pmk_base_path/db/sc12mcpp140z_cln28ht_pmk_svt_c35_ffg_cbestt_min_0p99v_m40c.db
-set pmk_antenna_file                        $pmk_base_path/milkyway/1p8m_5x2z_utalrdl/sc12mcpp140z_cln28ht_pmk_svt_c35_antenna.clf
-
-# Retention Kit
-set ret_lef_file                            $ret_base_path/lef/sc12mcpp140z_cln28ht_rklo_lvt_svt_c30_c35.lef
-set ret_gds_file                            $ret_base_path/gds2/sc12mcpp140z_cln28ht_rklo_lvt_svt_c30_c35.gds2
-set ret_db_file_ss_0p81v_125C               $ret_base_path/db/sc12mcpp140z_cln28ht_rklo_lvt_svt_c30_c35_ssg_cworstt_max_0p81v_125c.db
-set ret_db_file_tt_0p90v_25C                $ret_base_path/db/sc12mcpp140z_cln28ht_rklo_lvt_svt_c30_c35_tt_ctypical_max_0p90v_25c.db
-set ret_db_file_ff_0p99v_m40C               $ret_base_path/db/sc12mcpp140z_cln28ht_rklo_lvt_svt_c30_c35_ffg_cbestt_min_0p99v_m40c.db
-set ret_antenna_file                        $ret_base_path/milkyway/1p8m_5x2z_utalrdl/sc12mcpp140z_cln28ht_rklo_lvt_svt_c30_c35_antenna.clf
-
-
-# IO Paths
-set TSMC_28NM_PDK_PATH          /home/dwn1c21/SoC-Labs/phys_ip/TSMC/28
-set tphn28hpcpgv18_lef_file     $TSMC_28NM_PDK_PATH/CMOS/HPC+/IO1.8V/iolib/TSMCHOME/digital/Back_End/lef/tphn28hpcpgv18_110a/mt_2/6lm/lef/tphn28hpcpgv18_6lm.lef
-set tphn28hpcpgv18_lib_path     $TSMC_28NM_PDK_PATH/CMOS/HPC+/IO1.8V/iolib/TSMCHOME/digital/Front_End/timing_power_noise/NLDM/tphn28hpcpgv18_170a
-set IO_TT_0p9v_1p8v_25c_db      $tphn28hpcpgv18_lib_path/tphn28hpcpgv18tt0p9v1p8v25c.db
-set IO_FF_0p99v_1p98v_m40c_db   $tphn28hpcpgv18_lib_path/tphn28hpcpgv18ffg0p99v1p98vm40c.db
-set IO_SS_0p81v_1p62v_125c_db   $tphn28hpcpgv18_lib_path/tphn28hpcpgv18ssg0p81v1p62v125c.db
-
-set pad_lef_file /home/dwn1c21/SoC-Labs/phys_ip/TSMC/28/iolib/TSMCHOME/digital/Back_End/lef/tpbn28v_160a/cup/8m/8M_5X2Z/lef/tpbn28v_8lm.lef
-
-# SRAM files (using Arm compiler)
-set sram_16k_path                       $env(SOCLABS_PROJECT_DIR)/memories/sram_16k
-set sram_16k_lef_file                   $sram_16k_path/sram_16k.lef
-set sram_16k_gds_file                   $sram_16k_path/sram_16k.gds2
-set sram_16k_lib_file_ss_0p81v_125c     $sram_16k_path/sram_16k_ssg_cworstt_0p81v_0p81v_125c.lib
-set sram_16k_lib_file_tt_0p90v_25c      $sram_16k_path/sram_16k_tt_ctypical_0p90v_0p90v_85c.lib
-set sram_16k_lib_file_ff_0p99v_m40c     $sram_16k_path/sram_16k_ffg_cbestt_0p99v_0p99v_m40c.lib
-set sram_16k_db_file_ss_0p81v_125c      $sram_16k_path/sram_16k_ssg_cworstt_0p81v_0p81v_125c.db
-set sram_16k_db_file_tt_0p90v_25c       $sram_16k_path/sram_16k_tt_ctypical_0p90v_0p90v_85c.db
-set sram_16k_db_file_ff_0p99v_m40c      $sram_16k_path/sram_16k_ffg_cbestt_0p99v_0p99v_m40c.db
-
-# ROM Files (using arm Compiler)
-set rom_path                        $env(SOCLABS_PROJECT_DIR)/memories/bootrom
-set rom_via_lef_file                $rom_path/rom_via.lef       
-set rom_via_gds_file                $rom_path/rom_via.gds2
-set rom_via_lib_file_ss_0p81v_125c  $rom_path/rom_via_ssg_cworstt_0p81v_0p81v_125c.lib
-set rom_via_lib_file_tt_0p90v_25c   $rom_path/rom_via_tt_ctypical_0p90v_0p90v_25c.lib
-set rom_via_lib_file_ff_0p99v_m40c  $rom_path/rom_via_ffg_cbestt_0p99v_0p99v_m40c.lib
-set rom_via_db_file_ss_0p81v_125c   $rom_path/rom_via_ssg_cworstt_0p81v_0p81v_125c.db
-set rom_via_db_file_tt_0p90v_25c    $rom_path/rom_via_tt_ctypical_0p90v_0p90v_25c.db
-set rom_via_db_file_ff_0p99v_m40c   $rom_path/rom_via_ffg_cbestt_0p99v_0p99v_m40c.db
-
-# Create standard cell fusion library
-create_fusion_lib -dbs [list $standard_cell_db_file_ss_0p81v_125C $standard_cell_db_file_tt_0p90v_25C $standard_cell_db_file_ff_0p99v_m40C]  -lefs [list $cln28ht_lef_file $standard_cell_lef_file] -technology $cln28ht_tech_file cln28ht
-save_fusion_lib cln28ht
-close_fusion_lib cln28ht
-
-# Create Power Management Kit fusion library
-create_fusion_lib -dbs [list $pmk_db_file_ss_0p81v_125C $pmk_db_file_tt_0p90v_25C $pmk_db_file_ff_0p99v_m40C] -lefs [list $cln28ht_lef_file $pmk_lef_file] -technology $cln28ht_tech_file cln28ht_pmk
-save_fusion_lib cln28ht_pmk
-close_fusion_lib cln28ht_pmk
-
-# Create Retention fusion library
-create_fusion_lib -dbs [list $ret_db_file_ss_0p81v_125C $ret_db_file_tt_0p90v_25C $ret_db_file_ff_0p99v_m40C] -lefs [list $cln28ht_lef_file $ret_lef_file] -technology $cln28ht_tech_file cln28ht_ret
-save_fusion_lib cln28ht_ret
-close_fusion_lib cln28ht_ret
-
-# 16K SRAM
-read_lib $sram_16k_lib_file_ss_0p81v_125c 
-write_lib -output $sram_16k_db_file_ss_0p81v_125c -format db SRAM_16K_ssg_cworstt_0p81v_0p81v_125c
-close_lib -all
-
-read_lib $sram_16k_lib_file_tt_0p90v_25c 
-write_lib -output $sram_16k_db_file_tt_0p90v_25c -format db SRAM_16K_tt_ctypical_0p90v_0p90v_85c
-close_lib -all
-
-read_lib $sram_16k_lib_file_ff_0p99v_m40c 
-write_lib -output $sram_16k_db_file_ff_0p99v_m40c -format db SRAM_16K_ffg_cbestt_0p99v_0p99v_m40c
-close_lib -all
-
-create_fusion_lib -dbs [list $sram_16k_db_file_ss_0p81v_125c $sram_16k_db_file_tt_0p90v_25c $sram_16k_db_file_ff_0p99v_m40c] -lefs $sram_16k_lef_file -technology $cln28ht_tech_file sram_16k
-save_fusion_lib sram_16k
-close_fusion_lib sram_16k
-
-# Boot ROM
-read_lib $rom_via_lib_file_ss_0p81v_125c 
-write_lib -output $rom_via_db_file_ss_0p81v_125c -format db rom_via_ssg_cworstt_0p81v_0p81v_125c
-close_lib -all
-
-read_lib $rom_via_lib_file_tt_0p90v_25c 
-write_lib -output $rom_via_db_file_tt_0p90v_25c -format db rom_via_tt_ctypical_0p90v_0p90v_25c
-close_lib -all
-
-read_lib $rom_via_lib_file_ff_0p99v_m40c 
-write_lib -output $rom_via_db_file_ff_0p99v_m40c -format db rom_via_ffg_cbestt_0p99v_0p99v_m40c
-close_lib -all
-
-create_fusion_lib -dbs [list $rom_via_db_file_ss_0p81v_125c $rom_via_db_file_tt_0p90v_25c $rom_via_db_file_ff_0p99v_m40c] -lefs $rom_via_lef_file -technology $cln28ht_tech_file rom_via
-save_fusion_lib rom_via
-close_fusion_lib rom_via
-
-# IO Lib
-create_fusion_lib -dbs [list $IO_SS_0p81v_1p62v_125c_db $IO_TT_0p9v_1p8v_25c_db $IO_FF_0p99v_1p98v_m40c_db] -lefs $tphn28hpcpgv18_lef_file -technology $cln28ht_tech_file io_lib
-save_fusion_lib io_lib
-close_fusion_lib io_lib
-
-# Pad Lib
-create_fusion_lib -lefs $pad_lef_file -technology $cln28ht_tech_file pad_lib
-save_fusion_lib pad_lib
-close_fusion_lib pad_lib
-exit
\ No newline at end of file