Ahmed Ghazy | 72e52c6 | 2020-10-26 16:44:41 +0200 | [diff] [blame] | 1 | package require openlane |
| 2 | set script_dir [file dirname [file normalize [info script]]] |
Ahmed Ghazy | 72e52c6 | 2020-10-26 16:44:41 +0200 | [diff] [blame] | 3 | set save_path $script_dir/../.. |
| 4 | |
Ahmed Ghazy | a997ad9 | 2020-11-25 04:02:15 +0200 | [diff] [blame^] | 5 | # FOR LVS AND CREATING PORT LABELS |
| 6 | set ::env(USE_GPIO_ROUTING_LEF) 0 |
| 7 | prep -design $script_dir -tag chip_io_lvs -overwrite |
| 8 | |
| 9 | set ::env(SYNTH_DEFINES) "" |
| 10 | verilog_elaborate |
| 11 | init_floorplan |
| 12 | file copy -force $::env(CURRENT_DEF) $::env(TMP_DIR)/lvs.def |
| 13 | file copy -force $::env(CURRENT_NETLIST) $::env(TMP_DIR)/lvs.v |
| 14 | |
| 15 | # ACTUAL CHIP INTEGRATION |
| 16 | set ::env(USE_GPIO_ROUTING_LEF) 1 |
| 17 | prep -design $script_dir -tag chip_io -overwrite |
| 18 | |
| 19 | file copy $script_dir/runs/chip_io_lvs/tmp/merged_unpadded.lef $::env(TMP_DIR)/lvs.lef |
| 20 | file copy $script_dir/runs/chip_io_lvs/tmp/lvs.def $::env(TMP_DIR)/lvs.def |
| 21 | file copy $script_dir/runs/chip_io_lvs/tmp/lvs.v $::env(TMP_DIR)/lvs.v |
Ahmed Ghazy | ec81bd2 | 2020-11-19 16:09:08 +0200 | [diff] [blame] | 22 | |
| 23 | set ::env(SYNTH_DEFINES) "TOP_ROUTING" |
Ahmed Ghazy | 72e52c6 | 2020-10-26 16:44:41 +0200 | [diff] [blame] | 24 | verilog_elaborate |
| 25 | |
| 26 | init_floorplan |
| 27 | |
Ahmed Ghazy | a997ad9 | 2020-11-25 04:02:15 +0200 | [diff] [blame^] | 28 | puts_info "Generating pad frame" |
Ahmed Ghazy | 72e52c6 | 2020-10-26 16:44:41 +0200 | [diff] [blame] | 29 | exec -ignorestderr python3 $::env(SCRIPTS_DIR)/padringer.py\ |
| 30 | --def-netlist $::env(CURRENT_DEF)\ |
| 31 | --design $::env(DESIGN_NAME)\ |
| 32 | --lefs $::env(TECH_LEF) {*}$::env(GPIO_PADS_LEF)\ |
| 33 | -cfg $script_dir/padframe.cfg\ |
| 34 | --working-dir $::env(TMP_DIR)\ |
| 35 | -o $::env(RESULTS_DIR)/floorplan/padframe.def |
Ahmed Ghazy | a997ad9 | 2020-11-25 04:02:15 +0200 | [diff] [blame^] | 36 | puts_info "Generated pad frame" |
Ahmed Ghazy | 72e52c6 | 2020-10-26 16:44:41 +0200 | [diff] [blame] | 37 | |
| 38 | set_def $::env(RESULTS_DIR)/floorplan/padframe.def |
| 39 | |
Ahmed Ghazy | ec81bd2 | 2020-11-19 16:09:08 +0200 | [diff] [blame] | 40 | # modify to a different file |
| 41 | remove_pins -input $::env(CURRENT_DEF) |
Ahmed Ghazy | ec81bd2 | 2020-11-19 16:09:08 +0200 | [diff] [blame] | 42 | remove_empty_nets -input $::env(CURRENT_DEF) |
| 43 | |
| 44 | add_macro_obs \ |
| 45 | -defFile $::env(CURRENT_DEF) \ |
| 46 | -lefFile $::env(MERGED_LEF_UNPADDED) \ |
| 47 | -obstruction core_obs \ |
Ahmed Ghazy | a997ad9 | 2020-11-25 04:02:15 +0200 | [diff] [blame^] | 48 | -placementX 230 \ |
| 49 | -placementY 240 \ |
| 50 | -sizeWidth 3132 \ |
| 51 | -sizeHeight 4710 \ |
Ahmed Ghazy | ec81bd2 | 2020-11-19 16:09:08 +0200 | [diff] [blame] | 52 | -fixed 1 \ |
| 53 | -layerNames "met1 met2 met3 met4 met5" |
| 54 | |
Ahmed Ghazy | ec81bd2 | 2020-11-19 16:09:08 +0200 | [diff] [blame] | 55 | li1_hack_start |
| 56 | global_routing |
| 57 | detailed_routing |
| 58 | li1_hack_end |
| 59 | |
Ahmed Ghazy | a997ad9 | 2020-11-25 04:02:15 +0200 | [diff] [blame^] | 60 | label_macro_pins\ |
| 61 | -lef $::env(TMP_DIR)/lvs.lef\ |
| 62 | -netlist_def $::env(TMP_DIR)/lvs.def\ |
| 63 | -pad_pin_name "PAD"\ |
| 64 | -extra_args {-v\ |
| 65 | --map mgmt_vdda_hvclamp_pad VDDA vdda INOUT\ |
| 66 | --map user1_vdda_hvclamp_pad\\\[0\\] VDDA vdda1 INOUT\ |
| 67 | --map user2_vdda_hvclamp_pad VDDA vdda2 INOUT\ |
| 68 | --map mgmt_vssa_hvclamp_pad VSSA vssa INOUT\ |
| 69 | --map user1_vssa_hvclamp_pad\\\[0\\] VSSA vssa1 INOUT\ |
| 70 | --map user2_vssa_hvclamp_pad VSSA vssa2 INOUT\ |
| 71 | --map mgmt_vccd_lvclamp_pad VCCD vccd INOUT\ |
| 72 | --map user1_vccd_lvclamp_pad VCCD vccd1 INOUT\ |
| 73 | --map user2_vccd_lvclamp_pad VCCD vccd2 INOUT\ |
| 74 | --map mgmt_vssd_lvclmap_pad VSSD vssd INOUT\ |
| 75 | --map user1_vssd_lvclmap_pad VSSD vssd1 INOUT\ |
| 76 | --map user2_vssd_lvclmap_pad VSSD vssd2 INOUT\ |
| 77 | --map mgmt_vddio_hvclamp_pad\\\[0\\] VDDIO vddio INOUT\ |
| 78 | --map mgmt_vssio_hvclamp_pad\\\[0\\] VSSIO vssio INOUT} |
Ahmed Ghazy | ec81bd2 | 2020-11-19 16:09:08 +0200 | [diff] [blame] | 79 | |
Ahmed Ghazy | 72e52c6 | 2020-10-26 16:44:41 +0200 | [diff] [blame] | 80 | |
| 81 | run_magic |
| 82 | |
Ahmed Ghazy | ec81bd2 | 2020-11-19 16:09:08 +0200 | [diff] [blame] | 83 | # run_magic_drc |
Ahmed Ghazy | 72e52c6 | 2020-10-26 16:44:41 +0200 | [diff] [blame] | 84 | |
| 85 | save_views -lef_path $::env(magic_result_file_tag).lef \ |
| 86 | -def_path $::env(CURRENT_DEF) \ |
| 87 | -gds_path $::env(magic_result_file_tag).gds \ |
| 88 | -mag_path $::env(magic_result_file_tag).mag \ |
| 89 | -save_path $save_path \ |
| 90 | -tag $::env(RUN_TAG) |
| 91 | |
| 92 | |
Ahmed Ghazy | a997ad9 | 2020-11-25 04:02:15 +0200 | [diff] [blame^] | 93 | run_magic_spice_export |
| 94 | run_lvs $::env(magic_result_file_tag).spice $::env(TMP_DIR)/lvs.v |