diff --git a/.gitignore b/.gitignore
index 513a93cfdd3c5fc9fd416d549fb65639d9a8eb33..65b4d8bc0af7b79ef079b88f58cfb0b68098d4ed 100644
--- a/.gitignore
+++ b/.gitignore
@@ -10,17 +10,18 @@ ASIC/*.mr
 ASIC/*.pvk
 ASIC/alib-52
 ASIC/WORK/*
-ASIC/Cadence/Genus/fv
-ASIC/Cadence/Genus/*.rpt
-ASIC/Cadence/Genus/*.tstamp
-ASIC/Cadence/Innovus/.cadence
-ASIC/Cadence/Innovus/nanosoc_chip_pads
-ASIC/Cadence/Innovus/timingReports
-ASIC/Cadence/Innovus/*.db*
-ASIC/Cadence/Innovus/*.rpt
-ASIC/Cadence/Innovus/*.checkFPlan
-ASIC/Cadence/Innovus/*.ptiavg
-ASIC/Cadence/Innovus/*.ptifiles
+ASIC/*/Cadence/scripts/fv
+ASIC/*/Cadence/scripts/*.rpt
+ASIC/*/Cadence/scripts/*.tstamp
+
+ASIC/*/Cadence/scripts/.cadence
+ASIC/*/Cadence/scripts/nanosoc_chip_pads
+ASIC/*/Cadence/scripts/timingReports
+ASIC/*/Cadence/scripts/*.db*
+ASIC/*/Cadence/scripts/*.rpt
+ASIC/*/Cadence/scripts/*.checkFPlan
+ASIC/*/Cadence/scripts/*.ptiavg
+ASIC/*/Cadence/scripts/*.ptifiles
 ASIC/Synopsys/Formality/FM_INFO/*
 ASIC/Synopsys/ICC2/CLIBs
 ASIC/Synopsys/ICC2/PreFrameCheck
diff --git a/ASIC/Cadence/Genus/nanosoc.cpf b/ASIC/28pin/Cadence/cpf/nanosoc.cpf
similarity index 100%
rename from ASIC/Cadence/Genus/nanosoc.cpf
rename to ASIC/28pin/Cadence/cpf/nanosoc.cpf
diff --git a/ASIC/28pin/Cadence/cpf/nanosoc_imp.cpf b/ASIC/28pin/Cadence/cpf/nanosoc_imp.cpf
new file mode 100644
index 0000000000000000000000000000000000000000..e0869e5a6bcf67fcaf3452a006aac49192bfcc45
--- /dev/null
+++ b/ASIC/28pin/Cadence/cpf/nanosoc_imp.cpf
@@ -0,0 +1,19 @@
+set_cpf_version 1.1
+
+set_design nanosoc_chip_pads
+create_power_domain -name TOP -default
+create_power_domain -name ACCEL  -instances u_nanosoc_chip_u_system_u_ss_expansion_u_region_exp_u_ss_accelerator
+
+create_nominal_condition -name nom -voltage 1.08
+
+create_power_mode -name PM -domain_conditions {TOP@nom ACCEL@nom} -default
+
+create_ground_nets -nets VSS
+create_power_nets -nets VDD
+create_power_nets -nets VDDACC
+
+update_power_domain -name TOP -primary_power_net VDD -primary_ground_net VSS
+update_power_domain -name ACCEL -primary_power_net VDDACC -primary_ground_net VSS
+
+
+end_design
\ No newline at end of file
diff --git a/ASIC/Cadence/Innovus/clock_tree_synthesis.tcl b/ASIC/28pin/Cadence/scripts/clock_tree_synthesis.tcl
similarity index 100%
rename from ASIC/Cadence/Innovus/clock_tree_synthesis.tcl
rename to ASIC/28pin/Cadence/scripts/clock_tree_synthesis.tcl
diff --git a/ASIC/28pin/Cadence/scripts/design_import.tcl b/ASIC/28pin/Cadence/scripts/design_import.tcl
new file mode 100644
index 0000000000000000000000000000000000000000..7ab8211d6563e0db76825bed56d1362f218ebfff
--- /dev/null
+++ b/ASIC/28pin/Cadence/scripts/design_import.tcl
@@ -0,0 +1,49 @@
+#########################################
+# File : Design Import Logic 
+# Date : 22nd May 2022 
+# Author : Srimanth Tenneti 
+# Description : MMMC + Design Import 
+######################################### 
+
+### Settting PG Nets 
+set_db init_power_nets {VDD VDDIO VDDACC} 
+set_db init_ground_nets {VSS VSSIO} 
+
+### Processing MMMC 
+read_mmmc nanosoc.mmmc 
+
+# Set library paths 
+# !! EDIT THIS TO YOUR PATHS IN YOUR ENVIRONMENT
+set TECH_LEF $::env(PHYS_IP)/arm/tsmc/cln65lp/arm_tech/r2p0/lef/1p9m_6x2z/sc9_tech.lef
+set BASE_LEF $::env(PHYS_IP)/arm/tsmc/cln65lp/sc9_base_rvt/r0p0/lef/sc9_cln65lp_base_rvt.lef
+set IO_PAD_LEF /home/dwn1c21/SoC-Labs/phys_ip/tsmc/cln65lp/Backend/lef/tpbn65v_9lm.lef
+set IO_PAD_DRIVER_LEF /home/dwn1c21/SoC-Labs/phys_ip/tsmc/cln65lp/Backend/lef/tpdn65lpnv2od3_9lm.lef
+
+
+# !! THESE SHOULD BE CORRECT FOR ANY ENVIRONMENT AS THEY ARE GENERATED BY MAKEFILE
+set RF_16K_LEF $::env(SOCLABS_PROJECT_DIR)/memories/rf_16k/rf_16k.lef
+set RF_08K_LEF $::env(SOCLABS_PROJECT_DIR)/memories/rf_08k/rf_08k.lef
+set ROM_LEF $::env(SOCLABS_PROJECT_DIR)/memories/bootrom/rom_via.lef
+
+### Reading LEFs 
+read_physical -lef [list ${TECH_LEF} ${BASE_LEF} ${IO_PAD_LEF} ${IO_PAD_DRIVER_LEF} ${RF_16K_LEF} ${RF_08K_LEF} ${ROM_LEF}]
+
+### Reading Netlist 
+read_netlist $::env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/netlist/nanosoc_chip_pads_28pin.v
+
+### Read DEF scan chain
+#read_def $::env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/netlist/nanosoc_chip_pads_28pin.def
+
+### Initializing the Design 
+init_design
+
+### Adjusting the GUI 
+gui_fit 
+
+ungroup u_nanosoc_chip_u_system
+
+create_floorplan -core_margins_by die -flip s -site sc9_cln65lp -die_size 1000.0 1000.0 135.0 135.0 135.0 135.0
+
+read_power_intent -cpf ../cpf/nanosoc_imp.cpf
+
+
diff --git a/ASIC/28pin/Cadence/scripts/genus.tcl b/ASIC/28pin/Cadence/scripts/genus.tcl
new file mode 100644
index 0000000000000000000000000000000000000000..ceef0ea4050c370d3ff8bd84952b25002c4bb369
--- /dev/null
+++ b/ASIC/28pin/Cadence/scripts/genus.tcl
@@ -0,0 +1,72 @@
+set_db init_lib_search_path "/home/dwn1c21/SoC-Labs/phys_ip/tsmc/cln65lp/Front_End/timing_power_noise/NLDM/tpdn65lpnv2od3_200a/ $::env(PHYS_IP)/arm/tsmc/cln65lp/sc9_base_rvt/r0p0/lib/ $::env(SOCLABS_PROJECT_DIR)/memories/rf_08k/ $::env(SOCLABS_PROJECT_DIR)/memories/rf_16k/ $::env(SOCLABS_PROJECT_DIR)/memories/bootrom/"
+set BASE_LIB sc9_cln65lp_base_rvt_ss_typical_max_1p08v_125c.lib
+set RF_16K_LIB rf_16k_ss_1p08v_1p08v_125c.lib
+set RF_08K_LIB rf_08k_ss_1p08v_1p08v_125c.lib
+set ROM_LIB rom_via_ss_1p08v_1p08v_125c.lib
+set IO_PAD_DRIVER tpdn65lpnv2od3bc.lib
+create_library_domain domain1
+set_db [get_db library_domains domain1] .library "$BASE_LIB $RF_16K_LIB $RF_08K_LIB $ROM_LIB $IO_PAD_DRIVER"
+
+read_power_intent -cpf -module nanosoc_chip_pads ../cpf/nanosoc.cpf
+
+source $::env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/flist/genus_flist.tcl
+elaborate nanosoc_chip_pads
+
+apply_power_intent
+check_library > lib_check.log
+
+check_cpf 
+
+commit_power_intent
+check_power_structure -license lpgxl
+
+read_sdc $::env(SOCLABS_NANOSOC_TECH_DIR)/ASIC/constraints.sdc 
+
+#set_db dft_scan_style muxed_scan
+#set_db design:nanosoc_chip_pads .dft_min_number_of_scan_chains 1
+
+#read_dft_abstract_model nanosoc_dft_abstract_model
+#define_test_signal -name TEST  -active high -function test_mode -index 0 TEST
+#define_test_signal -name SWDCK  -active high -function scan_clock -index 0 SWDCK
+#define_test_signal -name NRST  -active low -function async_set_reset -index 0 NRST
+#define_test_signal -name SWDIO  -active high -function shift_enable -default -index 0 SWDIO
+#define_test_signal -name CLK  -active high -function test_clock -index 0 CLK
+
+#define_scan_chain -name chain_ACCEL -sdi DFT_SDI_1 -sdo DFT_SDO_1 -shared_output
+#define_scan_chain -name chain_TOP -sdi DFT_SDI_2 -sdo DFT_SDO_2  -shared_output
+
+
+#check_dft_rules
+#fix_dft_violations -test_control TEST -async_reset -add_observe_scan -scan_clock_pin SWDCK
+
+
+set_db syn_generic_effort high
+set_db syn_map_effort high
+
+syn_generic
+syn_map
+
+#convert_to_scan
+
+#connect_scan_chains -chains chain_ACCEL -power_domain ACCEL -incremental
+#connect_scan_chains -chains chain_TOP -power_domain TOP -incremental
+
+syn_opt
+
+report_area > $::env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/reports/syn_nanosoc_area_28pin.rep
+report_timing > $::env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/reports/syn_nanosoc_timing_28pin.rep
+report_gates > $::env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/reports/syn_nanosoc_gates_28pin.rep
+report_power > $::env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/reports/syn_nanosoc_power_28pin.rep
+
+write_hdl > $::env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/netlist/nanosoc_chip_pads_28pin.v
+write_hdl -pg > $::env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/netlist/nanosoc_chip_pads_28pins.vp
+
+#report_scan_chains > $::env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/dft/nanosoc_scan_chains.rep
+#report_scan_setup > $::env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/dft/nanosoc_scan_setup.rep
+#report_scan_registers > $::env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/dft/nanosoc_scan_registers.rep
+#write_dft_abstract_model > $::env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/dft/nanosoc_dft_abstract_model
+
+#write_dft_atpg_other_vendor -mentor > $::env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/dft/nanosoc_atpg
+
+#write_scandef > $::env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/netlist/nanosoc_chip_pads.def
+
diff --git a/ASIC/28pin/Cadence/scripts/io_plan.tcl b/ASIC/28pin/Cadence/scripts/io_plan.tcl
new file mode 100644
index 0000000000000000000000000000000000000000..48b4a5dfce8ad92005e7c61ddbd460a1d560c2c0
--- /dev/null
+++ b/ASIC/28pin/Cadence/scripts/io_plan.tcl
@@ -0,0 +1,57 @@
+#-----------------------------------------------------------------------------
+# NanoSoC IO plan for PnR in cadence Innovus
+# A joint work commissioned on behalf of SoC Labs, under Arm Academic Access license.
+#
+# Contributors
+#
+# Daniel Newbrook (d.newbrook@soton.ac.uk)
+#
+# Copyright (C) 2021-3, SoC Labs (www.soclabs.org)
+#-----------------------------------------------------------------------------
+
+
+delete_io_fillers -cell PCORNER
+delete_io_fillers -cell PFILLER20
+delete_io_fillers -cell PFILLER10
+delete_io_fillers -cell PFILLER5
+delete_io_fillers -cell PFILLER1
+delete_io_fillers -cell PFILLER05
+delete_io_fillers -cell PFILLER0005
+
+
+read_io_file nanosoc_io_plan.io
+
+add_io_fillers -cells PCORNER -prefix CORNER -side n -from -300 -to 300
+add_io_fillers -cells PCORNER -prefix CORNER -side e -from 880 -to 1200
+add_io_fillers -cells PCORNER -prefix CORNER -side s -from 880 -to 1200
+add_io_fillers -cells PCORNER -prefix CORNER -side w -from -300 -to 300
+
+add_io_fillers -cells PFILLER20 -prefix FILLER -side n
+add_io_fillers -cells PFILLER20 -prefix FILLER -side e
+add_io_fillers -cells PFILLER20 -prefix FILLER -side s 
+add_io_fillers -cells PFILLER20 -prefix FILLER -side w 
+
+add_io_fillers -cells PFILLER10 -prefix FILLER -side n
+add_io_fillers -cells PFILLER10 -prefix FILLER -side e
+add_io_fillers -cells PFILLER10 -prefix FILLER -side s 
+add_io_fillers -cells PFILLER10 -prefix FILLER -side w 
+
+add_io_fillers -cells PFILLER5 -prefix FILLER -side n
+add_io_fillers -cells PFILLER5 -prefix FILLER -side e
+add_io_fillers -cells PFILLER5 -prefix FILLER -side s 
+add_io_fillers -cells PFILLER5 -prefix FILLER -side w 
+
+add_io_fillers -cells PFILLER1 -prefix FILLER -side n
+add_io_fillers -cells PFILLER1 -prefix FILLER -side e
+add_io_fillers -cells PFILLER1 -prefix FILLER -side s 
+add_io_fillers -cells PFILLER1 -prefix FILLER -side w 
+
+add_io_fillers -cells PFILLER05 -prefix FILLER -side n
+add_io_fillers -cells PFILLER05 -prefix FILLER -side e
+add_io_fillers -cells PFILLER05 -prefix FILLER -side s 
+add_io_fillers -cells PFILLER05 -prefix FILLER -side w 
+
+add_io_fillers -cells PFILLER0005 -prefix FILLER -side n
+add_io_fillers -cells PFILLER0005 -prefix FILLER -side e
+add_io_fillers -cells PFILLER0005 -prefix FILLER -side s 
+add_io_fillers -cells PFILLER0005 -prefix FILLER -side w 
\ No newline at end of file
diff --git a/ASIC/28pin/Cadence/scripts/lec.dofile b/ASIC/28pin/Cadence/scripts/lec.dofile
new file mode 100644
index 0000000000000000000000000000000000000000..a67fb237af04e071b15799c92b25e8b6c4baf73b
--- /dev/null
+++ b/ASIC/28pin/Cadence/scripts/lec.dofile
@@ -0,0 +1,39 @@
+read library $SOCLABS_PROJECT_DIR/memories/rf/rf_sp_hdf_ss_1p08v_1p08v_125c.lib -liberty -golden 
+read library $SOCLABS_PROJECT_DIR/memories/bootrom/rom_via_ss_1p08v_1p08v_125c.lib -liberty -golden -append
+
+
+add search path $SOCLABS_PROJECT_DIR/system/src/defines
+add search path "[get_db hdl_search_path] $ACCELERATOR_DIR/src/rtl"
+read library -verilog -golden -append -define POWER_PINS $SOCLABS_PROJECT_DIR/system/src/defines/gen_defines.v 
+read library -golden -append -define POWER_PINS -sv09 $SOCLABS_WRAPPER_TECH_DIR/hdl/src/wrapper_ahb_packet_constructor.sv $SOCLABS_WRAPPER_TECH_DIR/hdl/src/wrapper_ahb_packet_deconstructor.sv $SOCLABS_WRAPPER_TECH_DIR/hdl/src/wrapper_addr_calc.sv $SOCLABS_WRAPPER_TECH_DIR/hdl/src/wrapper_data_req.sv $SOCLABS_WRAPPER_TECH_DIR/hdl/src/wrapper_ahb_reg_interface.sv $SOCLABS_WRAPPER_TECH_DIR/hdl/src/wrapper_packet_construct.sv $SOCLABS_WRAPPER_TECH_DIR/hdl/src/wrapper_packet_deconstruct.sv $SOCLABS_WRAPPER_TECH_DIR/hdl/src/wrapper_req_ctrl_reg.sv $SOCLABS_WRAPPER_TECH_DIR/hdl/src/wrapper_dmac_req.sv $SOCLABS_WRAPPER_TECH_DIR/hdl/src/wrapper_valid_filter.sv 
+read library -verilog -golden -append -define POWER_PINS $SOCLABS_PROJECT_DIR/system/src/accelerator_subsystem.v 
+read library -golden -append -define POWER_PINS -sv09 $SOCLABS_PRIMITIVES_TECH_DIR/src/sv/fifo_vr.sv 
+read library -verilog -golden -append -define POWER_PINS $SOCLABS_ASIC_LIB_TECH_DIR/sram/verilog/sl_ahb_sram.v $SOCLABS_ASIC_LIB_TECH_DIR/sram/verilog/sl_sram.v $SOCLABS_ASIC_LIB_TECH_DIR/rom/verilog/bootrom.v $SOCLABS_ASIC_LIB_TECH_DIR/pads/verilog/PAD_INOUT8MA_NOE.v $SOCLABS_ASIC_LIB_TECH_DIR/pads/verilog/PAD_VDDIO.v $SOCLABS_ASIC_LIB_TECH_DIR/pads/verilog/PAD_VSSIO.v $SOCLABS_ASIC_LIB_TECH_DIR/pads/verilog/PAD_VDDSOC.v $SOCLABS_ASIC_LIB_TECH_DIR/pads/verilog/PAD_VSS.v $SOCLABS_ASIC_LIB_TECH_DIR/sync/verilog/SYNCHRONIZER_EDGES.v 
+read library -golden -append -define POWER_PINS -sv09 $SOCLABS_WRAPPER_TECH_DIR/hdl/src/wrapper_ahb_packet_constructor.sv $SOCLABS_WRAPPER_TECH_DIR/hdl/src/wrapper_ahb_packet_deconstructor.sv $SOCLABS_WRAPPER_TECH_DIR/hdl/src/wrapper_addr_calc.sv $SOCLABS_WRAPPER_TECH_DIR/hdl/src/wrapper_data_req.sv $SOCLABS_WRAPPER_TECH_DIR/hdl/src/wrapper_ahb_reg_interface.sv $SOCLABS_WRAPPER_TECH_DIR/hdl/src/wrapper_packet_construct.sv $SOCLABS_WRAPPER_TECH_DIR/hdl/src/wrapper_packet_deconstruct.sv $SOCLABS_WRAPPER_TECH_DIR/hdl/src/wrapper_req_ctrl_reg.sv $SOCLABS_WRAPPER_TECH_DIR/hdl/src/wrapper_dmac_req.sv $SOCLABS_WRAPPER_TECH_DIR/hdl/src/wrapper_valid_filter.sv 
+add search path "[get_db hdl_search_path] $ARM_IP_LIBRARY_PATH/latest/Corstone-101/logical/cmsdk_apb_dualtimers/verilog"
+add search path "[get_db hdl_search_path] $ARM_IP_LIBRARY_PATH/latest/Corstone-101/logical/cmsdk_apb_watchdog/verilog"
+add search path "[get_db hdl_search_path] $ARM_IP_LIBRARY_PATH/latest/Corstone-101/logical/models/memories/"
+read library -verilog -golden -append -define POWER_PINS $ARM_IP_LIBRARY_PATH/latest/Corstone-101/logical/cmsdk_apb_timer/verilog/cmsdk_apb_timer.v $ARM_IP_LIBRARY_PATH/latest/Corstone-101/logical/cmsdk_apb_dualtimers/verilog/cmsdk_apb_dualtimers_frc.v $ARM_IP_LIBRARY_PATH/latest/Corstone-101/logical/cmsdk_apb_dualtimers/verilog/cmsdk_apb_dualtimers.v $ARM_IP_LIBRARY_PATH/latest/Corstone-101/logical/cmsdk_apb_uart/verilog/cmsdk_apb_uart.v $ARM_IP_LIBRARY_PATH/latest/Corstone-101/logical/cmsdk_apb_watchdog/verilog/cmsdk_apb_watchdog_frc.v $ARM_IP_LIBRARY_PATH/latest/Corstone-101/logical/cmsdk_apb_watchdog/verilog/cmsdk_apb_watchdog.v $ARM_IP_LIBRARY_PATH/latest/Corstone-101/logical/cmsdk_apb_slave_mux/verilog/cmsdk_apb_slave_mux.v $ARM_IP_LIBRARY_PATH/latest/Corstone-101/logical/cmsdk_apb_subsystem/verilog/cmsdk_apb_subsystem.v $ARM_IP_LIBRARY_PATH/latest/Corstone-101/logical/cmsdk_apb_subsystem/verilog/cmsdk_apb_test_slave.v $ARM_IP_LIBRARY_PATH/latest/Corstone-101/logical/cmsdk_apb_subsystem/verilog/cmsdk_irq_sync.v $ARM_IP_LIBRARY_PATH/latest/Corstone-101/logical/cmsdk_ahb_slave_mux/verilog/cmsdk_ahb_slave_mux.v $ARM_IP_LIBRARY_PATH/latest/Corstone-101/logical/cmsdk_ahb_default_slave/verilog/cmsdk_ahb_default_slave.v $ARM_IP_LIBRARY_PATH/latest/Corstone-101/logical/cmsdk_ahb_gpio/verilog/cmsdk_ahb_gpio.v $ARM_IP_LIBRARY_PATH/latest/Corstone-101/logical/cmsdk_ahb_gpio/verilog/cmsdk_ahb_to_iop.v $ARM_IP_LIBRARY_PATH/latest/Corstone-101/logical/cmsdk_ahb_to_apb/verilog/cmsdk_ahb_to_apb.v $ARM_IP_LIBRARY_PATH/latest/Corstone-101/logical/cmsdk_iop_gpio/verilog/cmsdk_iop_gpio.v $ARM_IP_LIBRARY_PATH/latest/Corstone-101/logical/models/clkgate/cmsdk_clock_gate.v $ARM_IP_LIBRARY_PATH/latest/Corstone-101/logical/models/memories/cmsdk_ahb_ram_beh.v $ARM_IP_LIBRARY_PATH/latest/Corstone-101/logical/models/memories/cmsdk_ahb_ram.v $ARM_IP_LIBRARY_PATH/latest/Corstone-101/logical/models/memories/cmsdk_ahb_rom.v $ARM_IP_LIBRARY_PATH/latest/Corstone-101/logical/models/memories/cmsdk_fpga_rom.v 
+read library -verilog2k -golden -append -define POWER_PINS $ARM_IP_LIBRARY_PATH/latest/Corstone-101/logical/cmsdk_ahb_to_sram/verilog/cmsdk_ahb_to_sram.v 
+add search path "[get_db hdl_search_path] $ARM_IP_LIBRARY_PATH/latest/Cortex-M0/logical/cortexm0_dap/verilog"
+add search path "[get_db hdl_search_path] $ARM_IP_LIBRARY_PATH/latest/Cortex-M0/logical/ualdis/verilog"
+read library -verilog -golden -append -define POWER_PINS $ARM_IP_LIBRARY_PATH/latest/Cortex-M0/logical/cortexm0/verilog/cm0_core_alu.v $ARM_IP_LIBRARY_PATH/latest/Cortex-M0/logical/cortexm0/verilog/cm0_core_ctl.v $ARM_IP_LIBRARY_PATH/latest/Cortex-M0/logical/cortexm0/verilog/cm0_core_dec.v $ARM_IP_LIBRARY_PATH/latest/Cortex-M0/logical/cortexm0/verilog/cm0_core_gpr.v $ARM_IP_LIBRARY_PATH/latest/Cortex-M0/logical/cortexm0/verilog/cm0_core_mul.v $ARM_IP_LIBRARY_PATH/latest/Cortex-M0/logical/cortexm0/verilog/cm0_core_pfu.v $ARM_IP_LIBRARY_PATH/latest/Cortex-M0/logical/cortexm0/verilog/cm0_core_psr.v $ARM_IP_LIBRARY_PATH/latest/Cortex-M0/logical/cortexm0/verilog/cm0_core_spu.v $ARM_IP_LIBRARY_PATH/latest/Cortex-M0/logical/cortexm0/verilog/cm0_core.v $ARM_IP_LIBRARY_PATH/latest/Cortex-M0/logical/cortexm0/verilog/cm0_dbg_bpu.v $ARM_IP_LIBRARY_PATH/latest/Cortex-M0/logical/cortexm0/verilog/cm0_dbg_ctl.v $ARM_IP_LIBRARY_PATH/latest/Cortex-M0/logical/cortexm0/verilog/cm0_dbg_dwt.v $ARM_IP_LIBRARY_PATH/latest/Cortex-M0/logical/cortexm0/verilog/cm0_dbg_if.v $ARM_IP_LIBRARY_PATH/latest/Cortex-M0/logical/cortexm0/verilog/cm0_dbg_sel.v $ARM_IP_LIBRARY_PATH/latest/Cortex-M0/logical/cortexm0/verilog/cm0_matrix_sel.v $ARM_IP_LIBRARY_PATH/latest/Cortex-M0/logical/cortexm0/verilog/cm0_matrix.v $ARM_IP_LIBRARY_PATH/latest/Cortex-M0/logical/cortexm0/verilog/cm0_nvic_main.v $ARM_IP_LIBRARY_PATH/latest/Cortex-M0/logical/cortexm0/verilog/cm0_nvic_reg.v $ARM_IP_LIBRARY_PATH/latest/Cortex-M0/logical/cortexm0/verilog/cm0_nvic.v $ARM_IP_LIBRARY_PATH/latest/Cortex-M0/logical/cortexm0/verilog/cm0_tarmac.v $ARM_IP_LIBRARY_PATH/latest/Cortex-M0/logical/cortexm0/verilog/cm0_top_clk.v $ARM_IP_LIBRARY_PATH/latest/Cortex-M0/logical/cortexm0/verilog/cm0_top_dbg.v $ARM_IP_LIBRARY_PATH/latest/Cortex-M0/logical/cortexm0/verilog/cm0_top_sys.v $ARM_IP_LIBRARY_PATH/latest/Cortex-M0/logical/cortexm0/verilog/cm0_top.v $ARM_IP_LIBRARY_PATH/latest/Cortex-M0/logical/cortexm0/verilog/CORTEXM0.v $ARM_IP_LIBRARY_PATH/latest/Cortex-M0/logical/cortexm0_dap/verilog/cm0_dap_ap_cdc.v $ARM_IP_LIBRARY_PATH/latest/Cortex-M0/logical/cortexm0_dap/verilog/cm0_dap_ap_mast.v $ARM_IP_LIBRARY_PATH/latest/Cortex-M0/logical/cortexm0_dap/verilog/cm0_dap_ap.v $ARM_IP_LIBRARY_PATH/latest/Cortex-M0/logical/cortexm0_dap/verilog/cm0_dap_dp_cdc.v $ARM_IP_LIBRARY_PATH/latest/Cortex-M0/logical/cortexm0_dap/verilog/cm0_dap_dp_jtag.v $ARM_IP_LIBRARY_PATH/latest/Cortex-M0/logical/cortexm0_dap/verilog/cm0_dap_dp_pwr.v $ARM_IP_LIBRARY_PATH/latest/Cortex-M0/logical/cortexm0_dap/verilog/cm0_dap_dp_sw.v $ARM_IP_LIBRARY_PATH/latest/Cortex-M0/logical/cortexm0_dap/verilog/cm0_dap_dp.v $ARM_IP_LIBRARY_PATH/latest/Cortex-M0/logical/cortexm0_dap/verilog/CORTEXM0DAP.v $ARM_IP_LIBRARY_PATH/latest/Cortex-M0/logical/cortexm0_integration/verilog/CORTEXM0INTEGRATION.v $ARM_IP_LIBRARY_PATH/latest/Cortex-M0/logical/cortexm0_integration/verilog/cortexm0_pmu.v $ARM_IP_LIBRARY_PATH/latest/Cortex-M0/logical/cortexm0_integration/verilog/cortexm0_rst_ctl.v $ARM_IP_LIBRARY_PATH/latest/Cortex-M0/logical/cortexm0_integration/verilog/cortexm0_wic.v $ARM_IP_LIBRARY_PATH/latest/Cortex-M0/logical/models/cells/cm0_acg.v $ARM_IP_LIBRARY_PATH/latest/Cortex-M0/logical/models/cells/cm0_dap_cdc_capt_sync.v $ARM_IP_LIBRARY_PATH/latest/Cortex-M0/logical/models/cells/cm0_dap_cdc_comb_and_addr.v $ARM_IP_LIBRARY_PATH/latest/Cortex-M0/logical/models/cells/cm0_dap_cdc_comb_and_data.v $ARM_IP_LIBRARY_PATH/latest/Cortex-M0/logical/models/cells/cm0_dap_cdc_comb_and.v $ARM_IP_LIBRARY_PATH/latest/Cortex-M0/logical/models/cells/cm0_dap_cdc_send_addr.v $ARM_IP_LIBRARY_PATH/latest/Cortex-M0/logical/models/cells/cm0_dap_cdc_send_data.v $ARM_IP_LIBRARY_PATH/latest/Cortex-M0/logical/models/cells/cm0_dap_cdc_send_reset.v $ARM_IP_LIBRARY_PATH/latest/Cortex-M0/logical/models/cells/cm0_dap_cdc_send.v $ARM_IP_LIBRARY_PATH/latest/Cortex-M0/logical/models/cells/cm0_dap_jt_cdc_comb_and.v $ARM_IP_LIBRARY_PATH/latest/Cortex-M0/logical/models/cells/cm0_dap_sw_cdc_capt_reset.v $ARM_IP_LIBRARY_PATH/latest/Cortex-M0/logical/models/cells/cm0_dbg_reset_sync.v $ARM_IP_LIBRARY_PATH/latest/Cortex-M0/logical/models/cells/cm0_pmu_acg.v $ARM_IP_LIBRARY_PATH/latest/Cortex-M0/logical/models/cells/cm0_pmu_cdc_send_reset.v $ARM_IP_LIBRARY_PATH/latest/Cortex-M0/logical/models/cells/cm0_pmu_cdc_send_set.v $ARM_IP_LIBRARY_PATH/latest/Cortex-M0/logical/models/cells/cm0_pmu_sync_reset.v $ARM_IP_LIBRARY_PATH/latest/Cortex-M0/logical/models/cells/cm0_pmu_sync_set.v $ARM_IP_LIBRARY_PATH/latest/Cortex-M0/logical/models/cells/cm0_rst_send_set.v $ARM_IP_LIBRARY_PATH/latest/Cortex-M0/logical/models/cells/cm0_rst_sync.v $ARM_IP_LIBRARY_PATH/latest/Cortex-M0/logical/models/wrappers/CORTEXM0IMP.v $ARM_IP_LIBRARY_PATH/latest/Cortex-M0/logical/models/wrappers/CORTEXM0INTEGRATIONIMP.v 
+read library -verilog -golden -append -define POWER_PINS $SOCLABS_SLCOREM0_TECH_DIR/src/verilog/slcorem0.v $SOCLABS_SLCOREM0_TECH_DIR/src/verilog/slcorem0_prmu.v $SOCLABS_SLCOREM0_TECH_DIR/src/verilog/slcorem0_stclkctrl.v $SOCLABS_SLCOREM0_TECH_DIR/src/verilog/slcorem0_rstctrl.v $SOCLABS_SLCOREM0_TECH_DIR/src/verilog/slcorem0_integration.v 
+read library -verilog -golden -append -define POWER_PINS $SOCLABS_SOCDEBUG_TECH_DIR/controller/verilog/socdebug_adp_control.v $SOCLABS_SOCDEBUG_TECH_DIR/controller/verilog/socdebug_ahb.v $SOCLABS_SOCDEBUG_TECH_DIR/controller/verilog/socdebug_ft1248_control.v $SOCLABS_SOCDEBUG_TECH_DIR/controller/verilog/socdebug_usrt_control.v 
+
+add search path "[get_db hdl_search_path] $SOCLABS_SLDMA350_TECH_DIR/src/logical/"
+add search path "[get_db hdl_search_path] $SOCLABS_SLDMA350_TECH_DIR/src/logical/shared/verilog/"
+read library -golden -append -define POWER_PINS -sv09 $SOCLABS_SLDMA350_TECH_DIR/src/logical/shared/verilog/ada_gen_regmap_sldma350_pkg.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/shared/verilog/ada_apb_regmap_conv_sldma350.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/shared/verilog/ada_reg_field_ro_ro_sldma350.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/shared/verilog/ada_reg_field_rw_ro_sldma350.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/shared/verilog/ada_reg_field_rw_w1c_sldma350.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/shared/verilog/ada_reg_field_rw_w1s_sldma350.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/shared/verilog/ada_reg_field_rw_rw_sldma350.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/shared/verilog/ada_gen_coreif_dmach_sldma350_pkg.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/shared/verilog/ada_gen_addrmap_dmach_sldma350.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/shared/verilog/ada_interface_sldma350_pkg.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/shared/verilog/ada_address_map_m1_sldma350_inc.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/shared/verilog/ada_flop_en/verilog/ada_flop_en.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/shared/verilog/ada_or_tree/verilog/ada_or_tree.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/shared/verilog/ada_gen_regif_dmainfo_sldma350_pkg.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/models/cells/generic/ada_arm_flop.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/models/cells/generic/ada_arm_sync.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/models/cells/generic/ada_arm_mux2.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/models/cells/generic/ada_arm_or.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/models/cells/generic/ada_arm_idbit_v1.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/shared/verilog/ada_ecorevnum.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/ada_top_sldma350/verilog/ada_top_sldma350.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/ada_biu_sldma350/verilog/ada_biu_sldma350.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/ada_biu_sldma350/verilog/ada_biu_read_switch_sldma350.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/ada_biu_sldma350/verilog/ada_biu_read_switch_wrapper_sldma350.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/ada_biu_sldma350/verilog/ada_biu_write_switch_sldma350.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/ada_biu_sldma350/verilog/ada_biu_write_switch_wrapper_sldma350.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/ada_biu_sldma350/verilog/ada_biu_arbiter_sldma350.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/ada_biu_sldma350/verilog/ada_biu_qv_cmp_sldma350.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/ada_biu_sldma350/verilog/ada_biu_lrg_arb_sldma350.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/ada_biu_sldma350/verilog/ada_biu_grant_queue_sldma350.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/ada_biu_sldma350/verilog/ada_biu_full_f2s_sldma350.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/ada_biu_sldma350/verilog/ada_biu_reverse_s2f_sldma350.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/ada_channel_0_sldma350/verilog/ada_gen_regif_dmach_0_sldma350_pkg.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/ada_channel_0_sldma350/verilog/ada_gen_regif_dmach_0_sldma350.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/ada_channel_0_sldma350/verilog/ada_gen_regmap_dmach_0_sldma350.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/ada_channel_0_sldma350/verilog/ada_gen_fields_coreif_dmach_0_sldma350.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/ada_channel_0_sldma350/verilog/ada_gen_coreif_res_dmach_0_sldma350_pkg.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/ada_channel_0_sldma350/verilog/ada_channel_0_sldma350_pkg.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/ada_channel_0_sldma350/verilog/ada_channel_0_sldma350.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/ada_channel_0_sldma350/verilog/ada_channel_0_ctrl_sldma350.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/ada_channel_0_sldma350/verilog/ada_channel_0_1d_wr_ctrl_sldma350.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/ada_channel_0_sldma350/verilog/ada_channel_0_2d_wr_ctrl_sldma350.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/ada_channel_0_sldma350/verilog/ada_channel_0_1d_rd_ctrl_sldma350.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/ada_channel_0_sldma350/verilog/ada_channel_0_2d_rd_ctrl_sldma350.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/ada_channel_0_sldma350/verilog/ada_channel_0_fifo_sldma350.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/ada_channel_0_sldma350/verilog/ada_channel_0_cmdlink_sldma350.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/ada_channel_0_sldma350/verilog/ada_channel_0_axi_rd_if_sldma350.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/ada_channel_0_sldma350/verilog/ada_channel_0_axi_wr_if_sldma350.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/ada_channel_0_sldma350/verilog/ada_channel_0_axi_stop_sldma350.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/ada_channel_0_sldma350/verilog/ada_channel_0_reg_bank_sldma350.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/ada_channel_0_sldma350/verilog/ada_channel_0_inc_gen_sldma350.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/ada_channel_0_sldma350/verilog/ada_channel_0_stream_wrapper_sldma350.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/ada_channel_0_sldma350/verilog/ada_channel_0_stream_slave_sldma350.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/ada_channel_0_sldma350/verilog/ada_channel_0_stream_master_sldma350.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/ada_channel_0_sldma350/verilog/ada_channel_0_stream_bypass_sldma350.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/ada_channel_0_sldma350/verilog/ada_channel_0_trig_in_sldma350.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/ada_channel_0_sldma350/verilog/ada_channel_0_trig_out_sldma350.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/ada_channel_1_sldma350/verilog/ada_gen_regif_dmach_1_sldma350_pkg.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/ada_channel_1_sldma350/verilog/ada_gen_regif_dmach_1_sldma350.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/ada_channel_1_sldma350/verilog/ada_gen_regmap_dmach_1_sldma350.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/ada_channel_1_sldma350/verilog/ada_gen_fields_coreif_dmach_1_sldma350.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/ada_channel_1_sldma350/verilog/ada_gen_coreif_res_dmach_1_sldma350_pkg.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/ada_channel_1_sldma350/verilog/ada_channel_1_sldma350_pkg.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/ada_channel_1_sldma350/verilog/ada_channel_1_sldma350.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/ada_channel_1_sldma350/verilog/ada_channel_1_ctrl_sldma350.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/ada_channel_1_sldma350/verilog/ada_channel_1_1d_wr_ctrl_sldma350.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/ada_channel_1_sldma350/verilog/ada_channel_1_2d_wr_ctrl_sldma350.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/ada_channel_1_sldma350/verilog/ada_channel_1_1d_rd_ctrl_sldma350.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/ada_channel_1_sldma350/verilog/ada_channel_1_2d_rd_ctrl_sldma350.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/ada_channel_1_sldma350/verilog/ada_channel_1_fifo_sldma350.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/ada_channel_1_sldma350/verilog/ada_channel_1_cmdlink_sldma350.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/ada_channel_1_sldma350/verilog/ada_channel_1_axi_rd_if_sldma350.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/ada_channel_1_sldma350/verilog/ada_channel_1_axi_wr_if_sldma350.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/ada_channel_1_sldma350/verilog/ada_channel_1_axi_stop_sldma350.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/ada_channel_1_sldma350/verilog/ada_channel_1_reg_bank_sldma350.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/ada_channel_1_sldma350/verilog/ada_channel_1_inc_gen_sldma350.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/ada_channel_1_sldma350/verilog/ada_channel_1_stream_wrapper_sldma350.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/ada_channel_1_sldma350/verilog/ada_channel_1_stream_slave_sldma350.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/ada_channel_1_sldma350/verilog/ada_channel_1_stream_master_sldma350.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/ada_channel_1_sldma350/verilog/ada_channel_1_stream_bypass_sldma350.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/ada_channel_1_sldma350/verilog/ada_channel_1_trig_in_sldma350.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/ada_channel_1_sldma350/verilog/ada_channel_1_trig_out_sldma350.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/ada_ctrl_sldma350/verilog/ada_gen_regif_dmainfo_sldma350.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/ada_ctrl_sldma350/verilog/ada_gen_regmap_dmainfo_sldma350.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/ada_ctrl_sldma350/verilog/ada_gen_fields_coreif_dmainfo_sldma350.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/ada_ctrl_sldma350/verilog/ada_gen_addrmap_dmainfo_sldma350.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/ada_ctrl_sldma350/verilog/ada_gen_coreif_dmansecctrl_sldma350_pkg.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/ada_ctrl_sldma350/verilog/ada_gen_regif_dmansecctrl_sldma350_pkg.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/ada_ctrl_sldma350/verilog/ada_gen_regif_dmansecctrl_sldma350.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/ada_ctrl_sldma350/verilog/ada_gen_regmap_dmansecctrl_sldma350.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/ada_ctrl_sldma350/verilog/ada_gen_fields_coreif_dmansecctrl_sldma350.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/ada_ctrl_sldma350/verilog/ada_gen_addrmap_dmansecctrl_sldma350.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/ada_ctrl_sldma350/verilog/ada_ctrl_apb_slave_mux_sldma350.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/ada_ctrl_sldma350/verilog/ada_ctrl_dmainfo_reg_bank_sldma350.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/ada_ctrl_sldma350/verilog/ada_ctrl_dmansecctrl_reg_bank_sldma350.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/ada_ctrl_sldma350/verilog/ada_ctrl_trigmask_sldma350.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/ada_ctrl_sldma350/verilog/ada_ctrl_trigin_used_sldma350.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/ada_ctrl_sldma350/verilog/ada_ctrl_trigout_used_sldma350.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/ada_ctrl_sldma350/verilog/ada_ctrl_sldma350.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/ada_qctrl_sldma350/verilog/ada_qctrl_sldma350.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/ada_trigmtx_sldma350/verilog/ada_trigmtx_sldma350.sv 
+read library -golden -append -define POWER_PINS -sv09 $SOCLABS_SLDMA350_TECH_DIR/src/logical/models/cells/generic/xhb500_or.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/models/cells/generic/xhb500_xor.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/models/cells/generic/xhb500_flop.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/models/cells/generic/xhb500_sync.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/shared/verilog/xhb500_regd_slice/verilog/xhb500_bypass_regd_slice_empty.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/shared/verilog/xhb500_regd_slice/verilog/xhb500_forward_regd_slice.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/shared/verilog/xhb500_regd_slice/verilog/xhb500_forward_regd_slice_empty.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/xhb500_axi_to_ahb_bridge_sldma350/verilog/xhb500_axi_to_ahb_bridge_sldma350_pkg.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/xhb500_axi_to_ahb_bridge_sldma350/verilog/xhb500_axi_to_ahb_bridge_sldma350.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/xhb500_axi_to_ahb_bridge_sldma350/verilog/xhb500_axi_to_ahb_bridge_sldma350_core.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/xhb500_axi_to_ahb_bridge_sldma350/verilog/xhb500_axi_to_ahb_bridge_sldma350_core_xin.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/xhb500_axi_to_ahb_bridge_sldma350/verilog/xhb500_axi_to_ahb_bridge_sldma350_core_h_xout.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/xhb500_axi_to_ahb_bridge_sldma350/verilog/xhb500_axi_to_ahb_bridge_sldma350_xreg.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/xhb500_axi_to_ahb_bridge_sldma350/verilog/xhb500_axi_to_ahb_bridge_sldma350_hreg.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/xhb500_axi_to_ahb_bridge_sldma350/verilog/xhb500_axi_to_ahb_bridge_sldma350_respreg_r.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/xhb500_axi_to_ahb_bridge_sldma350/verilog/xhb500_axi_to_ahb_bridge_sldma350_respreg_b.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/xhb500_axi_to_ahb_bridge_sldma350/verilog/xhb500_axi_to_ahb_bridge_sldma350_lpi.sv $SOCLABS_SLDMA350_TECH_DIR/src/logical/xhb500_axi_to_ahb_bridge_sldma350/verilog/xhb500_axi_to_ahb_bridge_sldma350_strbgen.sv $SOCLABS_SLDMA350_TECH_DIR/wrapper/logical/sldma350_ahb.v $SOCLABS_SLDMA350_TECH_DIR/wrapper/logical/sldma350_trig_converter.v 
+read library -verilog -golden -append -define POWER_PINS $SOCLABS_NANOSOC_TECH_DIR/nanosoc/nanosoc_busmatrix/verilog/nanosoc_busmatrix/nanosoc_arbiter_BOOTROM_0.v $SOCLABS_NANOSOC_TECH_DIR/nanosoc/nanosoc_busmatrix/verilog/nanosoc_busmatrix/nanosoc_arbiter_DMEM_0.v $SOCLABS_NANOSOC_TECH_DIR/nanosoc/nanosoc_busmatrix/verilog/nanosoc_busmatrix/nanosoc_arbiter_EXPRAM_H.v $SOCLABS_NANOSOC_TECH_DIR/nanosoc/nanosoc_busmatrix/verilog/nanosoc_busmatrix/nanosoc_arbiter_EXPRAM_L.v $SOCLABS_NANOSOC_TECH_DIR/nanosoc/nanosoc_busmatrix/verilog/nanosoc_busmatrix/nanosoc_arbiter_EXP.v $SOCLABS_NANOSOC_TECH_DIR/nanosoc/nanosoc_busmatrix/verilog/nanosoc_busmatrix/nanosoc_arbiter_IMEM_0.v $SOCLABS_NANOSOC_TECH_DIR/nanosoc/nanosoc_busmatrix/verilog/nanosoc_busmatrix/nanosoc_arbiter_SYSIO.v $SOCLABS_NANOSOC_TECH_DIR/nanosoc/nanosoc_busmatrix/verilog/nanosoc_busmatrix/nanosoc_arbiter_SYSTABLE.v $SOCLABS_NANOSOC_TECH_DIR/nanosoc/nanosoc_busmatrix/verilog/nanosoc_busmatrix/nanosoc_busmatrix_default_slave.v $SOCLABS_NANOSOC_TECH_DIR/nanosoc/nanosoc_busmatrix/verilog/nanosoc_busmatrix/nanosoc_busmatrix_lite.v $SOCLABS_NANOSOC_TECH_DIR/nanosoc/nanosoc_busmatrix/verilog/nanosoc_busmatrix/nanosoc_busmatrix.v $SOCLABS_NANOSOC_TECH_DIR/nanosoc/nanosoc_busmatrix/verilog/nanosoc_busmatrix/nanosoc_inititator_input.v $SOCLABS_NANOSOC_TECH_DIR/nanosoc/nanosoc_busmatrix/verilog/nanosoc_busmatrix/nanosoc_matrix_decode_CPU_0.v $SOCLABS_NANOSOC_TECH_DIR/nanosoc/nanosoc_busmatrix/verilog/nanosoc_busmatrix/nanosoc_matrix_decode_DEBUG.v $SOCLABS_NANOSOC_TECH_DIR/nanosoc/nanosoc_busmatrix/verilog/nanosoc_busmatrix/nanosoc_matrix_decode_DMAC_0.v $SOCLABS_NANOSOC_TECH_DIR/nanosoc/nanosoc_busmatrix/verilog/nanosoc_busmatrix/nanosoc_matrix_decode_DMAC_1.v $SOCLABS_NANOSOC_TECH_DIR/nanosoc/nanosoc_busmatrix/verilog/nanosoc_busmatrix/nanosoc_target_output_BOOTROM_0.v $SOCLABS_NANOSOC_TECH_DIR/nanosoc/nanosoc_busmatrix/verilog/nanosoc_busmatrix/nanosoc_target_output_DMEM_0.v $SOCLABS_NANOSOC_TECH_DIR/nanosoc/nanosoc_busmatrix/verilog/nanosoc_busmatrix/nanosoc_target_output_EXPRAM_H.v $SOCLABS_NANOSOC_TECH_DIR/nanosoc/nanosoc_busmatrix/verilog/nanosoc_busmatrix/nanosoc_target_output_EXPRAM_L.v $SOCLABS_NANOSOC_TECH_DIR/nanosoc/nanosoc_busmatrix/verilog/nanosoc_busmatrix/nanosoc_target_output_EXP.v $SOCLABS_NANOSOC_TECH_DIR/nanosoc/nanosoc_busmatrix/verilog/nanosoc_busmatrix/nanosoc_target_output_IMEM_0.v $SOCLABS_NANOSOC_TECH_DIR/nanosoc/nanosoc_busmatrix/verilog/nanosoc_busmatrix/nanosoc_target_output_SYSIO.v $SOCLABS_NANOSOC_TECH_DIR/nanosoc/nanosoc_busmatrix/verilog/nanosoc_busmatrix/nanosoc_target_output_SYSTABLE.v 
+read library -verilog -golden -append -define POWER_PINS $SOCLABS_NANOSOC_TECH_DIR/nanosoc/nanosoc_chip/pads/glib/verilog/nanosoc_chip_pads.v $SOCLABS_NANOSOC_TECH_DIR/nanosoc/nanosoc_chip/chip/verilog/nanosoc_chip.v $SOCLABS_NANOSOC_TECH_DIR/nanosoc/nanosoc_system/verilog/nanosoc_system.v $SOCLABS_NANOSOC_TECH_DIR/nanosoc/nanosoc_subsystems/cpu/verilog/nanosoc_ss_cpu.v $SOCLABS_NANOSOC_TECH_DIR/nanosoc/nanosoc_subsystems/debug/verilog/nanosoc_ss_debug.v $SOCLABS_NANOSOC_TECH_DIR/nanosoc/nanosoc_subsystems/expansion/verilog/nanosoc_ss_expansion.v $SOCLABS_NANOSOC_TECH_DIR/nanosoc/nanosoc_subsystems/systemctrl/verilog/nanosoc_ss_systemctrl.v $SOCLABS_NANOSOC_TECH_DIR/nanosoc/nanosoc_subsystems/interconnect/verilog/nanosoc_ss_interconnect.v $SOCLABS_NANOSOC_TECH_DIR/nanosoc/nanosoc_subsystems/dma/verilog/nanosoc_ss_dma.v $SOCLABS_NANOSOC_TECH_DIR/nanosoc/nanosoc_regions/bootrom_0/verilog/nanosoc_bootrom_cpu_0.v $SOCLABS_NANOSOC_TECH_DIR/nanosoc/nanosoc_regions/bootrom_0/verilog/nanosoc_region_bootrom_0.v $SOCLABS_NANOSOC_TECH_DIR/nanosoc/nanosoc_regions/dmem_0/verilog/nanosoc_region_dmem_0.v $SOCLABS_NANOSOC_TECH_DIR/nanosoc/nanosoc_regions/imem_0/verilog/nanosoc_region_imem_0.v $SOCLABS_NANOSOC_TECH_DIR/nanosoc/nanosoc_regions/exp/verilog/nanosoc_region_exp.v $SOCLABS_NANOSOC_TECH_DIR/nanosoc/nanosoc_regions/expram_h/verilog/nanosoc_region_expram_h.v $SOCLABS_NANOSOC_TECH_DIR/nanosoc/nanosoc_regions/expram_l/verilog/nanosoc_region_expram_l.v $SOCLABS_NANOSOC_TECH_DIR/nanosoc/nanosoc_regions/sysio/verilog/nanosoc_region_sysio.v $SOCLABS_NANOSOC_TECH_DIR/nanosoc/nanosoc_regions/sysio/verilog/nanosoc_sysctrl.v $SOCLABS_NANOSOC_TECH_DIR/nanosoc/nanosoc_regions/sysio/verilog/nanosoc_sysio_apb_ss.v $SOCLABS_NANOSOC_TECH_DIR/nanosoc/nanosoc_regions/sysio/verilog/nanosoc_sysio_decode.v $SOCLABS_NANOSOC_TECH_DIR/nanosoc/nanosoc_regions/systable/verilog/nanosoc_coresight_systable.v $SOCLABS_NANOSOC_TECH_DIR/nanosoc/nanosoc_regions/systable/verilog/nanosoc_region_systable.v $SOCLABS_NANOSOC_TECH_DIR/nanosoc/nanosoc_control/verilog/nanosoc_clkctrl.v $SOCLABS_NANOSOC_TECH_DIR/nanosoc/nanosoc_control/verilog/nanosoc_pin_mux.v 
+read library /home/dwn1c21/SoC-Labs/phys_ip/tsmc/cln65lp/Front_End/timing_power_noise/NLDM/tpdn65lpnv2od3_200a/tpdn65lpnv2od3wc.lib -liberty -golden -append
+
+read design -verilog -golden -define POWER_PINS $SOCLABS_NANOSOC_TECH_DIR/ASIC/nanosoc_chip_pads/tsmc65lp/nanosoc_chip_pads.v 
+
+
+read library $PHYS_IP/arm/tsmc/cln65lp/sc12_base_rvt/r0p0/lib/sc12_cln65lp_base_rvt_ss_typical_max_1p08v_125c.lib -liberty -revised
+read library $SOCLABS_PROJECT_DIR/memories/rf/rf_sp_hdf_ss_1p08v_1p08v_125c.lib -liberty -revised -append
+read library $SOCLABS_PROJECT_DIR/memories/bootrom/rom_via_ss_1p08v_1p08v_125c.lib -liberty -revised -append
+read library /home/dwn1c21/SoC-Labs/phys_ip/tsmc/cln65lp/Front_End/timing_power_noise/NLDM/tpdn65lpnv2od3_200a/tpdn65lpnv2od3wc.lib -liberty -revised -append
+read design $SOCLABS_PROJECT_DIR/imp/ASIC/nanosoc/netlist/nanosoc_chip_pads.vm -revised -verilog 
diff --git a/ASIC/28pin/Cadence/scripts/nanosoc.mmmc b/ASIC/28pin/Cadence/scripts/nanosoc.mmmc
new file mode 100644
index 0000000000000000000000000000000000000000..15b9649a0f78ca42e22d7e9b2a2376720890953d
--- /dev/null
+++ b/ASIC/28pin/Cadence/scripts/nanosoc.mmmc
@@ -0,0 +1,86 @@
+set phys_lib /home/dwn1c21/SoC-Labs/phys_ip
+
+set base_path ${phys_lib}/arm/tsmc/cln65lp/sc9_base_rvt/r0p0
+set tech_path ${phys_lib}/arm/tsmc/cln65lp/arm_tech/r2p0
+set ram_16k_path /home/dwn1c21/SoC-Labs/accelerator-project/memories/rf_16k/
+set ram_08k_path /home/dwn1c21/SoC-Labs/accelerator-project/memories/rf_08k/
+
+set rom_path /home/dwn1c21/SoC-Labs/accelerator-project/memories/bootrom/
+set IO_driver_path /home/dwn1c21/SoC-Labs/phys_ip/tsmc/cln65lp/Front_End/timing_power_noise/NLDM/tpdn65lpnv2od3_200a/
+
+create_library_set -name default_libset_max\
+   -timing\
+    [list ${base_path}/lib/sc9_cln65lp_base_rvt_ss_typical_max_1p08v_125c.lib ${ram_08k_path}/rf_08k_ss_1p08v_1p08v_125c.lib ${ram_16k_path}/rf_16k_ss_1p08v_1p08v_125c.lib ${rom_path}/rom_via_ss_1p08v_1p08v_125c.lib ${IO_driver_path}/tpdn65lpnv2od3wc.lib] \
+   -si\
+    [list ${base_path}/celtic/sc9_cln65lp_base_rvt_ss_typical_max_1p08v_125c.cdB]
+
+create_library_set -name default_libset_min\
+   -timing\
+    [list ${base_path}/lib/sc9_cln65lp_base_rvt_ff_typical_min_1p32v_m40c.lib ${ram_08k_path}/rf_08k_ff_1p32v_1p32v_m40c.lib ${ram_16k_path}/rf_16k_ff_1p32v_1p32v_m40c.lib ${rom_path}/rom_via_ff_1p32v_1p32v_m40c.lib ${IO_driver_path}/tpdn65lpnv2od3bc.lib] \
+   -si\
+    [list ${base_path}/celtic/sc9_cln65lp_base_rvt_ff_typical_min_1p32v_m40c.cdB]
+
+create_timing_condition -name default_mapping_tc_2\
+   -library_sets [list default_libset_min]
+create_timing_condition -name default_mapping_tc_1\
+   -library_sets [list default_libset_max]
+
+create_rc_corner -name default_rc_corner_worst\
+   -pre_route_res 1\
+   -post_route_res 1\
+   -pre_route_cap 1\
+   -post_route_cap 1\
+   -post_route_cross_cap 1\
+   -pre_route_clock_res 0\
+   -pre_route_clock_cap 0\
+   -cap_table ${tech_path}/cadence_captable/1p9m_6x2z/rcworst.captbl
+
+create_rc_corner -name default_rc_corner_best\
+   -pre_route_res 1\
+   -post_route_res 1\
+   -pre_route_cap 1\
+   -post_route_cap 1\
+   -post_route_cross_cap 1\
+   -pre_route_clock_res 0\
+   -pre_route_clock_cap 0\
+   -cap_table ${tech_path}/cadence_captable/1p9m_6x2z/rcbest.captbl
+
+create_rc_corner -name default_rc_corner_typical\
+   -pre_route_res 1\
+   -post_route_res 1\
+   -pre_route_cap 1\
+   -post_route_cap 1\
+   -post_route_cross_cap 1\
+   -pre_route_clock_res 0\
+   -pre_route_clock_cap 0\
+   -cap_table ${tech_path}/cadence_captable/1p9m_6x2z/typical.captbl
+
+
+
+create_delay_corner -name default_delay_corner_max\
+   -timing_condition {default_mapping_tc_1}\
+   -rc_corner default_rc_corner_worst
+
+create_delay_corner -name default_delay_corner_ocv\
+   -early_timing_condition {default_mapping_tc_2}\
+   -late_timing_condition {default_mapping_tc_1}\
+   -rc_corner default_rc_corner_typical
+
+create_delay_corner -name default_delay_corner_min\
+   -timing_condition default_mapping_tc_2\
+   -rc_corner default_rc_corner_best
+
+create_constraint_mode -name default_constraint_mode\
+   -sdc_files\
+    [list ../../../constraints.sdc]
+
+create_analysis_view -name default_analysis_view_setup -constraint_mode default_constraint_mode -delay_corner default_delay_corner_max
+
+create_analysis_view -name default_analysis_view_hold -constraint_mode default_constraint_mode -delay_corner default_delay_corner_min
+
+
+create_analysis_view -name typical_analysis_view_setup -constraint_mode default_constraint_mode -delay_corner default_delay_corner_ocv
+create_analysis_view -name typical_analysis_view_hold -constraint_mode default_constraint_mode -delay_corner default_delay_corner_ocv
+
+
+set_analysis_view -setup [list default_analysis_view_setup] -hold [list default_analysis_view_hold]
diff --git a/ASIC/28pin/Cadence/scripts/nanosoc_io_plan.io b/ASIC/28pin/Cadence/scripts/nanosoc_io_plan.io
new file mode 100644
index 0000000000000000000000000000000000000000..176e13ca2a80a44816fca609686b36c8c3ff4a6a
--- /dev/null
+++ b/ASIC/28pin/Cadence/scripts/nanosoc_io_plan.io
@@ -0,0 +1,50 @@
+###############################################################
+#  Generated by:      Cadence Innovus 21.11-s130_1
+#  OS:                Linux x86_64(Host ID srv03335)
+#  Generated on:      Thu Nov 16 16:18:31 2023
+#  Design:            nanosoc_chip_pads
+#  Command:           write_io_file -locations -template nanosoc_chip_pads.save.io
+###############################################################
+
+(globals
+    version = 3
+    io_order = default
+)
+(iopad
+    (top
+	(inst  name="uPAD_TEST_I"		offset=149.29)
+	(inst  name="uPAD_SWDCK_I"		offset=257.86 place_status=placed )
+	(inst  name="uPAD_VDD_3"		offset=366.43 place_status=placed )
+	(inst  name="uPAD_VSS_3"		offset=475.00 place_status=placed )
+	(inst  name="uPAD_VDDIO_3"		offset=583.57 place_status=placed )
+	(inst  name="uPAD_P1_00"		offset=692.14 place_status=placed )
+	(inst  name="uPAD_P1_01"		offset=800.71 place_status=placed )
+    )
+    (left
+	(inst  name="uPAD_P0_03"	offset=149.29 place_status=placed )
+	(inst  name="uPAD_VDDACC_0"	offset=257.86 place_status=placed )
+	(inst  name="uPAD_VSS_0"	offset=366.43 place_status=placed )
+	(inst  name="uPAD_CLK_I"	offset=475.00 place_status=placed )
+	(inst  name="uPAD_VDD_0"	offset=583.57 place_status=placed )
+	(inst  name="uPAD_VDDIO_0"	offset=692.14 place_status=placed )
+	(inst  name="uPAD_SWDIO_IO"	offset=800.71 place_status=placed )
+    )
+    (bottom
+	(inst  name="uPAD_P0_02"	offset=149.29 place_status=placed )
+	(inst  name="uPAD_VDDACC_1"	offset=257.86 place_status=placed )
+	(inst  name="uPAD_VDDIO_1"	offset=366.43 place_status=placed )
+	(inst  name="uPAD_VDD_1"	offset=475.00 place_status=placed )
+	(inst  name="uPAD_VSS_1"	offset=583.57 place_status=placed )
+	(inst  name="uPAD_P0_01"	offset=692.14 place_status=placed )
+	(inst  name="uPAD_P0_00"	offset=800.71 )
+    )
+    (right
+	(inst  name="uPAD_P1_03"	offset=149.29 place_status=placed )
+	(inst  name="uPAD_P1_02"	offset=257.86 place_status=placed )
+	(inst  name="uPAD_VDDACC_2"	offset=366.43 place_status=placed )
+	(inst  name="uPAD_VDD_2"	offset=475.00 place_status=placed )
+	(inst  name="uPAD_VSS_2"	offset=583.57 place_status=placed )
+	(inst  name="uPAD_VDDIO_2"	offset=692.14 place_status=placed )
+	(inst  name="uPAD_NRST_I"	offset=800.71 place_status=placed )
+    )
+)
diff --git a/ASIC/Cadence/Innovus/place.tcl b/ASIC/28pin/Cadence/scripts/place.tcl
similarity index 96%
rename from ASIC/Cadence/Innovus/place.tcl
rename to ASIC/28pin/Cadence/scripts/place.tcl
index cc6fcde958632176154d97d632e48cef36f79cc7..9f25bb8c140db90cffb66fa2308fecdb43ff2be2 100644
--- a/ASIC/Cadence/Innovus/place.tcl
+++ b/ASIC/28pin/Cadence/scripts/place.tcl
@@ -15,7 +15,7 @@ set_db place_global_uniform_density true
 
 ### Placement Mode Config 
 set_db place_design_floorplan_mode false 
-place_design 
+place_opt_design 
 
 ### Delay Calculation 
 write_sdf design.sdf -ideal_clock_network 
diff --git a/ASIC/28pin/Cadence/scripts/place_macros.tcl b/ASIC/28pin/Cadence/scripts/place_macros.tcl
new file mode 100644
index 0000000000000000000000000000000000000000..db37a2022bcd52cbf0f50d4744d9930af48614f4
--- /dev/null
+++ b/ASIC/28pin/Cadence/scripts/place_macros.tcl
@@ -0,0 +1,28 @@
+#------------------------------------------------------------------------------------
+# Cadence Innovus: Place  macros
+# A joint work commissioned on behalf of SoC Labs, under Arm Academic Access license.
+#
+# Contributors
+#
+# Daniel Newbrook (d.newbrook@soton.ac.uk)
+# Copyright (c) 2023, SoC Labs (www.soclabs.org)
+#------------------------------------------------------------------------------------
+
+# relative floorplan
+delete_relative_floorplan -all
+create_relative_floorplan -ref_type core_boundary -horizontal_edge_separate {1  -4.8  1} -vertical_edge_separate {2  0  2} -place u_nanosoc_chip_u_system_u_ss_expansion_u_region_expram_l_u_expram_l_u_sram_genblk1.u_rf_sp_hdf
+create_relative_floorplan -ref_type object -horizontal_edge_separate {3  -18.0  1} -vertical_edge_separate {3  0  3} -place u_nanosoc_chip_u_system_u_ss_expansion_u_region_expram_h_u_expram_h_u_sram_genblk1.u_rf_sp_hdf -ref u_nanosoc_chip_u_system_u_ss_expansion_u_region_expram_l_u_expram_l_u_sram_genblk1.u_rf_sp_hdf
+create_relative_floorplan -ref_type core_boundary -horizontal_edge_separate {1  -4.8  1} -vertical_edge_separate {1  0  1} -place u_nanosoc_chip_u_system_u_ss_cpu_u_region_imem_0_u_imem_0_u_sram_genblk1.u_rf_sp_hdf 
+create_relative_floorplan -ref_type object -orient R0 -horizontal_edge_separate {3  -14.4  1} -vertical_edge_separate {3  0  3} -place u_nanosoc_chip_u_system_u_ss_cpu_u_region_dmem_0_u_dmem_0_u_sram_genblk1.u_rf_sp_hdf -ref u_nanosoc_chip_u_system_u_ss_cpu_u_region_imem_0_u_imem_0_u_sram_genblk1.u_rf_sp_hdf
+create_relative_floorplan -ref_type core_boundary -orient R180 -horizontal_edge_separate {3  200  3} -vertical_edge_separate {2  0  2} -place u_nanosoc_chip_u_system_u_ss_cpu_u_region_bootrom_0_u_bootrom_cpu_0_u_bootrom_u_sl_rom
+
+move_obj u_nanosoc_chip_u_system_u_ss_expansion_u_region_exp_u_ss_accelerator -point {500 500}
+update_floorplan_obj -obj u_nanosoc_chip_u_system_u_ss_expansion_u_region_exp_u_ss_accelerator -rects {600 135.0 865 265.0}
+add_fences -hinst u_nanosoc_chip_u_system_u_ss_expansion_u_region_exp_u_ss_accelerator  -min_gap 5
+create_partition -hinst u_nanosoc_chip_u_system_u_ss_expansion_u_region_exp_u_ss_accelerator -core_spacing 2.0 2.0 2.0 2.0 -rail_width 0.0 -min_pitch_left 2 -min_pitch_right 2 -min_pitch_top 2 -min_pitch_bottom 2 -reserved_layer { 1 2 3 4 5 6 7 8 9 10} -pin_layer_top { 2 4 6 8 10} -pin_layer_left { 3 5 7 9} -pin_layer_bottom { 2 4 6 8 10} -pin_layer_right { 3 5 7 9} -place_halo 2 2 2 2 -route_halo 2.0 -route_halo_top_layer 5 -route_halo_bottom_layer 1
+
+create_place_halo -halo_deltas {2 2 0 2} -insts u_nanosoc_chip_u_system_u_ss_expansion_u_region_expram_l_u_expram_l_u_sram_genblk1.u_rf_sp_hdf
+create_place_halo -halo_deltas {2 2 0 2} -insts u_nanosoc_chip_u_system_u_ss_expansion_u_region_expram_h_u_expram_h_u_sram_genblk1.u_rf_sp_hdf
+create_place_halo -halo_deltas {0 2 2 2} -insts u_nanosoc_chip_u_system_u_ss_cpu_u_region_imem_0_u_imem_0_u_sram_genblk1.u_rf_sp_hdf
+create_place_halo -halo_deltas {0 2 2 2} -insts u_nanosoc_chip_u_system_u_ss_cpu_u_region_dmem_0_u_dmem_0_u_sram_genblk1.u_rf_sp_hdf
+create_place_halo -halo_deltas {2 2 0 2} -insts u_nanosoc_chip_u_system_u_ss_cpu_u_region_bootrom_0_u_bootrom_cpu_0_u_bootrom_u_sl_rom
diff --git a/ASIC/28pin/Cadence/scripts/pnr_flow.tcl b/ASIC/28pin/Cadence/scripts/pnr_flow.tcl
new file mode 100644
index 0000000000000000000000000000000000000000..91a14370cd30dae5731a50f47698e9e0f144c67c
--- /dev/null
+++ b/ASIC/28pin/Cadence/scripts/pnr_flow.tcl
@@ -0,0 +1,76 @@
+######################################
+# Script : Place and Route Flow 
+# Date : 25th May 2023 
+# Author : Srimanth Tenneti 
+# Description : Innovus PnR Flow 
+###################################### 
+
+puts "Starting PnR Flow ..."
+
+
+### Design Import 
+source design_import.tcl  
+
+### IO Planning 
+source io_plan.tcl
+
+### Memory and accelerator placement
+source place_macros.tcl
+commit_power_intent
+check_power_domains
+
+### Power Plan 
+source power_plan.tcl 
+
+### Power Route 
+source power_route.tcl 
+
+report_timing > $::env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/reports/1pre_place_nanosoc_imp_timing.rep
+
+### Placement 
+source place.tcl 
+
+report_timing > $::env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/reports/2post_place_nanosoc_imp_timing.rep
+
+
+uniquify nanosoc_chip_pads -verbose
+### CTS 
+source clock_tree_synthesis.tcl 
+
+report_timing > $::env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/reports/3post_clock_nanosoc_imp_timing.rep
+
+### Add filler cells
+eval_legacy { addFiller -cell FILL128_A9TR WELLANTENNATIEPW2_A9TR FILLTIE8_A9TR FILLTIE64_A9TR FILLTIE4_A9TR FILLTIE32_A9TR FILLTIE2_A9TR FILLTIE16_A9TR FILLTIE128_A9TR FILLCAPTIE8_A9TR -prefix FILLER -powerDomain ACCEL -doDRC }
+eval_legacy { addFiller -cell WELLANTENNATIEPW2_A9TR FILLTIE8_A9TR FILLTIE64_A9TR FILLTIE4_A9TR FILLTIE32_A9TR FILLTIE2_A9TR FILLTIE16_A9TR FILLTIE128_A9TR FILLCAPTIE8_A9TR -prefix FILLER -powerDomain TOP -doDRC }
+
+
+### Routing 
+source route.tcl 
+
+report_timing > $::env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/reports/4post_route_nanosoc_imp_timing.rep
+
+check_antenna
+
+### Fill metal
+set_metal_fill -layer M1 -opc_active_spacing 0.090 -border_spacing -0.001
+set_metal_fill -layer M2 -opc_active_spacing 0.100 -border_spacing -0.001
+set_metal_fill -layer M3 -opc_active_spacing 0.100 -border_spacing -0.001
+set_metal_fill -layer M4 -opc_active_spacing 0.100 -border_spacing -0.001
+set_metal_fill -layer M5 -opc_active_spacing 0.100 -border_spacing -0.001
+set_metal_fill -layer M6 -opc_active_spacing 0.100 -border_spacing -0.001
+set_metal_fill -layer M7 -opc_active_spacing 0.100 -border_spacing -0.001
+set_metal_fill -layer M8 -opc_active_spacing 0.400 -border_spacing -0.001
+set_metal_fill -layer M9 -opc_active_spacing 0.400 -border_spacing -0.001
+set_metal_fill -layer AP -opc_active_spacing 2.000 -border_spacing -0.001
+add_metal_fill -layers { M1 M2 M3 M4 M5 M6 M7 M8 M9 AP } -nets { VSSIO VSS VDDACC VDDIO VDD }
+
+
+report_timing > $::env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/reports/nanosoc_imp_timing.rep
+report_area > $::env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/reports/nanosoc_imp_area.rep
+report_power > $::env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/reports/nanosoc_imp_power.rep
+
+gui_show 
+
+
+
+
diff --git a/ASIC/28pin/Cadence/scripts/power_plan.tcl b/ASIC/28pin/Cadence/scripts/power_plan.tcl
new file mode 100644
index 0000000000000000000000000000000000000000..97873398fd2dc6953fb1ae27a70c0257b27149a2
--- /dev/null
+++ b/ASIC/28pin/Cadence/scripts/power_plan.tcl
@@ -0,0 +1,85 @@
+#########################################
+# Script : Power Planning 
+# Tool : Cadence Innovus 
+# Date : May 22, 2023
+# Author : Srimanth Tenneti
+######################################### 
+
+### Connecting Global Nets
+connect_global_net VDD -type pg_pin -pin_base_name VDD -inst_base_name * 
+connect_global_net VDDIO -type pg_pin -pin_base_name VDDIO -inst_base_name * 
+connect_global_net VSS -type pg_pin -pin_base_name VSS -inst_base_name * 
+connect_global_net VSSIO -type pg_pin -pin_base_name VSSIO -inst_base_name * 
+connect_global_net VDDACC -type pg_pin -pin_base_name VDD -inst_base_name {} -hinst u_nanosoc_chip_u_system_u_ss_expansion_u_region_exp_u_ss_accelerator -override
+### Top and Bottom Metal Declartions
+set_db add_rings_stacked_via_top_layer M8
+set_db add_rings_stacked_via_bottom_layer M1 
+
+### Adding Rings 
+add_rings -nets {VDD VDDACC VSS} -type core_rings -follow core -layer {top M9 bottom M9 left M8 right M8} -width {top 3 bottom 3 left 3 right 3} -spacing {top 1 bottom 1 left 1 right 1} -offset {top 2 bottom 2 left 2 right 2} -center 0 -threshold 0 -jog_distance 0 -snap_wire_center_to_grid none
+
+### Adding Stripes 
+set_db add_stripes_ignore_block_check true
+set_db add_stripes_break_at none
+set_db add_stripes_route_over_rows_only false
+set_db add_stripes_rows_without_stripes_only false
+set_db add_stripes_extend_to_closest_target none
+set_db add_stripes_stop_at_last_wire_for_area false
+set_db add_stripes_ignore_non_default_domains true
+set_db add_stripes_trim_antenna_back_to_shape none
+set_db add_stripes_spacing_type edge_to_edge
+set_db add_stripes_spacing_from_block 0
+set_db add_stripes_stripe_min_length stripe_width
+set_db add_stripes_stacked_via_top_layer AP
+set_db add_stripes_stacked_via_bottom_layer M1
+set_db add_stripes_via_using_exact_crossover_size false
+set_db add_stripes_split_vias false
+set_db add_stripes_orthogonal_only true
+set_db add_stripes_allow_jog { padcore_ring  block_ring }
+set_db add_stripes_skip_via_on_pin {  standardcell }
+set_db add_stripes_skip_via_on_wire_shape {  noshape   }
+add_stripes -nets {VDD VDDACC VSS} -layer M6 -direction vertical -width 1.8 -spacing 0.8 -set_to_set_distance 60 -extend_to all_domains -start_from left -start_offset 50 -stop_offset 0 -switch_layer_over_obs false -max_same_layer_jog_length 2 -pad_core_ring_top_layer_limit AP -pad_core_ring_bottom_layer_limit M1 -block_ring_top_layer_limit AP -block_ring_bottom_layer_limit M1 -use_wire_group 0 -snap_wire_center_to_grid none
+
+deselect_obj -all
+
+# Connect Accelerator region
+select_obj u_nanosoc_chip_u_system_u_ss_expansion_u_region_exp_u_ss_accelerator
+set_db add_stripes_ignore_block_check true
+set_db add_stripes_break_at none
+set_db add_stripes_route_over_rows_only false
+set_db add_stripes_rows_without_stripes_only false
+set_db add_stripes_extend_to_closest_target stripe
+set_db add_stripes_stop_at_last_wire_for_area false
+set_db add_stripes_partial_set_through_domain true
+set_db add_stripes_ignore_non_default_domains false
+set_db add_stripes_trim_antenna_back_to_shape none
+set_db add_stripes_spacing_type edge_to_edge
+set_db add_stripes_spacing_from_block 0
+set_db add_stripes_stripe_min_length stripe_width
+set_db add_stripes_stacked_via_top_layer AP
+set_db add_stripes_stacked_via_bottom_layer M4
+set_db add_stripes_via_using_exact_crossover_size false
+set_db add_stripes_split_vias false
+set_db add_stripes_orthogonal_only true
+set_db add_stripes_allow_jog { padcore_ring  block_ring }
+set_db add_stripes_skip_via_on_pin {  standardcell }
+set_db add_stripes_skip_via_on_wire_shape {  noshape   }
+add_stripes -nets {VDDACC VSS} -layer M9 -direction horizontal -width 1 -spacing 0.5 -set_to_set_distance 15 -over_power_domain 1 -start_from bottom -start_offset 0 -stop_offset 0 -switch_layer_over_obs false -max_same_layer_jog_length 2 -pad_core_ring_top_layer_limit AP -pad_core_ring_bottom_layer_limit M1 -block_ring_top_layer_limit AP -block_ring_bottom_layer_limit M1 -use_wire_group 0 -snap_wire_center_to_grid none
+
+deselect_obj -all
+
+# connect Macros
+select_obj [ list u_nanosoc_chip_u_system_u_ss_cpu_u_region_dmem_0_u_dmem_0_u_sram_genblk1.u_rf_sp_hdf u_nanosoc_chip_u_system_u_ss_cpu_u_region_imem_0_u_imem_0_u_sram_genblk1.u_rf_sp_hdf u_nanosoc_chip_u_system_u_ss_expansion_u_region_expram_h_u_expram_h_u_sram_genblk1.u_rf_sp_hdf u_nanosoc_chip_u_system_u_ss_expansion_u_region_expram_l_u_expram_l_u_sram_genblk1.u_rf_sp_hdf u_nanosoc_chip_u_system_u_ss_cpu_u_region_bootrom_0_u_bootrom_cpu_0_u_bootrom_u_sl_rom]
+set_db add_stripes_ignore_block_check false
+set_db add_stripes_break_at none
+set_db add_stripes_route_over_rows_only false
+set_db add_stripes_rows_without_stripes_only false
+set_db add_stripes_extend_to_closest_target {ring stripe}
+add_stripes -nets {VDD VSS} -layer M5 -direction horizontal -width 1 -spacing 0.5 -set_to_set_distance 15 -over_power_domain 1 -start_from bottom -start_offset 8 -stop_offset 0 -switch_layer_over_obs false -merge_stripes_value 500 -max_same_layer_jog_length 2 -pad_core_ring_top_layer_limit AP -pad_core_ring_bottom_layer_limit M1 -block_ring_top_layer_limit AP -block_ring_bottom_layer_limit M1 -use_wire_group 0 -snap_wire_center_to_grid none
+
+deselect_obj -all
+
+# Add END CAPS
+add_endcaps -start_row_cap ENDCAPTIE2_A9TR -end_row_cap ENDCAPTIE2_A9TR -prefix ENDCAP
+add_endcaps -power_domain ACCEL -start_row_cap ENDCAPTIE2_A9TR -end_row_cap ENDCAPTIE2_A9TR -prefix ENDCAP
+
diff --git a/ASIC/28pin/Cadence/scripts/power_route.tcl b/ASIC/28pin/Cadence/scripts/power_route.tcl
new file mode 100644
index 0000000000000000000000000000000000000000..bf05e721f3b978bfc85e3b7aa790c38c7ccce5a8
--- /dev/null
+++ b/ASIC/28pin/Cadence/scripts/power_route.tcl
@@ -0,0 +1,12 @@
+##################################
+# Script : Special Route Script 
+# Date : May 24, 2023 
+# Description : Power Routing 
+# Author : Srimanth Tenneti 
+##################################
+route_special -connect {pad_pin pad_ring} -layer_change_range { M1(1) AP(10) } -block_pin_target nearest_target -pad_pin_port_connect {all_port all_geom} -pad_pin_target nearest_target -allow_jogging 1 -crossover_via_layer_range { M1(1) AP(10) } -nets { VDD VSS VDDACC } -allow_layer_change 1 -pad_pin_width 6 -target_via_layer_range { M1(1) AP(10) }
+
+route_special -connect {block_pin core_pin floating_stripe} -layer_change_range { M1(1) AP(10) } -block_pin_target nearest_target -pad_pin_port_connect {all_port one_geom} -pad_pin_target nearest_target -core_pin_target first_after_row_end -floating_stripe_target {block_ring pad_ring ring stripe ring_pin block_pin followpin} -allow_jogging 1 -power_domains { ACCEL } -crossover_via_layer_range { M1(1) AP(10) } -nets { VDDACC VSS } -allow_layer_change 1 -block_pin use_lef -target_via_layer_range { M1(1) AP(10) }
+route_special -connect {block_pin core_pin floating_stripe} -layer_change_range { M1(1) AP(10) } -block_pin_target nearest_target -pad_pin_port_connect {all_port one_geom} -pad_pin_target nearest_target -core_pin_target first_after_row_end -floating_stripe_target {block_ring pad_ring ring stripe ring_pin block_pin followpin} -allow_jogging 1 -power_domains { TOP } -crossover_via_layer_range { M1(1) AP(10) } -nets { VDD VSS } -allow_layer_change 1 -block_pin use_lef -target_via_layer_range { M1(1) AP(10) }
+
+#route_special  -nets {VDD VSS} -connect core_pin  -block_pin_target nearest_target -core_pin_target first_after_row_end  -allow_jogging 1 -allow_layer_change 1 -layer_change_range { M1(1) M8(8) } -crossover_via_layer_range { M1(1) M8(8) } -target_via_layer_range { M1(1) M8(8) }
diff --git a/ASIC/Cadence/Innovus/route.tcl b/ASIC/28pin/Cadence/scripts/route.tcl
similarity index 100%
rename from ASIC/Cadence/Innovus/route.tcl
rename to ASIC/28pin/Cadence/scripts/route.tcl
diff --git a/ASIC/28pin/Cadence/scripts/voltus_pg.tcl b/ASIC/28pin/Cadence/scripts/voltus_pg.tcl
new file mode 100644
index 0000000000000000000000000000000000000000..297607d8bf655d70d380387c2358844940347467
--- /dev/null
+++ b/ASIC/28pin/Cadence/scripts/voltus_pg.tcl
@@ -0,0 +1,15 @@
+
+# Set library paths 
+# !! EDIT THIS TO YOUR PATHS IN YOUR ENVIRONMENT
+set TECH_LEF $::env(PHYS_IP)/arm/tsmc/cln65lp/arm_tech/r2p0/lef/1p9m_6x2z/sc12_tech.lef
+set BASE_LEF $::env(PHYS_IP)/arm/tsmc/cln65lp/sc12_base_rvt/r0p0/lef/sc12_cln65lp_base_rvt.lef
+set IO_PAD_LEF /home/dwn1c21/SoC-Labs/phys_ip/tsmc/cln65lp/Backend/lef/tpbn65v_9lm.lef
+set IO_PAD_DRIVER_LEF /home/dwn1c21/SoC-Labs/phys_ip/tsmc/cln65lp/Backend/lef/tpdn65lpnv2od3_9lm.lef
+
+
+# !! THESE SHOULD BE CORRECT FOR ANY ENVIRONMENT AS THEY ARE GENERATED BY MAKEFILE
+set RF_LEF $::env(SOCLABS_PROJECT_DIR)/memories/rf/rf_sp_hdf.lef
+set ROM_LEF $::env(SOCLABS_PROJECT_DIR)/memories/bootrom/rom_via.lef
+
+### Reading LEFs 
+read_lib -lef [list ${TECH_LEF} ${BASE_LEF} ${IO_PAD_LEF} ${IO_PAD_DRIVER_LEF} ${RF_LEF} ${ROM_LEF}]
\ No newline at end of file
diff --git a/ASIC/Synopsys/Formality/fm_shell.tcl b/ASIC/28pin/Synopsys/scripts/fm_shell.tcl
similarity index 81%
rename from ASIC/Synopsys/Formality/fm_shell.tcl
rename to ASIC/28pin/Synopsys/scripts/fm_shell.tcl
index 31f2065b92d86b72dc0d42048232b293dc72c1bf..87b374118661e041b6400a887e943cee8c4b3b00 100644
--- a/ASIC/Synopsys/Formality/fm_shell.tcl
+++ b/ASIC/28pin/Synopsys/scripts/fm_shell.tcl
@@ -1,16 +1,19 @@
 
 set_mismatch_message_filter -warn FMR_ELAB-147
 set_svf -append $env(SOCLABS_PROJECT_DIR)/nanosoc_tech/synthesis/default.svf
+set IO_FRONTEND_DIR /home/dwn1c21/SoC-Labs/phys_ip/tsmc/cln65lp/Front_End/timing_power_noise/NLDM/tpdn65lpnv2od3_200a
 
 source $env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/flist/formality_flist.tcl
 read_db -r $env(SOCLABS_PROJECT_DIR)/memories/rf/rf_sp_hdf_ss_1p08v_1p08v_125c.db
 read_db -r $env(SOCLABS_PROJECT_DIR)/memories/bootrom/rom_via_ss_1p08v_1p08v_125c.db
+read_db -r $IO_FRONTEND_DIR/tpdn65lpnv2od3wc.db
 set_top nanosoc_chip_pads
 
 # Read db files
 read_db -i $env(PHYS_IP)/arm/tsmc/cln65lp/sc12_base_rvt/r0p0/db/sc12_cln65lp_base_rvt_ss_typical_max_1p08v_125c.db
 read_db -i $env(SOCLABS_PROJECT_DIR)/memories/rf/rf_sp_hdf_ss_1p08v_1p08v_125c.db
 read_db -i $env(SOCLABS_PROJECT_DIR)/memories/bootrom/rom_via_ss_1p08v_1p08v_125c.db
+read_db -i $IO_FRONTEND_DIR/tpdn65lpnv2od3wc.db
 # Read Gate netlist
 
 read_verilog -i $env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/netlist/nanosoc_chip_pads.vm
diff --git a/ASIC/Synopsys/ICC2/place_memories.tcl b/ASIC/28pin/Synopsys/scripts/place_memories.tcl
similarity index 100%
rename from ASIC/Synopsys/ICC2/place_memories.tcl
rename to ASIC/28pin/Synopsys/scripts/place_memories.tcl
diff --git a/ASIC/28pin/Synopsys/scripts/place_pins.tcl b/ASIC/28pin/Synopsys/scripts/place_pins.tcl
new file mode 100644
index 0000000000000000000000000000000000000000..d89cdf9a3adacb6c3f13f1f99555a80ce806d2e9
--- /dev/null
+++ b/ASIC/28pin/Synopsys/scripts/place_pins.tcl
@@ -0,0 +1,6 @@
+set_individual_pin_constraints -ports {P0[3] P0[2] P0[1] P0[0]} -sides 1
+set_individual_pin_constraints -ports {P1[3] P1[2] P1[1] P1[0]} -sides 3
+set_individual_pin_constraints -ports {CLK TEST VDD VDDIO VDDACC} -sides 2
+set_individual_pin_constraints -ports {NRST VSS VSSIO SWDIO SWDCK} -sides 4
+
+place_pins -self
\ No newline at end of file
diff --git a/ASIC/Synopsys/ICC2/pnr.tcl b/ASIC/28pin/Synopsys/scripts/pnr.tcl
similarity index 85%
rename from ASIC/Synopsys/ICC2/pnr.tcl
rename to ASIC/28pin/Synopsys/scripts/pnr.tcl
index 17cbb5880ab06be911f734a90c2a144af3adf22d..9fdf34e618c2ad7f4241833932ac0a105fe334da 100644
--- a/ASIC/Synopsys/ICC2/pnr.tcl
+++ b/ASIC/28pin/Synopsys/scripts/pnr.tcl
@@ -11,23 +11,28 @@
 
 
 set design_name nanosoc_chip_pads
-set PHYS_IP_DIR /research/AAA/phys_ip_library
 
+# Edit these for your environment
+set PHYS_IP_DIR /research/AAA/phys_ip_library
+set MEM_DIR /home/dwn1c21/SoC-Labs/accelerator-project/memories
+set IO_BACKEND_DIR /home/dwn1c21/SoC-Labs/phys_ip/tsmc/cln65lp/Backend/lef
+set IO_FRONTEND_DIR /home/dwn1c21/SoC-Labs/phys_ip/tsmc/cln65lp/Front_End/timing_power_noise/NLDM/tpdn65lpnv2od3_200a
 
-set_app_var link_library  $PHYS_IP_DIR/arm/tsmc/cln65lp/sc12_base_rvt/r0p0/db/sc12_cln65lp_base_rvt_ss_typical_max_1p08v_125c.db
-create_lib tsmc65lp -technology $PHYS_IP_DIR/arm/tsmc/cln65lp/arm_tech/r2p0/milkyway/1p9m_6x2z/sc12_tech.tf -ref_libs [list $PHYS_IP_DIR/arm/tsmc/cln65lp/sc12_base_rvt/r0p0/lef/sc12_cln65lp_base_rvt.lef /home/dwn1c21/SoC-Labs/accelerator-project/memories/rf/rf_sp_hdf.lef /home/dwn1c21/SoC-Labs/accelerator-project/memories/bootrom/rom_via.lef]
+set_app_var link_library  [list $PHYS_IP_DIR/arm/tsmc/cln65lp/sc12_base_rvt/r0p0/db/sc12_cln65lp_base_rvt_ss_typical_max_1p08v_125c.db $MEM_DIR/bootrom/rom_via_ss_1p08v_1p08v_125c.db $MEM_DIR/rf/rf_sp_hdf_ss_1p08v_1p08v_125c.db $IO_FRONTEND_DIR/tpdn65lpnv2od3wc.db]
+create_lib tsmc65lp -technology $PHYS_IP_DIR/arm/tsmc/cln65lp/arm_tech/r2p0/milkyway/1p9m_6x2z/sc12_tech.tf -ref_libs [list $PHYS_IP_DIR/arm/tsmc/cln65lp/sc12_base_rvt/r0p0/lef/sc12_cln65lp_base_rvt.lef $MEM_DIR/rf/rf_sp_hdf.lef $MEM_DIR/bootrom/rom_via.lef $IO_BACKEND_DIR/tpbn65v_9lm.lef $IO_BACKEND_DIR/tpdn65lpnv2od3_9lm.lef]
 
 read_parasitic_tech -name typical -tlup $PHYS_IP_DIR/arm/tsmc/cln65lp/arm_tech/r2p0/synopsys_tluplus/1p9m_6x2z/typical.tluplus -layermap $PHYS_IP_DIR/arm/tsmc/cln65lp/arm_tech/r2p0/synopsys_tluplus/1p9m_6x2z/tluplus.map
 read_parasitic_tech -name rcbest -tlup $PHYS_IP_DIR/arm/tsmc/cln65lp/arm_tech/r2p0/synopsys_tluplus/1p9m_6x2z/rcbest.tluplus -layermap $PHYS_IP_DIR/arm/tsmc/cln65lp/arm_tech/r2p0/synopsys_tluplus/1p9m_6x2z/tluplus.map
 read_parasitic_tech -name rcworst -tlup $PHYS_IP_DIR/arm/tsmc/cln65lp/arm_tech/r2p0/synopsys_tluplus/1p9m_6x2z/rcworst.tluplus -layermap $PHYS_IP_DIR/arm/tsmc/cln65lp/arm_tech/r2p0/synopsys_tluplus/1p9m_6x2z/tluplus.map
 
 
-read_verilog -library tsmc65lp -design nanosoc_chip_pads -top nanosoc_chip_pads $env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/netlist/Synopsys/nanosoc_chip_pads.vm
+read_verilog -library tsmc65lp -design nanosoc_chip_pads -top nanosoc_chip_pads $env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/netlist/Synopsys/nanosoc_chip_pads.vp
 read_def $env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/netlist/Synopsys/nanosoc_chip_pads.def
 link_block
 
+create_cell {PAD_CORNER_NE PAD_CORNER_SE PAD_CORNER_SW PAD_CORNER_NW} PCORNER
 
-initialize_floorplan -side_length {1600 1600} -core_offset {100}
+initialize_floorplan -side_length {1500 1500} -core_offset {150}
 create_io_ring -name main_io
 explore_logic_hierarchy -organize
 
@@ -35,19 +40,16 @@ explore_logic_hierarchy -organize
 source place_pins.tcl
 
 # Power domains TOP ACCEL and MEM
-create_power_domain TOP
+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 MEM  -elements {u_nanosoc_chip/u_system/u_ss_cpu/u_region_dmem_0/u_dmem_0/u_sram u_nanosoc_chip/u_system/u_ss_cpu/u_region_bootrom_0/u_bootrom_cpu_0/u_bootrom u_nanosoc_chip/u_system/u_ss_expansion/u_region_expram_l/u_expram_l/u_sram u_nanosoc_chip/u_system/u_ss_expansion/u_region_expram_h/u_expram_h/u_sram u_nanosoc_chip/u_system/u_ss_cpu/u_region_imem_0/u_imem_0/u_sram}
 #VDD
 create_supply_port VDD
 create_supply_net VDD -domain TOP
-create_supply_net VDD -domain MEM -reuse
 connect_supply_net VDD -ports VDD
 
 #VSS
 create_supply_port VSS 
 create_supply_net VSS -domain TOP
-create_supply_net VSS -domain MEM -reuse
 create_supply_net VSS -domain ACCEL -reuse
 connect_supply_net VSS -ports VSS
 
@@ -63,12 +65,13 @@ connect_supply_net VDDIO -ports VDDIO
 
 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 MEM -primary_power_net VDD -primary_ground_net VSS
 # Create voltage and power region for accelerator
 create_voltage_area -power_domains ACCEL -power VDDACC -ground VSS -nwell VDDACC -pwell VSS -region {{{150 1050} {1100 1650}}} -name VA_ACCEL -cells [get_cells -physical_context -hierarchical \
 -regexp u_nanosoc_chip/u_system/u_ss_expansion/u_region_exp/u_ss_accelerator/.*]
 create_pg_region {pg_ACCEL} -voltage_area VA_ACCEL -expand {0 10}
 
+create_pg_region {pg_TOP} -voltage_area DEFAULT_VA 
+
 
 set_parasitic_parameters -early_spec rcbest -early_temperature -40 -late_spec rcworst -late_temperature 125
 current_corner default
@@ -90,8 +93,6 @@ add_port_state VDDIO -state {on 3.0}
 create_pst ao_pst -supplies {VSS VDD VDDACC VDDIO}
 add_pst_state ao -pst ao_pst -state {on on on on}
 
-set_voltage_area -add_power_domains MEM DEFAULT_VA
-
 commit_upf
 
 set_app_options -list {opt.timing.effort {medium}}
diff --git a/ASIC/Synopsys/ICC2/power_plan.tcl b/ASIC/28pin/Synopsys/scripts/power_plan.tcl
similarity index 88%
rename from ASIC/Synopsys/ICC2/power_plan.tcl
rename to ASIC/28pin/Synopsys/scripts/power_plan.tcl
index d6979b02361303f4d151061c842652a3eaa8e730..f6a77a6e4dc3298d6ef81a9e5f8ab08466b54211 100644
--- a/ASIC/Synopsys/ICC2/power_plan.tcl
+++ b/ASIC/28pin/Synopsys/scripts/power_plan.tcl
@@ -6,11 +6,11 @@ set_pg_strategy core_ring -pattern {{name:ring_pattern} {nets: {VDD VDDIO VDDACC
 
 # Create vertical straps in Nanosoc region
 create_pg_mesh_pattern strap_pattern -layers {{{vertical_layer: M6} {width: 1} {pitch: 50} {spacing: interleaving} {trim: false}}}
-set_pg_strategy M6_straps -voltage_areas DEFAULT_VA -pattern {{name: strap_pattern}{nets: VDD VSS}} -extension {{{stop : outermost_ring}}} -blockage {{{pg_regions : {pg_ACCEL}}}} 
+set_pg_strategy M6_straps -voltage_areas VA_TOP -pattern {{name: strap_pattern}{nets: VDD VSS}} -extension {{{stop : outermost_ring}}} -blockage {{{pg_regions : {pg_ACCEL}}}} 
 
 # Create std cell rails in Nanosoc Region
 create_pg_std_cell_conn_pattern rail_pattern -layers M5 
-set_pg_strategy M5_rails -voltage_areas DEFAULT_VA -pattern {{name: rail_pattern}{nets: VDD VSS}} -extension {{{stop : outermost_ring}}} -blockage {{{pg_regions : {pg_ACCEL}}}} 
+set_pg_strategy M5_rails -voltage_areas VA_TOP -pattern {{name: rail_pattern}{nets: VDD VSS}} -extension {{{stop : outermost_ring}}} -blockage {{{pg_regions : {pg_ACCEL}}}} 
 
 # Create rails for macros
 create_pg_macro_conn_pattern sram_pg_mesh -pin_conn_type long_pin -nets {VDD VSS} -direction horizontal -layers M5 -width 0.64 -spacing interleaving -pitch 3 -pin_layers {M4} -via_rule {{intersection : all}}
diff --git a/ASIC/Synopsys/DC/synopsys_lib_conversion.tcl b/ASIC/28pin/Synopsys/scripts/synopsys_lib_conversion.tcl
similarity index 100%
rename from ASIC/Synopsys/DC/synopsys_lib_conversion.tcl
rename to ASIC/28pin/Synopsys/scripts/synopsys_lib_conversion.tcl
diff --git a/ASIC/28pin/Synopsys/scripts/synthesis.tcl b/ASIC/28pin/Synopsys/scripts/synthesis.tcl
new file mode 100644
index 0000000000000000000000000000000000000000..0cc586503340e59a0bc690c71a136c776098f60f
--- /dev/null
+++ b/ASIC/28pin/Synopsys/scripts/synthesis.tcl
@@ -0,0 +1,83 @@
+#-----------------------------------------------------------------------------
+# NanoSoC Synopsys synthesis tcl file to be run with dc_shell
+# A joint work commissioned on behalf of SoC Labs, under Arm Academic Access license.
+#
+# Contributors
+#
+# Daniel Newbrook (d.newbrook@soton.ac.uk)
+#
+# Copyright (C) 2021-3, SoC Labs (www.soclabs.org)
+#-----------------------------------------------------------------------------
+
+set rtlPath $env(SOCLABS_PROJECT_DIR)
+set report_path $env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/reports/
+set top_module nanosoc_chip_pads
+set io_path /home/dwn1c21/SoC-Labs/phys_ip/tsmc/cln65lp/Front_End/timing_power_noise/NLDM/tpdn65lpnv2od3_200a
+#supress_message = {ELAB-405}
+#####
+# Set search_path
+#
+# List locations where your standard cell libraries may be located
+#
+#####
+set search_path [list . $search_path $env(PHYS_IP)/arm/tsmc/cln65lp/sc12_base_rvt/r0p0/sdb/ $env(PHYS_IP)/arm/tsmc/cln65lp/sc12_base_rvt/r0p0/db/ $env(SOCLABS_PROJECT_DIR)/memories/rf $env(SOCLABS_PROJECT_DIR)/memories/bootrom $io_path]
+set search_path [concat $rtlPath $search_path]
+######
+# Set Target Library
+#
+# Set a default target library for Design Compiler to target when compiling a design
+#
+######
+set target_library "sc12_cln65lp_base_rvt_ss_typical_max_1p08v_125c.db rf_sp_hdf_ss_1p08v_1p08v_125c.db rom_via_ss_1p08v_1p08v_125c.db tpdn65lpnv2od3wc.db"
+
+######
+# Set Link Library
+#
+# Set a default link library for Design Compiler to target when compiling a design
+#
+######
+set link_library "sc12_cln65lp_base_rvt_ss_typical_max_1p08v_125c.db rf_sp_hdf_ss_1p08v_1p08v_125c.db rom_via_ss_1p08v_1p08v_125c.db tpdn65lpnv2od3wc.db"
+
+source $env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/flist/dc_flist.tcl
+elaborate $top_module -lib WORK
+current_design $top_module
+
+# Link Design
+link
+
+read_sdc ../../constraints.sdc 
+
+load_upf ../nanosoc_chip_pads.upf
+
+set_voltage -object_list {VDD VDDACC VDD_VSS.power VDDACC_VSS.power TOP.primary.power ACCEL.primary.power} 1.08
+set_voltage -object_list {VSS VDD_VSS.ground VDDACC_VSS.ground TOP.primary.ground ACCEL.primary.ground} 0.00
+
+set_operating_conditions -library sc12_cln65lp_base_rvt_ss_typical_max_1p08v_125c ss_typical_max_1p08v_125c
+
+set_app_var compile_delete_unloaded_sequential_cells false
+compile_ultra -gate_clock -scan 
+
+set_scan_configuration -chain_count 2
+set_dft_signal -view spec -type ScanDataIn -port DFT_SDI_1
+set_dft_signal -view spec -type ScanDataIn -port DFT_SDI_2
+set_dft_signal -view spec -type ScanDataOut -port DFT_SDO_1
+set_dft_signal -view spec -type ScanDataOut -port DFT_SDO_2
+set_dft_signal -view spec -type ScanEnable -port TEST -active_state 1
+set_dft_signal -view existing_dft -type Reset -port NRST -active_state 0
+set_scan_configuration -power_domain_mixing false
+create_test_protocol -infer_clock -infer_asynch 
+dft_drc
+insert_dft
+
+write -hierarchy -format verilog -output $env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/netlist/Synopsys/nanosoc_chip_pads.vm
+write -hierarchy -format verilog -pg -output $env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/netlist/Synopsys/nanosoc_chip_pads.vp
+write_scan_def -output $env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/netlist/Synopsys/nanosoc_chip_pads.def
+write_test_protocol -output $env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/netlist/Synopsys/nanosoc_chip_pads_scan.stil 
+
+redirect [format "%s%s%s" $report_path $top_module _area.rep] { report_area }
+redirect -append [format "%s%s%s" $report_path $top_module _area.rep] { report_reference }
+redirect [format "%s%s%s" $report_path $top_module _power.rep] { report_power }
+redirect [format "%s%s%s" $report_path $top_module _scan_path.rep] { report_scan_path }
+redirect [format "%s%s%s" $report_path $top_module _timing.rep] \
+  { report_timing -path full -max_paths 100 -nets -transition_time -capacitance -significant_digits 3 -nosplit}
+
diff --git a/ASIC/28pin/Synopsys/upf/nanosoc_chip_pads.upf b/ASIC/28pin/Synopsys/upf/nanosoc_chip_pads.upf
new file mode 100644
index 0000000000000000000000000000000000000000..c6b9d33b87e24a28d6f60b9a88d1f65440e314bd
--- /dev/null
+++ b/ASIC/28pin/Synopsys/upf/nanosoc_chip_pads.upf
@@ -0,0 +1,57 @@
+#Scope: nanosoc_chip_pads
+create_supply_set VDDACC_VSS
+create_supply_set VDD_VSS
+
+#Domain: ACCEL
+create_power_domain ACCEL  -supply {primary VDDACC_VSS}  -elements {u_nanosoc_chip/u_system/u_ss_expansion/u_region_exp/u_ss_accelerator}
+
+#Domain: TOP
+create_power_domain TOP  -supply {primary VDD_VSS}
+
+associate_supply_set VDDACC_VSS -handle ACCEL.primary
+associate_supply_set VDD_VSS -handle TOP.primary
+
+create_supply_port VDDACC
+create_supply_port VDD
+create_supply_port VSS
+
+create_supply_net VDDACC
+create_supply_net VDD
+create_supply_net VSS
+
+connect_supply_net VDD -ports VDD
+connect_supply_net VDDACC -ports VDDACC
+connect_supply_net VSS -ports VSS
+
+
+create_supply_set VDDACC_VSS -function {power VDDACC} -function {ground VSS} -update
+create_supply_set VDD_VSS  -function {power VDD}  -function {ground VSS}  -update
+
+
+connect_supply_net VDD -ports u_nanosoc_chip/u_system/u_ss_expansion/u_region_expram_h/u_expram_h/u_sram/u_rf_sp_hdf/VDD
+connect_supply_net VDD -ports u_nanosoc_chip/u_system/u_ss_expansion/u_region_expram_l/u_expram_l/u_sram/u_rf_sp_hdf/VDD
+connect_supply_net VDD -ports u_nanosoc_chip/u_system/u_ss_cpu/u_region_dmem_0/u_dmem_0/u_sram/u_rf_sp_hdf/VDD
+connect_supply_net VDD -ports u_nanosoc_chip/u_system/u_ss_cpu/u_region_imem_0/u_imem_0/u_sram/u_rf_sp_hdf/VDD
+connect_supply_net VDD -ports u_nanosoc_chip/u_system/u_ss_cpu/u_region_bootrom_0/u_bootrom_cpu_0/u_bootrom/u_sl_rom/VDDE
+
+connect_supply_net VSS -ports u_nanosoc_chip/u_system/u_ss_cpu/u_region_dmem_0/u_dmem_0/u_sram/u_rf_sp_hdf/VSS
+connect_supply_net VSS -ports u_nanosoc_chip/u_system/u_ss_cpu/u_region_imem_0/u_imem_0/u_sram/u_rf_sp_hdf/VSS
+connect_supply_net VSS -ports u_nanosoc_chip/u_system/u_ss_expansion/u_region_expram_h/u_expram_h/u_sram/u_rf_sp_hdf/VSS
+connect_supply_net VSS -ports u_nanosoc_chip/u_system/u_ss_expansion/u_region_expram_l/u_expram_l/u_sram/u_rf_sp_hdf/VSS
+connect_supply_net VSS -ports u_nanosoc_chip/u_system/u_ss_cpu/u_region_bootrom_0/u_bootrom_cpu_0/u_bootrom/u_sl_rom/VSSE
+
+add_port_state VSS -state {state1 0.00}
+add_port_state VDD -state {state1 1.08}
+add_port_state VDDACC -state {state1 1.08}
+
+create_pst all_pst -supplies { \
+    VDDACC \
+    VDD \
+    VSS}
+add_pst_state aon -pst all_pst -state {state1}
+
+
+
+
+
+
diff --git a/ASIC/Cadence/Innovus/nanosoc.cpf b/ASIC/44pin/Cadence/cpf/nanosoc.cpf
similarity index 84%
rename from ASIC/Cadence/Innovus/nanosoc.cpf
rename to ASIC/44pin/Cadence/cpf/nanosoc.cpf
index 90fb37fff35a8d860d293a3d6e01f8024c4b70bf..f57a1ace58fd7473ee19d4cfe46bf7c5f776edf8 100644
--- a/ASIC/Cadence/Innovus/nanosoc.cpf
+++ b/ASIC/44pin/Cadence/cpf/nanosoc.cpf
@@ -2,7 +2,7 @@ set_cpf_version 1.1
 
 set_design nanosoc_chip_pads
 create_power_domain -name TOP -default
-create_power_domain -name ACCEL  -instances u_nanosoc_chip_u_system_u_ss_expansion_u_region_exp_u_ss_accelerator
+create_power_domain -name ACCEL  -instances u_nanosoc_chip/u_system/u_ss_expansion/u_region_exp/u_ss_accelerator
 
 create_nominal_condition -name nom -voltage 1.08
 
diff --git a/ASIC/44pin/Cadence/cpf/nanosoc_imp.cpf b/ASIC/44pin/Cadence/cpf/nanosoc_imp.cpf
new file mode 100644
index 0000000000000000000000000000000000000000..e0869e5a6bcf67fcaf3452a006aac49192bfcc45
--- /dev/null
+++ b/ASIC/44pin/Cadence/cpf/nanosoc_imp.cpf
@@ -0,0 +1,19 @@
+set_cpf_version 1.1
+
+set_design nanosoc_chip_pads
+create_power_domain -name TOP -default
+create_power_domain -name ACCEL  -instances u_nanosoc_chip_u_system_u_ss_expansion_u_region_exp_u_ss_accelerator
+
+create_nominal_condition -name nom -voltage 1.08
+
+create_power_mode -name PM -domain_conditions {TOP@nom ACCEL@nom} -default
+
+create_ground_nets -nets VSS
+create_power_nets -nets VDD
+create_power_nets -nets VDDACC
+
+update_power_domain -name TOP -primary_power_net VDD -primary_ground_net VSS
+update_power_domain -name ACCEL -primary_power_net VDDACC -primary_ground_net VSS
+
+
+end_design
\ No newline at end of file
diff --git a/ASIC/44pin/Cadence/scripts/clock_tree_synthesis.tcl b/ASIC/44pin/Cadence/scripts/clock_tree_synthesis.tcl
new file mode 100644
index 0000000000000000000000000000000000000000..5e8a3ed93fd8086727b0177c8e084b12b46066a8
--- /dev/null
+++ b/ASIC/44pin/Cadence/scripts/clock_tree_synthesis.tcl
@@ -0,0 +1,23 @@
+############################################
+# Script : Clock Tree Implementation
+# Date : 24th May 2023 
+# Author : Srimanth Tenneti 
+# Description : Implements the Clock Tree
+############################################ 
+
+### Buffer Cells 
+set_db cts_buffer_cells {*BUFH*}
+### Inverter Cells 
+set_db cts_inverter_cells {*INV*} 
+
+### Clock Tree Sepc 
+create_clock_tree_spec -out_file design_clk.spec 
+
+### Creating a Clock Tree 
+ccopt_design 
+
+### Optimizing the design 
+opt_design -post_cts 
+opt_design -post_cts -hold 
+
+
diff --git a/ASIC/44pin/Cadence/scripts/design_import.tcl b/ASIC/44pin/Cadence/scripts/design_import.tcl
new file mode 100644
index 0000000000000000000000000000000000000000..894dd9294213613683a98cfcf2af167b3f074ee8
--- /dev/null
+++ b/ASIC/44pin/Cadence/scripts/design_import.tcl
@@ -0,0 +1,48 @@
+#########################################
+# File : Design Import Logic 
+# Date : 22nd May 2022 
+# Author : Srimanth Tenneti 
+# Description : MMMC + Design Import 
+######################################### 
+
+### Settting PG Nets 
+set_db init_power_nets {VDD VDDIO VDDACC} 
+set_db init_ground_nets {VSS VSSIO} 
+
+### Processing MMMC 
+read_mmmc nanosoc.mmmc 
+
+# Set library paths 
+# !! EDIT THIS TO YOUR PATHS IN YOUR ENVIRONMENT
+set TECH_LEF $::env(PHYS_IP)/arm/tsmc/cln65lp/arm_tech/r2p0/lef/1p9m_6x2z/sc12_tech.lef
+set BASE_LEF $::env(PHYS_IP)/arm/tsmc/cln65lp/sc12_base_rvt/r0p0/lef/sc12_cln65lp_base_rvt.lef
+set IO_PAD_LEF /home/dwn1c21/SoC-Labs/phys_ip/tsmc/cln65lp/Backend/lef/tpbn65v_9lm.lef
+set IO_PAD_DRIVER_LEF /home/dwn1c21/SoC-Labs/phys_ip/tsmc/cln65lp/Backend/lef/tpdn65lpnv2od3_9lm.lef
+
+
+# !! THESE SHOULD BE CORRECT FOR ANY ENVIRONMENT AS THEY ARE GENERATED BY MAKEFILE
+set RF_LEF $::env(SOCLABS_PROJECT_DIR)/memories/rf_16k/rf_16k.lef
+set ROM_LEF $::env(SOCLABS_PROJECT_DIR)/memories/bootrom/rom_via.lef
+
+### Reading LEFs 
+read_physical -lef [list ${TECH_LEF} ${BASE_LEF} ${IO_PAD_LEF} ${IO_PAD_DRIVER_LEF} ${RF_LEF} ${ROM_LEF}]
+
+### Reading Netlist 
+read_netlist $::env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/netlist/nanosoc_chip_pads_44pin.v
+
+### Read DEF scan chain
+#read_def $::env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/netlist/nanosoc_chip_pads_44pin.def
+
+### Initializing the Design 
+init_design
+
+### Adjusting the GUI 
+gui_fit 
+
+ungroup u_nanosoc_chip_u_system
+
+create_floorplan -core_margins_by die -flip s -site sc12_cln65lp -die_size 1000.0 1500.0 150.0 150.0 150.0 150.0
+
+read_power_intent -cpf ../cpf/nanosoc_imp.cpf
+
+
diff --git a/ASIC/44pin/Cadence/scripts/genus.tcl b/ASIC/44pin/Cadence/scripts/genus.tcl
new file mode 100644
index 0000000000000000000000000000000000000000..a163ff82f46e0a33125d2125559285416ddb16a2
--- /dev/null
+++ b/ASIC/44pin/Cadence/scripts/genus.tcl
@@ -0,0 +1,71 @@
+set_db init_lib_search_path "/home/dwn1c21/SoC-Labs/phys_ip/tsmc/cln65lp/Front_End/timing_power_noise/NLDM/tpdn65lpnv2od3_200a/ $::env(PHYS_IP)/arm/tsmc/cln65lp/sc12_base_rvt/r0p0/lib/ $::env(SOCLABS_PROJECT_DIR)/memories/rf_16k/ $::env(SOCLABS_PROJECT_DIR)/memories/bootrom/"
+set BASE_LIB sc12_cln65lp_base_rvt_ss_typical_max_1p08v_125c.lib
+set RF_LIB rf_16k_ss_1p08v_1p08v_125c.lib
+set ROM_LIB rom_via_ss_1p08v_1p08v_125c.lib
+set IO_PAD_DRIVER tpdn65lpnv2od3bc.lib
+create_library_domain domain1
+set_db [get_db library_domains domain1] .library "$BASE_LIB $RF_LIB $ROM_LIB $IO_PAD_DRIVER"
+
+read_power_intent -cpf -module nanosoc_chip_pads ../cpf/nanosoc.cpf
+
+source $::env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/flist/genus_flist.tcl
+elaborate nanosoc_chip_pads
+
+apply_power_intent
+check_library > lib_check.log
+
+check_cpf 
+
+commit_power_intent
+check_power_structure -license lpgxl
+
+read_sdc $::env(SOCLABS_NANOSOC_TECH_DIR)/ASIC/constraints.sdc 
+
+#set_db dft_scan_style muxed_scan
+#set_db design:nanosoc_chip_pads .dft_min_number_of_scan_chains 1
+
+#read_dft_abstract_model nanosoc_dft_abstract_model
+#define_test_signal -name TEST  -active high -function test_mode -index 0 TEST
+#define_test_signal -name SWDCK  -active high -function scan_clock -index 0 SWDCK
+#define_test_signal -name NRST  -active low -function async_set_reset -index 0 NRST
+#define_test_signal -name SWDIO  -active high -function shift_enable -default -index 0 SWDIO
+#define_test_signal -name CLK  -active high -function test_clock -index 0 CLK
+
+#define_scan_chain -name chain_ACCEL -sdi DFT_SDI_1 -sdo DFT_SDO_1 -shared_output
+#define_scan_chain -name chain_TOP -sdi DFT_SDI_2 -sdo DFT_SDO_2  -shared_output
+
+
+#check_dft_rules
+#fix_dft_violations -test_control TEST -async_reset -add_observe_scan -scan_clock_pin SWDCK
+
+
+set_db syn_generic_effort high
+set_db syn_map_effort high
+
+syn_generic
+syn_map
+
+#convert_to_scan
+
+#connect_scan_chains -chains chain_ACCEL -power_domain ACCEL -incremental
+#connect_scan_chains -chains chain_TOP -power_domain TOP -incremental
+
+syn_opt
+
+report_area > $::env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/reports/syn_nanosoc_area_44pin.rep
+report_timing > $::env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/reports/syn_nanosoc_timing_44pin.rep
+report_gates > $::env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/reports/syn_nanosoc_gates_44pin.rep
+report_power > $::env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/reports/syn_nanosoc_power_44pin.rep
+
+write_hdl > $::env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/netlist/nanosoc_chip_pads_44pin.v
+write_hdl -pg > $::env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/netlist/nanosoc_chip_pads_44pin.vp
+
+#report_scan_chains > $::env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/dft/nanosoc_scan_chains_44pin.rep
+#report_scan_setup > $::env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/dft/nanosoc_scan_setup_44pin.rep
+#report_scan_registers > $::env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/dft/nanosoc_scan_registers_44pin.rep
+#write_dft_abstract_model > $::env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/dft/nanosoc_dft_abstract_model_44pin
+
+#write_dft_atpg_other_vendor -mentor > $::env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/dft/nanosoc_atpg_44pin
+
+#write_scandef > $::env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/netlist/nanosoc_chip_pads_44pin.def
+
diff --git a/ASIC/44pin/Cadence/scripts/io_plan.tcl b/ASIC/44pin/Cadence/scripts/io_plan.tcl
new file mode 100644
index 0000000000000000000000000000000000000000..44af39fd98971de0f20d3f086bab98b673c73bc6
--- /dev/null
+++ b/ASIC/44pin/Cadence/scripts/io_plan.tcl
@@ -0,0 +1,57 @@
+#-----------------------------------------------------------------------------
+# NanoSoC IO plan for PnR in cadence Innovus
+# A joint work commissioned on behalf of SoC Labs, under Arm Academic Access license.
+#
+# Contributors
+#
+# Daniel Newbrook (d.newbrook@soton.ac.uk)
+#
+# Copyright (C) 2021-3, SoC Labs (www.soclabs.org)
+#-----------------------------------------------------------------------------
+
+
+delete_io_fillers -cell PCORNER
+delete_io_fillers -cell PFILLER20
+delete_io_fillers -cell PFILLER10
+delete_io_fillers -cell PFILLER5
+delete_io_fillers -cell PFILLER1
+delete_io_fillers -cell PFILLER05
+delete_io_fillers -cell PFILLER0005
+
+
+read_io_file nanosoc_io_plan.io
+
+add_io_fillers -cells PCORNER -prefix CORNER -side n -from -300 -to 300
+add_io_fillers -cells PCORNER -prefix CORNER -side e -from 500 -to 3000
+add_io_fillers -cells PCORNER -prefix CORNER -side s -from 500 -to 3000
+add_io_fillers -cells PCORNER -prefix CORNER -side w -from -300 -to 300
+
+add_io_fillers -cells PFILLER20 -prefix FILLER -side n
+add_io_fillers -cells PFILLER20 -prefix FILLER -side e
+add_io_fillers -cells PFILLER20 -prefix FILLER -side s 
+add_io_fillers -cells PFILLER20 -prefix FILLER -side w 
+
+add_io_fillers -cells PFILLER10 -prefix FILLER -side n
+add_io_fillers -cells PFILLER10 -prefix FILLER -side e
+add_io_fillers -cells PFILLER10 -prefix FILLER -side s 
+add_io_fillers -cells PFILLER10 -prefix FILLER -side w 
+
+add_io_fillers -cells PFILLER5 -prefix FILLER -side n
+add_io_fillers -cells PFILLER5 -prefix FILLER -side e
+add_io_fillers -cells PFILLER5 -prefix FILLER -side s 
+add_io_fillers -cells PFILLER5 -prefix FILLER -side w 
+
+add_io_fillers -cells PFILLER1 -prefix FILLER -side n
+add_io_fillers -cells PFILLER1 -prefix FILLER -side e
+add_io_fillers -cells PFILLER1 -prefix FILLER -side s 
+add_io_fillers -cells PFILLER1 -prefix FILLER -side w 
+
+add_io_fillers -cells PFILLER05 -prefix FILLER -side n
+add_io_fillers -cells PFILLER05 -prefix FILLER -side e
+add_io_fillers -cells PFILLER05 -prefix FILLER -side s 
+add_io_fillers -cells PFILLER05 -prefix FILLER -side w 
+
+add_io_fillers -cells PFILLER0005 -prefix FILLER -side n
+add_io_fillers -cells PFILLER0005 -prefix FILLER -side e
+add_io_fillers -cells PFILLER0005 -prefix FILLER -side s 
+add_io_fillers -cells PFILLER0005 -prefix FILLER -side w 
\ No newline at end of file
diff --git a/ASIC/Cadence/Innovus/nanosoc.mmmc b/ASIC/44pin/Cadence/scripts/nanosoc.mmmc
similarity index 86%
rename from ASIC/Cadence/Innovus/nanosoc.mmmc
rename to ASIC/44pin/Cadence/scripts/nanosoc.mmmc
index 70db329b1dee548ccde34f34ad27202a260d6999..b8c9c0d00a814a59bdc8cd00c94513228643aa60 100644
--- a/ASIC/Cadence/Innovus/nanosoc.mmmc
+++ b/ASIC/44pin/Cadence/scripts/nanosoc.mmmc
@@ -2,18 +2,19 @@ set phys_lib /research/AAA/phys_ip_library
 
 set base_path ${phys_lib}/arm/tsmc/cln65lp/sc12_base_rvt/r0p0
 set tech_path ${phys_lib}/arm/tsmc/cln65lp/arm_tech/r2p0
-set ram_path /home/dwn1c21/SoC-Labs/accelerator-project/memories/rf/
+set ram_path /home/dwn1c21/SoC-Labs/accelerator-project/memories/rf_16k/
 set rom_path /home/dwn1c21/SoC-Labs/accelerator-project/memories/bootrom/
+set IO_driver_path /home/dwn1c21/SoC-Labs/phys_ip/tsmc/cln65lp/Front_End/timing_power_noise/NLDM/tpdn65lpnv2od3_200a/
 
 create_library_set -name default_libset_max\
    -timing\
-    [list ${base_path}/lib/sc12_cln65lp_base_rvt_ss_typical_max_1p08v_125c.lib ${ram_path}/rf_sp_hdf_ss_1p08v_1p08v_125c.lib ${rom_path}/rom_via_ss_1p08v_1p08v_125c.lib] \
+    [list ${base_path}/lib/sc12_cln65lp_base_rvt_ss_typical_max_1p08v_125c.lib ${ram_path}/rf_16k_ss_1p08v_1p08v_125c.lib ${rom_path}/rom_via_ss_1p08v_1p08v_125c.lib ${IO_driver_path}/tpdn65lpnv2od3wc.lib] \
    -si\
     [list ${base_path}/celtic/sc12_cln65lp_base_rvt_ss_typical_max_1p08v_125c.cdB]
 
 create_library_set -name default_libset_min\
    -timing\
-    [list ${base_path}/lib/sc12_cln65lp_base_rvt_ff_typical_min_1p32v_m40c.lib ${ram_path}/rf_sp_hdf_ff_1p32v_1p32v_m40c.lib ${rom_path}/rom_via_ff_1p32v_1p32v_m40c.lib] \
+    [list ${base_path}/lib/sc12_cln65lp_base_rvt_ff_typical_min_1p32v_m40c.lib ${ram_path}/rf_16k_ff_1p32v_1p32v_m40c.lib ${rom_path}/rom_via_ff_1p32v_1p32v_m40c.lib ${IO_driver_path}/tpdn65lpnv2od3bc.lib] \
    -si\
     [list ${base_path}/celtic/sc12_cln65lp_base_rvt_ff_typical_min_1p32v_m40c.cdB]
 
@@ -69,7 +70,7 @@ create_delay_corner -name default_delay_corner_min\
 
 create_constraint_mode -name default_constraint_mode\
    -sdc_files\
-    [list ../../constraints.sdc]
+    [list ../../../constraints.sdc]
 
 create_analysis_view -name default_analysis_view_setup -constraint_mode default_constraint_mode -delay_corner default_delay_corner_max
 
diff --git a/ASIC/44pin/Cadence/scripts/nanosoc_io_plan.io b/ASIC/44pin/Cadence/scripts/nanosoc_io_plan.io
new file mode 100644
index 0000000000000000000000000000000000000000..b0f704a0cedbce4c3e50188506f7efec4f15190f
--- /dev/null
+++ b/ASIC/44pin/Cadence/scripts/nanosoc_io_plan.io
@@ -0,0 +1,66 @@
+###############################################################
+#  Generated by:      Cadence Innovus 21.11-s130_1
+#  OS:                Linux x86_64(Host ID srv03335)
+#  Generated on:      Thu Nov 16 16:18:31 2023
+#  Design:            nanosoc_chip_pads
+#  Command:           write_io_file -locations -template nanosoc_chip_pads.save.io
+###############################################################
+
+(globals
+    version = 3
+    io_order = default
+)
+(iopad
+    (top
+	(inst  name="uPAD_TEST_I"		offset=149.29)
+	(inst  name="uPAD_SWDCK_I"		offset=257.86 place_status=placed )
+	(inst  name="uPAD_VDD_3"		offset=366.43 place_status=placed )
+	(inst  name="uPAD_VSS_3"		offset=475.00 place_status=placed )
+	(inst  name="uPAD_VDDIO_3"		offset=583.57 place_status=placed )
+	(inst  name="uPAD_P1_00"		offset=692.14 place_status=placed )
+	(inst  name="uPAD_P1_01"		offset=800.71 place_status=placed )
+    )
+    (left
+	(inst  name="uPAD_P0_04"	offset=153.67 place_status=placed )
+	(inst  name="uPAD_P0_05"	offset=271.00 place_status=placed )
+	(inst  name="RESERVED  "	offset=388.33 place_status=placed )
+	(inst  name="RESERVED  "	offset=505.67 place_status=placed )
+	(inst  name="uPAD_P0_03"	offset=149.29 place_status=placed )
+	(inst  name="uPAD_VDDACC_0"	offset=257.86 place_status=placed )
+	(inst  name="uPAD_VSS_0"	offset=366.43 place_status=placed )
+	(inst  name="uPAD_CLK_I"	offset=475.00 place_status=placed )
+	(inst  name="uPAD_VDD_0"	offset=583.57 place_status=placed )
+	(inst  name="uPAD_VDDIO_0"	offset=692.14 place_status=placed )
+	(inst  name="uPAD_SWDIO_IO"	offset=800.71 place_status=placed )
+	(inst  name="uPAD_VSSIO_0"	offset=1444.33 place_status=placed )
+	(inst  name="RESERVED  "	offset=1561.67 place_status=placed )
+	(inst  name="uPAD_P0_06"	offset=1679.00 place_status=placed )
+	(inst  name="uPAD_P0_07"	offset=1796.33 place_status=placed )
+    )
+    (bottom
+	(inst  name="uPAD_P0_02"	offset=149.29 place_status=placed )
+	(inst  name="uPAD_VDDACC_1"	offset=257.86 place_status=placed )
+	(inst  name="uPAD_VDDIO_1"	offset=366.43 place_status=placed )
+	(inst  name="uPAD_VDD_1"	offset=475.00 place_status=placed )
+	(inst  name="uPAD_VSS_1"	offset=583.57 place_status=placed )
+	(inst  name="uPAD_P0_01"	offset=692.14 place_status=placed )
+	(inst  name="uPAD_P0_00"	offset=800.71 )
+    )
+    (right
+	(inst  name="uPAD_P1_07"	offset=153.67 place_status=placed )
+	(inst  name="uPAD_P1_06"	offset=271.00 place_status=placed )
+	(inst  name="RESERVED  "	offset=388.33 place_status=placed )
+	(inst  name="uPAD_VSSIO_1"	offset=505.67 place_status=placed )
+	(inst  name="uPAD_P1_03"	offset=149.29 place_status=placed )
+	(inst  name="uPAD_P1_02"	offset=257.86 place_status=placed )
+	(inst  name="uPAD_VDDACC_2"	offset=366.43 place_status=placed )
+	(inst  name="uPAD_VDD_2"	offset=475.00 place_status=placed )
+	(inst  name="uPAD_VSS_2"	offset=583.57 place_status=placed )
+	(inst  name="uPAD_VDDIO_2"	offset=692.14 place_status=placed )
+	(inst  name="uPAD_NRST_I"	offset=800.71 place_status=placed )
+	(inst  name="RESERVED  "	offset=1444.33 place_status=placed )
+	(inst  name="RESERVED  "	offset=1561.67 place_status=placed )
+	(inst  name="uPAD_P1_04"	offset=1679.00 place_status=placed )
+	(inst  name="uPAD_P1_05"	offset=1796.33 place_status=placed )
+    )
+)
diff --git a/ASIC/44pin/Cadence/scripts/place.tcl b/ASIC/44pin/Cadence/scripts/place.tcl
new file mode 100644
index 0000000000000000000000000000000000000000..9f25bb8c140db90cffb66fa2308fecdb43ff2be2
--- /dev/null
+++ b/ASIC/44pin/Cadence/scripts/place.tcl
@@ -0,0 +1,21 @@
+############################################ 
+# Script : Placement 
+# Date : May 24 2024 
+# Author : Srimanth Tenneti 
+############################################ 
+
+### Congestion and Timing Setting 
+set_db design_process_node 65
+set_db place_global_cong_effort auto 
+set_db place_global_timing_effort high 
+
+### Uniform Cell Distribution 
+
+set_db place_global_uniform_density true
+
+### Placement Mode Config 
+set_db place_design_floorplan_mode false 
+place_opt_design 
+
+### Delay Calculation 
+write_sdf design.sdf -ideal_clock_network 
diff --git a/ASIC/44pin/Cadence/scripts/place_macros.tcl b/ASIC/44pin/Cadence/scripts/place_macros.tcl
new file mode 100644
index 0000000000000000000000000000000000000000..e2f219b527c3db49311f745228ee0f06b5cd06c3
--- /dev/null
+++ b/ASIC/44pin/Cadence/scripts/place_macros.tcl
@@ -0,0 +1,29 @@
+#------------------------------------------------------------------------------------
+# Cadence Innovus: Place  macros
+# A joint work commissioned on behalf of SoC Labs, under Arm Academic Access license.
+#
+# Contributors
+#
+# Daniel Newbrook (d.newbrook@soton.ac.uk)
+# Copyright (c) 2023, SoC Labs (www.soclabs.org)
+#------------------------------------------------------------------------------------
+
+# relative floorplan
+delete_relative_floorplan -all
+create_relative_floorplan -ref_type core_boundary -horizontal_edge_separate {1  -4.8  1} -vertical_edge_separate {2  -2.4 2} -place u_nanosoc_chip_u_system_u_ss_expansion_u_region_expram_l_u_expram_l_u_sram_genblk1.u_rf_sp_hdf
+create_relative_floorplan -ref_type object -horizontal_edge_separate {3  -12  1} -vertical_edge_separate {3  0  3} -place u_nanosoc_chip_u_system_u_ss_expansion_u_region_expram_h_u_expram_h_u_sram_genblk1.u_rf_sp_hdf -ref u_nanosoc_chip_u_system_u_ss_expansion_u_region_expram_l_u_expram_l_u_sram_genblk1.u_rf_sp_hdf
+create_relative_floorplan -ref_type object -horizontal_edge_separate {3  -12  1} -vertical_edge_separate {3  0  3} -place u_nanosoc_chip_u_system_u_ss_cpu_u_region_imem_0_u_imem_0_u_sram_genblk1.u_rf_sp_hdf -ref u_nanosoc_chip_u_system_u_ss_expansion_u_region_expram_h_u_expram_h_u_sram_genblk1.u_rf_sp_hdf
+create_relative_floorplan -ref_type object -orient R0 -horizontal_edge_separate {3  -12  1} -vertical_edge_separate {3  0  3} -place u_nanosoc_chip_u_system_u_ss_cpu_u_region_dmem_0_u_dmem_0_u_sram_genblk1.u_rf_sp_hdf -ref u_nanosoc_chip_u_system_u_ss_cpu_u_region_imem_0_u_imem_0_u_sram_genblk1.u_rf_sp_hdf
+create_relative_floorplan -ref_type core_boundary -orient R0 -horizontal_edge_separate {1  -4.8  1} -vertical_edge_separate {0  2.4  0} -place u_nanosoc_chip_u_system_u_ss_cpu_u_region_bootrom_0_u_bootrom_cpu_0_u_bootrom_u_sl_rom
+
+move_obj u_nanosoc_chip_u_system_u_ss_expansion_u_region_exp_u_ss_accelerator -point {500 500}
+update_floorplan_obj -obj u_nanosoc_chip_u_system_u_ss_expansion_u_region_exp_u_ss_accelerator -rects {150 150 500 351.6}
+add_fences -hinst u_nanosoc_chip_u_system_u_ss_expansion_u_region_exp_u_ss_accelerator  -min_gap 5
+create_partition -hinst u_nanosoc_chip_u_system_u_ss_expansion_u_region_exp_u_ss_accelerator -core_spacing 2.0 2.0 2.0 2.0 -rail_width 0.0 -min_pitch_left 2 -min_pitch_right 2 -min_pitch_top 2 -min_pitch_bottom 2 -reserved_layer { 1 2 3 4 5 6 7 8 9 10} -pin_layer_top { 2 4 6 8 10} -pin_layer_left { 3 5 7 9} -pin_layer_bottom { 2 4 6 8 10} -pin_layer_right { 3 5 7 9} -place_halo 2 2 2 2 -route_halo 2.0 -route_halo_top_layer 5 -route_halo_bottom_layer 1
+
+create_place_halo -halo_deltas {4.8 4.8 2.4 4.8} -insts u_nanosoc_chip_u_system_u_ss_expansion_u_region_expram_l_u_expram_l_u_sram_genblk1.u_rf_sp_hdf
+create_place_halo -halo_deltas {4.8 4.8 2.4 4.8} -insts u_nanosoc_chip_u_system_u_ss_expansion_u_region_expram_h_u_expram_h_u_sram_genblk1.u_rf_sp_hdf
+create_place_halo -halo_deltas {4.8 4.8 2.4 4.8} -insts u_nanosoc_chip_u_system_u_ss_cpu_u_region_imem_0_u_imem_0_u_sram_genblk1.u_rf_sp_hdf
+create_place_halo -halo_deltas {4.8 4.8 2.4 4.8} -insts u_nanosoc_chip_u_system_u_ss_cpu_u_region_dmem_0_u_dmem_0_u_sram_genblk1.u_rf_sp_hdf
+create_place_halo -halo_deltas {4.8 4.8 2.4 4.8} -insts u_nanosoc_chip_u_system_u_ss_cpu_u_region_bootrom_0_u_bootrom_cpu_0_u_bootrom_u_sl_rom
+0
\ No newline at end of file
diff --git a/ASIC/44pin/Cadence/scripts/pnr_flow.tcl b/ASIC/44pin/Cadence/scripts/pnr_flow.tcl
new file mode 100644
index 0000000000000000000000000000000000000000..35ff13fa2ea91a308bf9500f2be21295967f400d
--- /dev/null
+++ b/ASIC/44pin/Cadence/scripts/pnr_flow.tcl
@@ -0,0 +1,76 @@
+######################################
+# Script : Place and Route Flow 
+# Date : 25th May 2023 
+# Author : Srimanth Tenneti 
+# Description : Innovus PnR Flow 
+###################################### 
+
+puts "Starting PnR Flow ..."
+
+
+### Design Import 
+source design_import.tcl  
+
+### IO Planning 
+source io_plan.tcl
+
+commit_power_intent
+check_power_domains
+### Memory and accelerator placement
+source place_macros.tcl
+
+### Power Plan 
+source power_plan.tcl 
+
+### Power Route 
+source power_route.tcl 
+
+report_timing > $::env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/reports/1pre_place_nanosoc_imp_timing.rep
+
+### Placement 
+source place.tcl 
+
+report_timing > $::env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/reports/2post_place_nanosoc_imp_timing.rep
+
+
+uniquify nanosoc_chip_pads -verbose
+### CTS 
+source clock_tree_synthesis.tcl 
+
+report_timing > $::env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/reports/3post_clock_nanosoc_imp_timing.rep
+
+### Add filler cells
+eval_legacy { addFiller -cell FILL128_A12TR WELLANTENNATIEPW2_A12TR FILLTIE8_A12TR FILLTIE64_A12TR FILLTIE4_A12TR FILLTIE32_A12TR FILLTIE2_A12TR FILLTIE16_A12TR FILLTIE128_A12TR FILLCAPTIE8_A12TR -prefix FILLER -powerDomain ACCEL -doDRC }
+eval_legacy { addFiller -cell WELLANTENNATIEPW2_A12TR FILLTIE8_A12TR FILLTIE64_A12TR FILLTIE4_A12TR FILLTIE32_A12TR FILLTIE2_A12TR FILLTIE16_A12TR FILLTIE128_A12TR FILLCAPTIE8_A12TR -prefix FILLER -powerDomain TOP -doDRC }
+
+
+### Routing 
+source route.tcl 
+
+report_timing > $::env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/reports/4post_route_nanosoc_imp_timing.rep
+
+check_antenna
+
+### Fill metal
+set_metal_fill -layer M1 -opc_active_spacing 0.090 -border_spacing -0.001
+set_metal_fill -layer M2 -opc_active_spacing 0.100 -border_spacing -0.001
+set_metal_fill -layer M3 -opc_active_spacing 0.100 -border_spacing -0.001
+set_metal_fill -layer M4 -opc_active_spacing 0.100 -border_spacing -0.001
+set_metal_fill -layer M5 -opc_active_spacing 0.100 -border_spacing -0.001
+set_metal_fill -layer M6 -opc_active_spacing 0.100 -border_spacing -0.001
+set_metal_fill -layer M7 -opc_active_spacing 0.100 -border_spacing -0.001
+set_metal_fill -layer M8 -opc_active_spacing 0.400 -border_spacing -0.001
+set_metal_fill -layer M9 -opc_active_spacing 0.400 -border_spacing -0.001
+set_metal_fill -layer AP -opc_active_spacing 2.000 -border_spacing -0.001
+add_metal_fill -layers { M1 M2 M3 M4 M5 M6 M7 M8 M9 AP } -nets { VSSIO VSS VDDACC VDDIO VDD }
+
+
+report_timing > $::env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/reports/nanosoc_imp_timing.rep
+report_area > $::env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/reports/nanosoc_imp_area.rep
+report_power > $::env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/reports/nanosoc_imp_power.rep
+
+gui_show 
+
+
+
+
diff --git a/ASIC/44pin/Cadence/scripts/power_plan.tcl b/ASIC/44pin/Cadence/scripts/power_plan.tcl
new file mode 100644
index 0000000000000000000000000000000000000000..5895c391175d676798896d0d738044b37a2073e0
--- /dev/null
+++ b/ASIC/44pin/Cadence/scripts/power_plan.tcl
@@ -0,0 +1,86 @@
+#########################################
+# Script : Power Planning 
+# Tool : Cadence Innovus 
+# Date : May 22, 2023
+# Author : Srimanth Tenneti
+######################################### 
+
+### Connecting Global Nets
+connect_global_net VDD -type pg_pin -pin_base_name VDD -inst_base_name * 
+connect_global_net VDDIO -type pg_pin -pin_base_name VDDIO -inst_base_name * 
+connect_global_net VSS -type pg_pin -pin_base_name VSS -inst_base_name * 
+connect_global_net VSSIO -type pg_pin -pin_base_name VSSIO -inst_base_name * 
+connect_global_net VDDACC -type pg_pin -pin_base_name VDD -inst_base_name {} -hinst u_nanosoc_chip_u_system_u_ss_expansion_u_region_exp_u_ss_accelerator -override
+### Top and Bottom Metal Declartions
+set_db add_rings_stacked_via_top_layer M8
+set_db add_rings_stacked_via_bottom_layer M1 
+
+### Adding Rings 
+add_rings -nets {VDD VDDACC VSS} -type core_rings -follow core -layer {top M9 bottom M9 left M8 right M8} -width {top 8 bottom 8 left 8 right 8} -spacing {top 2 bottom 2 left 2 right 2} -offset {top 3 bottom 3 left 3 right 3} -center 0 -threshold 0 -jog_distance 0 -snap_wire_center_to_grid none
+
+### Adding Stripes 
+set_db add_stripes_ignore_block_check true
+set_db add_stripes_break_at none
+set_db add_stripes_route_over_rows_only false
+set_db add_stripes_rows_without_stripes_only false
+set_db add_stripes_extend_to_closest_target none
+set_db add_stripes_stop_at_last_wire_for_area false
+set_db add_stripes_partial_set_through_domain true
+set_db add_stripes_ignore_non_default_domains false
+set_db add_stripes_trim_antenna_back_to_shape none
+set_db add_stripes_spacing_type edge_to_edge
+set_db add_stripes_spacing_from_block 0
+set_db add_stripes_stripe_min_length stripe_width
+set_db add_stripes_stacked_via_top_layer AP
+set_db add_stripes_stacked_via_bottom_layer M1
+set_db add_stripes_via_using_exact_crossover_size false
+set_db add_stripes_split_vias false
+set_db add_stripes_orthogonal_only true
+set_db add_stripes_allow_jog { padcore_ring  block_ring }
+set_db add_stripes_skip_via_on_pin {  standardcell }
+set_db add_stripes_skip_via_on_wire_shape {  noshape   }
+add_stripes -nets {VDD VDDACC VSS} -layer M6 -direction vertical -width 1.8 -spacing 0.8 -set_to_set_distance 60 -extend_to all_domains -start_from left -start_offset 50 -stop_offset 0 -switch_layer_over_obs false -max_same_layer_jog_length 2 -pad_core_ring_top_layer_limit AP -pad_core_ring_bottom_layer_limit M1 -block_ring_top_layer_limit AP -block_ring_bottom_layer_limit M1 -use_wire_group 0 -snap_wire_center_to_grid none
+
+deselect_obj -all
+
+# Connect Accelerator region
+select_obj u_nanosoc_chip_u_system_u_ss_expansion_u_region_exp_u_ss_accelerator
+set_db add_stripes_ignore_block_check true
+set_db add_stripes_break_at none
+set_db add_stripes_route_over_rows_only false
+set_db add_stripes_rows_without_stripes_only false
+set_db add_stripes_extend_to_closest_target stripe
+set_db add_stripes_stop_at_last_wire_for_area false
+set_db add_stripes_partial_set_through_domain true
+set_db add_stripes_ignore_non_default_domains false
+set_db add_stripes_trim_antenna_back_to_shape none
+set_db add_stripes_spacing_type edge_to_edge
+set_db add_stripes_spacing_from_block 0
+set_db add_stripes_stripe_min_length stripe_width
+set_db add_stripes_stacked_via_top_layer AP
+set_db add_stripes_stacked_via_bottom_layer M4
+set_db add_stripes_via_using_exact_crossover_size false
+set_db add_stripes_split_vias false
+set_db add_stripes_orthogonal_only true
+set_db add_stripes_allow_jog { padcore_ring  block_ring }
+set_db add_stripes_skip_via_on_pin {  standardcell }
+set_db add_stripes_skip_via_on_wire_shape {  noshape   }
+add_stripes -nets {VDDACC VSS} -layer M9 -direction horizontal -width 1 -spacing 0.5 -set_to_set_distance 50 -over_power_domain 1 -start_from bottom -start_offset 15 -stop_offset 0 -switch_layer_over_obs false -max_same_layer_jog_length 2 -pad_core_ring_top_layer_limit AP -pad_core_ring_bottom_layer_limit M1 -block_ring_top_layer_limit AP -block_ring_bottom_layer_limit M1 -use_wire_group 0 -snap_wire_center_to_grid none
+
+deselect_obj -all
+
+# connect Macros
+select_obj [ list u_nanosoc_chip_u_system_u_ss_cpu_u_region_dmem_0_u_dmem_0_u_sram_u_rf_sp_hdf u_nanosoc_chip_u_system_u_ss_cpu_u_region_imem_0_u_imem_0_u_sram_u_rf_sp_hdf u_nanosoc_chip_u_system_u_ss_expansion_u_region_expram_h_u_expram_h_u_sram_u_rf_sp_hdf u_nanosoc_chip_u_system_u_ss_expansion_u_region_expram_l_u_expram_l_u_sram_u_rf_sp_hdf u_nanosoc_chip_u_system_u_ss_cpu_u_region_bootrom_0_u_bootrom_cpu_0_u_bootrom_u_sl_rom]
+set_db add_stripes_ignore_block_check false
+set_db add_stripes_break_at none
+set_db add_stripes_route_over_rows_only false
+set_db add_stripes_rows_without_stripes_only false
+set_db add_stripes_extend_to_closest_target stripe
+add_stripes -nets {VDD VSS} -layer M5 -direction horizontal -width 1 -spacing 0.5 -set_to_set_distance 15 -over_power_domain 1 -start_from bottom -start_offset 8 -stop_offset 0 -switch_layer_over_obs false -merge_stripes_value 500 -max_same_layer_jog_length 2 -pad_core_ring_top_layer_limit AP -pad_core_ring_bottom_layer_limit M1 -block_ring_top_layer_limit AP -block_ring_bottom_layer_limit M1 -use_wire_group 0 -snap_wire_center_to_grid none
+
+deselect_obj -all
+
+# Add END CAPS
+add_endcaps -start_row_cap ENDCAPTIE2_A12TR -end_row_cap ENDCAPTIE2_A12TR -prefix ENDCAP
+add_endcaps -power_domain ACCEL -start_row_cap ENDCAPTIE2_A12TR -end_row_cap ENDCAPTIE2_A12TR -prefix ENDCAP
+
diff --git a/ASIC/44pin/Cadence/scripts/power_route.tcl b/ASIC/44pin/Cadence/scripts/power_route.tcl
new file mode 100644
index 0000000000000000000000000000000000000000..bf05e721f3b978bfc85e3b7aa790c38c7ccce5a8
--- /dev/null
+++ b/ASIC/44pin/Cadence/scripts/power_route.tcl
@@ -0,0 +1,12 @@
+##################################
+# Script : Special Route Script 
+# Date : May 24, 2023 
+# Description : Power Routing 
+# Author : Srimanth Tenneti 
+##################################
+route_special -connect {pad_pin pad_ring} -layer_change_range { M1(1) AP(10) } -block_pin_target nearest_target -pad_pin_port_connect {all_port all_geom} -pad_pin_target nearest_target -allow_jogging 1 -crossover_via_layer_range { M1(1) AP(10) } -nets { VDD VSS VDDACC } -allow_layer_change 1 -pad_pin_width 6 -target_via_layer_range { M1(1) AP(10) }
+
+route_special -connect {block_pin core_pin floating_stripe} -layer_change_range { M1(1) AP(10) } -block_pin_target nearest_target -pad_pin_port_connect {all_port one_geom} -pad_pin_target nearest_target -core_pin_target first_after_row_end -floating_stripe_target {block_ring pad_ring ring stripe ring_pin block_pin followpin} -allow_jogging 1 -power_domains { ACCEL } -crossover_via_layer_range { M1(1) AP(10) } -nets { VDDACC VSS } -allow_layer_change 1 -block_pin use_lef -target_via_layer_range { M1(1) AP(10) }
+route_special -connect {block_pin core_pin floating_stripe} -layer_change_range { M1(1) AP(10) } -block_pin_target nearest_target -pad_pin_port_connect {all_port one_geom} -pad_pin_target nearest_target -core_pin_target first_after_row_end -floating_stripe_target {block_ring pad_ring ring stripe ring_pin block_pin followpin} -allow_jogging 1 -power_domains { TOP } -crossover_via_layer_range { M1(1) AP(10) } -nets { VDD VSS } -allow_layer_change 1 -block_pin use_lef -target_via_layer_range { M1(1) AP(10) }
+
+#route_special  -nets {VDD VSS} -connect core_pin  -block_pin_target nearest_target -core_pin_target first_after_row_end  -allow_jogging 1 -allow_layer_change 1 -layer_change_range { M1(1) M8(8) } -crossover_via_layer_range { M1(1) M8(8) } -target_via_layer_range { M1(1) M8(8) }
diff --git a/ASIC/44pin/Cadence/scripts/route.tcl b/ASIC/44pin/Cadence/scripts/route.tcl
new file mode 100644
index 0000000000000000000000000000000000000000..b12b0975739e80b149b89b66e2ddee6a57df17b5
--- /dev/null
+++ b/ASIC/44pin/Cadence/scripts/route.tcl
@@ -0,0 +1,18 @@
+
+### Clock Net Spacing
+set_route_attributes -nets clk -preferred_extra_space_tracks 2 
+
+### Multi Cut Via Effort 
+set_db route_design_detail_use_multi_cut_via_effort medium
+
+### Timing Driven Route
+set_db route_design_with_timing_driven 1 
+
+### SI Driven Route 
+set_db route_design_with_si_driven 1 
+
+### Route Design 
+route_design -global_detail
+
+### Timing Analysis Type 
+set_db timing_analysis_type ocv
diff --git a/ASIC/44pin/Synopsys/scripts/fm_shell.tcl b/ASIC/44pin/Synopsys/scripts/fm_shell.tcl
new file mode 100644
index 0000000000000000000000000000000000000000..87b374118661e041b6400a887e943cee8c4b3b00
--- /dev/null
+++ b/ASIC/44pin/Synopsys/scripts/fm_shell.tcl
@@ -0,0 +1,28 @@
+
+set_mismatch_message_filter -warn FMR_ELAB-147
+set_svf -append $env(SOCLABS_PROJECT_DIR)/nanosoc_tech/synthesis/default.svf
+set IO_FRONTEND_DIR /home/dwn1c21/SoC-Labs/phys_ip/tsmc/cln65lp/Front_End/timing_power_noise/NLDM/tpdn65lpnv2od3_200a
+
+source $env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/flist/formality_flist.tcl
+read_db -r $env(SOCLABS_PROJECT_DIR)/memories/rf/rf_sp_hdf_ss_1p08v_1p08v_125c.db
+read_db -r $env(SOCLABS_PROJECT_DIR)/memories/bootrom/rom_via_ss_1p08v_1p08v_125c.db
+read_db -r $IO_FRONTEND_DIR/tpdn65lpnv2od3wc.db
+set_top nanosoc_chip_pads
+
+# Read db files
+read_db -i $env(PHYS_IP)/arm/tsmc/cln65lp/sc12_base_rvt/r0p0/db/sc12_cln65lp_base_rvt_ss_typical_max_1p08v_125c.db
+read_db -i $env(SOCLABS_PROJECT_DIR)/memories/rf/rf_sp_hdf_ss_1p08v_1p08v_125c.db
+read_db -i $env(SOCLABS_PROJECT_DIR)/memories/bootrom/rom_via_ss_1p08v_1p08v_125c.db
+read_db -i $IO_FRONTEND_DIR/tpdn65lpnv2od3wc.db
+# Read Gate netlist
+
+read_verilog -i $env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/netlist/nanosoc_chip_pads.vm
+
+set_top nanosoc_chip_pads
+
+match
+verify
+
+analyze_points -failing
+
+save_session nanosoc_chip_pads_formal_equivalence
\ No newline at end of file
diff --git a/ASIC/44pin/Synopsys/scripts/place_memories.tcl b/ASIC/44pin/Synopsys/scripts/place_memories.tcl
new file mode 100644
index 0000000000000000000000000000000000000000..945dea4948d4d6a44e577323a1909c0629a8e6c6
--- /dev/null
+++ b/ASIC/44pin/Synopsys/scripts/place_memories.tcl
@@ -0,0 +1,16 @@
+set_macro_relative_location -target_object [get_cell {u_nanosoc_chip/u_system/u_ss_cpu/u_region_imem_0/u_imem_0/u_sram/u_rf_sp_hdf}] -target_orientation R0 -target_corner tr -anchor_corner tr -offset {-0.1 -0.47} -offset_type scalable
+set_macro_relative_location -target_object [get_cell {u_nanosoc_chip/u_system/u_ss_cpu/u_region_dmem_0/u_dmem_0/u_sram/u_rf_sp_hdf}] -target_orientation R0 -target_corner tr -anchor_corner tr -offset {-0.1 -0.67} -offset_type scalable
+set_macro_relative_location -target_object [get_cell {u_nanosoc_chip/u_system/u_ss_expansion/u_region_expram_l/u_expram_l/u_sram/u_rf_sp_hdf}] -target_orientation R0 -target_corner tr -anchor_corner tr -offset {-0.1 -0.05} -offset_type scalable
+set_macro_relative_location -target_object [get_cell {u_nanosoc_chip/u_system/u_ss_expansion/u_region_expram_h/u_expram_h/u_sram/u_rf_sp_hdf}] -target_orientation R0 -target_corner tr -anchor_corner tr -offset {-0.1 -0.27} -offset_type scalable
+set_macro_relative_location -target_object [get_cell {u_nanosoc_chip/u_system/u_ss_cpu/u_region_bootrom_0/u_bootrom_cpu_0/u_bootrom/u_sl_rom}] -target_orientation R180 -target_corner br -anchor_corner br -offset {-0.15 0.1} -offset_type scalable
+create_macro_relative_location_placement
+
+set_attribute -objects [get_cells u_nanosoc_chip/u_system/u_ss_cpu/u_region_dmem_0/u_dmem_0/u_sram/u_rf_sp_hdf] -name physical_status -value fixed
+set_attribute -objects [get_cells u_nanosoc_chip/u_system/u_ss_cpu/u_region_imem_0/u_imem_0/u_sram/u_rf_sp_hdf] -name physical_status -value fixed
+set_attribute -objects [get_cells u_nanosoc_chip/u_system/u_ss_expansion/u_region_expram_l/u_expram_l/u_sram/u_rf_sp_hdf] -name physical_status -value fixed
+set_attribute -objects [get_cells u_nanosoc_chip/u_system/u_ss_expansion/u_region_expram_h/u_expram_h/u_sram/u_rf_sp_hdf] -name physical_status -value fixed
+set_attribute -objects [get_cells u_nanosoc_chip/u_system/u_ss_cpu/u_region_bootrom_0/u_bootrom_cpu_0/u_bootrom/u_sl_rom] -name physical_status -value fixed
+
+create_keepout_margin -type hard -outer {5 5 5 5} [get_attribute [get_cells u_nanosoc_chip/u_system/u_ss_cpu/u_region_dmem_0/u_dmem_0/u_sram/u_rf_sp_hdf] ref_block];create_keepout_margin -type hard_macro -outer {5 5 5 5} [get_attribute [get_cells u_nanosoc_chip/u_system/u_ss_cpu/u_region_dmem_0/u_dmem_0/u_sram/u_rf_sp_hdf] ref_block];create_keepout_margin -type soft -outer {8 8 8 8} [get_attribute [get_cells u_nanosoc_chip/u_system/u_ss_cpu/u_region_dmem_0/u_dmem_0/u_sram/u_rf_sp_hdf] ref_block];
+create_keepout_margin -type hard -outer {5 5 5 5} [get_attribute [get_cells u_nanosoc_chip/u_system/u_ss_cpu/u_region_bootrom_0/u_bootrom_cpu_0/u_bootrom/u_sl_rom] ref_block];create_keepout_margin -type hard_macro -outer {5 5 5 5} [get_attribute [get_cells u_nanosoc_chip/u_system/u_ss_cpu/u_region_bootrom_0/u_bootrom_cpu_0/u_bootrom/u_sl_rom] ref_block];create_keepout_margin -type soft -outer {8 8 8 8} [get_attribute [get_cells u_nanosoc_chip/u_system/u_ss_cpu/u_region_bootrom_0/u_bootrom_cpu_0/u_bootrom/u_sl_rom] ref_block];
+
diff --git a/ASIC/Synopsys/ICC2/place_pins.tcl b/ASIC/44pin/Synopsys/scripts/place_pins.tcl
similarity index 100%
rename from ASIC/Synopsys/ICC2/place_pins.tcl
rename to ASIC/44pin/Synopsys/scripts/place_pins.tcl
diff --git a/ASIC/44pin/Synopsys/scripts/pnr.tcl b/ASIC/44pin/Synopsys/scripts/pnr.tcl
new file mode 100644
index 0000000000000000000000000000000000000000..9fdf34e618c2ad7f4241833932ac0a105fe334da
--- /dev/null
+++ b/ASIC/44pin/Synopsys/scripts/pnr.tcl
@@ -0,0 +1,153 @@
+#//-----------------------------------------------------------------------------
+#// PnR Flow script for Synopsys ICC2
+#// A joint work commissioned on behalf of SoC Labs, under Arm Academic Access license.
+#//
+#// Contributorss
+#//
+#// Daniel Newbrook (d.newbrook@soton.ac.uk)
+#//
+#// Copyright � 2021-3, SoC Labs (www.soclabs.org)
+#//-----------------------------------------------------------------------------
+
+
+set design_name nanosoc_chip_pads
+
+# Edit these for your environment
+set PHYS_IP_DIR /research/AAA/phys_ip_library
+set MEM_DIR /home/dwn1c21/SoC-Labs/accelerator-project/memories
+set IO_BACKEND_DIR /home/dwn1c21/SoC-Labs/phys_ip/tsmc/cln65lp/Backend/lef
+set IO_FRONTEND_DIR /home/dwn1c21/SoC-Labs/phys_ip/tsmc/cln65lp/Front_End/timing_power_noise/NLDM/tpdn65lpnv2od3_200a
+
+set_app_var link_library  [list $PHYS_IP_DIR/arm/tsmc/cln65lp/sc12_base_rvt/r0p0/db/sc12_cln65lp_base_rvt_ss_typical_max_1p08v_125c.db $MEM_DIR/bootrom/rom_via_ss_1p08v_1p08v_125c.db $MEM_DIR/rf/rf_sp_hdf_ss_1p08v_1p08v_125c.db $IO_FRONTEND_DIR/tpdn65lpnv2od3wc.db]
+create_lib tsmc65lp -technology $PHYS_IP_DIR/arm/tsmc/cln65lp/arm_tech/r2p0/milkyway/1p9m_6x2z/sc12_tech.tf -ref_libs [list $PHYS_IP_DIR/arm/tsmc/cln65lp/sc12_base_rvt/r0p0/lef/sc12_cln65lp_base_rvt.lef $MEM_DIR/rf/rf_sp_hdf.lef $MEM_DIR/bootrom/rom_via.lef $IO_BACKEND_DIR/tpbn65v_9lm.lef $IO_BACKEND_DIR/tpdn65lpnv2od3_9lm.lef]
+
+read_parasitic_tech -name typical -tlup $PHYS_IP_DIR/arm/tsmc/cln65lp/arm_tech/r2p0/synopsys_tluplus/1p9m_6x2z/typical.tluplus -layermap $PHYS_IP_DIR/arm/tsmc/cln65lp/arm_tech/r2p0/synopsys_tluplus/1p9m_6x2z/tluplus.map
+read_parasitic_tech -name rcbest -tlup $PHYS_IP_DIR/arm/tsmc/cln65lp/arm_tech/r2p0/synopsys_tluplus/1p9m_6x2z/rcbest.tluplus -layermap $PHYS_IP_DIR/arm/tsmc/cln65lp/arm_tech/r2p0/synopsys_tluplus/1p9m_6x2z/tluplus.map
+read_parasitic_tech -name rcworst -tlup $PHYS_IP_DIR/arm/tsmc/cln65lp/arm_tech/r2p0/synopsys_tluplus/1p9m_6x2z/rcworst.tluplus -layermap $PHYS_IP_DIR/arm/tsmc/cln65lp/arm_tech/r2p0/synopsys_tluplus/1p9m_6x2z/tluplus.map
+
+
+read_verilog -library tsmc65lp -design nanosoc_chip_pads -top nanosoc_chip_pads $env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/netlist/Synopsys/nanosoc_chip_pads.vp
+read_def $env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/netlist/Synopsys/nanosoc_chip_pads.def
+link_block
+
+create_cell {PAD_CORNER_NE PAD_CORNER_SE PAD_CORNER_SW PAD_CORNER_NW} PCORNER
+
+initialize_floorplan -side_length {1500 1500} -core_offset {150}
+create_io_ring -name main_io
+explore_logic_hierarchy -organize
+
+# Place IO pins
+source place_pins.tcl
+
+# Power domains TOP ACCEL and MEM
+create_power_domain TOP 
+create_power_domain ACCEL  -elements {u_nanosoc_chip/u_system/u_ss_expansion/u_region_exp/u_ss_accelerator}
+#VDD
+create_supply_port VDD
+create_supply_net VDD -domain TOP
+connect_supply_net VDD -ports VDD
+
+#VSS
+create_supply_port VSS 
+create_supply_net VSS -domain TOP
+create_supply_net VSS -domain ACCEL -reuse
+connect_supply_net VSS -ports VSS
+
+#VDDACC
+create_supply_port VDDACC 
+create_supply_net VDDACC -domain ACCEL
+connect_supply_net VDDACC -ports VDDACC
+
+
+#IO Supplies
+create_supply_port VDDIO -domain TOP
+connect_supply_net VDDIO -ports VDDIO
+
+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
+# Create voltage and power region for accelerator
+create_voltage_area -power_domains ACCEL -power VDDACC -ground VSS -nwell VDDACC -pwell VSS -region {{{150 1050} {1100 1650}}} -name VA_ACCEL -cells [get_cells -physical_context -hierarchical \
+-regexp u_nanosoc_chip/u_system/u_ss_expansion/u_region_exp/u_ss_accelerator/.*]
+create_pg_region {pg_ACCEL} -voltage_area VA_ACCEL -expand {0 10}
+
+create_pg_region {pg_TOP} -voltage_area DEFAULT_VA 
+
+
+set_parasitic_parameters -early_spec rcbest -early_temperature -40 -late_spec rcworst -late_temperature 125
+current_corner default
+set_operating_conditions -max_library sc12_cln65lp_base_rvt_ss_typical_max_1p08v_125c -max ss_typical_max_1p08v_125c -min_library sc12_cln65lp_base_rvt_ss_typical_max_1p08v_125c -min ss_typical_max_1p08v_125c
+current_corner default
+set_parasitic_parameters -early_spec rcbest -early_temperature -40 -late_spec rcworst -late_temperature 125
+current_corner default
+set_operating_conditions -max_library sc12_cln65lp_base_rvt_ss_typical_max_1p08v_125c -max ss_typical_max_1p08v_125c -min_library sc12_cln65lp_base_rvt_ss_typical_max_1p08v_125c -min ss_typical_max_1p08v_125c
+current_mode default
+set_voltage 1.08 -corner [current_corner] -object_list [get_supply_nets VDD]
+set_voltage 1.08 -corner [current_corner] -object_list [get_supply_nets VDDACC]
+set_voltage 3.00 -corner [current_corner] -object_list [get_supply_nets VDDIO]
+set_voltage 0.00 -corner [current_corner] -object_list [get_supply_nets VSS]
+
+add_port_state VSS -state {on 0.0}
+add_port_state VDD -state {on 1.08}
+add_port_state VDDACC -state {on 1.08}
+add_port_state VDDIO -state {on 3.0}
+create_pst ao_pst -supplies {VSS VDD VDDACC VDDIO}
+add_pst_state ao -pst ao_pst -state {on on on on}
+
+commit_upf
+
+set_app_options -list {opt.timing.effort {medium}}
+set_app_options -list {clock_opt.place.effort {high}}
+set_app_options -list {place_opt.flow.clock_aware_placement {true}}
+set_app_options -list {place_opt.final_place.effort {high}}
+
+read_sdc $env(SOCLABS_PROJECT_DIR)/nanosoc_tech/ASIC/constraints.sdc
+update_timing
+
+
+
+change_selection [explore_logic_hierarchy -create_module_boundary]
+explore_logic_hierarchy -place
+
+#Place and fix memories with boundary
+source place_memories.tcl
+
+change_selection [explore_logic_hierarchy -create_module_boundary]
+explore_logic_hierarchy -place
+
+#Create power ring and straps
+source power_plan.tcl
+
+#Start Placement
+create_placement 
+legalize_placement -cells [get_cells *]
+
+save_lib -all
+
+report_timing > $::env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/reports/1pre_opt_placement_timing.rep
+check_mv_design > check_mv_design.log
+
+report_utilization -of_objects [get_voltage_areas {DEFAULT_VA}] > check_util_default_va.log
+report_utilization -of_objects [get_voltage_areas {VA_ACCEL}] > check_util_va_accel.log
+
+
+place_opt
+save_lib -all
+
+update_timing -full
+report_timing > $::env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/reports/2post_opt_placement_timing.rep
+
+check_clock_trees -clocks clk
+synthesize_clock_trees -clocks clk
+clock_opt
+update_timing -full
+report_timing > $::env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/reports/3post_clock_opt_placement_timing.rep
+save_lib -all
+
+#Start Routing
+route_auto
+update_timing -full
+
+report_timing > $::env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/reports/final_timing.rep
+report_power > $::env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/reports/final_power.rep
+save_lib -all
+exit
diff --git a/ASIC/44pin/Synopsys/scripts/power_plan.tcl b/ASIC/44pin/Synopsys/scripts/power_plan.tcl
new file mode 100644
index 0000000000000000000000000000000000000000..f6a77a6e4dc3298d6ef81a9e5f8ab08466b54211
--- /dev/null
+++ b/ASIC/44pin/Synopsys/scripts/power_plan.tcl
@@ -0,0 +1,38 @@
+connect_pg_net -automatic
+
+# Create Outer core ring
+create_pg_ring_pattern ring_pattern -horizontal_layer M9 -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 VDDIO VDDACC VSS}}{offset: {3 3}}} -core
+
+# Create vertical straps in Nanosoc region
+create_pg_mesh_pattern strap_pattern -layers {{{vertical_layer: M6} {width: 1} {pitch: 50} {spacing: interleaving} {trim: false}}}
+set_pg_strategy M6_straps -voltage_areas VA_TOP -pattern {{name: strap_pattern}{nets: VDD VSS}} -extension {{{stop : outermost_ring}}} -blockage {{{pg_regions : {pg_ACCEL}}}} 
+
+# Create std cell rails in Nanosoc Region
+create_pg_std_cell_conn_pattern rail_pattern -layers M5 
+set_pg_strategy M5_rails -voltage_areas VA_TOP -pattern {{name: rail_pattern}{nets: VDD VSS}} -extension {{{stop : outermost_ring}}} -blockage {{{pg_regions : {pg_ACCEL}}}} 
+
+# Create rails for macros
+create_pg_macro_conn_pattern sram_pg_mesh -pin_conn_type long_pin -nets {VDD VSS} -direction horizontal -layers M5 -width 0.64 -spacing interleaving -pitch 3 -pin_layers {M4} -via_rule {{intersection : all}}
+set_pg_strategy sram_pg_mesh -macros {u_nanosoc_chip/u_system/u_ss_expansion/u_region_expram_l/u_expram_l/u_sram/u_rf_sp_hdf u_nanosoc_chip/u_system/u_ss_cpu/u_region_bootrom_0/u_bootrom_cpu_0/u_bootrom/u_sl_rom  \
+u_nanosoc_chip/u_system/u_ss_cpu/u_region_dmem_0/u_dmem_0/u_sram/u_rf_sp_hdf u_nanosoc_chip/u_system/u_ss_cpu/u_region_imem_0/u_imem_0/u_sram/u_rf_sp_hdf  \
+u_nanosoc_chip/u_system/u_ss_expansion/u_region_expram_h/u_expram_h/u_sram/u_rf_sp_hdf} -pattern {{name : sram_pg_mesh}{nets : {VDD VSS}}}
+
+
+# Create ring for Accelerator Region
+# create_pg_ring_pattern acc_ring_pattern -horizontal_layer M9 -horizontal_width {3} -horizontal_spacing {1} -vertical_layer M8 -vertical_width {3} -vertical_spacing {1}
+# set_pg_strategy acc_ring -voltage_areas VA_ACCEL -pattern {{name:acc_ring_pattern} {nets: {VDDACC VSS}}}
+
+# Create std cell rails in Accelerator region
+create_pg_std_cell_conn_pattern acc_rail_pattern -layers M5
+set_pg_strategy acc_rails -voltage_areas VA_ACCEL -pattern {{name:acc_rail_pattern}{nets:{VDDACC VSS}}} -extension {{{stop: first_target}}}
+
+# Create straps for Accelerator region
+create_pg_mesh_pattern acc_strap_pattern -layers {{vertical_layer : M8} {width : 1} {spacing : interleaving} {pitch : 50} {trim : false}}
+set_pg_strategy M8_straps_acc -voltage_areas VA_ACCEL -pattern {{name: acc_strap_pattern}{nets: VDDACC VSS}} -extension {{{stop : outermost_ring}}}
+
+create_pg_mesh_pattern acc_mesh_pattern -layers {{horizontal_layer : M9} {width : 1} {spacing : interleaving} {pitch : 50} {trim : false}}
+set_pg_strategy M9_mesh_acc -voltage_areas VA_ACCEL -pattern {{name: acc_mesh_pattern}{nets: VDDACC VSS}} -extension {{{stop : outermost_ring}}}
+
+# Compile all power strategies
+compile_pg -strategies {core_ring M6_straps M5_rails acc_rails M8_straps_acc M9_mesh_acc sram_pg_mesh}
\ No newline at end of file
diff --git a/ASIC/44pin/Synopsys/scripts/synopsys_lib_conversion.tcl b/ASIC/44pin/Synopsys/scripts/synopsys_lib_conversion.tcl
new file mode 100644
index 0000000000000000000000000000000000000000..6cc53b16baabb3dfbe14e567433cad2985c23c81
--- /dev/null
+++ b/ASIC/44pin/Synopsys/scripts/synopsys_lib_conversion.tcl
@@ -0,0 +1,35 @@
+set RF_PATH $env(SOCLABS_PROJECT_DIR)/memories/rf
+
+read_lib $RF_PATH/rf_sp_hdf_ss_1p08v_1p08v_125c.lib
+write_lib RF_LIB_ss_1p08v_1p08v_125c -output $RF_PATH/rf_sp_hdf_ss_1p08v_1p08v_125c.db
+
+read_lib $RF_PATH/rf_sp_hdf_ss_1p08v_1p08v_m40c.lib
+write_lib RF_LIB_ss_1p08v_1p08v_m40c -output $RF_PATH/rf_sp_hdf_ss_1p08v_1p08v_m40c.db
+
+read_lib $RF_PATH/rf_sp_hdf_ff_1p32v_1p32v_125c.lib
+write_lib RF_LIB_ff_1p32v_1p32v_125c -output $RF_PATH/rf_sp_hdf_ff_1p32v_1p32v_125c.db
+
+read_lib $RF_PATH/rf_sp_hdf_ff_1p32v_1p32v_m40c.lib
+write_lib RF_LIB_ff_1p32v_1p32v_m40c -output $RF_PATH/rf_sp_hdf_ff_1p32v_1p32v_m40c.db
+
+read_lib $RF_PATH/rf_sp_hdf_tt_1p20v_1p20v_25c.lib
+write_lib RF_LIB_tt_1p20v_1p20v_25c -output $RF_PATH/rf_sp_hdf_tt_1p20v_1p20v_25c.db
+
+set ROM_PATH $env(SOCLABS_PROJECT_DIR)/memories/bootrom
+
+read_lib $ROM_PATH/rom_via_ss_1p08v_1p08v_125c.lib
+write_lib USERLIB_ss_1p08v_1p08v_125c -output $ROM_PATH/rom_via_ss_1p08v_1p08v_125c.db
+
+read_lib $ROM_PATH/rom_via_ss_1p08v_1p08v_m40c.lib
+write_lib USERLIB_ss_1p08v_1p08v_m40c -output $ROM_PATH/rom_via_ss_1p08v_1p08v_m40c.db
+
+read_lib $ROM_PATH/rom_via_ff_1p32v_1p32v_125c.lib
+write_lib USERLIB_ff_1p32v_1p32v_125c -output $ROM_PATH/rom_via_ff_1p32v_1p32v_125c.db
+
+read_lib $ROM_PATH/rom_via_ff_1p32v_1p32v_m40c.lib
+write_lib USERLIB_ff_1p32v_1p32v_m40c -output $ROM_PATH/rom_via_ff_1p32v_1p32v_m40c.db
+
+read_lib $ROM_PATH/rom_via_tt_1p20v_1p20v_25c.lib
+write_lib USERLIB_tt_1p20v_1p20v_25c -output $ROM_PATH/rom_via_tt_1p20v_1p20v_25c.db
+
+exit
\ No newline at end of file
diff --git a/ASIC/44pin/Synopsys/scripts/synthesis.tcl b/ASIC/44pin/Synopsys/scripts/synthesis.tcl
new file mode 100644
index 0000000000000000000000000000000000000000..0cc586503340e59a0bc690c71a136c776098f60f
--- /dev/null
+++ b/ASIC/44pin/Synopsys/scripts/synthesis.tcl
@@ -0,0 +1,83 @@
+#-----------------------------------------------------------------------------
+# NanoSoC Synopsys synthesis tcl file to be run with dc_shell
+# A joint work commissioned on behalf of SoC Labs, under Arm Academic Access license.
+#
+# Contributors
+#
+# Daniel Newbrook (d.newbrook@soton.ac.uk)
+#
+# Copyright (C) 2021-3, SoC Labs (www.soclabs.org)
+#-----------------------------------------------------------------------------
+
+set rtlPath $env(SOCLABS_PROJECT_DIR)
+set report_path $env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/reports/
+set top_module nanosoc_chip_pads
+set io_path /home/dwn1c21/SoC-Labs/phys_ip/tsmc/cln65lp/Front_End/timing_power_noise/NLDM/tpdn65lpnv2od3_200a
+#supress_message = {ELAB-405}
+#####
+# Set search_path
+#
+# List locations where your standard cell libraries may be located
+#
+#####
+set search_path [list . $search_path $env(PHYS_IP)/arm/tsmc/cln65lp/sc12_base_rvt/r0p0/sdb/ $env(PHYS_IP)/arm/tsmc/cln65lp/sc12_base_rvt/r0p0/db/ $env(SOCLABS_PROJECT_DIR)/memories/rf $env(SOCLABS_PROJECT_DIR)/memories/bootrom $io_path]
+set search_path [concat $rtlPath $search_path]
+######
+# Set Target Library
+#
+# Set a default target library for Design Compiler to target when compiling a design
+#
+######
+set target_library "sc12_cln65lp_base_rvt_ss_typical_max_1p08v_125c.db rf_sp_hdf_ss_1p08v_1p08v_125c.db rom_via_ss_1p08v_1p08v_125c.db tpdn65lpnv2od3wc.db"
+
+######
+# Set Link Library
+#
+# Set a default link library for Design Compiler to target when compiling a design
+#
+######
+set link_library "sc12_cln65lp_base_rvt_ss_typical_max_1p08v_125c.db rf_sp_hdf_ss_1p08v_1p08v_125c.db rom_via_ss_1p08v_1p08v_125c.db tpdn65lpnv2od3wc.db"
+
+source $env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/flist/dc_flist.tcl
+elaborate $top_module -lib WORK
+current_design $top_module
+
+# Link Design
+link
+
+read_sdc ../../constraints.sdc 
+
+load_upf ../nanosoc_chip_pads.upf
+
+set_voltage -object_list {VDD VDDACC VDD_VSS.power VDDACC_VSS.power TOP.primary.power ACCEL.primary.power} 1.08
+set_voltage -object_list {VSS VDD_VSS.ground VDDACC_VSS.ground TOP.primary.ground ACCEL.primary.ground} 0.00
+
+set_operating_conditions -library sc12_cln65lp_base_rvt_ss_typical_max_1p08v_125c ss_typical_max_1p08v_125c
+
+set_app_var compile_delete_unloaded_sequential_cells false
+compile_ultra -gate_clock -scan 
+
+set_scan_configuration -chain_count 2
+set_dft_signal -view spec -type ScanDataIn -port DFT_SDI_1
+set_dft_signal -view spec -type ScanDataIn -port DFT_SDI_2
+set_dft_signal -view spec -type ScanDataOut -port DFT_SDO_1
+set_dft_signal -view spec -type ScanDataOut -port DFT_SDO_2
+set_dft_signal -view spec -type ScanEnable -port TEST -active_state 1
+set_dft_signal -view existing_dft -type Reset -port NRST -active_state 0
+set_scan_configuration -power_domain_mixing false
+create_test_protocol -infer_clock -infer_asynch 
+dft_drc
+insert_dft
+
+write -hierarchy -format verilog -output $env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/netlist/Synopsys/nanosoc_chip_pads.vm
+write -hierarchy -format verilog -pg -output $env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/netlist/Synopsys/nanosoc_chip_pads.vp
+write_scan_def -output $env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/netlist/Synopsys/nanosoc_chip_pads.def
+write_test_protocol -output $env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/netlist/Synopsys/nanosoc_chip_pads_scan.stil 
+
+redirect [format "%s%s%s" $report_path $top_module _area.rep] { report_area }
+redirect -append [format "%s%s%s" $report_path $top_module _area.rep] { report_reference }
+redirect [format "%s%s%s" $report_path $top_module _power.rep] { report_power }
+redirect [format "%s%s%s" $report_path $top_module _scan_path.rep] { report_scan_path }
+redirect [format "%s%s%s" $report_path $top_module _timing.rep] \
+  { report_timing -path full -max_paths 100 -nets -transition_time -capacitance -significant_digits 3 -nosplit}
+
diff --git a/ASIC/44pin/Synopsys/upf/nanosoc_chip_pads.upf b/ASIC/44pin/Synopsys/upf/nanosoc_chip_pads.upf
new file mode 100644
index 0000000000000000000000000000000000000000..c6b9d33b87e24a28d6f60b9a88d1f65440e314bd
--- /dev/null
+++ b/ASIC/44pin/Synopsys/upf/nanosoc_chip_pads.upf
@@ -0,0 +1,57 @@
+#Scope: nanosoc_chip_pads
+create_supply_set VDDACC_VSS
+create_supply_set VDD_VSS
+
+#Domain: ACCEL
+create_power_domain ACCEL  -supply {primary VDDACC_VSS}  -elements {u_nanosoc_chip/u_system/u_ss_expansion/u_region_exp/u_ss_accelerator}
+
+#Domain: TOP
+create_power_domain TOP  -supply {primary VDD_VSS}
+
+associate_supply_set VDDACC_VSS -handle ACCEL.primary
+associate_supply_set VDD_VSS -handle TOP.primary
+
+create_supply_port VDDACC
+create_supply_port VDD
+create_supply_port VSS
+
+create_supply_net VDDACC
+create_supply_net VDD
+create_supply_net VSS
+
+connect_supply_net VDD -ports VDD
+connect_supply_net VDDACC -ports VDDACC
+connect_supply_net VSS -ports VSS
+
+
+create_supply_set VDDACC_VSS -function {power VDDACC} -function {ground VSS} -update
+create_supply_set VDD_VSS  -function {power VDD}  -function {ground VSS}  -update
+
+
+connect_supply_net VDD -ports u_nanosoc_chip/u_system/u_ss_expansion/u_region_expram_h/u_expram_h/u_sram/u_rf_sp_hdf/VDD
+connect_supply_net VDD -ports u_nanosoc_chip/u_system/u_ss_expansion/u_region_expram_l/u_expram_l/u_sram/u_rf_sp_hdf/VDD
+connect_supply_net VDD -ports u_nanosoc_chip/u_system/u_ss_cpu/u_region_dmem_0/u_dmem_0/u_sram/u_rf_sp_hdf/VDD
+connect_supply_net VDD -ports u_nanosoc_chip/u_system/u_ss_cpu/u_region_imem_0/u_imem_0/u_sram/u_rf_sp_hdf/VDD
+connect_supply_net VDD -ports u_nanosoc_chip/u_system/u_ss_cpu/u_region_bootrom_0/u_bootrom_cpu_0/u_bootrom/u_sl_rom/VDDE
+
+connect_supply_net VSS -ports u_nanosoc_chip/u_system/u_ss_cpu/u_region_dmem_0/u_dmem_0/u_sram/u_rf_sp_hdf/VSS
+connect_supply_net VSS -ports u_nanosoc_chip/u_system/u_ss_cpu/u_region_imem_0/u_imem_0/u_sram/u_rf_sp_hdf/VSS
+connect_supply_net VSS -ports u_nanosoc_chip/u_system/u_ss_expansion/u_region_expram_h/u_expram_h/u_sram/u_rf_sp_hdf/VSS
+connect_supply_net VSS -ports u_nanosoc_chip/u_system/u_ss_expansion/u_region_expram_l/u_expram_l/u_sram/u_rf_sp_hdf/VSS
+connect_supply_net VSS -ports u_nanosoc_chip/u_system/u_ss_cpu/u_region_bootrom_0/u_bootrom_cpu_0/u_bootrom/u_sl_rom/VSSE
+
+add_port_state VSS -state {state1 0.00}
+add_port_state VDD -state {state1 1.08}
+add_port_state VDDACC -state {state1 1.08}
+
+create_pst all_pst -supplies { \
+    VDDACC \
+    VDD \
+    VSS}
+add_pst_state aon -pst all_pst -state {state1}
+
+
+
+
+
+
diff --git a/ASIC/60pin/Cadence/cpf/nanosoc.cpf b/ASIC/60pin/Cadence/cpf/nanosoc.cpf
new file mode 100644
index 0000000000000000000000000000000000000000..f57a1ace58fd7473ee19d4cfe46bf7c5f776edf8
--- /dev/null
+++ b/ASIC/60pin/Cadence/cpf/nanosoc.cpf
@@ -0,0 +1,23 @@
+set_cpf_version 1.1
+
+set_design nanosoc_chip_pads
+create_power_domain -name TOP -default
+create_power_domain -name ACCEL  -instances u_nanosoc_chip/u_system/u_ss_expansion/u_region_exp/u_ss_accelerator
+
+create_nominal_condition -name nom -voltage 1.08
+
+create_power_mode -name PM -domain_conditions {TOP@nom ACCEL@nom} -default
+
+create_ground_nets -nets VSS
+create_power_nets -nets VDD
+create_power_nets -nets VDDACC
+
+create_global_connection -net VSS -pins VSS
+create_global_connection -net VDD -pins VDD
+create_global_connection -net VDDACC -pins VDDACC
+
+update_power_domain -name TOP -primary_power_net VDD -primary_ground_net VSS
+update_power_domain -name ACCEL -primary_power_net VDDACC -primary_ground_net VSS
+
+
+end_design
\ No newline at end of file
diff --git a/ASIC/60pin/Cadence/cpf/nanosoc_imp.cpf b/ASIC/60pin/Cadence/cpf/nanosoc_imp.cpf
new file mode 100644
index 0000000000000000000000000000000000000000..e0869e5a6bcf67fcaf3452a006aac49192bfcc45
--- /dev/null
+++ b/ASIC/60pin/Cadence/cpf/nanosoc_imp.cpf
@@ -0,0 +1,19 @@
+set_cpf_version 1.1
+
+set_design nanosoc_chip_pads
+create_power_domain -name TOP -default
+create_power_domain -name ACCEL  -instances u_nanosoc_chip_u_system_u_ss_expansion_u_region_exp_u_ss_accelerator
+
+create_nominal_condition -name nom -voltage 1.08
+
+create_power_mode -name PM -domain_conditions {TOP@nom ACCEL@nom} -default
+
+create_ground_nets -nets VSS
+create_power_nets -nets VDD
+create_power_nets -nets VDDACC
+
+update_power_domain -name TOP -primary_power_net VDD -primary_ground_net VSS
+update_power_domain -name ACCEL -primary_power_net VDDACC -primary_ground_net VSS
+
+
+end_design
\ No newline at end of file
diff --git a/ASIC/60pin/Cadence/scripts/clock_tree_synthesis.tcl b/ASIC/60pin/Cadence/scripts/clock_tree_synthesis.tcl
new file mode 100644
index 0000000000000000000000000000000000000000..5e8a3ed93fd8086727b0177c8e084b12b46066a8
--- /dev/null
+++ b/ASIC/60pin/Cadence/scripts/clock_tree_synthesis.tcl
@@ -0,0 +1,23 @@
+############################################
+# Script : Clock Tree Implementation
+# Date : 24th May 2023 
+# Author : Srimanth Tenneti 
+# Description : Implements the Clock Tree
+############################################ 
+
+### Buffer Cells 
+set_db cts_buffer_cells {*BUFH*}
+### Inverter Cells 
+set_db cts_inverter_cells {*INV*} 
+
+### Clock Tree Sepc 
+create_clock_tree_spec -out_file design_clk.spec 
+
+### Creating a Clock Tree 
+ccopt_design 
+
+### Optimizing the design 
+opt_design -post_cts 
+opt_design -post_cts -hold 
+
+
diff --git a/ASIC/Cadence/Innovus/design_import.tcl b/ASIC/60pin/Cadence/scripts/design_import.tcl
similarity index 59%
rename from ASIC/Cadence/Innovus/design_import.tcl
rename to ASIC/60pin/Cadence/scripts/design_import.tcl
index 94d98bbc5cf5411cd18971c289c82804a9973f74..b8caba41590c3700779e362dfc6eefe40f6aed7d 100644
--- a/ASIC/Cadence/Innovus/design_import.tcl
+++ b/ASIC/60pin/Cadence/scripts/design_import.tcl
@@ -16,16 +16,22 @@ read_mmmc nanosoc.mmmc
 # !! EDIT THIS TO YOUR PATHS IN YOUR ENVIRONMENT
 set TECH_LEF $::env(PHYS_IP)/arm/tsmc/cln65lp/arm_tech/r2p0/lef/1p9m_6x2z/sc12_tech.lef
 set BASE_LEF $::env(PHYS_IP)/arm/tsmc/cln65lp/sc12_base_rvt/r0p0/lef/sc12_cln65lp_base_rvt.lef
+set IO_PAD_LEF /home/dwn1c21/SoC-Labs/phys_ip/tsmc/cln65lp/Backend/lef/tpbn65v_9lm.lef
+set IO_PAD_DRIVER_LEF /home/dwn1c21/SoC-Labs/phys_ip/tsmc/cln65lp/Backend/lef/tpdn65lpnv2od3_9lm.lef
+
 
 # !! THESE SHOULD BE CORRECT FOR ANY ENVIRONMENT AS THEY ARE GENERATED BY MAKEFILE
-set RF_LEF $::env(SOCLABS_PROJECT_DIR)/memories/rf/rf_sp_hdf.lef
+set RF_LEF $::env(SOCLABS_PROJECT_DIR)/memories/rf_16k/rf_16k.lef
 set ROM_LEF $::env(SOCLABS_PROJECT_DIR)/memories/bootrom/rom_via.lef
 
 ### Reading LEFs 
-read_physical -lef [list ${TECH_LEF} ${BASE_LEF} ${RF_LEF} ${ROM_LEF}]
+read_physical -lef [list ${TECH_LEF} ${BASE_LEF} ${IO_PAD_LEF} ${IO_PAD_DRIVER_LEF} ${RF_LEF} ${ROM_LEF}]
 
 ### Reading Netlist 
-read_netlist $::env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/netlist/nanosoc_chip_pads.vm
+read_netlist $::env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/netlist/nanosoc_chip_pads_60pin.v
+
+### Read DEF scan chain
+read_def $::env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/netlist/nanosoc_chip_pads_60pin.def
 
 ### Initializing the Design 
 init_design
@@ -35,8 +41,8 @@ gui_fit
 
 ungroup u_nanosoc_chip_u_system
 
-create_floorplan -site sc12_cln65lp -core_size 1500 1500 50 50 50 50 
+create_floorplan -core_margins_by die -flip s -site sc12_cln65lp -die_size 1500.0 1500.0 150.0 150.0 150.0 150.0
 
-read_power_intent -cpf nanosoc.cpf
+read_power_intent -cpf ../cpf/nanosoc_imp.cpf
 
 
diff --git a/ASIC/60pin/Cadence/scripts/genus.tcl b/ASIC/60pin/Cadence/scripts/genus.tcl
new file mode 100644
index 0000000000000000000000000000000000000000..9ba96a253844cbe23bee36d765efc8cbddf483c4
--- /dev/null
+++ b/ASIC/60pin/Cadence/scripts/genus.tcl
@@ -0,0 +1,71 @@
+set_db init_lib_search_path "/home/dwn1c21/SoC-Labs/phys_ip/tsmc/cln65lp/Front_End/timing_power_noise/NLDM/tpdn65lpnv2od3_200a/ $::env(PHYS_IP)/arm/tsmc/cln65lp/sc12_base_rvt/r0p0/lib/ $::env(SOCLABS_PROJECT_DIR)/memories/rf/ $::env(SOCLABS_PROJECT_DIR)/memories/bootrom/"
+set BASE_LIB sc12_cln65lp_base_rvt_ss_typical_max_1p08v_125c.lib
+set RF_LIB rf_sp_hdf_ss_1p08v_1p08v_125c.lib
+set ROM_LIB rom_via_ss_1p08v_1p08v_125c.lib
+set IO_PAD_DRIVER tpdn65lpnv2od3bc.lib
+create_library_domain domain1
+set_db [get_db library_domains domain1] .library "$BASE_LIB $RF_LIB $ROM_LIB $IO_PAD_DRIVER"
+
+read_power_intent -cpf -module nanosoc_chip_pads nanosoc.cpf
+
+source $::env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/flist/genus_flist.tcl
+elaborate nanosoc_chip_pads
+
+apply_power_intent
+check_library > lib_check.log
+
+check_cpf 
+
+commit_power_intent
+check_power_structure -license lpgxl
+
+read_sdc $::env(SOCLABS_NANOSOC_TECH_DIR)/ASIC/constraints.sdc 
+
+set_db dft_scan_style muxed_scan
+set_db design:nanosoc_chip_pads .dft_min_number_of_scan_chains 1
+
+#read_dft_abstract_model nanosoc_dft_abstract_model
+define_test_signal -name TEST  -active high -function test_mode -index 0 TEST
+define_test_signal -name SWDCK  -active high -function scan_clock -index 0 SWDCK
+define_test_signal -name NRST  -active low -function async_set_reset -index 0 NRST
+define_test_signal -name SWDIO  -active high -function shift_enable -default -index 0 SWDIO
+define_test_signal -name CLK  -active high -function test_clock -index 0 CLK
+
+define_scan_chain -name chain_ACCEL -sdi DFT_SDI_1 -sdo DFT_SDO_1 -shared_output
+define_scan_chain -name chain_TOP -sdi DFT_SDI_2 -sdo DFT_SDO_2  -shared_output
+
+
+check_dft_rules
+fix_dft_violations -test_control TEST -async_reset -add_observe_scan -scan_clock_pin SWDCK
+
+
+set_db syn_generic_effort high
+set_db syn_map_effort high
+
+syn_generic
+syn_map
+
+convert_to_scan
+
+connect_scan_chains -chains chain_ACCEL -power_domain ACCEL -incremental
+connect_scan_chains -chains chain_TOP -power_domain TOP -incremental
+
+syn_opt
+
+report_area > $::env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/reports/nanosoc_area_60pin.rep
+report_timing > $::env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/reports/nanosoc_timing_60pin.rep
+report_gates > $::env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/reports/nanosoc_gates_60pin.rep
+report_power > $::env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/reports/nanosoc_power_60pin.rep
+
+write_hdl > $::env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/netlist/nanosoc_chip_pads_60pin.vm
+write_hdl -pg > $::env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/netlist/nanosoc_chip_pads_60pin.vp
+
+report_scan_chains > $::env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/dft/nanosoc_scan_chains_60pin.rep
+report_scan_setup > $::env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/dft/nanosoc_scan_setup_60pin.rep
+report_scan_registers > $::env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/dft/nanosoc_scan_registers_60pin.rep
+write_dft_abstract_model > $::env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/dft/nanosoc_dft_abstract_model_60pin
+
+write_dft_atpg_other_vendor -mentor > $::env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/dft/nanosoc_atpg_60pin
+
+write_scandef > $::env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/netlist/nanosoc_chip_pads_60pin.def
+
diff --git a/ASIC/60pin/Cadence/scripts/io_plan.tcl b/ASIC/60pin/Cadence/scripts/io_plan.tcl
new file mode 100644
index 0000000000000000000000000000000000000000..6a13dc401e144f6c3818bd54d34777aae091957d
--- /dev/null
+++ b/ASIC/60pin/Cadence/scripts/io_plan.tcl
@@ -0,0 +1,57 @@
+#-----------------------------------------------------------------------------
+# NanoSoC IO plan for PnR in cadence Innovus
+# A joint work commissioned on behalf of SoC Labs, under Arm Academic Access license.
+#
+# Contributors
+#
+# Daniel Newbrook (d.newbrook@soton.ac.uk)
+#
+# Copyright (C) 2021-3, SoC Labs (www.soclabs.org)
+#-----------------------------------------------------------------------------
+
+
+delete_io_fillers -cell PCORNER
+delete_io_fillers -cell PFILLER20
+delete_io_fillers -cell PFILLER10
+delete_io_fillers -cell PFILLER5
+delete_io_fillers -cell PFILLER1
+delete_io_fillers -cell PFILLER05
+delete_io_fillers -cell PFILLER0005
+
+
+read_io_file nanosoc_io_plan.io
+
+add_io_fillers -cells PCORNER -prefix CORNER -side n -from -300 -to 300
+add_io_fillers -cells PCORNER -prefix CORNER -side e -from 1800 -to 3000
+add_io_fillers -cells PCORNER -prefix CORNER -side s -from 1800 -to 3000
+add_io_fillers -cells PCORNER -prefix CORNER -side w -from -300 -to 300
+
+add_io_fillers -cells PFILLER20 -prefix FILLER -side n
+add_io_fillers -cells PFILLER20 -prefix FILLER -side e
+add_io_fillers -cells PFILLER20 -prefix FILLER -side s 
+add_io_fillers -cells PFILLER20 -prefix FILLER -side w 
+
+add_io_fillers -cells PFILLER10 -prefix FILLER -side n
+add_io_fillers -cells PFILLER10 -prefix FILLER -side e
+add_io_fillers -cells PFILLER10 -prefix FILLER -side s 
+add_io_fillers -cells PFILLER10 -prefix FILLER -side w 
+
+add_io_fillers -cells PFILLER5 -prefix FILLER -side n
+add_io_fillers -cells PFILLER5 -prefix FILLER -side e
+add_io_fillers -cells PFILLER5 -prefix FILLER -side s 
+add_io_fillers -cells PFILLER5 -prefix FILLER -side w 
+
+add_io_fillers -cells PFILLER1 -prefix FILLER -side n
+add_io_fillers -cells PFILLER1 -prefix FILLER -side e
+add_io_fillers -cells PFILLER1 -prefix FILLER -side s 
+add_io_fillers -cells PFILLER1 -prefix FILLER -side w 
+
+add_io_fillers -cells PFILLER05 -prefix FILLER -side n
+add_io_fillers -cells PFILLER05 -prefix FILLER -side e
+add_io_fillers -cells PFILLER05 -prefix FILLER -side s 
+add_io_fillers -cells PFILLER05 -prefix FILLER -side w 
+
+add_io_fillers -cells PFILLER0005 -prefix FILLER -side n
+add_io_fillers -cells PFILLER0005 -prefix FILLER -side e
+add_io_fillers -cells PFILLER0005 -prefix FILLER -side s 
+add_io_fillers -cells PFILLER0005 -prefix FILLER -side w 
\ No newline at end of file
diff --git a/ASIC/60pin/Cadence/scripts/nanosoc.mmmc b/ASIC/60pin/Cadence/scripts/nanosoc.mmmc
new file mode 100644
index 0000000000000000000000000000000000000000..b8c9c0d00a814a59bdc8cd00c94513228643aa60
--- /dev/null
+++ b/ASIC/60pin/Cadence/scripts/nanosoc.mmmc
@@ -0,0 +1,84 @@
+set phys_lib /research/AAA/phys_ip_library
+
+set base_path ${phys_lib}/arm/tsmc/cln65lp/sc12_base_rvt/r0p0
+set tech_path ${phys_lib}/arm/tsmc/cln65lp/arm_tech/r2p0
+set ram_path /home/dwn1c21/SoC-Labs/accelerator-project/memories/rf_16k/
+set rom_path /home/dwn1c21/SoC-Labs/accelerator-project/memories/bootrom/
+set IO_driver_path /home/dwn1c21/SoC-Labs/phys_ip/tsmc/cln65lp/Front_End/timing_power_noise/NLDM/tpdn65lpnv2od3_200a/
+
+create_library_set -name default_libset_max\
+   -timing\
+    [list ${base_path}/lib/sc12_cln65lp_base_rvt_ss_typical_max_1p08v_125c.lib ${ram_path}/rf_16k_ss_1p08v_1p08v_125c.lib ${rom_path}/rom_via_ss_1p08v_1p08v_125c.lib ${IO_driver_path}/tpdn65lpnv2od3wc.lib] \
+   -si\
+    [list ${base_path}/celtic/sc12_cln65lp_base_rvt_ss_typical_max_1p08v_125c.cdB]
+
+create_library_set -name default_libset_min\
+   -timing\
+    [list ${base_path}/lib/sc12_cln65lp_base_rvt_ff_typical_min_1p32v_m40c.lib ${ram_path}/rf_16k_ff_1p32v_1p32v_m40c.lib ${rom_path}/rom_via_ff_1p32v_1p32v_m40c.lib ${IO_driver_path}/tpdn65lpnv2od3bc.lib] \
+   -si\
+    [list ${base_path}/celtic/sc12_cln65lp_base_rvt_ff_typical_min_1p32v_m40c.cdB]
+
+create_timing_condition -name default_mapping_tc_2\
+   -library_sets [list default_libset_min]
+create_timing_condition -name default_mapping_tc_1\
+   -library_sets [list default_libset_max]
+
+create_rc_corner -name default_rc_corner_worst\
+   -pre_route_res 1\
+   -post_route_res 1\
+   -pre_route_cap 1\
+   -post_route_cap 1\
+   -post_route_cross_cap 1\
+   -pre_route_clock_res 0\
+   -pre_route_clock_cap 0\
+   -cap_table ${tech_path}/cadence_captable/1p9m_6x2z/rcworst.captbl
+
+create_rc_corner -name default_rc_corner_best\
+   -pre_route_res 1\
+   -post_route_res 1\
+   -pre_route_cap 1\
+   -post_route_cap 1\
+   -post_route_cross_cap 1\
+   -pre_route_clock_res 0\
+   -pre_route_clock_cap 0\
+   -cap_table ${tech_path}/cadence_captable/1p9m_6x2z/rcbest.captbl
+
+create_rc_corner -name default_rc_corner_typical\
+   -pre_route_res 1\
+   -post_route_res 1\
+   -pre_route_cap 1\
+   -post_route_cap 1\
+   -post_route_cross_cap 1\
+   -pre_route_clock_res 0\
+   -pre_route_clock_cap 0\
+   -cap_table ${tech_path}/cadence_captable/1p9m_6x2z/typical.captbl
+
+
+
+create_delay_corner -name default_delay_corner_max\
+   -timing_condition {default_mapping_tc_1}\
+   -rc_corner default_rc_corner_worst
+
+create_delay_corner -name default_delay_corner_ocv\
+   -early_timing_condition {default_mapping_tc_2}\
+   -late_timing_condition {default_mapping_tc_1}\
+   -rc_corner default_rc_corner_typical
+
+create_delay_corner -name default_delay_corner_min\
+   -timing_condition default_mapping_tc_2\
+   -rc_corner default_rc_corner_best
+
+create_constraint_mode -name default_constraint_mode\
+   -sdc_files\
+    [list ../../../constraints.sdc]
+
+create_analysis_view -name default_analysis_view_setup -constraint_mode default_constraint_mode -delay_corner default_delay_corner_max
+
+create_analysis_view -name default_analysis_view_hold -constraint_mode default_constraint_mode -delay_corner default_delay_corner_min
+
+
+create_analysis_view -name typical_analysis_view_setup -constraint_mode default_constraint_mode -delay_corner default_delay_corner_ocv
+create_analysis_view -name typical_analysis_view_hold -constraint_mode default_constraint_mode -delay_corner default_delay_corner_ocv
+
+
+set_analysis_view -setup [list default_analysis_view_setup] -hold [list default_analysis_view_hold]
diff --git a/ASIC/60pin/Cadence/scripts/nanosoc_io_plan.io b/ASIC/60pin/Cadence/scripts/nanosoc_io_plan.io
new file mode 100644
index 0000000000000000000000000000000000000000..e557d0b977d684a90c8787c179eb02906a14438b
--- /dev/null
+++ b/ASIC/60pin/Cadence/scripts/nanosoc_io_plan.io
@@ -0,0 +1,82 @@
+###############################################################
+#  Generated by:      Cadence Innovus 21.11-s130_1
+#  OS:                Linux x86_64(Host ID srv03335)
+#  Generated on:      Thu Nov 16 16:18:31 2023
+#  Design:            nanosoc_chip_pads
+#  Command:           write_io_file -locations -template nanosoc_chip_pads.save.io
+###############################################################
+
+(globals
+    version = 3
+    io_order = default
+)
+(iopad
+    (top
+	(inst  name="uPAD_P1_08"		offset=153.67 )
+	(inst  name="uPAD_P1_09"		offset=271.00 place_status=placed )
+	(inst  name="uPAD_P1_10"		offset=388.33 place_status=placed )
+	(inst  name="uPAD_P1_11"		offset=505.67 place_status=placed )
+	(inst  name="uPAD_TEST_I"		offset=149.29)
+	(inst  name="uPAD_SWDCK_I"		offset=257.86 place_status=placed )
+	(inst  name="uPAD_VDD_3"		offset=366.43 place_status=placed )
+	(inst  name="uPAD_VSS_3"		offset=475.00 place_status=placed )
+	(inst  name="uPAD_VDDIO_3"		offset=583.57 place_status=placed )
+	(inst  name="uPAD_P1_00"		offset=692.14 place_status=placed )
+	(inst  name="uPAD_P1_01"		offset=800.71 place_status=placed )
+	(inst  name="uPAD_P1_12"		offset=1444.33 place_status=placed )
+	(inst  name="uPAD_P1_13"		offset=1561.67 place_status=placed )
+	(inst  name="uPAD_P1_14"		offset=1679.00 place_status=placed )
+	(inst  name="uPAD_P1_15"		offset=1796.33 place_status=placed )
+    )
+    (left
+	(inst  name="uPAD_P0_04"	offset=153.67 place_status=placed )
+	(inst  name="uPAD_P0_05"	offset=271.00 place_status=placed )
+	(inst  name="RESERVED  "	offset=388.33 place_status=placed )
+	(inst  name="RESERVED  "	offset=505.67 place_status=placed )
+	(inst  name="uPAD_P0_03"	offset=149.29 place_status=placed )
+	(inst  name="uPAD_VDDACC_0"	offset=257.86 place_status=placed )
+	(inst  name="uPAD_VSS_0"	offset=366.43 place_status=placed )
+	(inst  name="uPAD_CLK_I"	offset=475.00 place_status=placed )
+	(inst  name="uPAD_VDD_0"	offset=583.57 place_status=placed )
+	(inst  name="uPAD_VDDIO_0"	offset=692.14 place_status=placed )
+	(inst  name="uPAD_SWDIO_IO"	offset=800.71 place_status=placed )
+	(inst  name="uPAD_VSSIO_0"	offset=1444.33 place_status=placed )
+	(inst  name="RESERVED  "	offset=1561.67 place_status=placed )
+	(inst  name="uPAD_P0_06"	offset=1679.00 place_status=placed )
+	(inst  name="uPAD_P0_07"	offset=1796.33 place_status=placed )
+    )
+    (bottom
+	(inst  name="uPAD_P0_15"	offset=153.67  lace_status=placed )
+	(inst  name="uPAD_P0_14"	offset=271.00  lace_status=placed )
+	(inst  name="uPAD_P0_13"	offset=388.33  lace_status=placed )
+	(inst  name="uPAD_P0_12"	offset=505.67  lace_status=placed )
+	(inst  name="uPAD_P0_02"	offset=149.29 place_status=placed )
+	(inst  name="uPAD_VDDACC_1"	offset=257.86 place_status=placed )
+	(inst  name="uPAD_VDDIO_1"	offset=366.43 place_status=placed )
+	(inst  name="uPAD_VDD_1"	offset=475.00 place_status=placed )
+	(inst  name="uPAD_VSS_1"	offset=583.57 place_status=placed )
+	(inst  name="uPAD_P0_01"	offset=692.14 place_status=placed )
+	(inst  name="uPAD_P0_00"	offset=800.71 )
+	(inst  name="uPAD_P0_11"	offset=1444.33 place_status=placed )
+	(inst  name="uPAD_P0_10"	offset=1561.67 place_status=placed )
+	(inst  name="uPAD_P0_09"	offset=1679.00 place_status=placed )
+	(inst  name="uPAD_P0_08"	offset=1796.33 place_status=placed )
+    )
+    (right
+	(inst  name="uPAD_P1_07"	offset=153.67 place_status=placed )
+	(inst  name="uPAD_P1_06"	offset=271.00 place_status=placed )
+	(inst  name="RESERVED  "	offset=388.33 place_status=placed )
+	(inst  name="uPAD_VSSIO_1"	offset=505.67 place_status=placed )
+	(inst  name="uPAD_P1_03"	offset=149.29 place_status=placed )
+	(inst  name="uPAD_P1_02"	offset=257.86 place_status=placed )
+	(inst  name="uPAD_VDDACC_2"	offset=366.43 place_status=placed )
+	(inst  name="uPAD_VDD_2"	offset=475.00 place_status=placed )
+	(inst  name="uPAD_VSS_2"	offset=583.57 place_status=placed )
+	(inst  name="uPAD_VDDIO_2"	offset=692.14 place_status=placed )
+	(inst  name="uPAD_NRST_I"	offset=800.71 place_status=placed )
+	(inst  name="RESERVED  "	offset=1444.33 place_status=placed )
+	(inst  name="RESERVED  "	offset=1561.67 place_status=placed )
+	(inst  name="uPAD_P1_04"	offset=1679.00 place_status=placed )
+	(inst  name="uPAD_P1_05"	offset=1796.33 place_status=placed )
+    )
+)
diff --git a/ASIC/60pin/Cadence/scripts/place.tcl b/ASIC/60pin/Cadence/scripts/place.tcl
new file mode 100644
index 0000000000000000000000000000000000000000..9f25bb8c140db90cffb66fa2308fecdb43ff2be2
--- /dev/null
+++ b/ASIC/60pin/Cadence/scripts/place.tcl
@@ -0,0 +1,21 @@
+############################################ 
+# Script : Placement 
+# Date : May 24 2024 
+# Author : Srimanth Tenneti 
+############################################ 
+
+### Congestion and Timing Setting 
+set_db design_process_node 65
+set_db place_global_cong_effort auto 
+set_db place_global_timing_effort high 
+
+### Uniform Cell Distribution 
+
+set_db place_global_uniform_density true
+
+### Placement Mode Config 
+set_db place_design_floorplan_mode false 
+place_opt_design 
+
+### Delay Calculation 
+write_sdf design.sdf -ideal_clock_network 
diff --git a/ASIC/Cadence/Innovus/place_macros.tcl b/ASIC/60pin/Cadence/scripts/place_macros.tcl
similarity index 83%
rename from ASIC/Cadence/Innovus/place_macros.tcl
rename to ASIC/60pin/Cadence/scripts/place_macros.tcl
index ee92e421ba9b9c6607f8b59322e71bf453998229..6b1958d3ac8edebab4ea0ebcbb044b58d5abfd18 100644
--- a/ASIC/Cadence/Innovus/place_macros.tcl
+++ b/ASIC/60pin/Cadence/scripts/place_macros.tcl
@@ -15,11 +15,14 @@ create_relative_floorplan -ref_type object -horizontal_edge_separate {3  -30  1}
 create_relative_floorplan -ref_type object -horizontal_edge_separate {3  -30  1} -vertical_edge_separate {3  0  3} -place u_nanosoc_chip_u_system_u_ss_cpu_u_region_imem_0_u_imem_0_u_sram_u_rf_sp_hdf -ref u_nanosoc_chip_u_system_u_ss_expansion_u_region_expram_h_u_expram_h_u_sram_u_rf_sp_hdf
 create_relative_floorplan -ref_type object -orient R0 -horizontal_edge_separate {3  -30  1} -vertical_edge_separate {3  0  3} -place u_nanosoc_chip_u_system_u_ss_cpu_u_region_dmem_0_u_dmem_0_u_sram_u_rf_sp_hdf -ref u_nanosoc_chip_u_system_u_ss_cpu_u_region_imem_0_u_imem_0_u_sram_u_rf_sp_hdf
 create_relative_floorplan -ref_type core_boundary -orient R180 -horizontal_edge_separate {3  20  3} -vertical_edge_separate {2  -40  2} -place u_nanosoc_chip_u_system_u_ss_cpu_u_region_bootrom_0_u_bootrom_cpu_0_u_bootrom_u_sl_rom
-create_relative_floorplan -ref_type core_boundary -horizontal_edge_separate {1 -500 1} -vertical_edge_separate {0 50 0} -place u_nanosoc_chip_u_system_u_ss_expansion_u_region_exp_u_ss_accelerator 
-create_partition -hinst u_nanosoc_chip_u_system_u_ss_expansion_u_region_exp_u_ss_accelerator -core_spacing 0.0 0.0 0.0 0.0 -rail_width 0.0 -min_pitch_left 2 -min_pitch_right 2 -min_pitch_top 2 -min_pitch_bottom 2 -reserved_layer { 1 2 3 4 5 6 7 8 9 10} -pin_layer_top { 2 4 6 8 10} -pin_layer_left { 3 5 7 9} -pin_layer_bottom { 2 4 6 8 10} -pin_layer_right { 3 5 7 9} -place_halo 0.1 0.1 0.1 0.1 -route_halo 0.0 -route_halo_top_layer 10 -route_halo_bottom_layer 1
+
+move_obj u_nanosoc_chip_u_system_u_ss_expansion_u_region_exp_u_ss_accelerator -point {500 500}
+add_fences -hinst u_nanosoc_chip_u_system_u_ss_expansion_u_region_exp_u_ss_accelerator  -min_gap 5
+create_relative_floorplan -ref_type core_boundary -horizontal_edge_separate {1 -100 1} -vertical_edge_separate {0 250 0} -place u_nanosoc_chip_u_system_u_ss_expansion_u_region_exp_u_ss_accelerator 
+create_partition -hinst u_nanosoc_chip_u_system_u_ss_expansion_u_region_exp_u_ss_accelerator -core_spacing 2.0 2.0 2.0 2.0 -rail_width 0.0 -min_pitch_left 2 -min_pitch_right 2 -min_pitch_top 2 -min_pitch_bottom 2 -reserved_layer { 1 2 3 4 5 6 7 8 9 10} -pin_layer_top { 2 4 6 8 10} -pin_layer_left { 3 5 7 9} -pin_layer_bottom { 2 4 6 8 10} -pin_layer_right { 3 5 7 9} -place_halo 2 2 2 2 -route_halo 2.0 -route_halo_top_layer 5 -route_halo_bottom_layer 1
 
 create_place_halo -halo_deltas {5 5 5 5} -insts u_nanosoc_chip_u_system_u_ss_expansion_u_region_expram_l_u_expram_l_u_sram_u_rf_sp_hdf
 create_place_halo -halo_deltas {5 5 5 5} -insts u_nanosoc_chip_u_system_u_ss_expansion_u_region_expram_h_u_expram_h_u_sram_u_rf_sp_hdf
 create_place_halo -halo_deltas {5 5 5 5} -insts u_nanosoc_chip_u_system_u_ss_cpu_u_region_imem_0_u_imem_0_u_sram_u_rf_sp_hdf
 create_place_halo -halo_deltas {5 5 5 5} -insts u_nanosoc_chip_u_system_u_ss_cpu_u_region_dmem_0_u_dmem_0_u_sram_u_rf_sp_hdf
-create_place_halo -halo_deltas {5 5 5 5} -insts u_nanosoc_chip_u_system_u_ss_cpu_u_region_bootrom_0_u_bootrom_cpu_0_u_bootrom_u_sl_rom
\ No newline at end of file
+create_place_halo -halo_deltas {5 5 5 5} -insts u_nanosoc_chip_u_system_u_ss_cpu_u_region_bootrom_0_u_bootrom_cpu_0_u_bootrom_u_sl_rom
diff --git a/ASIC/60pin/Cadence/scripts/pnr_flow.tcl b/ASIC/60pin/Cadence/scripts/pnr_flow.tcl
new file mode 100644
index 0000000000000000000000000000000000000000..ae76199c635dfb953b5e88a0ef6d9eb86e60f58e
--- /dev/null
+++ b/ASIC/60pin/Cadence/scripts/pnr_flow.tcl
@@ -0,0 +1,76 @@
+######################################
+# Script : Place and Route Flow 
+# Date : 25th May 2023 
+# Author : Srimanth Tenneti 
+# Description : Innovus PnR Flow 
+###################################### 
+
+puts "Starting PnR Flow ..."
+
+
+### Design Import 
+source design_import.tcl  
+
+### IO Planning 
+source io_plan.tcl
+
+### Memory and accelerator placement
+source place_macros.tcl
+commit_power_intent
+check_power_domains
+
+### Power Plan 
+source power_plan.tcl 
+
+### Power Route 
+source power_route.tcl 
+
+report_timing > $::env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/reports/1pre_place_nanosoc_imp_timing.rep
+
+### Placement 
+source place.tcl 
+
+report_timing > $::env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/reports/2post_place_nanosoc_imp_timing.rep
+
+
+uniquify nanosoc_chip_pads -verbose
+### CTS 
+source clock_tree_synthesis.tcl 
+
+report_timing > $::env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/reports/3post_clock_nanosoc_imp_timing.rep
+
+### Add filler cells
+eval_legacy { addFiller -cell FILL128_A12TR WELLANTENNATIEPW2_A12TR FILLTIE8_A12TR FILLTIE64_A12TR FILLTIE4_A12TR FILLTIE32_A12TR FILLTIE2_A12TR FILLTIE16_A12TR FILLTIE128_A12TR FILLCAPTIE8_A12TR -prefix FILLER -powerDomain ACCEL -doDRC }
+eval_legacy { addFiller -cell WELLANTENNATIEPW2_A12TR FILLTIE8_A12TR FILLTIE64_A12TR FILLTIE4_A12TR FILLTIE32_A12TR FILLTIE2_A12TR FILLTIE16_A12TR FILLTIE128_A12TR FILLCAPTIE8_A12TR -prefix FILLER -powerDomain TOP -doDRC }
+
+
+### Routing 
+source route.tcl 
+
+report_timing > $::env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/reports/4post_route_nanosoc_imp_timing.rep
+
+check_antenna
+
+### Fill metal
+set_metal_fill -layer M1 -opc_active_spacing 0.090 -border_spacing -0.001
+set_metal_fill -layer M2 -opc_active_spacing 0.100 -border_spacing -0.001
+set_metal_fill -layer M3 -opc_active_spacing 0.100 -border_spacing -0.001
+set_metal_fill -layer M4 -opc_active_spacing 0.100 -border_spacing -0.001
+set_metal_fill -layer M5 -opc_active_spacing 0.100 -border_spacing -0.001
+set_metal_fill -layer M6 -opc_active_spacing 0.100 -border_spacing -0.001
+set_metal_fill -layer M7 -opc_active_spacing 0.100 -border_spacing -0.001
+set_metal_fill -layer M8 -opc_active_spacing 0.400 -border_spacing -0.001
+set_metal_fill -layer M9 -opc_active_spacing 0.400 -border_spacing -0.001
+set_metal_fill -layer AP -opc_active_spacing 2.000 -border_spacing -0.001
+add_metal_fill -layers { M1 M2 M3 M4 M5 M6 M7 M8 M9 AP } -nets { VSSIO VSS VDDACC VDDIO VDD }
+
+
+report_timing > $::env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/reports/nanosoc_imp_timing.rep
+report_area > $::env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/reports/nanosoc_imp_area.rep
+report_power > $::env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/reports/nanosoc_imp_power.rep
+
+gui_show 
+
+
+
+
diff --git a/ASIC/60pin/Cadence/scripts/power_plan.tcl b/ASIC/60pin/Cadence/scripts/power_plan.tcl
new file mode 100644
index 0000000000000000000000000000000000000000..5895c391175d676798896d0d738044b37a2073e0
--- /dev/null
+++ b/ASIC/60pin/Cadence/scripts/power_plan.tcl
@@ -0,0 +1,86 @@
+#########################################
+# Script : Power Planning 
+# Tool : Cadence Innovus 
+# Date : May 22, 2023
+# Author : Srimanth Tenneti
+######################################### 
+
+### Connecting Global Nets
+connect_global_net VDD -type pg_pin -pin_base_name VDD -inst_base_name * 
+connect_global_net VDDIO -type pg_pin -pin_base_name VDDIO -inst_base_name * 
+connect_global_net VSS -type pg_pin -pin_base_name VSS -inst_base_name * 
+connect_global_net VSSIO -type pg_pin -pin_base_name VSSIO -inst_base_name * 
+connect_global_net VDDACC -type pg_pin -pin_base_name VDD -inst_base_name {} -hinst u_nanosoc_chip_u_system_u_ss_expansion_u_region_exp_u_ss_accelerator -override
+### Top and Bottom Metal Declartions
+set_db add_rings_stacked_via_top_layer M8
+set_db add_rings_stacked_via_bottom_layer M1 
+
+### Adding Rings 
+add_rings -nets {VDD VDDACC VSS} -type core_rings -follow core -layer {top M9 bottom M9 left M8 right M8} -width {top 8 bottom 8 left 8 right 8} -spacing {top 2 bottom 2 left 2 right 2} -offset {top 3 bottom 3 left 3 right 3} -center 0 -threshold 0 -jog_distance 0 -snap_wire_center_to_grid none
+
+### Adding Stripes 
+set_db add_stripes_ignore_block_check true
+set_db add_stripes_break_at none
+set_db add_stripes_route_over_rows_only false
+set_db add_stripes_rows_without_stripes_only false
+set_db add_stripes_extend_to_closest_target none
+set_db add_stripes_stop_at_last_wire_for_area false
+set_db add_stripes_partial_set_through_domain true
+set_db add_stripes_ignore_non_default_domains false
+set_db add_stripes_trim_antenna_back_to_shape none
+set_db add_stripes_spacing_type edge_to_edge
+set_db add_stripes_spacing_from_block 0
+set_db add_stripes_stripe_min_length stripe_width
+set_db add_stripes_stacked_via_top_layer AP
+set_db add_stripes_stacked_via_bottom_layer M1
+set_db add_stripes_via_using_exact_crossover_size false
+set_db add_stripes_split_vias false
+set_db add_stripes_orthogonal_only true
+set_db add_stripes_allow_jog { padcore_ring  block_ring }
+set_db add_stripes_skip_via_on_pin {  standardcell }
+set_db add_stripes_skip_via_on_wire_shape {  noshape   }
+add_stripes -nets {VDD VDDACC VSS} -layer M6 -direction vertical -width 1.8 -spacing 0.8 -set_to_set_distance 60 -extend_to all_domains -start_from left -start_offset 50 -stop_offset 0 -switch_layer_over_obs false -max_same_layer_jog_length 2 -pad_core_ring_top_layer_limit AP -pad_core_ring_bottom_layer_limit M1 -block_ring_top_layer_limit AP -block_ring_bottom_layer_limit M1 -use_wire_group 0 -snap_wire_center_to_grid none
+
+deselect_obj -all
+
+# Connect Accelerator region
+select_obj u_nanosoc_chip_u_system_u_ss_expansion_u_region_exp_u_ss_accelerator
+set_db add_stripes_ignore_block_check true
+set_db add_stripes_break_at none
+set_db add_stripes_route_over_rows_only false
+set_db add_stripes_rows_without_stripes_only false
+set_db add_stripes_extend_to_closest_target stripe
+set_db add_stripes_stop_at_last_wire_for_area false
+set_db add_stripes_partial_set_through_domain true
+set_db add_stripes_ignore_non_default_domains false
+set_db add_stripes_trim_antenna_back_to_shape none
+set_db add_stripes_spacing_type edge_to_edge
+set_db add_stripes_spacing_from_block 0
+set_db add_stripes_stripe_min_length stripe_width
+set_db add_stripes_stacked_via_top_layer AP
+set_db add_stripes_stacked_via_bottom_layer M4
+set_db add_stripes_via_using_exact_crossover_size false
+set_db add_stripes_split_vias false
+set_db add_stripes_orthogonal_only true
+set_db add_stripes_allow_jog { padcore_ring  block_ring }
+set_db add_stripes_skip_via_on_pin {  standardcell }
+set_db add_stripes_skip_via_on_wire_shape {  noshape   }
+add_stripes -nets {VDDACC VSS} -layer M9 -direction horizontal -width 1 -spacing 0.5 -set_to_set_distance 50 -over_power_domain 1 -start_from bottom -start_offset 15 -stop_offset 0 -switch_layer_over_obs false -max_same_layer_jog_length 2 -pad_core_ring_top_layer_limit AP -pad_core_ring_bottom_layer_limit M1 -block_ring_top_layer_limit AP -block_ring_bottom_layer_limit M1 -use_wire_group 0 -snap_wire_center_to_grid none
+
+deselect_obj -all
+
+# connect Macros
+select_obj [ list u_nanosoc_chip_u_system_u_ss_cpu_u_region_dmem_0_u_dmem_0_u_sram_u_rf_sp_hdf u_nanosoc_chip_u_system_u_ss_cpu_u_region_imem_0_u_imem_0_u_sram_u_rf_sp_hdf u_nanosoc_chip_u_system_u_ss_expansion_u_region_expram_h_u_expram_h_u_sram_u_rf_sp_hdf u_nanosoc_chip_u_system_u_ss_expansion_u_region_expram_l_u_expram_l_u_sram_u_rf_sp_hdf u_nanosoc_chip_u_system_u_ss_cpu_u_region_bootrom_0_u_bootrom_cpu_0_u_bootrom_u_sl_rom]
+set_db add_stripes_ignore_block_check false
+set_db add_stripes_break_at none
+set_db add_stripes_route_over_rows_only false
+set_db add_stripes_rows_without_stripes_only false
+set_db add_stripes_extend_to_closest_target stripe
+add_stripes -nets {VDD VSS} -layer M5 -direction horizontal -width 1 -spacing 0.5 -set_to_set_distance 15 -over_power_domain 1 -start_from bottom -start_offset 8 -stop_offset 0 -switch_layer_over_obs false -merge_stripes_value 500 -max_same_layer_jog_length 2 -pad_core_ring_top_layer_limit AP -pad_core_ring_bottom_layer_limit M1 -block_ring_top_layer_limit AP -block_ring_bottom_layer_limit M1 -use_wire_group 0 -snap_wire_center_to_grid none
+
+deselect_obj -all
+
+# Add END CAPS
+add_endcaps -start_row_cap ENDCAPTIE2_A12TR -end_row_cap ENDCAPTIE2_A12TR -prefix ENDCAP
+add_endcaps -power_domain ACCEL -start_row_cap ENDCAPTIE2_A12TR -end_row_cap ENDCAPTIE2_A12TR -prefix ENDCAP
+
diff --git a/ASIC/60pin/Cadence/scripts/power_route.tcl b/ASIC/60pin/Cadence/scripts/power_route.tcl
new file mode 100644
index 0000000000000000000000000000000000000000..bf05e721f3b978bfc85e3b7aa790c38c7ccce5a8
--- /dev/null
+++ b/ASIC/60pin/Cadence/scripts/power_route.tcl
@@ -0,0 +1,12 @@
+##################################
+# Script : Special Route Script 
+# Date : May 24, 2023 
+# Description : Power Routing 
+# Author : Srimanth Tenneti 
+##################################
+route_special -connect {pad_pin pad_ring} -layer_change_range { M1(1) AP(10) } -block_pin_target nearest_target -pad_pin_port_connect {all_port all_geom} -pad_pin_target nearest_target -allow_jogging 1 -crossover_via_layer_range { M1(1) AP(10) } -nets { VDD VSS VDDACC } -allow_layer_change 1 -pad_pin_width 6 -target_via_layer_range { M1(1) AP(10) }
+
+route_special -connect {block_pin core_pin floating_stripe} -layer_change_range { M1(1) AP(10) } -block_pin_target nearest_target -pad_pin_port_connect {all_port one_geom} -pad_pin_target nearest_target -core_pin_target first_after_row_end -floating_stripe_target {block_ring pad_ring ring stripe ring_pin block_pin followpin} -allow_jogging 1 -power_domains { ACCEL } -crossover_via_layer_range { M1(1) AP(10) } -nets { VDDACC VSS } -allow_layer_change 1 -block_pin use_lef -target_via_layer_range { M1(1) AP(10) }
+route_special -connect {block_pin core_pin floating_stripe} -layer_change_range { M1(1) AP(10) } -block_pin_target nearest_target -pad_pin_port_connect {all_port one_geom} -pad_pin_target nearest_target -core_pin_target first_after_row_end -floating_stripe_target {block_ring pad_ring ring stripe ring_pin block_pin followpin} -allow_jogging 1 -power_domains { TOP } -crossover_via_layer_range { M1(1) AP(10) } -nets { VDD VSS } -allow_layer_change 1 -block_pin use_lef -target_via_layer_range { M1(1) AP(10) }
+
+#route_special  -nets {VDD VSS} -connect core_pin  -block_pin_target nearest_target -core_pin_target first_after_row_end  -allow_jogging 1 -allow_layer_change 1 -layer_change_range { M1(1) M8(8) } -crossover_via_layer_range { M1(1) M8(8) } -target_via_layer_range { M1(1) M8(8) }
diff --git a/ASIC/60pin/Cadence/scripts/route.tcl b/ASIC/60pin/Cadence/scripts/route.tcl
new file mode 100644
index 0000000000000000000000000000000000000000..b12b0975739e80b149b89b66e2ddee6a57df17b5
--- /dev/null
+++ b/ASIC/60pin/Cadence/scripts/route.tcl
@@ -0,0 +1,18 @@
+
+### Clock Net Spacing
+set_route_attributes -nets clk -preferred_extra_space_tracks 2 
+
+### Multi Cut Via Effort 
+set_db route_design_detail_use_multi_cut_via_effort medium
+
+### Timing Driven Route
+set_db route_design_with_timing_driven 1 
+
+### SI Driven Route 
+set_db route_design_with_si_driven 1 
+
+### Route Design 
+route_design -global_detail
+
+### Timing Analysis Type 
+set_db timing_analysis_type ocv
diff --git a/ASIC/60pin/Synopsys/scripts/fm_shell.tcl b/ASIC/60pin/Synopsys/scripts/fm_shell.tcl
new file mode 100644
index 0000000000000000000000000000000000000000..87b374118661e041b6400a887e943cee8c4b3b00
--- /dev/null
+++ b/ASIC/60pin/Synopsys/scripts/fm_shell.tcl
@@ -0,0 +1,28 @@
+
+set_mismatch_message_filter -warn FMR_ELAB-147
+set_svf -append $env(SOCLABS_PROJECT_DIR)/nanosoc_tech/synthesis/default.svf
+set IO_FRONTEND_DIR /home/dwn1c21/SoC-Labs/phys_ip/tsmc/cln65lp/Front_End/timing_power_noise/NLDM/tpdn65lpnv2od3_200a
+
+source $env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/flist/formality_flist.tcl
+read_db -r $env(SOCLABS_PROJECT_DIR)/memories/rf/rf_sp_hdf_ss_1p08v_1p08v_125c.db
+read_db -r $env(SOCLABS_PROJECT_DIR)/memories/bootrom/rom_via_ss_1p08v_1p08v_125c.db
+read_db -r $IO_FRONTEND_DIR/tpdn65lpnv2od3wc.db
+set_top nanosoc_chip_pads
+
+# Read db files
+read_db -i $env(PHYS_IP)/arm/tsmc/cln65lp/sc12_base_rvt/r0p0/db/sc12_cln65lp_base_rvt_ss_typical_max_1p08v_125c.db
+read_db -i $env(SOCLABS_PROJECT_DIR)/memories/rf/rf_sp_hdf_ss_1p08v_1p08v_125c.db
+read_db -i $env(SOCLABS_PROJECT_DIR)/memories/bootrom/rom_via_ss_1p08v_1p08v_125c.db
+read_db -i $IO_FRONTEND_DIR/tpdn65lpnv2od3wc.db
+# Read Gate netlist
+
+read_verilog -i $env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/netlist/nanosoc_chip_pads.vm
+
+set_top nanosoc_chip_pads
+
+match
+verify
+
+analyze_points -failing
+
+save_session nanosoc_chip_pads_formal_equivalence
\ No newline at end of file
diff --git a/ASIC/60pin/Synopsys/scripts/place_memories.tcl b/ASIC/60pin/Synopsys/scripts/place_memories.tcl
new file mode 100644
index 0000000000000000000000000000000000000000..945dea4948d4d6a44e577323a1909c0629a8e6c6
--- /dev/null
+++ b/ASIC/60pin/Synopsys/scripts/place_memories.tcl
@@ -0,0 +1,16 @@
+set_macro_relative_location -target_object [get_cell {u_nanosoc_chip/u_system/u_ss_cpu/u_region_imem_0/u_imem_0/u_sram/u_rf_sp_hdf}] -target_orientation R0 -target_corner tr -anchor_corner tr -offset {-0.1 -0.47} -offset_type scalable
+set_macro_relative_location -target_object [get_cell {u_nanosoc_chip/u_system/u_ss_cpu/u_region_dmem_0/u_dmem_0/u_sram/u_rf_sp_hdf}] -target_orientation R0 -target_corner tr -anchor_corner tr -offset {-0.1 -0.67} -offset_type scalable
+set_macro_relative_location -target_object [get_cell {u_nanosoc_chip/u_system/u_ss_expansion/u_region_expram_l/u_expram_l/u_sram/u_rf_sp_hdf}] -target_orientation R0 -target_corner tr -anchor_corner tr -offset {-0.1 -0.05} -offset_type scalable
+set_macro_relative_location -target_object [get_cell {u_nanosoc_chip/u_system/u_ss_expansion/u_region_expram_h/u_expram_h/u_sram/u_rf_sp_hdf}] -target_orientation R0 -target_corner tr -anchor_corner tr -offset {-0.1 -0.27} -offset_type scalable
+set_macro_relative_location -target_object [get_cell {u_nanosoc_chip/u_system/u_ss_cpu/u_region_bootrom_0/u_bootrom_cpu_0/u_bootrom/u_sl_rom}] -target_orientation R180 -target_corner br -anchor_corner br -offset {-0.15 0.1} -offset_type scalable
+create_macro_relative_location_placement
+
+set_attribute -objects [get_cells u_nanosoc_chip/u_system/u_ss_cpu/u_region_dmem_0/u_dmem_0/u_sram/u_rf_sp_hdf] -name physical_status -value fixed
+set_attribute -objects [get_cells u_nanosoc_chip/u_system/u_ss_cpu/u_region_imem_0/u_imem_0/u_sram/u_rf_sp_hdf] -name physical_status -value fixed
+set_attribute -objects [get_cells u_nanosoc_chip/u_system/u_ss_expansion/u_region_expram_l/u_expram_l/u_sram/u_rf_sp_hdf] -name physical_status -value fixed
+set_attribute -objects [get_cells u_nanosoc_chip/u_system/u_ss_expansion/u_region_expram_h/u_expram_h/u_sram/u_rf_sp_hdf] -name physical_status -value fixed
+set_attribute -objects [get_cells u_nanosoc_chip/u_system/u_ss_cpu/u_region_bootrom_0/u_bootrom_cpu_0/u_bootrom/u_sl_rom] -name physical_status -value fixed
+
+create_keepout_margin -type hard -outer {5 5 5 5} [get_attribute [get_cells u_nanosoc_chip/u_system/u_ss_cpu/u_region_dmem_0/u_dmem_0/u_sram/u_rf_sp_hdf] ref_block];create_keepout_margin -type hard_macro -outer {5 5 5 5} [get_attribute [get_cells u_nanosoc_chip/u_system/u_ss_cpu/u_region_dmem_0/u_dmem_0/u_sram/u_rf_sp_hdf] ref_block];create_keepout_margin -type soft -outer {8 8 8 8} [get_attribute [get_cells u_nanosoc_chip/u_system/u_ss_cpu/u_region_dmem_0/u_dmem_0/u_sram/u_rf_sp_hdf] ref_block];
+create_keepout_margin -type hard -outer {5 5 5 5} [get_attribute [get_cells u_nanosoc_chip/u_system/u_ss_cpu/u_region_bootrom_0/u_bootrom_cpu_0/u_bootrom/u_sl_rom] ref_block];create_keepout_margin -type hard_macro -outer {5 5 5 5} [get_attribute [get_cells u_nanosoc_chip/u_system/u_ss_cpu/u_region_bootrom_0/u_bootrom_cpu_0/u_bootrom/u_sl_rom] ref_block];create_keepout_margin -type soft -outer {8 8 8 8} [get_attribute [get_cells u_nanosoc_chip/u_system/u_ss_cpu/u_region_bootrom_0/u_bootrom_cpu_0/u_bootrom/u_sl_rom] ref_block];
+
diff --git a/ASIC/60pin/Synopsys/scripts/place_pins.tcl b/ASIC/60pin/Synopsys/scripts/place_pins.tcl
new file mode 100644
index 0000000000000000000000000000000000000000..c0f262384a37661c2e11fc243eb90c23f8da9e81
--- /dev/null
+++ b/ASIC/60pin/Synopsys/scripts/place_pins.tcl
@@ -0,0 +1,6 @@
+set_individual_pin_constraints -ports {P0[15] P0[14] P0[13] P0[12] P0[11] P0[10] P0[9] P0[8] P0[7] P0[6] P0[5] P0[4] P0[3] P0[2] P0[1] P0[0]} -sides 1
+set_individual_pin_constraints -ports {P1[15] P1[14] P1[13] P1[12] P1[11] P1[10] P1[9] P1[8] P1[7] P1[6] P1[5] P1[4] P1[3] P1[2] P1[1] P1[0]} -sides 3
+set_individual_pin_constraints -ports {CLK TEST VDD VDDIO VDDACC} -sides 2
+set_individual_pin_constraints -ports {NRST VSS VSSIO SWDIO SWDCK} -sides 4
+
+place_pins -self
\ No newline at end of file
diff --git a/ASIC/60pin/Synopsys/scripts/pnr.tcl b/ASIC/60pin/Synopsys/scripts/pnr.tcl
new file mode 100644
index 0000000000000000000000000000000000000000..9fdf34e618c2ad7f4241833932ac0a105fe334da
--- /dev/null
+++ b/ASIC/60pin/Synopsys/scripts/pnr.tcl
@@ -0,0 +1,153 @@
+#//-----------------------------------------------------------------------------
+#// PnR Flow script for Synopsys ICC2
+#// A joint work commissioned on behalf of SoC Labs, under Arm Academic Access license.
+#//
+#// Contributorss
+#//
+#// Daniel Newbrook (d.newbrook@soton.ac.uk)
+#//
+#// Copyright � 2021-3, SoC Labs (www.soclabs.org)
+#//-----------------------------------------------------------------------------
+
+
+set design_name nanosoc_chip_pads
+
+# Edit these for your environment
+set PHYS_IP_DIR /research/AAA/phys_ip_library
+set MEM_DIR /home/dwn1c21/SoC-Labs/accelerator-project/memories
+set IO_BACKEND_DIR /home/dwn1c21/SoC-Labs/phys_ip/tsmc/cln65lp/Backend/lef
+set IO_FRONTEND_DIR /home/dwn1c21/SoC-Labs/phys_ip/tsmc/cln65lp/Front_End/timing_power_noise/NLDM/tpdn65lpnv2od3_200a
+
+set_app_var link_library  [list $PHYS_IP_DIR/arm/tsmc/cln65lp/sc12_base_rvt/r0p0/db/sc12_cln65lp_base_rvt_ss_typical_max_1p08v_125c.db $MEM_DIR/bootrom/rom_via_ss_1p08v_1p08v_125c.db $MEM_DIR/rf/rf_sp_hdf_ss_1p08v_1p08v_125c.db $IO_FRONTEND_DIR/tpdn65lpnv2od3wc.db]
+create_lib tsmc65lp -technology $PHYS_IP_DIR/arm/tsmc/cln65lp/arm_tech/r2p0/milkyway/1p9m_6x2z/sc12_tech.tf -ref_libs [list $PHYS_IP_DIR/arm/tsmc/cln65lp/sc12_base_rvt/r0p0/lef/sc12_cln65lp_base_rvt.lef $MEM_DIR/rf/rf_sp_hdf.lef $MEM_DIR/bootrom/rom_via.lef $IO_BACKEND_DIR/tpbn65v_9lm.lef $IO_BACKEND_DIR/tpdn65lpnv2od3_9lm.lef]
+
+read_parasitic_tech -name typical -tlup $PHYS_IP_DIR/arm/tsmc/cln65lp/arm_tech/r2p0/synopsys_tluplus/1p9m_6x2z/typical.tluplus -layermap $PHYS_IP_DIR/arm/tsmc/cln65lp/arm_tech/r2p0/synopsys_tluplus/1p9m_6x2z/tluplus.map
+read_parasitic_tech -name rcbest -tlup $PHYS_IP_DIR/arm/tsmc/cln65lp/arm_tech/r2p0/synopsys_tluplus/1p9m_6x2z/rcbest.tluplus -layermap $PHYS_IP_DIR/arm/tsmc/cln65lp/arm_tech/r2p0/synopsys_tluplus/1p9m_6x2z/tluplus.map
+read_parasitic_tech -name rcworst -tlup $PHYS_IP_DIR/arm/tsmc/cln65lp/arm_tech/r2p0/synopsys_tluplus/1p9m_6x2z/rcworst.tluplus -layermap $PHYS_IP_DIR/arm/tsmc/cln65lp/arm_tech/r2p0/synopsys_tluplus/1p9m_6x2z/tluplus.map
+
+
+read_verilog -library tsmc65lp -design nanosoc_chip_pads -top nanosoc_chip_pads $env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/netlist/Synopsys/nanosoc_chip_pads.vp
+read_def $env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/netlist/Synopsys/nanosoc_chip_pads.def
+link_block
+
+create_cell {PAD_CORNER_NE PAD_CORNER_SE PAD_CORNER_SW PAD_CORNER_NW} PCORNER
+
+initialize_floorplan -side_length {1500 1500} -core_offset {150}
+create_io_ring -name main_io
+explore_logic_hierarchy -organize
+
+# Place IO pins
+source place_pins.tcl
+
+# Power domains TOP ACCEL and MEM
+create_power_domain TOP 
+create_power_domain ACCEL  -elements {u_nanosoc_chip/u_system/u_ss_expansion/u_region_exp/u_ss_accelerator}
+#VDD
+create_supply_port VDD
+create_supply_net VDD -domain TOP
+connect_supply_net VDD -ports VDD
+
+#VSS
+create_supply_port VSS 
+create_supply_net VSS -domain TOP
+create_supply_net VSS -domain ACCEL -reuse
+connect_supply_net VSS -ports VSS
+
+#VDDACC
+create_supply_port VDDACC 
+create_supply_net VDDACC -domain ACCEL
+connect_supply_net VDDACC -ports VDDACC
+
+
+#IO Supplies
+create_supply_port VDDIO -domain TOP
+connect_supply_net VDDIO -ports VDDIO
+
+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
+# Create voltage and power region for accelerator
+create_voltage_area -power_domains ACCEL -power VDDACC -ground VSS -nwell VDDACC -pwell VSS -region {{{150 1050} {1100 1650}}} -name VA_ACCEL -cells [get_cells -physical_context -hierarchical \
+-regexp u_nanosoc_chip/u_system/u_ss_expansion/u_region_exp/u_ss_accelerator/.*]
+create_pg_region {pg_ACCEL} -voltage_area VA_ACCEL -expand {0 10}
+
+create_pg_region {pg_TOP} -voltage_area DEFAULT_VA 
+
+
+set_parasitic_parameters -early_spec rcbest -early_temperature -40 -late_spec rcworst -late_temperature 125
+current_corner default
+set_operating_conditions -max_library sc12_cln65lp_base_rvt_ss_typical_max_1p08v_125c -max ss_typical_max_1p08v_125c -min_library sc12_cln65lp_base_rvt_ss_typical_max_1p08v_125c -min ss_typical_max_1p08v_125c
+current_corner default
+set_parasitic_parameters -early_spec rcbest -early_temperature -40 -late_spec rcworst -late_temperature 125
+current_corner default
+set_operating_conditions -max_library sc12_cln65lp_base_rvt_ss_typical_max_1p08v_125c -max ss_typical_max_1p08v_125c -min_library sc12_cln65lp_base_rvt_ss_typical_max_1p08v_125c -min ss_typical_max_1p08v_125c
+current_mode default
+set_voltage 1.08 -corner [current_corner] -object_list [get_supply_nets VDD]
+set_voltage 1.08 -corner [current_corner] -object_list [get_supply_nets VDDACC]
+set_voltage 3.00 -corner [current_corner] -object_list [get_supply_nets VDDIO]
+set_voltage 0.00 -corner [current_corner] -object_list [get_supply_nets VSS]
+
+add_port_state VSS -state {on 0.0}
+add_port_state VDD -state {on 1.08}
+add_port_state VDDACC -state {on 1.08}
+add_port_state VDDIO -state {on 3.0}
+create_pst ao_pst -supplies {VSS VDD VDDACC VDDIO}
+add_pst_state ao -pst ao_pst -state {on on on on}
+
+commit_upf
+
+set_app_options -list {opt.timing.effort {medium}}
+set_app_options -list {clock_opt.place.effort {high}}
+set_app_options -list {place_opt.flow.clock_aware_placement {true}}
+set_app_options -list {place_opt.final_place.effort {high}}
+
+read_sdc $env(SOCLABS_PROJECT_DIR)/nanosoc_tech/ASIC/constraints.sdc
+update_timing
+
+
+
+change_selection [explore_logic_hierarchy -create_module_boundary]
+explore_logic_hierarchy -place
+
+#Place and fix memories with boundary
+source place_memories.tcl
+
+change_selection [explore_logic_hierarchy -create_module_boundary]
+explore_logic_hierarchy -place
+
+#Create power ring and straps
+source power_plan.tcl
+
+#Start Placement
+create_placement 
+legalize_placement -cells [get_cells *]
+
+save_lib -all
+
+report_timing > $::env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/reports/1pre_opt_placement_timing.rep
+check_mv_design > check_mv_design.log
+
+report_utilization -of_objects [get_voltage_areas {DEFAULT_VA}] > check_util_default_va.log
+report_utilization -of_objects [get_voltage_areas {VA_ACCEL}] > check_util_va_accel.log
+
+
+place_opt
+save_lib -all
+
+update_timing -full
+report_timing > $::env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/reports/2post_opt_placement_timing.rep
+
+check_clock_trees -clocks clk
+synthesize_clock_trees -clocks clk
+clock_opt
+update_timing -full
+report_timing > $::env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/reports/3post_clock_opt_placement_timing.rep
+save_lib -all
+
+#Start Routing
+route_auto
+update_timing -full
+
+report_timing > $::env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/reports/final_timing.rep
+report_power > $::env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/reports/final_power.rep
+save_lib -all
+exit
diff --git a/ASIC/60pin/Synopsys/scripts/power_plan.tcl b/ASIC/60pin/Synopsys/scripts/power_plan.tcl
new file mode 100644
index 0000000000000000000000000000000000000000..f6a77a6e4dc3298d6ef81a9e5f8ab08466b54211
--- /dev/null
+++ b/ASIC/60pin/Synopsys/scripts/power_plan.tcl
@@ -0,0 +1,38 @@
+connect_pg_net -automatic
+
+# Create Outer core ring
+create_pg_ring_pattern ring_pattern -horizontal_layer M9 -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 VDDIO VDDACC VSS}}{offset: {3 3}}} -core
+
+# Create vertical straps in Nanosoc region
+create_pg_mesh_pattern strap_pattern -layers {{{vertical_layer: M6} {width: 1} {pitch: 50} {spacing: interleaving} {trim: false}}}
+set_pg_strategy M6_straps -voltage_areas VA_TOP -pattern {{name: strap_pattern}{nets: VDD VSS}} -extension {{{stop : outermost_ring}}} -blockage {{{pg_regions : {pg_ACCEL}}}} 
+
+# Create std cell rails in Nanosoc Region
+create_pg_std_cell_conn_pattern rail_pattern -layers M5 
+set_pg_strategy M5_rails -voltage_areas VA_TOP -pattern {{name: rail_pattern}{nets: VDD VSS}} -extension {{{stop : outermost_ring}}} -blockage {{{pg_regions : {pg_ACCEL}}}} 
+
+# Create rails for macros
+create_pg_macro_conn_pattern sram_pg_mesh -pin_conn_type long_pin -nets {VDD VSS} -direction horizontal -layers M5 -width 0.64 -spacing interleaving -pitch 3 -pin_layers {M4} -via_rule {{intersection : all}}
+set_pg_strategy sram_pg_mesh -macros {u_nanosoc_chip/u_system/u_ss_expansion/u_region_expram_l/u_expram_l/u_sram/u_rf_sp_hdf u_nanosoc_chip/u_system/u_ss_cpu/u_region_bootrom_0/u_bootrom_cpu_0/u_bootrom/u_sl_rom  \
+u_nanosoc_chip/u_system/u_ss_cpu/u_region_dmem_0/u_dmem_0/u_sram/u_rf_sp_hdf u_nanosoc_chip/u_system/u_ss_cpu/u_region_imem_0/u_imem_0/u_sram/u_rf_sp_hdf  \
+u_nanosoc_chip/u_system/u_ss_expansion/u_region_expram_h/u_expram_h/u_sram/u_rf_sp_hdf} -pattern {{name : sram_pg_mesh}{nets : {VDD VSS}}}
+
+
+# Create ring for Accelerator Region
+# create_pg_ring_pattern acc_ring_pattern -horizontal_layer M9 -horizontal_width {3} -horizontal_spacing {1} -vertical_layer M8 -vertical_width {3} -vertical_spacing {1}
+# set_pg_strategy acc_ring -voltage_areas VA_ACCEL -pattern {{name:acc_ring_pattern} {nets: {VDDACC VSS}}}
+
+# Create std cell rails in Accelerator region
+create_pg_std_cell_conn_pattern acc_rail_pattern -layers M5
+set_pg_strategy acc_rails -voltage_areas VA_ACCEL -pattern {{name:acc_rail_pattern}{nets:{VDDACC VSS}}} -extension {{{stop: first_target}}}
+
+# Create straps for Accelerator region
+create_pg_mesh_pattern acc_strap_pattern -layers {{vertical_layer : M8} {width : 1} {spacing : interleaving} {pitch : 50} {trim : false}}
+set_pg_strategy M8_straps_acc -voltage_areas VA_ACCEL -pattern {{name: acc_strap_pattern}{nets: VDDACC VSS}} -extension {{{stop : outermost_ring}}}
+
+create_pg_mesh_pattern acc_mesh_pattern -layers {{horizontal_layer : M9} {width : 1} {spacing : interleaving} {pitch : 50} {trim : false}}
+set_pg_strategy M9_mesh_acc -voltage_areas VA_ACCEL -pattern {{name: acc_mesh_pattern}{nets: VDDACC VSS}} -extension {{{stop : outermost_ring}}}
+
+# Compile all power strategies
+compile_pg -strategies {core_ring M6_straps M5_rails acc_rails M8_straps_acc M9_mesh_acc sram_pg_mesh}
\ No newline at end of file
diff --git a/ASIC/60pin/Synopsys/scripts/synopsys_lib_conversion.tcl b/ASIC/60pin/Synopsys/scripts/synopsys_lib_conversion.tcl
new file mode 100644
index 0000000000000000000000000000000000000000..6cc53b16baabb3dfbe14e567433cad2985c23c81
--- /dev/null
+++ b/ASIC/60pin/Synopsys/scripts/synopsys_lib_conversion.tcl
@@ -0,0 +1,35 @@
+set RF_PATH $env(SOCLABS_PROJECT_DIR)/memories/rf
+
+read_lib $RF_PATH/rf_sp_hdf_ss_1p08v_1p08v_125c.lib
+write_lib RF_LIB_ss_1p08v_1p08v_125c -output $RF_PATH/rf_sp_hdf_ss_1p08v_1p08v_125c.db
+
+read_lib $RF_PATH/rf_sp_hdf_ss_1p08v_1p08v_m40c.lib
+write_lib RF_LIB_ss_1p08v_1p08v_m40c -output $RF_PATH/rf_sp_hdf_ss_1p08v_1p08v_m40c.db
+
+read_lib $RF_PATH/rf_sp_hdf_ff_1p32v_1p32v_125c.lib
+write_lib RF_LIB_ff_1p32v_1p32v_125c -output $RF_PATH/rf_sp_hdf_ff_1p32v_1p32v_125c.db
+
+read_lib $RF_PATH/rf_sp_hdf_ff_1p32v_1p32v_m40c.lib
+write_lib RF_LIB_ff_1p32v_1p32v_m40c -output $RF_PATH/rf_sp_hdf_ff_1p32v_1p32v_m40c.db
+
+read_lib $RF_PATH/rf_sp_hdf_tt_1p20v_1p20v_25c.lib
+write_lib RF_LIB_tt_1p20v_1p20v_25c -output $RF_PATH/rf_sp_hdf_tt_1p20v_1p20v_25c.db
+
+set ROM_PATH $env(SOCLABS_PROJECT_DIR)/memories/bootrom
+
+read_lib $ROM_PATH/rom_via_ss_1p08v_1p08v_125c.lib
+write_lib USERLIB_ss_1p08v_1p08v_125c -output $ROM_PATH/rom_via_ss_1p08v_1p08v_125c.db
+
+read_lib $ROM_PATH/rom_via_ss_1p08v_1p08v_m40c.lib
+write_lib USERLIB_ss_1p08v_1p08v_m40c -output $ROM_PATH/rom_via_ss_1p08v_1p08v_m40c.db
+
+read_lib $ROM_PATH/rom_via_ff_1p32v_1p32v_125c.lib
+write_lib USERLIB_ff_1p32v_1p32v_125c -output $ROM_PATH/rom_via_ff_1p32v_1p32v_125c.db
+
+read_lib $ROM_PATH/rom_via_ff_1p32v_1p32v_m40c.lib
+write_lib USERLIB_ff_1p32v_1p32v_m40c -output $ROM_PATH/rom_via_ff_1p32v_1p32v_m40c.db
+
+read_lib $ROM_PATH/rom_via_tt_1p20v_1p20v_25c.lib
+write_lib USERLIB_tt_1p20v_1p20v_25c -output $ROM_PATH/rom_via_tt_1p20v_1p20v_25c.db
+
+exit
\ No newline at end of file
diff --git a/ASIC/60pin/Synopsys/scripts/synthesis.tcl b/ASIC/60pin/Synopsys/scripts/synthesis.tcl
new file mode 100644
index 0000000000000000000000000000000000000000..0cc586503340e59a0bc690c71a136c776098f60f
--- /dev/null
+++ b/ASIC/60pin/Synopsys/scripts/synthesis.tcl
@@ -0,0 +1,83 @@
+#-----------------------------------------------------------------------------
+# NanoSoC Synopsys synthesis tcl file to be run with dc_shell
+# A joint work commissioned on behalf of SoC Labs, under Arm Academic Access license.
+#
+# Contributors
+#
+# Daniel Newbrook (d.newbrook@soton.ac.uk)
+#
+# Copyright (C) 2021-3, SoC Labs (www.soclabs.org)
+#-----------------------------------------------------------------------------
+
+set rtlPath $env(SOCLABS_PROJECT_DIR)
+set report_path $env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/reports/
+set top_module nanosoc_chip_pads
+set io_path /home/dwn1c21/SoC-Labs/phys_ip/tsmc/cln65lp/Front_End/timing_power_noise/NLDM/tpdn65lpnv2od3_200a
+#supress_message = {ELAB-405}
+#####
+# Set search_path
+#
+# List locations where your standard cell libraries may be located
+#
+#####
+set search_path [list . $search_path $env(PHYS_IP)/arm/tsmc/cln65lp/sc12_base_rvt/r0p0/sdb/ $env(PHYS_IP)/arm/tsmc/cln65lp/sc12_base_rvt/r0p0/db/ $env(SOCLABS_PROJECT_DIR)/memories/rf $env(SOCLABS_PROJECT_DIR)/memories/bootrom $io_path]
+set search_path [concat $rtlPath $search_path]
+######
+# Set Target Library
+#
+# Set a default target library for Design Compiler to target when compiling a design
+#
+######
+set target_library "sc12_cln65lp_base_rvt_ss_typical_max_1p08v_125c.db rf_sp_hdf_ss_1p08v_1p08v_125c.db rom_via_ss_1p08v_1p08v_125c.db tpdn65lpnv2od3wc.db"
+
+######
+# Set Link Library
+#
+# Set a default link library for Design Compiler to target when compiling a design
+#
+######
+set link_library "sc12_cln65lp_base_rvt_ss_typical_max_1p08v_125c.db rf_sp_hdf_ss_1p08v_1p08v_125c.db rom_via_ss_1p08v_1p08v_125c.db tpdn65lpnv2od3wc.db"
+
+source $env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/flist/dc_flist.tcl
+elaborate $top_module -lib WORK
+current_design $top_module
+
+# Link Design
+link
+
+read_sdc ../../constraints.sdc 
+
+load_upf ../nanosoc_chip_pads.upf
+
+set_voltage -object_list {VDD VDDACC VDD_VSS.power VDDACC_VSS.power TOP.primary.power ACCEL.primary.power} 1.08
+set_voltage -object_list {VSS VDD_VSS.ground VDDACC_VSS.ground TOP.primary.ground ACCEL.primary.ground} 0.00
+
+set_operating_conditions -library sc12_cln65lp_base_rvt_ss_typical_max_1p08v_125c ss_typical_max_1p08v_125c
+
+set_app_var compile_delete_unloaded_sequential_cells false
+compile_ultra -gate_clock -scan 
+
+set_scan_configuration -chain_count 2
+set_dft_signal -view spec -type ScanDataIn -port DFT_SDI_1
+set_dft_signal -view spec -type ScanDataIn -port DFT_SDI_2
+set_dft_signal -view spec -type ScanDataOut -port DFT_SDO_1
+set_dft_signal -view spec -type ScanDataOut -port DFT_SDO_2
+set_dft_signal -view spec -type ScanEnable -port TEST -active_state 1
+set_dft_signal -view existing_dft -type Reset -port NRST -active_state 0
+set_scan_configuration -power_domain_mixing false
+create_test_protocol -infer_clock -infer_asynch 
+dft_drc
+insert_dft
+
+write -hierarchy -format verilog -output $env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/netlist/Synopsys/nanosoc_chip_pads.vm
+write -hierarchy -format verilog -pg -output $env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/netlist/Synopsys/nanosoc_chip_pads.vp
+write_scan_def -output $env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/netlist/Synopsys/nanosoc_chip_pads.def
+write_test_protocol -output $env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/netlist/Synopsys/nanosoc_chip_pads_scan.stil 
+
+redirect [format "%s%s%s" $report_path $top_module _area.rep] { report_area }
+redirect -append [format "%s%s%s" $report_path $top_module _area.rep] { report_reference }
+redirect [format "%s%s%s" $report_path $top_module _power.rep] { report_power }
+redirect [format "%s%s%s" $report_path $top_module _scan_path.rep] { report_scan_path }
+redirect [format "%s%s%s" $report_path $top_module _timing.rep] \
+  { report_timing -path full -max_paths 100 -nets -transition_time -capacitance -significant_digits 3 -nosplit}
+
diff --git a/ASIC/60pin/Synopsys/upf/nanosoc_chip_pads.upf b/ASIC/60pin/Synopsys/upf/nanosoc_chip_pads.upf
new file mode 100644
index 0000000000000000000000000000000000000000..c6b9d33b87e24a28d6f60b9a88d1f65440e314bd
--- /dev/null
+++ b/ASIC/60pin/Synopsys/upf/nanosoc_chip_pads.upf
@@ -0,0 +1,57 @@
+#Scope: nanosoc_chip_pads
+create_supply_set VDDACC_VSS
+create_supply_set VDD_VSS
+
+#Domain: ACCEL
+create_power_domain ACCEL  -supply {primary VDDACC_VSS}  -elements {u_nanosoc_chip/u_system/u_ss_expansion/u_region_exp/u_ss_accelerator}
+
+#Domain: TOP
+create_power_domain TOP  -supply {primary VDD_VSS}
+
+associate_supply_set VDDACC_VSS -handle ACCEL.primary
+associate_supply_set VDD_VSS -handle TOP.primary
+
+create_supply_port VDDACC
+create_supply_port VDD
+create_supply_port VSS
+
+create_supply_net VDDACC
+create_supply_net VDD
+create_supply_net VSS
+
+connect_supply_net VDD -ports VDD
+connect_supply_net VDDACC -ports VDDACC
+connect_supply_net VSS -ports VSS
+
+
+create_supply_set VDDACC_VSS -function {power VDDACC} -function {ground VSS} -update
+create_supply_set VDD_VSS  -function {power VDD}  -function {ground VSS}  -update
+
+
+connect_supply_net VDD -ports u_nanosoc_chip/u_system/u_ss_expansion/u_region_expram_h/u_expram_h/u_sram/u_rf_sp_hdf/VDD
+connect_supply_net VDD -ports u_nanosoc_chip/u_system/u_ss_expansion/u_region_expram_l/u_expram_l/u_sram/u_rf_sp_hdf/VDD
+connect_supply_net VDD -ports u_nanosoc_chip/u_system/u_ss_cpu/u_region_dmem_0/u_dmem_0/u_sram/u_rf_sp_hdf/VDD
+connect_supply_net VDD -ports u_nanosoc_chip/u_system/u_ss_cpu/u_region_imem_0/u_imem_0/u_sram/u_rf_sp_hdf/VDD
+connect_supply_net VDD -ports u_nanosoc_chip/u_system/u_ss_cpu/u_region_bootrom_0/u_bootrom_cpu_0/u_bootrom/u_sl_rom/VDDE
+
+connect_supply_net VSS -ports u_nanosoc_chip/u_system/u_ss_cpu/u_region_dmem_0/u_dmem_0/u_sram/u_rf_sp_hdf/VSS
+connect_supply_net VSS -ports u_nanosoc_chip/u_system/u_ss_cpu/u_region_imem_0/u_imem_0/u_sram/u_rf_sp_hdf/VSS
+connect_supply_net VSS -ports u_nanosoc_chip/u_system/u_ss_expansion/u_region_expram_h/u_expram_h/u_sram/u_rf_sp_hdf/VSS
+connect_supply_net VSS -ports u_nanosoc_chip/u_system/u_ss_expansion/u_region_expram_l/u_expram_l/u_sram/u_rf_sp_hdf/VSS
+connect_supply_net VSS -ports u_nanosoc_chip/u_system/u_ss_cpu/u_region_bootrom_0/u_bootrom_cpu_0/u_bootrom/u_sl_rom/VSSE
+
+add_port_state VSS -state {state1 0.00}
+add_port_state VDD -state {state1 1.08}
+add_port_state VDDACC -state {state1 1.08}
+
+create_pst all_pst -supplies { \
+    VDDACC \
+    VDD \
+    VSS}
+add_pst_state aon -pst all_pst -state {state1}
+
+
+
+
+
+
diff --git a/ASIC/Cadence/Genus/genus.tcl b/ASIC/Cadence/Genus/genus.tcl
deleted file mode 100644
index 64611b02647829fdf8be18da8d843b6209d96e11..0000000000000000000000000000000000000000
--- a/ASIC/Cadence/Genus/genus.tcl
+++ /dev/null
@@ -1,53 +0,0 @@
-set_db init_lib_search_path "$::env(PHYS_IP)/arm/tsmc/cln65lp/sc12_base_rvt/r0p0/lib/ $::env(SOCLABS_PROJECT_DIR)/memories/rf/ $::env(SOCLABS_PROJECT_DIR)/memories/bootrom/"
-set BASE_LIB sc12_cln65lp_base_rvt_ss_typical_max_1p08v_125c.lib
-set RF_LIB rf_sp_hdf_ss_1p08v_1p08v_125c.lib
-set ROM_LIB rom_via_ss_1p08v_1p08v_125c.lib
-create_library_domain domain1
-set_db [get_db library_domains domain1] .library "$BASE_LIB $RF_LIB $ROM_LIB"
-
-read_power_intent -cpf -module nanosoc_chip_pads nanosoc.cpf
-
-source $::env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/flist/genus_flist.tcl
-elaborate nanosoc_chip_pads
-
-apply_power_intent
-check_library > lib_check.log
-
-check_cpf
-
-commit_power_intent
-check_power_structure -license lpgxl
-
-read_sdc $::env(SOCLABS_NANOSOC_TECH_DIR)/ASIC/constraints.sdc 
-
-set_db dft_scan_style muxed_scan
-define_test_signal -function test_mode TEST
-define_test_signal -function shift_enable SWDIO -shared_input
-define_test_signal -function scan_clock SWDCK -shared_input
-define_test_signal -function async_set_reset -active low NRST
-check_dft_rules
-
-
-set_db syn_generic_effort high
-set_db syn_map_effort high
-
-syn_generic
-syn_map
-syn_opt
-
-report_area > $::env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/reports/nanosoc_area.rep
-report_timing > $::env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/reports/nanosoc_timing.rep
-report_gates > $::env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/reports/nanosoc_gates.rep
-report_power > $::env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/reports/nanosoc_power.rep
-
-write_hdl > $::env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/netlist/nanosoc_chip_pads.vm
-
-connect_scan_chains -auto_create_chains
-report_scan_chains > $::env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/reports/nanosoc_scan_chains.rep
-report_scan_setup > $::env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/reports/nanosoc_scan_setup.rep
-report_scan_registers > $::env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/reports/nanosoc_scan_registers.rep
-
-write_dft_abstract_model > $::env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/netlist/nanosoc_dft_abstract_model
-write_scandef > $::env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/netlist/nanosoc_chip_pads.def
-
-exit
diff --git a/ASIC/Cadence/Innovus/io_plan.tcl b/ASIC/Cadence/Innovus/io_plan.tcl
deleted file mode 100644
index 2afa6e7d9f57b19566862e072813a71e5b81f3a1..0000000000000000000000000000000000000000
--- a/ASIC/Cadence/Innovus/io_plan.tcl
+++ /dev/null
@@ -1,16 +0,0 @@
-################################
-# Script  : IO Place
-# Author : Srimanth Tenneti 
-# Date : 22nd May 2022 
-###############################
-
-### Pin Place 
-edit_pin -fixed_pin 1 -fix_overlap 1 -unit micron -spread_direction clockwise -side Top -layer 9 -spread_type center -spacing 90 -pin { TEST  VDD VDDIO VDDACC {P1[15]} {P1[14]} {P1[13]} {P1[12]} {P1[11]}}
-
-edit_pin -fixed_pin 1 -fix_overlap 1 -unit micron -spread_direction clockwise -side Bottom -layer 9 -spread_type center -spacing 90 -pin {{P0[5]} {P0[6]} {P0[7]} {P0[8]} {P0[9]} {P0[10]} {P0[11]} {P0[12]} {P0[13]} {P0[14]} {P0[15]}}
-
-edit_pin -fixed_pin 1 -fix_overlap 1 -unit micron -spread_direction clockwise -side Left -layer 9 -spread_type center -spacing 90 -pin {NRST CLK SWDIO SWDCK VSS VSSIO {P0[0]} {P0[1]} {P0[2]} {P0[3]} {P0[4]}}
-
-edit_pin -pin_width 1.5 -pin_depth 1.5 -fixed_pin 1 -fix_overlap 1 -unit micron -spread_direction clockwise -side Right -layer 9 -spread_type center -spacing 90 -pin {{P1[0]} {P1[1]} {P1[2]} {P1[3]} {P1[4]} {P1[5]} {P1[6]} {P1[7]} {P1[8]} {P1[9]} {P1[10]} }
- 
-gui_fit
diff --git a/ASIC/Cadence/Innovus/pnr_flow.tcl b/ASIC/Cadence/Innovus/pnr_flow.tcl
deleted file mode 100644
index 1b7de8a4a513d8ffb89ddaf9e7ca60c276d9a410..0000000000000000000000000000000000000000
--- a/ASIC/Cadence/Innovus/pnr_flow.tcl
+++ /dev/null
@@ -1,45 +0,0 @@
-######################################
-# Script : Place and Route Flow 
-# Date : 25th May 2023 
-# Author : Srimanth Tenneti 
-# Description : Innovus PnR Flow 
-###################################### 
-
-puts "Starting PnR Flow ..."
-
-
-### Design Import 
-source design_import.tcl  
-
-### IO Planning 
-source io_plan.tcl
-
-### Memory and accelerator placement
-source place_macros.tcl
-commit_power_intent
-check_power_domains
-
-### Power Plan 
-source power_plan.tcl 
-
-### Power Route 
-source power_route.tcl 
-
-### Placement 
-source place.tcl 
-
-### CTS 
-source clock_tree_synthesis.tcl 
-
-### Routing 
-source route.tcl 
-
-report_timing > $::env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/reports/nanosoc_imp_timing.rep
-report_area > $::env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/reports/nanosoc_imp_area.rep
-report_power > $::env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/reports/nanosoc_imp_power.rep
-
-gui_show 
-
-
-
-
diff --git a/ASIC/Cadence/Innovus/power_plan.tcl b/ASIC/Cadence/Innovus/power_plan.tcl
deleted file mode 100644
index 6d516c86bed7db8979296769202ab4308d92b4a8..0000000000000000000000000000000000000000
--- a/ASIC/Cadence/Innovus/power_plan.tcl
+++ /dev/null
@@ -1,42 +0,0 @@
-#########################################
-# Script : Power Planning 
-# Tool : Cadence Innovus 
-# Date : May 22, 2023
-# Author : Srimanth Tenneti
-######################################### 
-
-### Connecting Global Nets
-connect_global_net VDD -type pg_pin -pin_base_name VDD -inst_base_name * 
-connect_global_net VDDACC -type pg_pin -pin_base_name VDDACC -inst_base_name *
-connect_global_net VDDIO -type pg_pin -pin_base_name VDDIO -inst_base_name * 
-connect_global_net VSS -type pg_pin -pin_base_name VSS -inst_base_name * 
-connect_global_net VSSIO -type pg_pin -pin_base_name VSSIO -inst_base_name * 
-### Top and Bottom Metal Declartions
-set_db add_rings_stacked_via_top_layer M8
-set_db add_rings_stacked_via_bottom_layer M1 
-
-### Adding Rings 
-add_rings -nets {VDD VDDACC VDDIO VSS VSSIO} -type core_rings -follow core -layer {top M7 bottom M7 left M8 right M8} -width {top 8 bottom 8 left 8 right 8} -spacing {top 2 bottom 2 left 2 right 2} -offset {top 1 bottom 1 left 1 right 1} -center 0 -threshold 0 -jog_distance 0 -snap_wire_center_to_grid none
-
-### Adding Stripes 
-set_db add_stripes_ignore_block_check true
-set_db add_stripes_break_at none
-set_db add_stripes_route_over_rows_only false
-set_db add_stripes_rows_without_stripes_only false
-set_db add_stripes_extend_to_closest_target none
-set_db add_stripes_stop_at_last_wire_for_area false
-set_db add_stripes_partial_set_through_domain true
-set_db add_stripes_ignore_non_default_domains false
-set_db add_stripes_trim_antenna_back_to_shape none
-set_db add_stripes_spacing_type edge_to_edge
-set_db add_stripes_spacing_from_block 0
-set_db add_stripes_stripe_min_length stripe_width
-set_db add_stripes_stacked_via_top_layer AP
-set_db add_stripes_stacked_via_bottom_layer M1
-set_db add_stripes_via_using_exact_crossover_size false
-set_db add_stripes_split_vias false
-set_db add_stripes_orthogonal_only true
-set_db add_stripes_allow_jog { padcore_ring  block_ring }
-set_db add_stripes_skip_via_on_pin {  standardcell }
-set_db add_stripes_skip_via_on_wire_shape {  noshape   }
-add_stripes -nets {VDD VDDACC VSS} -layer M8 -direction vertical -width 4 -spacing 1.8 -number_of_sets 8 -extend_to last_padring -start_from left -start_offset 100 -stop_offset 100 -switch_layer_over_obs false -max_same_layer_jog_length 2 -pad_core_ring_top_layer_limit AP -pad_core_ring_bottom_layer_limit M1 -block_ring_top_layer_limit AP -block_ring_bottom_layer_limit M1 -use_wire_group 0 -snap_wire_center_to_grid none
diff --git a/ASIC/Cadence/Innovus/power_route.tcl b/ASIC/Cadence/Innovus/power_route.tcl
deleted file mode 100644
index 90f207d636ea6017c040b7bf4d3a81a4d3f22f28..0000000000000000000000000000000000000000
--- a/ASIC/Cadence/Innovus/power_route.tcl
+++ /dev/null
@@ -1,10 +0,0 @@
-##################################
-# Script : Special Route Script 
-# Date : May 24, 2023 
-# Description : Power Routing 
-# Author : Srimanth Tenneti 
-##################################
-route_special -connect {block_pin pad_pin pad_ring core_pin floating_stripe} -layer_change_range { M1(1) AP(10) } -block_pin_target nearest_target -pad_pin_port_connect {all_port one_geom} -pad_pin_target nearest_target -core_pin_target first_after_row_end -floating_stripe_target {block_ring pad_ring ring stripe ring_pin block_pin followpin} -allow_jogging 1 -power_domains { ACCEL } -crossover_via_layer_range { M1(1) AP(10) } -nets { VDDACC VSS } -allow_layer_change 1 -block_pin use_lef -target_via_layer_range { M1(1) AP(10) }
-route_special -connect {block_pin pad_pin pad_ring core_pin floating_stripe} -layer_change_range { M1(1) AP(10) } -block_pin_target nearest_target -pad_pin_port_connect {all_port one_geom} -pad_pin_target nearest_target -core_pin_target first_after_row_end -floating_stripe_target {block_ring pad_ring ring stripe ring_pin block_pin followpin} -allow_jogging 1 -power_domains { TOP } -crossover_via_layer_range { M1(1) AP(10) } -nets { VDD VSS } -allow_layer_change 1 -block_pin use_lef -target_via_layer_range { M1(1) AP(10) }
-
-#route_special  -nets {VDD VSS} -connect core_pin  -block_pin_target nearest_target -core_pin_target first_after_row_end  -allow_jogging 1 -allow_layer_change 1 -layer_change_range { M1(1) M8(8) } -crossover_via_layer_range { M1(1) M8(8) } -target_via_layer_range { M1(1) M8(8) }
diff --git a/ASIC/Synopsys/DC/synopsys.tcl b/ASIC/Synopsys/DC/synopsys.tcl
deleted file mode 100644
index 42aef1b72937c50fe81fc3381e07e94c5f3f7f7c..0000000000000000000000000000000000000000
--- a/ASIC/Synopsys/DC/synopsys.tcl
+++ /dev/null
@@ -1,119 +0,0 @@
-#-----------------------------------------------------------------------------
-# NanoSoC Synopsys synthesis tcl file to be run with dc_shell
-# A joint work commissioned on behalf of SoC Labs, under Arm Academic Access license.
-#
-# Contributors
-#
-# Daniel Newbrook (d.newbrook@soton.ac.uk)
-#
-# Copyright (C) 2021-3, SoC Labs (www.soclabs.org)
-#-----------------------------------------------------------------------------
-
-set rtlPath $env(SOCLABS_PROJECT_DIR)
-set report_path $env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/reports/
-set top_module nanosoc_chip_pads
-#supress_message = {ELAB-405}
-#####
-# Set search_path
-#
-# List locations where your standard cell libraries may be located
-#
-#####
-set search_path [list . $search_path $env(PHYS_IP)/arm/tsmc/cln65lp/sc12_base_rvt/r0p0/sdb/ $env(PHYS_IP)/arm/tsmc/cln65lp/sc12_base_rvt/r0p0/db/ $env(SOCLABS_PROJECT_DIR)/memories/rf $env(SOCLABS_PROJECT_DIR)/memories/bootrom]
-set search_path [concat $rtlPath $search_path]
-######
-# Set Target Library
-#
-# Set a default target library for Design Compiler to target when compiling a design
-#
-######
-set target_library "sc12_cln65lp_base_rvt_ss_typical_max_1p08v_125c.db rf_sp_hdf_ss_1p08v_1p08v_125c.db rom_via_ss_1p08v_1p08v_125c.db"
-
-######
-# Set Link Library
-#
-# Set a default link library for Design Compiler to target when compiling a design
-#
-######
-set link_library "sc12_cln65lp_base_rvt_ss_typical_max_1p08v_125c.db rf_sp_hdf_ss_1p08v_1p08v_125c.db rom_via_ss_1p08v_1p08v_125c.db"
-
-source $env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/flist/dc_flist.tcl
-elaborate $top_module -lib WORK
-current_design $top_module
-
-# Link Design
-link
-
-read_sdc ../../constraints.sdc 
-
-add_port_state VSS -state {state1 0.00}
-add_port_state VDD -state {state1 1.08}
-add_port_state VSSACC -state {state1 0.00}
-add_port_state VDDACC -state {state1 1.08}
-add_port_state VSSIO -state {state1 0.00}
-add_port_state VDDIO -state {state1 3.3}
-
-# Visual UPF added these lines...
-#Scope: nanosoc_chip_pads
-create_supply_set SSET1
-create_supply_set SSET2
-#Domain: ACCEL
-create_power_domain ACCEL  -elements {u_nanosoc_chip/u_system/u_ss_expansion/u_region_exp/u_ss_accelerator}
-set_domain_supply_net ACCEL -primary_power_net SSET2.power -primary_ground_net SSET2.ground
-
-#Domain: MEM
-create_power_domain MEM  -elements {u_nanosoc_chip/u_system/u_ss_cpu/u_region_dmem_0/u_dmem_0/u_sram u_nanosoc_chip/u_system/u_ss_cpu/u_region_bootrom_0/u_bootrom_cpu_0/u_bootrom u_nanosoc_chip/u_system/u_ss_expansion/u_region_expram_l/u_expram_l/u_sram u_nanosoc_chip/u_system/u_ss_expansion/u_region_expram_h/u_expram_h/u_sram u_nanosoc_chip/u_system/u_ss_cpu/u_region_imem_0/u_imem_0/u_sram}
-set_domain_supply_net MEM -primary_power_net SSET1.power -primary_ground_net SSET1.ground
-
-#Domain: TOP
-create_power_domain TOP
-set_domain_supply_net TOP -primary_power_net SSET1.power -primary_ground_net SSET1.ground
-
-add_power_state SSET1 -state state1 {  -supply_expr {power == `{FULL_ON, 1.080000}}}
-add_power_state SSET1 -state state2 {  -supply_expr {ground == `{FULL_ON, 0.000000}}}
-add_power_state SSET2 -state state3 {  -supply_expr {power == `{FULL_ON, 1.080000}}}
-add_power_state SSET2 -state state4 {  -supply_expr {ground == `{FULL_ON, 0.000000}}}
-
-
-connect_supply_net SSET1.power -port VDD
-connect_supply_net SSET1.ground -port VSS
-connect_supply_net SSET2.power -port VDDACC
-connect_supply_net SSET2.ground -port VSSACC
-
-set_voltage -object_list {SSET1.power SSET2.power MEM.primary.power TOP.primary.power ACCEL.primary.power} 1.08
-set_voltage -object_list {SSET1.ground SSET2.ground MEM.primary.ground TOP.primary.ground ACCEL.primary.ground} 0.00
-
-
-connect_supply_net MEM.primary.power -ports u_nanosoc_chip/u_system/u_ss_expansion/u_region_expram_h/u_expram_h/u_sram/u_rf_sp_hdf/VDD
-connect_supply_net MEM.primary.power -ports u_nanosoc_chip/u_system/u_ss_expansion/u_region_expram_l/u_expram_l/u_sram/u_rf_sp_hdf/VDD
-connect_supply_net MEM.primary.power -ports u_nanosoc_chip/u_system/u_ss_cpu/u_region_dmem_0/u_dmem_0/u_sram/u_rf_sp_hdf/VDD
-connect_supply_net MEM.primary.power -ports u_nanosoc_chip/u_system/u_ss_cpu/u_region_imem_0/u_imem_0/u_sram/u_rf_sp_hdf/VDD
-connect_supply_net MEM.primary.power -ports u_nanosoc_chip/u_system/u_ss_cpu/u_region_bootrom_0/u_bootrom_cpu_0/u_bootrom/u_sl_rom/VDDE
-
-
-connect_supply_net MEM.primary.ground -ports u_nanosoc_chip/u_system/u_ss_cpu/u_region_dmem_0/u_dmem_0/u_sram/u_rf_sp_hdf/VSS
-connect_supply_net MEM.primary.ground -ports u_nanosoc_chip/u_system/u_ss_cpu/u_region_imem_0/u_imem_0/u_sram/u_rf_sp_hdf/VSS
-connect_supply_net MEM.primary.ground -ports u_nanosoc_chip/u_system/u_ss_expansion/u_region_expram_h/u_expram_h/u_sram/u_rf_sp_hdf/VSS
-connect_supply_net MEM.primary.ground -ports u_nanosoc_chip/u_system/u_ss_expansion/u_region_expram_l/u_expram_l/u_sram/u_rf_sp_hdf/VSS
-connect_supply_net MEM.primary.ground -ports u_nanosoc_chip/u_system/u_ss_cpu/u_region_bootrom_0/u_bootrom_cpu_0/u_bootrom/u_sl_rom/VSSE
-
-
-set_app_var compile_delete_unloaded_sequential_cells false
-compile_ultra -gate_clock -scan 
-
-set_scan_configuration -chain_count 1
-create_test_protocol -infer_clock -infer_asynch 
-dft_drc
-insert_dft
-
-write -hierarchy -format verilog -output $env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/netlist/Synopsys/nanosoc_chip_pads.vm
-write_scan_def -output $env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/netlist/Synopsys/nanosoc_chip_pads.def
-write_test_protocol -output $env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/netlist/Synopsys/nanosoc_chip_pads_scan.stil 
-
-redirect [format "%s%s%s" $report_path $top_module _area.rep] { report_area }
-redirect -append [format "%s%s%s" $report_path $top_module _area.rep] { report_reference }
-redirect [format "%s%s%s" $report_path $top_module _power.rep] { report_power }
-redirect [format "%s%s%s" $report_path $top_module _scan_path.rep] { report_scan_path }
-redirect [format "%s%s%s" $report_path $top_module _timing.rep] \
-  { report_timing -path full -max_paths 100 -nets -transition_time -capacitance -significant_digits 3 -nosplit}
-
diff --git a/ASIC/constraints.sdc b/ASIC/constraints.sdc
index 997304c40cb91a0852168fcc4b9e86926e268caa..b8b469bde43bfc03974a2c206dc0cbbb3061f67b 100644
--- a/ASIC/constraints.sdc
+++ b/ASIC/constraints.sdc
@@ -41,6 +41,13 @@ set_clock_transition -rise -max $MAXRISE [get_clocks $SWDCLK]
 set_clock_transition -fall -min $MINFALL [get_clocks $SWDCLK]
 set_clock_transition -fall -min $MINFALL [get_clocks $SWDCLK]
 
+### Multicycle path through pads
+
+set_false_path -from uPAD_SWDIO_IO/* -to uPAD_SWDIO_IO/*
+set_false_path -from uPAD_P0_*/*  -to uPAD_P0_*/*
+set_false_path -from uPAD_P1_*/* -to uPAD_P1_*/*
+
+
 #### DELAY DEFINITION
 
 set_input_delay -clock [get_clocks $EXTCLK] -add_delay 0.3 [get_ports NRST]
@@ -49,5 +56,5 @@ set_input_delay -clock [get_clocks $EXTCLK] -add_delay 0.3 [get_ports P0]
 set_input_delay -clock [get_clocks $EXTCLK] -add_delay 0.3 [get_ports P1]
 set_input_delay -clock [get_clocks $SWDCLK] -add_delay 0.3 [get_ports SWDIO]
 
-set_max_capacitance 0.5 [all_outputs]
+set_max_capacitance 3 [all_outputs]
 set_max_fanout 10 [all_inputs]
\ No newline at end of file
diff --git a/ASIC/nanosoc_chip_pads/tsmc65lp/nanosoc_chip_pads_28pin.v b/ASIC/nanosoc_chip_pads/tsmc65lp/nanosoc_chip_pads_28pin.v
new file mode 100644
index 0000000000000000000000000000000000000000..3ce7c03286ff099c5d7ffe269595898941917468
--- /dev/null
+++ b/ASIC/nanosoc_chip_pads/tsmc65lp/nanosoc_chip_pads_28pin.v
@@ -0,0 +1,341 @@
+//-----------------------------------------------------------------------------
+// Top-Level Pad implementation for TSMC65nm
+// A joint work commissioned on behalf of SoC Labs, under Arm Academic Access license.
+//
+// Contributors
+//
+// David Flynn (d.w.flynn@soton.ac.uk)
+//
+// Copyright � 2021-3, SoC Labs (www.soclabs.org)
+//-----------------------------------------------------------------------------
+
+//-----------------------------------------------------------------------------
+// The confidential and proprietary information contained in this file may
+// only be used by a person authorised under and to the extent permitted
+// by a subsisting licensing agreement from Arm Limited or its affiliates.
+//
+//            (C) COPYRIGHT 2010-2013 Arm Limited or its affiliates.
+//                ALL RIGHTS RESERVED
+//
+// This entire notice must be reproduced on all copies of this file
+// and copies of this file may only be made by a person if such person is
+// permitted to do so under the terms of a subsisting license agreement
+// from Arm Limited or its affiliates.
+//
+//      SVN Information
+//
+//      Checked In          : $Date: 2017-10-10 15:55:38 +0100 (Tue, 10 Oct 2017) $
+//
+//      Revision            : $Revision: 371321 $
+//
+//      Release Information : Cortex-M System Design Kit-r1p1-00rel0
+//
+//-----------------------------------------------------------------------------
+//-----------------------------------------------------------------------------
+// Abstract : Top level for example Cortex-M0/Cortex-M0+ microcontroller
+//-----------------------------------------------------------------------------
+//
+`define POWER_PINS
+module nanosoc_chip_pads (
+  inout  wire          VDDIO,
+  inout  wire          VDD,
+  inout  wire          VSS,
+  inout  wire          VDDACC,
+
+  input  wire          CLK, // input
+  input  wire          TEST, // input
+  input  wire          NRST,  // active low reset
+  inout  wire  [3:0]    P0,
+  inout  wire  [3:0]    P1,
+  inout  wire          SWDIO,
+  input  wire          SWDCK,
+);
+
+
+//------------------------------------
+// internal wires
+
+  wire          clk_i;
+  wire          test_i;
+  wire          nrst_i;
+  wire  [15:0]  p0_i; // level-shifted input from pad
+  wire  [15:0]  p0_o; // output port drive
+  wire  [15:0]  p0_e; // active high output drive enable (pad tech dependent)
+  wire  [15:0]  p0_z; // active low output drive enable (pad tech dependent)
+  wire  [15:0]  p1_i; // level-shifted input from pad
+  wire  [15:0]  p1_o; // output port drive
+  wire  [15:0]  p1_e; // active high output drive enable (pad tech dependent)
+  wire  [15:0]  p1_z; // active low output drive enable (pad tech dependent)
+
+  wire          swdio_i;
+  wire          swdio_o;
+  wire          swdio_e;
+  wire          swdio_z;
+  wire          swdclk_i;
+  wire          VSSIO;
+
+  assign VSSIO = VSS;
+ // --------------------------------------------------------------------------------
+ // Cortex-M0 nanosoc Microcontroller
+ // --------------------------------------------------------------------------------
+
+  nanosoc_chip u_nanosoc_chip (
+`ifdef POWER_PINS
+  .VDDIO      (VDDIO),
+  .VSSIO      (VSSIO),
+  .VDD        (VDD),
+  .VSS        (VSS),
+  .VDDACC     (VDDACC),
+`endif
+  .clk_i(clk_i),
+  .test_i(test_i),
+  .nrst_i(nrst_i),
+  .p0_i(p0_i), // level-shifted input from pad
+  .p0_o(p0_o), // output port drive
+  .p0_e(p0_e), // active high output drive enable (pad tech dependent)
+  .p0_z(p0_z), // active low output drive enable (pad tech dependent)
+  .p1_i(p1_i), // level-shifted input from pad
+  .p1_o(p1_o), // output port drive
+  .p1_e(p1_e), // active high output drive enable (pad tech dependent)
+  .p1_z(p1_z), // active low output drive enable (pad tech dependent)
+  .swdio_i(swdio_i),
+  .swdio_o(swdio_o),
+  .swdio_e(swdio_e),
+  .swdio_z(swdio_z),
+  .swdclk_i(swdclk_i)
+  );
+
+
+//TIE_HI uTIEHI (.tiehi(tiehi));
+ wire tiehi = 1'b1;
+//TIE_LO uTIELO (.tielo(tielo));
+ wire tielo = 1'b0;
+
+ // --------------------------------------------------------------------------------
+ // IO pad (TSMC 65nm mapping)
+ // --------------------------------------------------------------------------------
+
+// Pad IO power supplies
+
+PVDD2CDG uPAD_VDDIO_0(
+   .VDDPST(VDDIO)
+   );
+PVDD2CDG uPAD_VDDIO_1(
+   .VDDPST(VDDIO)
+   );
+PVDD2CDG uPAD_VDDIO_2(
+   .VDDPST(VDDIO)
+   );
+PVDD2POC uPAD_VDDIO_3(
+   .VDDPST(VDDIO)
+   );
+
+
+
+// Core power supplies
+
+PVDD1CDG uPAD_VDD_0(
+   .VDD(VDD)
+   );
+PVDD1CDG uPAD_VDD_1(
+   .VDD(VDD)
+   );
+PVDD1CDG uPAD_VDD_2(
+   .VDD(VDD)
+   );
+PVDD1CDG uPAD_VDD_3(
+   .VDD(VDD)
+   );
+
+PVSS3CDG uPAD_VSS_0(
+   .VSS(VSS)
+   );
+PVSS3CDG uPAD_VSS_1(
+   .VSS(VSS)
+   );
+PVSS3CDG uPAD_VSS_2(
+   .VSS(VSS)
+   );
+PVSS3CDG uPAD_VSS_3(
+   .VSS(VSS)
+   );
+// Accelerator Power supplies
+PVDD1CDG uPAD_VDDACC_0(
+   .VDD(VDDACC)
+   );
+PVDD1CDG uPAD_VDDACC_1(
+   .VDD(VDDACC)
+   );
+PVDD1CDG uPAD_VDDACC_2(
+   .VDD(VDDACC)
+   );
+
+// Clock, Reset and Serial Wire Debug ports
+
+PRDW0408SCDG uPAD_CLK_I (
+    .IE(tiehi),
+    .C(clk_i),
+    .PE(tielo),
+    .DS(tielo),
+    .I(tielo),
+    .OEN(tiehi),
+    .PAD(CLK)
+   );
+
+PRDW0408SCDG uPAD_TEST_I (
+    .IE(tiehi),
+    .C(test_i),
+    .PE(tielo),
+    .DS(tielo),
+    .I(tielo),
+    .OEN(tiehi),
+    .PAD(TEST)
+   );
+
+PRDW0408SCDG uPAD_NRST_I (
+    .IE(tiehi),
+    .C(nrst_i),
+    .PE(tielo),
+    .DS(tielo),
+    .I(tielo),
+    .OEN(tiehi),
+    .PAD(NRST)
+   );
+
+PRDW0408SCDG uPAD_SWDIO_IO (
+    .IE(swdio_z),
+    .C(swdio_i),
+    .PE(tielo),
+    .DS(tielo),
+    .I(swdio_o),
+    .OEN(swdio_z),
+    .PAD(SWDIO)
+   );
+
+PRDW0408SCDG uPAD_SWDCK_I (
+    .IE(tiehi),
+    .C(swdclk_i),
+    .PE(tielo),
+    .DS(tielo),
+    .I(tielo),
+    .OEN(tiehi),
+    .PAD(SWDCK)
+   );
+
+// GPI.I Port 0 x 16
+
+PRDW0408SCDG uPAD_P0_00 (
+    .IE(p0_z[00]),
+    .C(p0_i[00]),
+    .PE(p0_z[00]&p0_o[00]),
+    .DS(tielo),
+    .I(p0_o[00]),
+    .OEN(p0_z[00]),
+    .PAD(P0[00])
+   );
+
+PRDW0408SCDG uPAD_P0_01 (
+    .IE(p0_z[01]),
+    .C(p0_i[01]),
+    .PE(p0_z[01]&p0_o[01]),
+    .DS(tielo),
+    .I(p0_o[01]),
+    .OEN(p0_z[01]),
+    .PAD(P0[01])
+   );
+  
+PRDW0408SCDG uPAD_P0_02 (
+    .IE(p0_z[02]),
+    .C(p0_i[02]),
+    .PE(p0_z[02]&p0_o[02]),
+    .DS(tielo),
+    .I(p0_o[02]),
+    .OEN(p0_z[02]),
+    .PAD(P0[02])
+   );
+
+PRDW0408SCDG uPAD_P0_03 (
+    .IE(p0_z[03]),
+    .C(p0_i[03]),
+    .PE(p0_z[03]&p0_o[03]),
+    .DS(tielo),
+    .I(p0_o[03]),
+    .OEN(p0_z[03]),
+    .PAD(P0[03])
+   );
+// GPI.I Port 1 x 16
+
+PRDW0408SCDG uPAD_P1_00 (
+    .IE(p1_z[00]),
+    .C(p1_i[00]),
+    .PE(p1_z[00]&p1_o[00]),
+    .DS(tielo),
+    .I(p1_o[00]),
+    .OEN(p1_z[00]),
+    .PAD(P1[00])
+   );
+
+PRDW0408SCDG uPAD_P1_01 (
+    .IE(p1_z[01]),
+    .C(p1_i[01]),
+    .PE(p1_z[01]&p1_o[01]),
+    .DS(tielo),
+    .I(p1_o[01]),
+    .OEN(p1_z[01]),
+    .PAD(P1[01])
+   );
+  
+PRDW0408SCDG uPAD_P1_02 (
+    .IE(p1_z[02]),
+    .C(p1_i[02]),
+    .PE(p1_z[02]&p1_o[02]),
+    .DS(tielo),
+    .I(p1_o[02]),
+    .OEN(p1_z[02]),
+    .PAD(P1[02])
+   );
+
+PRDW0408SCDG uPAD_P1_03 (
+    .IE(p1_z[03]),
+    .C(p1_i[03]),
+    .PE(p1_z[03]&p1_o[03]),
+    .DS(tielo),
+    .I(p1_o[03]),
+    .OEN(p1_z[03]),
+    .PAD(P1[03])
+   );
+
+
+// GPIO unused pin tie offs
+
+assign p0_i[4] = p0_o[4] & p0_e[4];
+assign p0_i[5] = p0_o[5] & p0_e[5];
+assign p0_i[6] = p0_o[6] & p0_e[6];
+assign p0_i[7] = p0_o[7] & p0_e[7];
+assign p0_i[8] = p0_o[8] & p0_e[8];
+assign p0_i[9] = p0_o[9] & p0_e[9];
+assign p0_i[10] = p0_o[10] & p0_e[10];
+assign p0_i[11] = p0_o[11] & p0_e[11];
+assign p0_i[12] = p0_o[12] & p0_e[12];
+assign p0_i[13] = p0_o[13] & p0_e[13];
+assign p0_i[14] = p0_o[14] & p0_e[14];
+assign p0_i[15] = p0_o[15] & p0_e[15];
+
+assign p1_i[4] = p1_o[4] & p1_e[4];
+assign p1_i[5] = p1_o[5] & p1_e[5];
+assign p1_i[6] = p1_o[6] & p1_e[6];
+assign p1_i[7] = p1_o[7] & p1_e[7];
+assign p1_i[8] = p1_o[8] & p1_e[8];
+assign p1_i[9] = p1_o[9] & p1_e[9];
+assign p1_i[10] = p1_o[10] & p1_e[10];
+assign p1_i[11] = p1_o[11] & p1_e[11];
+assign p1_i[12] = p1_o[12] & p1_e[12];
+assign p1_i[13] = p1_o[13] & p1_e[13];
+assign p1_i[14] = p1_o[14] & p1_e[14];
+assign p1_i[15] = p1_o[15] & p1_e[15];
+
+
+endmodule
+
+
+
diff --git a/ASIC/nanosoc_chip_pads/tsmc65lp/nanosoc_chip_pads_44pin.v b/ASIC/nanosoc_chip_pads/tsmc65lp/nanosoc_chip_pads_44pin.v
new file mode 100644
index 0000000000000000000000000000000000000000..a73a32c5856f14f081e42c3be23fa9bcd44fd8d1
--- /dev/null
+++ b/ASIC/nanosoc_chip_pads/tsmc65lp/nanosoc_chip_pads_44pin.v
@@ -0,0 +1,415 @@
+//-----------------------------------------------------------------------------
+// Top-Level Pad implementation for TSMC65nm
+// A joint work commissioned on behalf of SoC Labs, under Arm Academic Access license.
+//
+// Contributors
+//
+// David Flynn (d.w.flynn@soton.ac.uk)
+//
+// Copyright � 2021-3, SoC Labs (www.soclabs.org)
+//-----------------------------------------------------------------------------
+
+//-----------------------------------------------------------------------------
+// The confidential and proprietary information contained in this file may
+// only be used by a person authorised under and to the extent permitted
+// by a subsisting licensing agreement from Arm Limited or its affiliates.
+//
+//            (C) COPYRIGHT 2010-2013 Arm Limited or its affiliates.
+//                ALL RIGHTS RESERVED
+//
+// This entire notice must be reproduced on all copies of this file
+// and copies of this file may only be made by a person if such person is
+// permitted to do so under the terms of a subsisting license agreement
+// from Arm Limited or its affiliates.
+//
+//      SVN Information
+//
+//      Checked In          : $Date: 2017-10-10 15:55:38 +0100 (Tue, 10 Oct 2017) $
+//
+//      Revision            : $Revision: 371321 $
+//
+//      Release Information : Cortex-M System Design Kit-r1p1-00rel0
+//
+//-----------------------------------------------------------------------------
+//-----------------------------------------------------------------------------
+// Abstract : Top level for example Cortex-M0/Cortex-M0+ microcontroller
+//-----------------------------------------------------------------------------
+//
+`define POWER_PINS
+module nanosoc_chip_pads (
+  inout  wire          VDDIO,
+  inout  wire          VSSIO,
+  inout  wire          VDD,
+  inout  wire          VSS,
+  inout  wire          VDDACC,
+
+  input  wire          CLK, // input
+  input  wire          TEST, // input
+  input  wire          NRST,  // active low reset
+  inout  wire  [7:0]  P0,
+  inout  wire  [7:0]  P1,
+  inout  wire          SWDIO,
+  input  wire          SWDCK);
+
+
+//------------------------------------
+// internal wires
+
+  wire          clk_i;
+  wire          test_i;
+  wire          nrst_i;
+  wire  [15:0]  p0_i; // level-shifted input from pad
+  wire  [15:0]  p0_o; // output port drive
+  wire  [15:0]  p0_e; // active high output drive enable (pad tech dependent)
+  wire  [15:0]  p0_z; // active low output drive enable (pad tech dependent)
+  wire  [15:0]  p1_i; // level-shifted input from pad
+  wire  [15:0]  p1_o; // output port drive
+  wire  [15:0]  p1_e; // active high output drive enable (pad tech dependent)
+  wire  [15:0]  p1_z; // active low output drive enable (pad tech dependent)
+
+  wire          swdio_i;
+  wire          swdio_o;
+  wire          swdio_e;
+  wire          swdio_z;
+  wire          swdclk_i;
+
+ // --------------------------------------------------------------------------------
+ // Cortex-M0 nanosoc Microcontroller
+ // --------------------------------------------------------------------------------
+
+  nanosoc_chip u_nanosoc_chip (
+`ifdef POWER_PINS
+  .VDDIO      (VDDIO),
+  .VSSIO      (VSSIO),
+  .VDD        (VDD),
+  .VSS        (VSS),
+  .VDDACC     (VDDACC),
+`endif
+  .clk_i(clk_i),
+  .test_i(test_i),
+  .nrst_i(nrst_i),
+  .p0_i(p0_i), // level-shifted input from pad
+  .p0_o(p0_o), // output port drive
+  .p0_e(p0_e), // active high output drive enable (pad tech dependent)
+  .p0_z(p0_z), // active low output drive enable (pad tech dependent)
+  .p1_i(p1_i), // level-shifted input from pad
+  .p1_o(p1_o), // output port drive
+  .p1_e(p1_e), // active high output drive enable (pad tech dependent)
+  .p1_z(p1_z), // active low output drive enable (pad tech dependent)
+  .swdio_i(swdio_i),
+  .swdio_o(swdio_o),
+  .swdio_e(swdio_e),
+  .swdio_z(swdio_z),
+  .swdclk_i(swdclk_i)
+  );
+
+
+//TIE_HI uTIEHI (.tiehi(tiehi));
+ wire tiehi = 1'b1;
+//TIE_LO uTIELO (.tielo(tielo));
+ wire tielo = 1'b0;
+
+
+ wire dft_sdi_1, dft_sdi_2, dft_sdo_1, dft_sdo_2;
+ // --------------------------------------------------------------------------------
+ // IO pad (GLIB Generic Library napping)
+ // --------------------------------------------------------------------------------
+
+// Pad IO power supplies
+
+PVDD2CDG uPAD_VDDIO_0(
+   .VDDPST(VDDIO)
+   );
+PVDD2CDG uPAD_VDDIO_1(
+   .VDDPST(VDDIO)
+   );
+PVDD2CDG uPAD_VDDIO_2(
+   .VDDPST(VDDIO)
+   );
+PVDD2POC uPAD_VDDIO_3(
+   .VDDPST(VDDIO)
+   );
+
+PVSS3CDG uPAD_VSSIO_0(
+   .VSS(VSS)
+   );
+PVSS3CDG uPAD_VSSIO_1(
+   .VSS(VSS)
+   );
+
+// Core power supplies
+
+PVDD1CDG uPAD_VDD_0(
+   .VDD(VDD)
+   );
+PVDD1CDG uPAD_VDD_1(
+   .VDD(VDD)
+   );
+PVDD1CDG uPAD_VDD_2(
+   .VDD(VDD)
+   );
+PVDD1CDG uPAD_VDD_3(
+   .VDD(VDD)
+   );
+
+PVSS3CDG uPAD_VSS_0(
+   .VSS(VSS)
+   );
+PVSS3CDG uPAD_VSS_1(
+   .VSS(VSS)
+   );
+PVSS3CDG uPAD_VSS_2(
+   .VSS(VSS)
+   );
+PVSS3CDG uPAD_VSS_3(
+   .VSS(VSS)
+   );
+// Accelerator Power supplies
+PVDD1CDG uPAD_VDDACC_0(
+   .VDD(VDDACC)
+   );
+PVDD1CDG uPAD_VDDACC_1(
+   .VDD(VDDACC)
+   );
+PVDD1CDG uPAD_VDDACC_2(
+   .VDD(VDDACC)
+   );
+
+// Clock, Reset and Serial Wire Debug ports
+
+PRDW0408SCDG uPAD_CLK_I (
+    .IE(tiehi),
+    .C(clk_i),
+    .PE(tielo),
+    .DS(tielo),
+    .I(tielo),
+    .OEN(tiehi),
+    .PAD(CLK)
+   );
+
+PRDW0408SCDG uPAD_TEST_I (
+    .IE(tiehi),
+    .C(test_i),
+    .PE(tielo),
+    .DS(tielo),
+    .I(tielo),
+    .OEN(tiehi),
+    .PAD(TEST)
+   );
+
+PRDW0408SCDG uPAD_NRST_I (
+    .IE(tiehi),
+    .C(nrst_i),
+    .PE(tielo),
+    .DS(tielo),
+    .I(tielo),
+    .OEN(tiehi),
+    .PAD(NRST)
+   );
+
+PRDW0408SCDG uPAD_SWDIO_IO (
+    .IE(swdio_z),
+    .C(swdio_i),
+    .PE(tielo),
+    .DS(tielo),
+    .I(swdio_o),
+    .OEN(swdio_z),
+    .PAD(SWDIO)
+   );
+
+PRDW0408SCDG uPAD_SWDCK_I (
+    .IE(tiehi),
+    .C(swdclk_i),
+    .PE(tielo),
+    .DS(tielo),
+    .I(tielo),
+    .OEN(tiehi),
+    .PAD(SWDCK)
+   );
+
+// GPI.I Port 0 x 16
+
+PRDW0408SCDG uPAD_P0_00 (
+    .IE(p0_z[00]),
+    .C(p0_i[00]),
+    .PE(p0_z[00]&p0_o[00]),
+    .DS(tielo),
+    .I(p0_o[00]),
+    .OEN(p0_z[00]),
+    .PAD(P0[00])
+   );
+
+PRDW0408SCDG uPAD_P0_01 (
+    .IE(p0_z[01]),
+    .C(p0_i[01]),
+    .PE(p0_z[01]&p0_o[01]),
+    .DS(tielo),
+    .I(p0_o[01]),
+    .OEN(p0_z[01]),
+    .PAD(P0[01])
+   );
+  
+PRDW0408SCDG uPAD_P0_02 (
+    .IE(p0_z[02]),
+    .C(p0_i[02]),
+    .PE(p0_z[02]&p0_o[02]),
+    .DS(tielo),
+    .I(p0_o[02]),
+    .OEN(p0_z[02]),
+    .PAD(P0[02])
+   );
+
+PRDW0408SCDG uPAD_P0_03 (
+    .IE(p0_z[03]),
+    .C(p0_i[03]),
+    .PE(p0_z[03]&p0_o[03]),
+    .DS(tielo),
+    .I(p0_o[03]),
+    .OEN(p0_z[03]),
+    .PAD(P0[03])
+   );
+
+PRDW0408SCDG uPAD_P0_04 (
+    .IE(p0_z[04]),
+    .C(p0_i[04]),
+    .PE(p0_z[04]&p0_o[04]),
+    .DS(tielo),
+    .I(p0_o[04]),
+    .OEN(p0_z[04]),
+    .PAD(P0[04])
+   );
+
+PRDW0408SCDG uPAD_P0_05 (
+    .IE(p0_z[05]),
+    .C(p0_i[05]),
+    .PE(p0_z[05]&p0_o[05]),
+    .DS(tielo),
+    .I(p0_o[05]),
+    .OEN(p0_z[05]),
+    .PAD(P0[05])
+   );
+  
+PRDW0408SCDG uPAD_P0_06 (
+    .IE(p0_z[06]),
+    .C(p0_i[06]),
+    .PE(p0_z[06]&p0_o[06]),
+    .DS(tielo),
+    .I(p0_o[06]),
+    .OEN(p0_z[06]),
+    .PAD(P0[06])
+   );
+
+PRDW0408SCDG uPAD_P0_07 (
+    .IE(p0_z[07]),
+    .C(p0_i[07]),
+    .PE(p0_z[07]&p0_o[07]),
+    .DS(tielo),
+    .I(p0_o[07]),
+    .OEN(p0_z[07]),
+    .PAD(P0[07])
+   );
+// GPI.I Port 1 x 16
+
+PRDW0408SCDG uPAD_P1_00 (
+    .IE(p1_z[00]),
+    .C(p1_i[00]),
+    .PE(p1_z[00]&p1_o[00]),
+    .DS(tielo),
+    .I(p1_o[00]),
+    .OEN(p1_z[00]),
+    .PAD(P1[00])
+   );
+
+PRDW0408SCDG uPAD_P1_01 (
+    .IE(p1_z[01]),
+    .C(p1_i[01]),
+    .PE(p1_z[01]&p1_o[01]),
+    .DS(tielo),
+    .I(p1_o[01]),
+    .OEN(p1_z[01]),
+    .PAD(P1[01])
+   );
+  
+PRDW0408SCDG uPAD_P1_02 (
+    .IE(p1_z[02]),
+    .C(p1_i[02]),
+    .PE(p1_z[02]&p1_o[02]),
+    .DS(tielo),
+    .I(p1_o[02]),
+    .OEN(p1_z[02]),
+    .PAD(P1[02])
+   );
+
+PRDW0408SCDG uPAD_P1_03 (
+    .IE(p1_z[03]),
+    .C(p1_i[03]),
+    .PE(p1_z[03]&p1_o[03]),
+    .DS(tielo),
+    .I(p1_o[03]),
+    .OEN(p1_z[03]),
+    .PAD(P1[03])
+   );
+
+PRDW0408SCDG uPAD_P1_04 (
+    .IE(p1_z[04]),
+    .C(p1_i[04]),
+    .PE(p1_z[04]&p1_o[04]),
+    .DS(tielo),
+    .I(p1_o[04]),
+    .OEN(p1_z[04]),
+    .PAD(P1[04])
+   );
+
+PRDW0408SCDG uPAD_P1_05 (
+    .IE(p1_z[05]),
+    .C(p1_i[05]),
+    .PE(p1_z[05]&p1_o[05]),
+    .DS(tielo),
+    .I(p1_o[05]),
+    .OEN(p1_z[05]),
+    .PAD(P1[05])
+   );
+  
+PRDW0408SCDG uPAD_P1_06 (
+    .IE(p1_z[06]),
+    .C(p1_i[06]),
+    .PE(p1_z[06]&p1_o[06]),
+    .DS(tielo),
+    .I(p1_o[06]),
+    .OEN(p1_z[06]),
+    .PAD(P1[06])
+   );
+
+PRDW0408SCDG uPAD_P1_07 (
+    .IE(p1_z[07]),
+    .C(p1_i[07]),
+    .PE(p1_z[07]&p1_o[07]),
+    .DS(tielo),
+    .I(p1_o[07]),
+    .OEN(p1_z[07]),
+    .PAD(P1[07])
+   );
+
+
+assign p0_i[8] = p0_o[8] & p0_e[8];
+assign p0_i[9] = p0_o[9] & p0_e[9];
+assign p0_i[10] = p0_o[10] & p0_e[10];
+assign p0_i[11] = p0_o[11] & p0_e[11];
+assign p0_i[12] = p0_o[12] & p0_e[12];
+assign p0_i[13] = p0_o[13] & p0_e[13];
+assign p0_i[14] = p0_o[14] & p0_e[14];
+assign p0_i[15] = p0_o[15] & p0_e[15];
+
+assign p1_i[8] = p1_o[8] & p1_e[8];
+assign p1_i[9] = p1_o[9] & p1_e[9];
+assign p1_i[10] = p1_o[10] & p1_e[10];
+assign p1_i[11] = p1_o[11] & p1_e[11];
+assign p1_i[12] = p1_o[12] & p1_e[12];
+assign p1_i[13] = p1_o[13] & p1_e[13];
+assign p1_i[14] = p1_o[14] & p1_e[14];
+assign p1_i[15] = p1_o[15] & p1_e[15];
+
+endmodule
+
+
+
diff --git a/ASIC/nanosoc_chip_pads/tsmc65lp/nanosoc_chip_pads_60pin.v b/ASIC/nanosoc_chip_pads/tsmc65lp/nanosoc_chip_pads_60pin.v
new file mode 100644
index 0000000000000000000000000000000000000000..c4b16345b107c9cbb9f25569a72b3342e28d9367
--- /dev/null
+++ b/ASIC/nanosoc_chip_pads/tsmc65lp/nanosoc_chip_pads_60pin.v
@@ -0,0 +1,559 @@
+//-----------------------------------------------------------------------------
+// Top-Level Pad implementation for TSMC65nm
+// A joint work commissioned on behalf of SoC Labs, under Arm Academic Access license.
+//
+// Contributors
+//
+// David Flynn (d.w.flynn@soton.ac.uk)
+//
+// Copyright � 2021-3, SoC Labs (www.soclabs.org)
+//-----------------------------------------------------------------------------
+
+//-----------------------------------------------------------------------------
+// The confidential and proprietary information contained in this file may
+// only be used by a person authorised under and to the extent permitted
+// by a subsisting licensing agreement from Arm Limited or its affiliates.
+//
+//            (C) COPYRIGHT 2010-2013 Arm Limited or its affiliates.
+//                ALL RIGHTS RESERVED
+//
+// This entire notice must be reproduced on all copies of this file
+// and copies of this file may only be made by a person if such person is
+// permitted to do so under the terms of a subsisting license agreement
+// from Arm Limited or its affiliates.
+//
+//      SVN Information
+//
+//      Checked In          : $Date: 2017-10-10 15:55:38 +0100 (Tue, 10 Oct 2017) $
+//
+//      Revision            : $Revision: 371321 $
+//
+//      Release Information : Cortex-M System Design Kit-r1p1-00rel0
+//
+//-----------------------------------------------------------------------------
+//-----------------------------------------------------------------------------
+// Abstract : Top level for example Cortex-M0/Cortex-M0+ microcontroller
+//-----------------------------------------------------------------------------
+//
+`define POWER_PINS
+module nanosoc_chip_pads (
+  inout  wire          VDDIO,
+  inout  wire          VSSIO,
+  inout  wire          VDD,
+  inout  wire          VSS,
+  inout  wire          VDDACC,
+
+  input  wire          CLK, // input
+  input  wire          TEST, // input
+  input  wire          NRST,  // active low reset
+  inout  wire  [15:0]  P0,
+  inout  wire  [15:0]  P1,
+  inout  wire          SWDIO,
+  input  wire          SWDCK
+  );
+
+
+//------------------------------------
+// internal wires
+
+  wire          clk_i;
+  wire          test_i;
+  wire          nrst_i;
+  wire  [15:0]  p0_i; // level-shifted input from pad
+  wire  [15:0]  p0_o; // output port drive
+  wire  [15:0]  p0_e; // active high output drive enable (pad tech dependent)
+  wire  [15:0]  p0_z; // active low output drive enable (pad tech dependent)
+  wire  [15:0]  p1_i; // level-shifted input from pad
+  wire  [15:0]  p1_o; // output port drive
+  wire  [15:0]  p1_e; // active high output drive enable (pad tech dependent)
+  wire  [15:0]  p1_z; // active low output drive enable (pad tech dependent)
+
+  wire          swdio_i;
+  wire          swdio_o;
+  wire          swdio_e;
+  wire          swdio_z;
+  wire          swdclk_i;
+
+ // --------------------------------------------------------------------------------
+ // Cortex-M0 nanosoc Microcontroller
+ // --------------------------------------------------------------------------------
+
+  nanosoc_chip u_nanosoc_chip (
+`ifdef POWER_PINS
+  .VDDIO      (VDDIO),
+  .VSSIO      (VSSIO),
+  .VDD        (VDD),
+  .VSS        (VSS),
+  .VDDACC     (VDDACC),
+`endif
+  .clk_i(clk_i),
+  .test_i(test_i),
+  .nrst_i(nrst_i),
+  .p0_i(p0_i), // level-shifted input from pad
+  .p0_o(p0_o), // output port drive
+  .p0_e(p0_e), // active high output drive enable (pad tech dependent)
+  .p0_z(p0_z), // active low output drive enable (pad tech dependent)
+  .p1_i(p1_i), // level-shifted input from pad
+  .p1_o(p1_o), // output port drive
+  .p1_e(p1_e), // active high output drive enable (pad tech dependent)
+  .p1_z(p1_z), // active low output drive enable (pad tech dependent)
+  .swdio_i(swdio_i),
+  .swdio_o(swdio_o),
+  .swdio_e(swdio_e),
+  .swdio_z(swdio_z),
+  .swdclk_i(swdclk_i)
+  );
+
+
+//TIE_HI uTIEHI (.tiehi(tiehi));
+ wire tiehi = 1'b1;
+//TIE_LO uTIELO (.tielo(tielo));
+ wire tielo = 1'b0;
+
+
+ wire dft_sdi_1, dft_sdi_2, dft_sdo_1, dft_sdo_2;
+ // --------------------------------------------------------------------------------
+ // IO pad (GLIB Generic Library napping)
+ // --------------------------------------------------------------------------------
+
+// Pad IO power supplies
+
+PVDD2CDG uPAD_VDDIO_0(
+   .VDDPST(VDDIO)
+   );
+PVDD2CDG uPAD_VDDIO_1(
+   .VDDPST(VDDIO)
+   );
+PVDD2CDG uPAD_VDDIO_2(
+   .VDDPST(VDDIO)
+   );
+PVDD2POC uPAD_VDDIO_3(
+   .VDDPST(VDDIO)
+   );
+
+PVSS3CDG uPAD_VSSIO_0(
+   .VSS(VSS)
+   );
+PVSS3CDG uPAD_VSSIO_1(
+   .VSS(VSS)
+   );
+
+
+// Core power supplies
+
+PVDD1CDG uPAD_VDD_0(
+   .VDD(VDD)
+   );
+PVDD1CDG uPAD_VDD_1(
+   .VDD(VDD)
+   );
+PVDD1CDG uPAD_VDD_2(
+   .VDD(VDD)
+   );
+PVDD1CDG uPAD_VDD_3(
+   .VDD(VDD)
+   );
+
+PVSS3CDG uPAD_VSS_0(
+   .VSS(VSS)
+   );
+PVSS3CDG uPAD_VSS_1(
+   .VSS(VSS)
+   );
+PVSS3CDG uPAD_VSS_2(
+   .VSS(VSS)
+   );
+PVSS3CDG uPAD_VSS_3(
+   .VSS(VSS)
+   );
+// Accelerator Power supplies
+PVDD1CDG uPAD_VDDACC_0(
+   .VDD(VDDACC)
+   );
+PVDD1CDG uPAD_VDDACC_1(
+   .VDD(VDDACC)
+   );
+PVDD1CDG uPAD_VDDACC_2(
+   .VDD(VDDACC)
+   );
+
+// Clock, Reset and Serial Wire Debug ports
+
+PRDW0408SCDG uPAD_CLK_I (
+    .IE(tiehi),
+    .C(clk_i),
+    .PE(tielo),
+    .DS(tielo),
+    .I(tielo),
+    .OEN(tiehi),
+    .PAD(CLK)
+   );
+
+PRDW0408SCDG uPAD_TEST_I (
+    .IE(tiehi),
+    .C(test_i),
+    .PE(tielo),
+    .DS(tielo),
+    .I(tielo),
+    .OEN(tiehi),
+    .PAD(TEST)
+   );
+
+PRDW0408SCDG uPAD_NRST_I (
+    .IE(tiehi),
+    .C(nrst_i),
+    .PE(tielo),
+    .DS(tielo),
+    .I(tielo),
+    .OEN(tiehi),
+    .PAD(NRST)
+   );
+
+PRDW0408SCDG uPAD_SWDIO_IO (
+    .IE(swdio_z),
+    .C(swdio_i),
+    .PE(tielo),
+    .DS(tielo),
+    .I(swdio_o),
+    .OEN(swdio_z),
+    .PAD(SWDIO)
+   );
+
+PRDW0408SCDG uPAD_SWDCK_I (
+    .IE(tiehi),
+    .C(swdclk_i),
+    .PE(tielo),
+    .DS(tielo),
+    .I(tielo),
+    .OEN(tiehi),
+    .PAD(SWDCK)
+   );
+
+// GPI.I Port 0 x 16
+
+PRDW0408SCDG uPAD_P0_00 (
+    .IE(p0_z[00]),
+    .C(p0_i[00]),
+    .PE(p0_z[00]&p0_o[00]),
+    .DS(tielo),
+    .I(p0_o[00]),
+    .OEN(p0_z[00]),
+    .PAD(P0[00])
+   );
+
+PRDW0408SCDG uPAD_P0_01 (
+    .IE(p0_z[01]),
+    .C(p0_i[01]),
+    .PE(p0_z[01]&p0_o[01]),
+    .DS(tielo),
+    .I(p0_o[01]),
+    .OEN(p0_z[01]),
+    .PAD(P0[01])
+   );
+  
+PRDW0408SCDG uPAD_P0_02 (
+    .IE(p0_z[02]),
+    .C(p0_i[02]),
+    .PE(p0_z[02]&p0_o[02]),
+    .DS(tielo),
+    .I(p0_o[02]),
+    .OEN(p0_z[02]),
+    .PAD(P0[02])
+   );
+
+PRDW0408SCDG uPAD_P0_03 (
+    .IE(p0_z[03]),
+    .C(p0_i[03]),
+    .PE(p0_z[03]&p0_o[03]),
+    .DS(tielo),
+    .I(p0_o[03]),
+    .OEN(p0_z[03]),
+    .PAD(P0[03])
+   );
+
+PRDW0408SCDG uPAD_P0_04 (
+    .IE(p0_z[04]),
+    .C(p0_i[04]),
+    .PE(p0_z[04]&p0_o[04]),
+    .DS(tielo),
+    .I(p0_o[04]),
+    .OEN(p0_z[04]),
+    .PAD(P0[04])
+   );
+
+PRDW0408SCDG uPAD_P0_05 (
+    .IE(p0_z[05]),
+    .C(p0_i[05]),
+    .PE(p0_z[05]&p0_o[05]),
+    .DS(tielo),
+    .I(p0_o[05]),
+    .OEN(p0_z[05]),
+    .PAD(P0[05])
+   );
+  
+PRDW0408SCDG uPAD_P0_06 (
+    .IE(p0_z[06]),
+    .C(p0_i[06]),
+    .PE(p0_z[06]&p0_o[06]),
+    .DS(tielo),
+    .I(p0_o[06]),
+    .OEN(p0_z[06]),
+    .PAD(P0[06])
+   );
+
+PRDW0408SCDG uPAD_P0_07 (
+    .IE(p0_z[07]),
+    .C(p0_i[07]),
+    .PE(p0_z[07]&p0_o[07]),
+    .DS(tielo),
+    .I(p0_o[07]),
+    .OEN(p0_z[07]),
+    .PAD(P0[07])
+   );
+  
+PRDW0408SCDG uPAD_P0_08 (
+    .IE(p0_z[08]),
+    .C(p0_i[08]),
+    .PE(p0_z[08]&p0_o[08]),
+    .DS(tielo),
+    .I(p0_o[08]),
+    .OEN(p0_z[08]),
+    .PAD(P0[08])
+   );
+
+PRDW0408SCDG uPAD_P0_09 (
+    .IE(p0_z[09]),
+    .C(p0_i[09]),
+    .PE(p0_z[09]&p0_o[09]),
+    .DS(tielo),
+    .I(p0_o[09]),
+    .OEN(p0_z[09]),
+    .PAD(P0[09])
+   );
+  
+PRDW0408SCDG uPAD_P0_10 (
+    .IE(p0_z[10]),
+    .C(p0_i[10]),
+    .PE(p0_z[10]&p0_o[10]),
+    .DS(tielo),
+    .I(p0_o[10]),
+    .OEN(p0_z[10]),
+    .PAD(P0[10])
+   );
+
+PRDW0408SCDG uPAD_P0_11 (
+    .IE(p0_z[11]),
+    .C(p0_i[11]),
+    .PE(p0_z[11]&p0_o[11]),
+    .DS(tielo),
+    .I(p0_o[11]),
+    .OEN(p0_z[11]),
+    .PAD(P0[11])
+   );
+  
+PRDW0408SCDG uPAD_P0_12 (
+    .IE(p0_z[12]),
+    .C(p0_i[12]),
+    .PE(p0_z[12]&p0_o[12]),
+    .DS(tielo),
+    .I(p0_o[12]),
+    .OEN(p0_z[12]),
+    .PAD(P0[12])
+   );
+
+PRDW0408SCDG uPAD_P0_13 (
+    .IE(p0_z[13]),
+    .C(p0_i[13]),
+    .PE(p0_z[13]&p0_o[13]),
+    .DS(tielo),
+    .I(p0_o[13]),
+    .OEN(p0_z[13]),
+    .PAD(P0[13])
+   );
+  
+PRDW0408SCDG uPAD_P0_14 (
+    .IE(p0_z[14]),
+    .C(p0_i[14]),
+    .PE(p0_z[14]&p0_o[14]),
+    .DS(tielo),
+    .I(p0_o[14]),
+    .OEN(p0_z[14]),
+    .PAD(P0[14])
+   );
+
+PRDW0408SCDG uPAD_P0_15 (
+    .IE(p0_z[15]),
+    .C(p0_i[15]),
+    .PE(p0_z[15]&p0_o[15]),
+    .DS(tielo),
+    .I(p0_o[15]),
+    .OEN(p0_z[15]),
+    .PAD(P0[15])
+   );
+  
+// GPI.I Port 1 x 16
+
+PRDW0408SCDG uPAD_P1_00 (
+    .IE(p1_z[00]),
+    .C(p1_i[00]),
+    .PE(p1_z[00]&p1_o[00]),
+    .DS(tielo),
+    .I(p1_o[00]),
+    .OEN(p1_z[00]),
+    .PAD(P1[00])
+   );
+
+PRDW0408SCDG uPAD_P1_01 (
+    .IE(p1_z[01]),
+    .C(p1_i[01]),
+    .PE(p1_z[01]&p1_o[01]),
+    .DS(tielo),
+    .I(p1_o[01]),
+    .OEN(p1_z[01]),
+    .PAD(P1[01])
+   );
+  
+PRDW0408SCDG uPAD_P1_02 (
+    .IE(p1_z[02]),
+    .C(p1_i[02]),
+    .PE(p1_z[02]&p1_o[02]),
+    .DS(tielo),
+    .I(p1_o[02]),
+    .OEN(p1_z[02]),
+    .PAD(P1[02])
+   );
+
+PRDW0408SCDG uPAD_P1_03 (
+    .IE(p1_z[03]),
+    .C(p1_i[03]),
+    .PE(p1_z[03]&p1_o[03]),
+    .DS(tielo),
+    .I(p1_o[03]),
+    .OEN(p1_z[03]),
+    .PAD(P1[03])
+   );
+
+PRDW0408SCDG uPAD_P1_04 (
+    .IE(p1_z[04]),
+    .C(p1_i[04]),
+    .PE(p1_z[04]&p1_o[04]),
+    .DS(tielo),
+    .I(p1_o[04]),
+    .OEN(p1_z[04]),
+    .PAD(P1[04])
+   );
+
+PRDW0408SCDG uPAD_P1_05 (
+    .IE(p1_z[05]),
+    .C(p1_i[05]),
+    .PE(p1_z[05]&p1_o[05]),
+    .DS(tielo),
+    .I(p1_o[05]),
+    .OEN(p1_z[05]),
+    .PAD(P1[05])
+   );
+  
+PRDW0408SCDG uPAD_P1_06 (
+    .IE(p1_z[06]),
+    .C(p1_i[06]),
+    .PE(p1_z[06]&p1_o[06]),
+    .DS(tielo),
+    .I(p1_o[06]),
+    .OEN(p1_z[06]),
+    .PAD(P1[06])
+   );
+
+PRDW0408SCDG uPAD_P1_07 (
+    .IE(p1_z[07]),
+    .C(p1_i[07]),
+    .PE(p1_z[07]&p1_o[07]),
+    .DS(tielo),
+    .I(p1_o[07]),
+    .OEN(p1_z[07]),
+    .PAD(P1[07])
+   );
+  
+PRDW0408SCDG uPAD_P1_08 (
+    .IE(p1_z[08]),
+    .C(p1_i[08]),
+    .PE(p1_z[08]&p1_o[08]),
+    .DS(tielo),
+    .I(p1_o[08]),
+    .OEN(p1_z[08]),
+    .PAD(P1[08])
+   );
+
+PRDW0408SCDG uPAD_P1_09 (
+    .IE(p1_z[09]),
+    .C(p1_i[09]),
+    .PE(p1_z[09]&p1_o[09]),
+    .DS(tielo),
+    .I(p1_o[09]),
+    .OEN(p1_z[09]),
+    .PAD(P1[09])
+   );
+  
+PRDW0408SCDG uPAD_P1_10 (
+    .IE(p1_z[10]),
+    .C(p1_i[10]),
+    .PE(p1_z[10]&p1_o[10]),
+    .DS(tielo),
+    .I(p1_o[10]),
+    .OEN(p1_z[10]),
+    .PAD(P1[10])
+   );
+
+PRDW0408SCDG uPAD_P1_11 (
+    .IE(p1_z[11]),
+    .C(p1_i[11]),
+    .PE(p1_z[11]&p1_o[11]),
+    .DS(tielo),
+    .I(p1_o[11]),
+    .OEN(p1_z[11]),
+    .PAD(P1[11])
+   );
+  
+PRDW0408SCDG uPAD_P1_12 (
+    .IE(p1_z[12]),
+    .C(p1_i[12]),
+    .PE(p1_z[12]&p1_o[12]),
+    .DS(tielo),
+    .I(p1_o[12]),
+    .OEN(p1_z[12]),
+    .PAD(P1[12])
+   );
+
+PRDW0408SCDG uPAD_P1_13 (
+    .IE(p1_z[13]),
+    .C(p1_i[13]),
+    .PE(p1_z[13]&p1_o[13]),
+    .DS(tielo),
+    .I(p1_o[13]),
+    .OEN(p1_z[13]),
+    .PAD(P1[13])
+   );
+  
+PRDW0408SCDG uPAD_P1_14 (
+    .IE(p1_z[14]),
+    .C(p1_i[14]),
+    .PE(p1_z[14]&p1_o[14]),
+    .DS(tielo),
+    .I(p1_o[14]),
+    .OEN(p1_z[14]),
+    .PAD(P1[14])
+   );
+
+PRDW0408SCDG uPAD_P1_15 (
+    .IE(p1_z[15]),
+    .C(p1_i[15]),
+    .PE(p1_z[15]&p1_o[15]),
+    .DS(tielo),
+    .I(p1_o[15]),
+    .OEN(p1_z[15]),
+    .PAD(P1[15])
+   );
+
+endmodule
+
+
+
diff --git a/ASIC/rf_08k.spec b/ASIC/rf_08k.spec
new file mode 100644
index 0000000000000000000000000000000000000000..b42d0e44b9c36c27c4ff388c0be0b2289f7373e0
--- /dev/null
+++ b/ASIC/rf_08k.spec
@@ -0,0 +1,33 @@
+# user spec file, compiler rf_sp_hdf_hvt_rvt, version r0p0
+
+activity_factor = 20
+back_biasing = off
+bits = 32
+bmux = off
+bus_notation = on
+check_instname = on
+corners = ff_1p32v_1p32v_125c,ff_1p32v_1p32v_m40c,ss_1p08v_1p08v_125c,ss_1p08v_1p08v_m40c,tt_1p20v_1p20v_25c
+cust_comment = 
+diodes = on
+drive = 6
+ema = on
+frequency = 250
+instname = rf_08k
+left_bus_delim = [
+libertyviewstyle = nldm
+libname = RF_LIB_08K
+mux = 8
+mvt = 
+name_case = upper
+power_type = otc
+prefix = 
+pwr_gnd_rename = vddpe:VDD,vddce:VDD,vsse:VSS
+retention = on
+right_bus_delim = ]
+ser = none
+site_def = off
+top_layer = m5-m10
+words = 2048
+wp_size = 1
+write_mask = on
+write_thru = off
diff --git a/ASIC/rf_sp_hdf.spec b/ASIC/rf_16k.spec
similarity index 90%
rename from ASIC/rf_sp_hdf.spec
rename to ASIC/rf_16k.spec
index 00b3c8d420d184817f99cec2e9e6655f31d75305..7e50754ebfc82df8ad9e2651813a14d3025f72d4 100644
--- a/ASIC/rf_sp_hdf.spec
+++ b/ASIC/rf_16k.spec
@@ -1,6 +1,6 @@
 # user spec file, compiler rf_sp_hdf_hvt_rvt, version r0p0
 
-activity_factor = 50
+activity_factor = 20
 back_biasing = off
 bits = 32
 bmux = off
@@ -12,10 +12,10 @@ diodes = on
 drive = 6
 ema = on
 frequency = 250
-instname = rf_sp_hdf
+instname = rf_16k
 left_bus_delim = [
 libertyviewstyle = nldm
-libname = RF_LIB
+libname = RF_LIB_16K
 mux = 8
 mvt = 
 name_case = upper
diff --git a/flist/nanosoc.flist b/flist/nanosoc.flist
index c03f413750128622aa98d3a4bf44f7a6ca646899..28733147b0ec1df350a86b41d40c6c6a6156aa69 100644
--- a/flist/nanosoc.flist
+++ b/flist/nanosoc.flist
@@ -18,6 +18,9 @@
 
 // =============    NanoSoC IP search path    =============
 
+// NanoSoC Chip Pads Level
+$(SOCLABS_NANOSOC_TECH_DIR)/nanosoc/nanosoc_chip/pads/glib/verilog/nanosoc_chip_pads.v
+
 // Include NanoSoC IP
 -f $(SOCLABS_NANOSOC_TECH_DIR)/flist/nanosoc_ip.flist
 
diff --git a/flist/nanosoc_ASIC.flist b/flist/nanosoc_ASIC.flist
index d4455e34a5a5b1ff7789711f0f76b6108e228c34..9699ae142b54720d1a2c0bf3e1f63aac175d06a4 100644
--- a/flist/nanosoc_ASIC.flist
+++ b/flist/nanosoc_ASIC.flist
@@ -17,6 +17,11 @@
 
 // =============    NanoSoC IP search path    =============
 
+// NanoSoC Chip Pads Level
+// $(SOCLABS_NANOSOC_TECH_DIR)/ASIC/nanosoc_chip_pads/tsmc65lp/nanosoc_chip_pads_28pin.v
+$(SOCLABS_NANOSOC_TECH_DIR)/ASIC/nanosoc_chip_pads/tsmc65lp/nanosoc_chip_pads_40pin.v
+// $(SOCLABS_NANOSOC_TECH_DIR)/ASIC/nanosoc_chip_pads/tsmc65lp/nanosoc_chip_pads_60pin.v
+
 // Include NanoSoC IP
 -f $(SOCLABS_NANOSOC_TECH_DIR)/flist/nanosoc_ip.flist
 
diff --git a/flist/nanosoc_ip.flist b/flist/nanosoc_ip.flist
index ea78c8ca5db2f8d9f5fdb1dd21b83be9cddd1bd8..b62da6467aaaf3cbea2c301ccda37fa5fc10ff8a 100644
--- a/flist/nanosoc_ip.flist
+++ b/flist/nanosoc_ip.flist
@@ -17,9 +17,6 @@
 
 // =============    NanoSoC IP search path    =============
 
-// NanoSoC Chip Pads Level
-$(SOCLABS_NANOSOC_TECH_DIR)/nanosoc/nanosoc_chip/pads/glib/verilog/nanosoc_chip_pads.v
-
 // NanoSoC Chip Level
 $(SOCLABS_NANOSOC_TECH_DIR)/nanosoc/nanosoc_chip/chip/verilog/nanosoc_chip.v
 
diff --git a/flows/makefile.asic b/flows/makefile.asic
index 96490605ceec4b1683efc3903e1698194e61603d..46aa340923ad1fcc42faa0c128a72b9b57c723b8 100644
--- a/flows/makefile.asic
+++ b/flows/makefile.asic
@@ -35,10 +35,12 @@ DC_OUTPUT_FILELIST := $(TCL_ASIC_FLIST_DIR)/dc_flist.tcl
 
 # Location of outputs from synthesis
 MEMORIES_DIR		:= $(SOCLABS_PROJECT_DIR)/memories
-RF_SPEC_FILE		:= $(SOCLABS_NANOSOC_TECH_DIR)/ASIC/rf_sp_hdf.spec
+RF_16K_SPEC_FILE	:= $(SOCLABS_NANOSOC_TECH_DIR)/ASIC/rf_16k.spec
+RF_08K_SPEC_FILE		:= $(SOCLABS_NANOSOC_TECH_DIR)/ASIC/rf_08k.spec
 ROM_SPEC_FILE		:= $(SOCLABS_NANOSOC_TECH_DIR)/ASIC/rom_via.spec
 BOOTROM_BIN_FILE	:= $(SOCLABS_PROJECT_DIR)/system/src/bootrom/bintxt/bootrom.bintxt
-RF_DIR				:= $(MEMORIES_DIR)/rf
+RF_16K_DIR			:= $(MEMORIES_DIR)/rf_16k
+RF_08K_DIR			:= $(MEMORIES_DIR)/rf_08k
 ROM_DIR 			:= $(MEMORIES_DIR)/bootrom
 REPORTS_FOLDER		:= $(IMP_NANOSOC_ASIC_DIR)/reports
 SYN_LOGS			:= $(IMP_NANOSOC_ASIC_DIR)/logs
@@ -72,11 +74,16 @@ flist_formality_nanosoc: gen_defs
 
 gen_memories: bootrom
 	@mkdir -p $(MEMORIES_DIR)
-	@mkdir -p $(RF_DIR)
+	@mkdir -p $(RF_16K_DIR)
+	@mkdir -p $(RF_08K_DIR)
 	@mkdir -p $(ROM_DIR)
 	echo "Generating register file memory libraries"
-	cd $(RF_DIR); $(PHYS_IP)/arm/tsmc/cln65lp/rf_sp_hdf_hvt_rvt/r0p0/bin/rf_sp_hdf_hvt_rvt all -spec $(RF_SPEC_FILE);
-	cd $(RF_DIR); $(PHYS_IP)/arm/tsmc/cln65lp/rf_sp_hdf_hvt_rvt/r0p0/bin/rf_sp_hdf_hvt_rvt liberty -spec $(RF_SPEC_FILE);
+	echo "16K RF"
+	cd $(RF_16K_DIR); $(PHYS_IP)/arm/tsmc/cln65lp/rf_sp_hdf_hvt_rvt/r0p0/bin/rf_sp_hdf_hvt_rvt all -spec $(RF_16K_SPEC_FILE);
+	cd $(RF_16K_DIR); $(PHYS_IP)/arm/tsmc/cln65lp/rf_sp_hdf_hvt_rvt/r0p0/bin/rf_sp_hdf_hvt_rvt liberty -spec $(RF_16K_SPEC_FILE);
+	echo "8K RF"
+	cd $(RF_08K_DIR); $(PHYS_IP)/arm/tsmc/cln65lp/rf_sp_hdf_hvt_rvt/r0p0/bin/rf_sp_hdf_hvt_rvt all -spec $(RF_08K_SPEC_FILE);
+	cd $(RF_08K_DIR); $(PHYS_IP)/arm/tsmc/cln65lp/rf_sp_hdf_hvt_rvt/r0p0/bin/rf_sp_hdf_hvt_rvt liberty -spec $(RF_08K_SPEC_FILE);
 	cd $(ROM_DIR)
 	echo "Generating ROM Libraries"
 	cd $(ROM_DIR); $(PHYS_IP)/arm/tsmc/cln65lp/rom_via_hdd_rvt_rvt/r0p0/bin/rom_via_hdd_rvt_rvt liberty -spec $(ROM_SPEC_FILE) -code_file $(BOOTROM_BIN_FILE);
diff --git a/nanosoc/nanosoc_regions/exp/verilog/nanosoc_region_exp.v b/nanosoc/nanosoc_regions/exp/verilog/nanosoc_region_exp.v
index 423ac87f4f508a55c6e84be45cff6a0d430dd1d8..36b27aad03a26368e836092378943541500bc0b1 100644
--- a/nanosoc/nanosoc_regions/exp/verilog/nanosoc_region_exp.v
+++ b/nanosoc/nanosoc_regions/exp/verilog/nanosoc_region_exp.v
@@ -32,6 +32,7 @@ module nanosoc_region_exp #(
     output wire  [SYS_DATA_W-1:0] HRDATA,
     // DMAC Stream interfaces
 `ifdef DMAC_DMA350
+`ifdef DMA350_STREAM_2
     input  wire                     EXP_STR_IN_0_TVALID,
     output wire                     EXP_STR_IN_0_TREADY,
     input  wire [SYS_DATA_W-1:0]    EXP_STR_IN_0_TDATA,
@@ -57,6 +58,7 @@ module nanosoc_region_exp #(
     output wire [3:0]              EXP_STR_OUT_1_TSTRB,
     output wire                     EXP_STR_OUT_1_TLAST,
     input  wire                     EXP_STR_OUT_1_FLUSH,
+`endif 
 `endif 
 
     // Interrupt and DMAC Connections
@@ -85,6 +87,7 @@ module nanosoc_region_exp #(
         .HRESP(HRESP),
         .HRDATA(HRDATA),
 `ifdef DMAC_DMA350
+`ifdef DMA350_STREAM_2
         .EXP_STR_IN_0_TVALID(EXP_STR_IN_0_TVALID),
         .EXP_STR_IN_0_TREADY(EXP_STR_IN_0_TREADY),
         .EXP_STR_IN_0_TDATA(EXP_STR_IN_0_TDATA),
@@ -111,6 +114,8 @@ module nanosoc_region_exp #(
         .EXP_STR_OUT_1_TLAST(EXP_STR_OUT_1_TLAST),
         .EXP_STR_OUT_1_FLUSH(EXP_STR_OUT_1_FLUSH),
 `endif 
+`endif 
+
         .EXP_IRQ(EXP_IRQ),
         .EXP_DRQ(EXP_DRQ),
         .EXP_DLAST(EXP_DLAST)
diff --git a/nanosoc/nanosoc_subsystems/dma/verilog/nanosoc_ss_dma.v b/nanosoc/nanosoc_subsystems/dma/verilog/nanosoc_ss_dma.v
index 685c9d06161ddca89264b1349b1f5bc28a3dcc3a..e9b4b2770233bdc6742418dd3d397734fd9a24d5 100644
--- a/nanosoc/nanosoc_subsystems/dma/verilog/nanosoc_ss_dma.v
+++ b/nanosoc/nanosoc_subsystems/dma/verilog/nanosoc_ss_dma.v
@@ -77,7 +77,8 @@ module nanosoc_ss_dma #(
     output wire                           DMAC_1_PREADY,      // APB Ready
     output wire                           DMAC_1_PSLVERR,     // APB Slave Error
     
-`ifdef DMAC_DMA350
+`ifdef DMAC_DMA350 
+`ifdef DMA350_STREAM_2
     //  DMAC Channel 0 AXI stream out
     output wire                     DMAC_STR_OUT_0_TVALID,
     input  wire                     DMAC_STR_OUT_0_TREADY,
@@ -107,6 +108,7 @@ module nanosoc_ss_dma #(
     input  wire [4-1:0]            DMAC_STR_IN_1_TSTRB,
     input  wire                     DMAC_STR_IN_1_TLAST,
     output wire                     DMAC_STR_IN_1_FLUSH,
+`endif
 `endif
 
     // DMAC 1 DMA Request and Status Port
@@ -174,10 +176,7 @@ module nanosoc_ss_dma #(
         .PREADY(DMAC_1_PREADY),
         .PSLVERR(DMAC_1_PSLVERR),
         // DMA Request and Status Port
-        .DMA_REQ(DMAC_0_DMA_REQ),
-        .DMA_DONE(DMAC_0_DMA_DONE),
-        .DMA_ERR(DMAC_0_DMA_ERR),
-
+`ifdef DMA350_STREAM_2
         .DMAC_STR_OUT_0_TVALID(DMAC_STR_OUT_0_TVALID),
         .DMAC_STR_OUT_0_TREADY(DMAC_STR_OUT_0_TREADY),
         .DMAC_STR_OUT_0_TDATA(DMAC_STR_OUT_0_TDATA),
@@ -199,7 +198,13 @@ module nanosoc_ss_dma #(
         .DMAC_STR_IN_1_TDATA(DMAC_STR_IN_1_TDATA),
         .DMAC_STR_IN_1_TSTRB(DMAC_STR_IN_1_TSTRB),
         .DMAC_STR_IN_1_TLAST(DMAC_STR_IN_1_TLAST),
-        .DMAC_STR_IN_1_FLUSH(DMAC_STR_IN_1_FLUSH)  
+        .DMAC_STR_IN_1_FLUSH(DMAC_STR_IN_1_FLUSH),
+`endif
+
+        .DMA_REQ(DMAC_0_DMA_REQ),
+        .DMA_DONE(DMAC_0_DMA_DONE),
+        .DMA_ERR(DMAC_0_DMA_ERR)
+
     );
 
     
diff --git a/nanosoc/nanosoc_subsystems/expansion/verilog/nanosoc_ss_expansion.v b/nanosoc/nanosoc_subsystems/expansion/verilog/nanosoc_ss_expansion.v
index 66ff10f47da3bceb488a3c71bd1ddf3545f8246d..8e30b0ff08071149afb2a57fe4968a8b62b10874 100644
--- a/nanosoc/nanosoc_subsystems/expansion/verilog/nanosoc_ss_expansion.v
+++ b/nanosoc/nanosoc_subsystems/expansion/verilog/nanosoc_ss_expansion.v
@@ -45,6 +45,7 @@ module nanosoc_ss_expansion #(
     
     // DMAC Stream interfaces
 `ifdef DMAC_DMA350
+`ifdef DMA350_STREAM_2
     input  wire                     EXP_STR_IN_0_TVALID,
     output wire                     EXP_STR_IN_0_TREADY,
     input  wire [SYS_DATA_W-1:0]    EXP_STR_IN_0_TDATA,
@@ -70,6 +71,7 @@ module nanosoc_ss_expansion #(
     output wire [3:0]              EXP_STR_OUT_1_TSTRB,
     output wire                     EXP_STR_OUT_1_TLAST,
     input  wire                     EXP_STR_OUT_1_FLUSH,
+`endif 
 `endif 
 
     // SRAM Low Region AHB Port
@@ -132,6 +134,7 @@ module nanosoc_ss_expansion #(
         .HRESP(EXP_HRESP),
         .HRDATA(EXP_HRDATA),
 `ifdef DMAC_DMA350
+`ifdef DMA350_STREAM_2
         .EXP_STR_IN_0_TVALID(EXP_STR_IN_0_TVALID),
         .EXP_STR_IN_0_TREADY(EXP_STR_IN_0_TREADY),
         .EXP_STR_IN_0_TDATA(EXP_STR_IN_0_TDATA),
@@ -157,6 +160,7 @@ module nanosoc_ss_expansion #(
         .EXP_STR_OUT_1_TSTRB(EXP_STR_OUT_1_TSTRB),
         .EXP_STR_OUT_1_TLAST(EXP_STR_OUT_1_TLAST),
         .EXP_STR_OUT_1_FLUSH(EXP_STR_OUT_1_FLUSH),
+`endif 
 `endif 
 
         // Interrupt and DMAC Connections
diff --git a/nanosoc/nanosoc_system/verilog/nanosoc_system.v b/nanosoc/nanosoc_system/verilog/nanosoc_system.v
index 488ec1cb5c50b5811660f496edcd5dd957c4b3b2..47a49c6ec25e764312cf5b4d733bf88fee037550 100644
--- a/nanosoc/nanosoc_system/verilog/nanosoc_system.v
+++ b/nanosoc/nanosoc_system/verilog/nanosoc_system.v
@@ -447,6 +447,7 @@ module nanosoc_system #(
     assign DMAC_1_DMA_REQ = {DMAC_1_CHANNEL_NUM{1'b0}};
     
 `ifdef DMAC_DMA350
+`ifdef DMA350_STREAM_2
     //  DMAC Channel 0 AXI stream out
     wire                     DMAC_STR_OUT_0_TVALID;
     wire                     DMAC_STR_OUT_0_TREADY;
@@ -473,6 +474,7 @@ module nanosoc_system #(
     wire [4-1:0]            DMAC_STR_IN_1_TSTRB;
     wire                     DMAC_STR_IN_1_TLAST;
     wire                     DMAC_STR_IN_1_FLUSH;
+`endif
 `endif
 
     // Instantiate Subsystem
@@ -547,6 +549,8 @@ module nanosoc_system #(
         .DMAC_1_PSLVERR(DMAC_1_PSLVERR),
         
 `ifdef DMAC_DMA350
+`ifdef DMA350_STREAM_2
+
         .DMAC_STR_OUT_0_TVALID(DMAC_STR_OUT_0_TVALID),
         .DMAC_STR_OUT_0_TREADY(DMAC_STR_OUT_0_TREADY),
         .DMAC_STR_OUT_0_TDATA(DMAC_STR_OUT_0_TDATA),
@@ -572,6 +576,7 @@ module nanosoc_system #(
         .DMAC_STR_IN_1_TSTRB(DMAC_STR_IN_1_TSTRB),
         .DMAC_STR_IN_1_TLAST(DMAC_STR_IN_1_TLAST),
         .DMAC_STR_IN_1_FLUSH(DMAC_STR_IN_1_FLUSH),  
+`endif
 `endif
 
         // DMAC 1 DMA Request and Status Port
@@ -783,6 +788,7 @@ module nanosoc_system #(
         .EXP_HRDATA(EXP_HRDATA),
 
 `ifdef DMAC_DMA350
+`ifdef DMA350_STREAM_2
         .EXP_STR_IN_0_TVALID(DMAC_STR_OUT_0_TVALID),
         .EXP_STR_IN_0_TREADY(DMAC_STR_OUT_0_TREADY),
         .EXP_STR_IN_0_TDATA(DMAC_STR_OUT_0_TDATA),
@@ -809,6 +815,8 @@ module nanosoc_system #(
         .EXP_STR_OUT_1_TLAST(DMAC_STR_IN_1_TLAST),
         .EXP_STR_OUT_1_FLUSH(DMAC_STR_IN_1_FLUSH),
 `endif
+`endif
+
         
         // SRAM Low Region AHB Port
         .EXPRAM_L_HSEL(EXPRAM_L_HSEL),
diff --git a/nanosoc/sldma350_tech b/nanosoc/sldma350_tech
index d7b4b1b62b891668ca6554fe1806c45ff80ed76d..40601e44099d064d254b8ec53877682cc586b3ac 160000
--- a/nanosoc/sldma350_tech
+++ b/nanosoc/sldma350_tech
@@ -1 +1 @@
-Subproject commit d7b4b1b62b891668ca6554fe1806c45ff80ed76d
+Subproject commit 40601e44099d064d254b8ec53877682cc586b3ac