Skip to content
Snippets Groups Projects
Commit 1ebe89b6 authored by Daniel Newbrook's avatar Daniel Newbrook
Browse files

update PnR include miniASIC m scheme and bondpad place

parent fef9cd22
No related branches found
No related tags found
No related merge requests found
......@@ -14,7 +14,8 @@ 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 TECH_LEF /home/dwn1c21/SoC-Labs/util/PRTF_EDI_65nm_001_Cad_V24a/PRTF_EDI_N65_9M_6X1Z1U_RDL.24a.tlef
#$::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
......
......@@ -11,7 +11,7 @@
#
# Copyright (C) 2023, SoC Labs (www.soclabs.org)
#-----------------------------------------------------------------------------
set_multi_cpu_usage -local_cpu 8
## -- Setup libraries -- ##
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/rf_08k/ $::env(SOCLABS_PROJECT_DIR)/memories/bootrom/"
set BASE_LIB sc12_cln65lp_base_rvt_ss_typical_max_1p08v_125c.lib
......
eval_legacy {addInst -cell PAD60LU -inst BPAD_TEST_I -loc {149.29 1428} -ori R180}
eval_legacy {addInst -cell PAD60LU -inst BPAD_SWDCK_I -loc {257.86 1428} -ori R180}
eval_legacy {addInst -cell PAD60LU -inst BPAD_VDD_3 -loc {366.43 1428} -ori R180}
eval_legacy {addInst -cell PAD60LU -inst BPAD_VSS_3 -loc {475.00 1428} -ori R180}
eval_legacy {addInst -cell PAD60LU -inst BPAD_VDDIO_3 -loc {583.57 1428} -ori R180}
eval_legacy {addInst -cell PAD60LU -inst BPAD_P1_00 -loc {692.14 1428} -ori R180}
eval_legacy {addInst -cell PAD60LU -inst BPAD_P1_01 -loc {800.71 1428} -ori R180}
eval_legacy {addInst -cell PAD60LU -inst BPAD_P0_04 -loc {0.0 146.25} -ori R270}
eval_legacy {addInst -cell PAD60LU -inst BPAD_P0_05 -loc {0.0 251.25} -ori R270}
eval_legacy {addInst -cell PAD60LU -inst BPAD_P0_03 -loc {0.0 356.25} -ori R270}
eval_legacy {addInst -cell PAD60LU -inst BPAD_VDDACC_0 -loc {0.0 461.25} -ori R270}
eval_legacy {addInst -cell PAD60LU -inst BPAD_VSS_0 -loc {0.0 566.25} -ori R270}
eval_legacy {addInst -cell PAD60LU -inst BPAD_CLK_I -loc {0.0 671.25} -ori R270}
eval_legacy {addInst -cell PAD60LU -inst BPAD_VDD_0 -loc {0.0 776.25} -ori R270}
eval_legacy {addInst -cell PAD60LU -inst BPAD_VDDIO_0 -loc {0.0 881.25} -ori R270}
eval_legacy {addInst -cell PAD60LU -inst BPAD_SWDIO_IO -loc {0.0 986.25} -ori R270}
eval_legacy {addInst -cell PAD60LU -inst BPAD_VSSIO_0 -loc {0.0 1091.25} -ori R270}
eval_legacy {addInst -cell PAD60LU -inst BPAD_P0_06 -loc {0.0 1196.25} -ori R270}
eval_legacy {addInst -cell PAD60LU -inst BPAD_P0_07 -loc {0.0 1301.25} -ori R270}
eval_legacy {addInst -cell PAD60LU -inst BPAD_P0_02 -loc {149.29 0} -ori R0}
eval_legacy {addInst -cell PAD60LU -inst BPAD_VDDACC_1 -loc {257.86 0} -ori R0}
eval_legacy {addInst -cell PAD60LU -inst BPAD_VDDIO_1 -loc {366.43 0} -ori R0}
eval_legacy {addInst -cell PAD60LU -inst BPAD_VDD_1 -loc {475.00 0} -ori R0}
eval_legacy {addInst -cell PAD60LU -inst BPAD_VSS_1 -loc {583.57 0} -ori R0}
eval_legacy {addInst -cell PAD60LU -inst BPAD_P0_01 -loc {692.14 0} -ori R0}
eval_legacy {addInst -cell PAD60LU -inst BPAD_P0_00 -loc {800.71 0} -ori R0}
eval_legacy {addInst -cell PAD60LU -inst BPAD_P1_07 -loc {928 146.25} -ori R90}
eval_legacy {addInst -cell PAD60LU -inst BPAD_P1_06 -loc {928 251.25} -ori R90}
eval_legacy {addInst -cell PAD60LU -inst BPAD_VSSIO_1 -loc {928 356.25} -ori R90}
eval_legacy {addInst -cell PAD60LU -inst BPAD_P1_03 -loc {928 461.25} -ori R90}
eval_legacy {addInst -cell PAD60LU -inst BPAD_P1_02 -loc {928 566.25} -ori R90}
eval_legacy {addInst -cell PAD60LU -inst BPAD_VDDACC_2 -loc {928 671.25} -ori R90}
eval_legacy {addInst -cell PAD60LU -inst BPAD_VDD_2 -loc {928 776.25} -ori R90}
eval_legacy {addInst -cell PAD60LU -inst BPAD_VSS_2 -loc {928 881.25} -ori R90}
eval_legacy {addInst -cell PAD60LU -inst BPAD_VDDIO_2 -loc {928 986.25} -ori R90}
eval_legacy {addInst -cell PAD60LU -inst BPAD_NRST_I -loc {928 1091.25} -ori R90}
eval_legacy {addInst -cell PAD60LU -inst BPAD_P1_04 -loc {928 1196.25} -ori R90}
eval_legacy {addInst -cell PAD60LU -inst BPAD_P1_05 -loc {928 1301.25} -ori R90}
......@@ -17,7 +17,7 @@ set RF_16K_GDS2 $::env(SOCLABS_PROJECT_DIR)/memories/rf_16k/rf_16k.gds2
set RF_08K_GDS2 $::env(SOCLABS_PROJECT_DIR)/memories/rf_08k/rf_08k.gds2
set ROM_VIA_GDS2 $::env(SOCLABS_PROJECT_DIR)/memories/bootrom/rom_via.gds2
set_multi_cpu_usage -local_cpu 8
puts "Starting PnR Flow ..."
......@@ -54,9 +54,7 @@ reorder_scan -skip_mode skipNone -allow_swapping false -keep_power_domain_ports
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 }
write_db nanosoc_chip_pads
### Routing
......@@ -66,6 +64,17 @@ report_timing > $::env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/reports/4post_route
check_antenna
write_db nanosoc_chip_pads
### 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 }
add_fillers -base_cells [list FILL128_A12TR WELLANTENNATIEPW2_A12TR FILLTIE8_A12TR FILLTIE64_A12TR FILLTIE4_A12TR FILLTIE32_A12TR FILLTIE2_A12TR FILLTIE16_A12TR FILLTIE128_A12TR FILLCAPTIE8_A12TR] -prefix FILLER -power_domain ACCEL -check_drc true
add_fillers -base_cells [list FILL128_A12TR WELLANTENNATIEPW2_A12TR FILLTIE8_A12TR FILLTIE64_A12TR FILLTIE4_A12TR FILLTIE32_A12TR FILLTIE2_A12TR FILLTIE16_A12TR FILLTIE128_A12TR FILLCAPTIE8_A12TR] -prefix FILLER -power_domain TOP -check_drc true
add_fillers -base_cells [list FILL128_A12TR WELLANTENNATIEPW2_A12TR FILLTIE8_A12TR FILLTIE64_A12TR FILLTIE4_A12TR FILLTIE32_A12TR FILLTIE2_A12TR FILLTIE16_A12TR FILLTIE128_A12TR FILLCAPTIE8_A12TR] -prefix FILLER -power_domain ACCEL -check_drc true -fix_drc
add_fillers -base_cells [list FILL128_A12TR WELLANTENNATIEPW2_A12TR FILLTIE8_A12TR FILLTIE64_A12TR FILLTIE4_A12TR FILLTIE32_A12TR FILLTIE2_A12TR FILLTIE16_A12TR FILLTIE128_A12TR FILLCAPTIE8_A12TR] -prefix FILLER -power_domain TOP -check_drc true -fix_drc
source place_bondpads.tcl
### 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
......@@ -87,7 +96,7 @@ report_power > $::env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/reports/nanosoc_imp_
gui_show
write_stream $::env(SOCLABS_PROJECT_DIR)/imp/ASIC/nanosoc/nanosoc.gds \
-map_file $::env(PHYS_IP)/arm/tsmc/cln65lp/arm_tech/r2p0/lef/1p9m_6x2z/tech.map \
-map_file /home/dwn1c21/SoC-Labs/util/PRTF_EDI_65nm_001_Cad_V24a/PR_tech/Cadence/GdsOutMap/PRTF_EDI_N65_gdsout_6X1Z1U.24a.map \
-lib_name DesignLib \
-merge [list ${SC_GDS2} ${RF_16K_GDS2} ${RF_08K_GDS2} ${ROM_VIA_GDS2}]\
-output_macros -unit 2000 -mode all
......
......@@ -16,7 +16,7 @@ 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
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 2 bottom 2 left 2 right 2} -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
......@@ -38,7 +38,7 @@ 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 56 -extend_to all_domains -start_from left -start_offset 39.5 -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
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 39.5 -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
......
......@@ -93,11 +93,11 @@ gen_memories: bootrom
convert_mem_to_db:
lc_shell -no_log -f $(NANOSOC_SYNTH_DIR)/synopsys_lib_conversion.tcl
syn_genus:
syn_genus_44pin:
@mkdir -p $(REPORTS_FOLDER)
@mkdir -p $(NETLIST_FOLDER)
@mkdir -p $(SYN_LOGS)
cd $(NANOSOC_SYNTH_DIR)/Cadence/Genus; genus -f $(NANOSOC_SYNTH_DIR)/Cadence/Genus/genus.tcl -log $(SYN_LOGS)/nanosoc_synth_genus.log
cd $(NANOSOC_SYNTH_DIR)/44pin/Cadence/scripts; genus -f $(NANOSOC_SYNTH_DIR)/44pin/Cadence/scripts/genus.tcl -log $(SYN_LOGS)/nanosoc_synth_genus.log
syn_dc:
@mkdir -p $(REPORTS_FOLDER)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment