mirror of https://github.com/efabless/caravel.git
Merge remote-tracking branch 'origin/caravel_redesign' into dirs_cleanup
This commit is contained in:
commit
3cdacf2fef
47133
def/caravel.def
47133
def/caravel.def
File diff suppressed because it is too large
Load Diff
Binary file not shown.
148931
mag/caravel.mag
148931
mag/caravel.mag
File diff suppressed because it is too large
Load Diff
|
@ -27,7 +27,7 @@ openlane_cmd = \
|
||||||
-design $$(realpath ./$*) \
|
-design $$(realpath ./$*) \
|
||||||
-save_path $$(realpath ..) \
|
-save_path $$(realpath ..) \
|
||||||
-save \
|
-save \
|
||||||
-OPENLANE_RUN_TAG $(OPENLAN_RUN_TAG) \
|
-tag $(OPENLANE_RUN_TAG) \
|
||||||
-verbose 1 \
|
-verbose 1 \
|
||||||
-overwrite"
|
-overwrite"
|
||||||
openlane_cmd_interactive = "flow.tcl -ignore_mismatches -it -file $$(realpath ./$*/$(IT_SCRIPT))"
|
openlane_cmd_interactive = "flow.tcl -ignore_mismatches -it -file $$(realpath ./$*/$(IT_SCRIPT))"
|
||||||
|
|
|
@ -26,6 +26,9 @@ prep -design $SCRIPT_DIR -tag caravel_lvs -overwrite --verbose 2
|
||||||
|
|
||||||
set ::env(SYNTH_DEFINES) "USE_POWER_PINS"
|
set ::env(SYNTH_DEFINES) "USE_POWER_PINS"
|
||||||
verilog_elaborate
|
verilog_elaborate
|
||||||
|
set ::env(CURRENT_SDC) $::env(BASE_SDC_FILE)
|
||||||
|
init_floorplan
|
||||||
|
file copy -force $::env(CURRENT_DEF) $::env(TMP_DIR)/lvs.def
|
||||||
file copy -force $::env(CURRENT_NETLIST) $::env(TMP_DIR)/lvs.v
|
file copy -force $::env(CURRENT_NETLIST) $::env(TMP_DIR)/lvs.v
|
||||||
|
|
||||||
prep -ignore_mismatches -design $SCRIPT_DIR -tag $::env(OPENLANE_RUN_TAG) -overwrite -verbose 2
|
prep -ignore_mismatches -design $SCRIPT_DIR -tag $::env(OPENLANE_RUN_TAG) -overwrite -verbose 2
|
||||||
|
@ -38,6 +41,9 @@ exec rm -rf $SCRIPT_DIR/runs/caravel
|
||||||
exec ln -sf $SCRIPT_DIR/runs/$::env(OPENLANE_RUN_TAG) $SCRIPT_DIR/runs/caravel
|
exec ln -sf $SCRIPT_DIR/runs/$::env(OPENLANE_RUN_TAG) $SCRIPT_DIR/runs/caravel
|
||||||
|
|
||||||
file copy -force $::env(CARAVEL_ROOT)/openlane/caravel/runs/caravel_lvs/tmp/lvs.v $::env(RUN_DIR)/caravel.v
|
file copy -force $::env(CARAVEL_ROOT)/openlane/caravel/runs/caravel_lvs/tmp/lvs.v $::env(RUN_DIR)/caravel.v
|
||||||
|
file copy -force $::env(CARAVEL_ROOT)/openlane/caravel/runs/caravel_lvs/tmp/lvs.def $::env(RUN_DIR)/lvs.def
|
||||||
|
file copy $::env(CARAVEL_ROOT)/openlane/caravel/runs/caravel_lvs/tmp/merged_unpadded.lef $::env(RUN_DIR)/lvs.lef
|
||||||
|
|
||||||
|
|
||||||
set ::env(SYNTH_DEFINES) "TOP_ROUTING"
|
set ::env(SYNTH_DEFINES) "TOP_ROUTING"
|
||||||
verilog_elaborate
|
verilog_elaborate
|
||||||
|
@ -229,18 +235,10 @@ global_routing
|
||||||
detailed_routing
|
detailed_routing
|
||||||
li1_hack_end
|
li1_hack_end
|
||||||
remove_component -input $::env(CURRENT_DEF) -instance_name obs_li1
|
remove_component -input $::env(CURRENT_DEF) -instance_name obs_li1
|
||||||
run_magic
|
|
||||||
save_views -def_path $::env(CURRENT_DEF) \
|
|
||||||
-gds_path $::env(magic_result_file_tag).gds \
|
|
||||||
-mag_path $::env(magic_result_file_tag).mag \
|
|
||||||
-verilog_path $::env(RUN_DIR)/caravel.v \
|
|
||||||
-save_path $save_path \
|
|
||||||
-tag caravel
|
|
||||||
exit
|
|
||||||
|
|
||||||
label_macro_pins\
|
label_macro_pins\
|
||||||
-lef $::env(TMP_DIR)/lvs.lef\
|
-lef $::env(RUN_DIR)/lvs.lef\
|
||||||
-netlist_def $::env(TMP_DIR)/lvs.def
|
-netlist_def $::env(RUN_DIR)/lvs.def
|
||||||
# -extra_args {-v\
|
# -extra_args {-v\
|
||||||
# --map padframe vddio vddio INOUT\
|
# --map padframe vddio vddio INOUT\
|
||||||
# --map padframe vssio vssio INOUT\
|
# --map padframe vssio vssio INOUT\
|
||||||
|
@ -248,7 +246,15 @@ label_macro_pins\
|
||||||
# --map padframe vccd vccd INOUT\
|
# --map padframe vccd vccd INOUT\
|
||||||
# --map padframe vssd vssd INOUT}
|
# --map padframe vssd vssd INOUT}
|
||||||
|
|
||||||
|
save_views -def_path $::env(CURRENT_DEF) \
|
||||||
|
-gds_path $::env(magic_result_file_tag).gds \
|
||||||
|
-mag_path $::env(magic_result_file_tag).mag \
|
||||||
|
-verilog_path $::env(RUN_DIR)/caravel.v \
|
||||||
|
-save_path $save_path \
|
||||||
|
-tag caravel
|
||||||
|
|
||||||
run_magic
|
run_magic
|
||||||
|
exit
|
||||||
|
|
||||||
run_magic_spice_export
|
run_magic_spice_export
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,46 @@
|
||||||
|
# Caravel Automation scripts
|
||||||
|
|
||||||
|
## Dependencies
|
||||||
|
- [Magic](https://github.com/RTimothyEdwards/magic)
|
||||||
|
- [Klayout](https://github.com/KLayout/klayout)
|
||||||
|
- [Netgen](https://github.com/RTimothyEdwards/netgen)
|
||||||
|
|
||||||
|
## How to run
|
||||||
|
````
|
||||||
|
export CARAVEL_ROOT=<caravel path>
|
||||||
|
export MCW_ROOT=<mgmt core path>
|
||||||
|
export PDK_ROOT=<path to pdk>
|
||||||
|
export PDK=<sky130A/B>
|
||||||
|
|
||||||
|
python3 signoff_automation.py [-options]
|
||||||
|
|
||||||
|
usage: signoff_automation.py [-h] [-d] [-l] [-v] [-rtl] [-gl] [-sdf] [-iv] [-sta] [-a]
|
||||||
|
|
||||||
|
optional arguments:
|
||||||
|
|
||||||
|
-h, --help show this help message and exit
|
||||||
|
|
||||||
|
-d, --drc_check run drc check
|
||||||
|
|
||||||
|
-l, --lvs_check run lvs check
|
||||||
|
|
||||||
|
-v, --verification run verification
|
||||||
|
|
||||||
|
-rtl, --rtl run rtl verification
|
||||||
|
|
||||||
|
-gl, --gl run gl verification
|
||||||
|
|
||||||
|
-sdf, --sdf run sdf verification
|
||||||
|
|
||||||
|
-iv, --iverilog run verification using iverilog
|
||||||
|
|
||||||
|
-sta, --primetime_sta
|
||||||
|
run verification using iverilog
|
||||||
|
|
||||||
|
-a, --all run all checks
|
||||||
|
````
|
||||||
|
|
||||||
|
## Reports and logs
|
||||||
|
|
||||||
|
Reports can be found `$CARAVEL_ROOT/signoff/<design_name>/`
|
||||||
|
Logs can be found at `$CARAVEL_ROOT/scripts/logs/`
|
|
@ -45,168 +45,179 @@ if {$::env(PROC_CORNER) == "t"} {
|
||||||
# TODO: get chip io netlist instead of reading the RTL
|
# TODO: get chip io netlist instead of reading the RTL
|
||||||
set search_path "$::env(CARAVEL_ROOT)/verilog/gl $::env(MCW_ROOT)/verilog/gl $::env(PT_LIB_ROOT)"
|
set search_path "$::env(CARAVEL_ROOT)/verilog/gl $::env(MCW_ROOT)/verilog/gl $::env(PT_LIB_ROOT)"
|
||||||
foreach verilog "[glob $::env(CARAVEL_ROOT)/verilog/gl/*.v] [glob $::env(MCW_ROOT)/verilog/gl/*.v]" {
|
foreach verilog "[glob $::env(CARAVEL_ROOT)/verilog/gl/*.v] [glob $::env(MCW_ROOT)/verilog/gl/*.v]" {
|
||||||
if {$verilog != "$::env(CARAVEL_ROOT)/verilog/gl/chip_io.v"} {
|
|
||||||
read_verilog $verilog
|
read_verilog $verilog
|
||||||
}
|
|
||||||
}
|
}
|
||||||
read_verilog $::env(CARAVEL_ROOT)/verilog/rtl/defines.v
|
|
||||||
read_verilog $::env(CARAVEL_ROOT)/verilog/rtl/mprj_io.v
|
|
||||||
read_verilog $::env(CARAVEL_ROOT)/verilog/rtl/chip_io.v
|
|
||||||
|
|
||||||
current_design $::env(DESIGN)
|
current_design $::env(DESIGN)
|
||||||
link
|
link
|
||||||
|
|
||||||
# Reading constraints (signoff)
|
# Reading constraints (signoff)
|
||||||
if {$::env(DESIGN) == "mgmt_core_wrapper"} {
|
if {$::env(DESIGN) == "mgmt_core_wrapper" | $::env(DESIGN) == "RAM256" | $::env(DESIGN) == "RAM128"} {
|
||||||
read_sdc $::env(MCW_ROOT)/openlane/$::env(DESIGN)/signoff.sdc
|
read_sdc $::env(MCW_ROOT)/sdc/$::env(DESIGN).sdc
|
||||||
} else {
|
} else {
|
||||||
read_sdc $::env(CARAVEL_ROOT)/openlane/$::env(DESIGN)/signoff.sdc
|
read_sdc $::env(CARAVEL_ROOT)/sdc/$::env(DESIGN).sdc
|
||||||
}
|
}
|
||||||
|
|
||||||
# Reading parasitics based on the RC corner specified
|
# Reading parasitics based on the RC corner specified
|
||||||
proc read_spefs {design rc_corner} {
|
proc read_spefs {design rc_corner} {
|
||||||
set spef_mapping(rstb_level) $::env(CARAVEL_ROOT)/spef/multicorner/xres_buf.${rc_corner}.spef
|
if {$design == "caravel"} {
|
||||||
set spef_mapping(padframe) $::env(CARAVEL_ROOT)/spef/multicorner/chip_io.${rc_corner}.spef
|
set spef_mapping(rstb_level) $::env(CARAVEL_ROOT)/spef/xres_buf/xres_buf.${rc_corner}.spef
|
||||||
set spef_mapping(housekeeping) $::env(CARAVEL_ROOT)/spef/multicorner/housekeeping.${rc_corner}.spef
|
set spef_mapping(padframe) $::env(CARAVEL_ROOT)/spef/chip_io/chip_io.${rc_corner}.spef
|
||||||
set spef_mapping(pll) $::env(CARAVEL_ROOT)/spef/multicorner/digital_pll.${rc_corner}.spef
|
set spef_mapping(padframe/\constant_value_inst[0]) $::env(CARAVEL_ROOT)/spef/constant_block/constant_block.${rc_corner}.spef
|
||||||
set spef_mapping(clock_ctrl) $::env(CARAVEL_ROOT)/spef/multicorner/caravel_clocking.${rc_corner}.spef
|
set spef_mapping(padframe/\constant_value_inst[1]) $::env(CARAVEL_ROOT)/spef/constant_block/constant_block.${rc_corner}.spef
|
||||||
set spef_mapping(mgmt_buffers) $::env(CARAVEL_ROOT)/spef/multicorner/mgmt_protect.${rc_corner}.spef
|
set spef_mapping(padframe/\constant_value_inst[2]) $::env(CARAVEL_ROOT)/spef/constant_block/constant_block.${rc_corner}.spef
|
||||||
set spef_mapping(mgmt_buffers/powergood_check) $::env(CARAVEL_ROOT)/spef/multicorner/mgmt_protect_hv.${rc_corner}.spef
|
set spef_mapping(padframe/\constant_value_inst[3]) $::env(CARAVEL_ROOT)/spef/constant_block/constant_block.${rc_corner}.spef
|
||||||
set spef_mapping(powergood_check) $::env(CARAVEL_ROOT)/spef/multicorner/mgmt_protect_hv.${rc_corner}.spef
|
set spef_mapping(padframe/\constant_value_inst[4]) $::env(CARAVEL_ROOT)/spef/constant_block/constant_block.${rc_corner}.spef
|
||||||
set spef_mapping(mgmt_buffers/mprj_logic_high_inst) $::env(CARAVEL_ROOT)/spef/multicorner/mprj_logic_high.${rc_corner}.spef
|
set spef_mapping(padframe/\constant_value_inst[5]) $::env(CARAVEL_ROOT)/spef/constant_block/constant_block.${rc_corner}.spef
|
||||||
set spef_mapping(mprj_logic_high_inst) $::env(CARAVEL_ROOT)/spef/multicorner/mprj_logic_high.${rc_corner}.spef
|
set spef_mapping(padframe/\constant_value_inst[6]) $::env(CARAVEL_ROOT)/spef/constant_block/constant_block.${rc_corner}.spef
|
||||||
set spef_mapping(mgmt_buffers/mprj2_logic_high_inst) $::env(CARAVEL_ROOT)/spef/multicorner/mprj2_logic_high.${rc_corner}.spef
|
|
||||||
set spef_mapping(mprj2_logic_high_inst) $::env(CARAVEL_ROOT)/spef/multicorner/mprj2_logic_high.${rc_corner}.spef
|
|
||||||
set spef_mapping(soc) $::env(MCW_ROOT)/spef/multicorner/mgmt_core_wrapper.${rc_corner}.spef
|
|
||||||
set spef_mapping(soc/\core.DFFRAM) $::env(MCW_ROOT)/spef/multicorner/DFFRAM.${rc_corner}.spef
|
|
||||||
set spef_mapping(\core.DFFRAM) $::env(MCW_ROOT)/spef/multicorner/DFFRAM.${rc_corner}.spef
|
|
||||||
set spef_mapping(soc/\core.DFFRAM_512) $::env(MCW_ROOT)/spef/multicorner/DFFRAM_512.${rc_corner}.spef
|
|
||||||
set spef_mapping(\core.DFFRAM_512) $::env(MCW_ROOT)/spef/multicorner/DFFRAM_512.${rc_corner}.spef
|
|
||||||
|
|
||||||
set spef_mapping(gpio_logic_high) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_logic_high.${rc_corner}.spef
|
set spef_mapping(housekeeping) $::env(CARAVEL_ROOT)/spef/housekeeping/housekeeping.${rc_corner}.spef
|
||||||
set spef_mapping(\gpio_control_bidir_1[0]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_logic_high.${rc_corner}.spef
|
set spef_mapping(pll) $::env(CARAVEL_ROOT)/spef/digital_pll/digital_pll.${rc_corner}.spef
|
||||||
set spef_mapping(\gpio_control_bidir_1[1]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_logic_high.${rc_corner}.spef
|
set spef_mapping(clock_ctrl) $::env(CARAVEL_ROOT)/spef/caravel_clocking/caravel_clocking.${rc_corner}.spef
|
||||||
set spef_mapping(\gpio_control_bidir_2[0]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_logic_high.${rc_corner}.spef
|
set spef_mapping(mgmt_buffers) $::env(CARAVEL_ROOT)/spef/mgmt_protect/mgmt_protect.${rc_corner}.spef
|
||||||
set spef_mapping(\gpio_control_bidir_2[1]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_logic_high.${rc_corner}.spef
|
set spef_mapping(mgmt_buffers/powergood_check) $::env(CARAVEL_ROOT)/spef/mgmt_protect_hv/mgmt_protect_hv.${rc_corner}.spef
|
||||||
set spef_mapping(\gpio_control_bidir_2[2]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_logic_high.${rc_corner}.spef
|
set spef_mapping(mgmt_buffers/mprj_logic_high_inst) $::env(CARAVEL_ROOT)/spef/mprj_logic_high/mprj_logic_high.${rc_corner}.spef
|
||||||
set spef_mapping(\gpio_control_in_1[0]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_logic_high.${rc_corner}.spef
|
set spef_mapping(mgmt_buffers/mprj2_logic_high_inst) $::env(CARAVEL_ROOT)/spef/mprj2_logic_high/mprj2_logic_high.${rc_corner}.spef
|
||||||
set spef_mapping(\gpio_control_in_1[10]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_logic_high.${rc_corner}.spef
|
|
||||||
set spef_mapping(\gpio_control_in_1[1]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_logic_high.${rc_corner}.spef
|
|
||||||
set spef_mapping(\gpio_control_in_1[2]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_logic_high.${rc_corner}.spef
|
|
||||||
set spef_mapping(\gpio_control_in_1[3]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_logic_high.${rc_corner}.spef
|
|
||||||
set spef_mapping(\gpio_control_in_1[4]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_logic_high.${rc_corner}.spef
|
|
||||||
set spef_mapping(\gpio_control_in_1[5]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_logic_high.${rc_corner}.spef
|
|
||||||
set spef_mapping(\gpio_control_in_1[6]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_logic_high.${rc_corner}.spef
|
|
||||||
set spef_mapping(\gpio_control_in_1[7]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_logic_high.${rc_corner}.spef
|
|
||||||
set spef_mapping(\gpio_control_in_1[8]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_logic_high.${rc_corner}.spef
|
|
||||||
set spef_mapping(\gpio_control_in_1[9]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_logic_high.${rc_corner}.spef
|
|
||||||
set spef_mapping(\gpio_control_in_1a[0]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_logic_high.${rc_corner}.spef
|
|
||||||
set spef_mapping(\gpio_control_in_1a[1]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_logic_high.${rc_corner}.spef
|
|
||||||
set spef_mapping(\gpio_control_in_1a[2]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_logic_high.${rc_corner}.spef
|
|
||||||
set spef_mapping(\gpio_control_in_1a[3]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_logic_high.${rc_corner}.spef
|
|
||||||
set spef_mapping(\gpio_control_in_1a[4]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_logic_high.${rc_corner}.spef
|
|
||||||
set spef_mapping(\gpio_control_in_1a[5]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_logic_high.${rc_corner}.spef
|
|
||||||
set spef_mapping(\gpio_control_in_2[0]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_logic_high.${rc_corner}.spef
|
|
||||||
set spef_mapping(\gpio_control_in_2[10]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_logic_high.${rc_corner}.spef
|
|
||||||
set spef_mapping(\gpio_control_in_2[11]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_logic_high.${rc_corner}.spef
|
|
||||||
set spef_mapping(\gpio_control_in_2[12]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_logic_high.${rc_corner}.spef
|
|
||||||
set spef_mapping(\gpio_control_in_2[13]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_logic_high.${rc_corner}.spef
|
|
||||||
set spef_mapping(\gpio_control_in_2[14]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_logic_high.${rc_corner}.spef
|
|
||||||
set spef_mapping(\gpio_control_in_2[15]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_logic_high.${rc_corner}.spef
|
|
||||||
set spef_mapping(\gpio_control_in_2[1]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_logic_high.${rc_corner}.spef
|
|
||||||
set spef_mapping(\gpio_control_in_2[2]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_logic_high.${rc_corner}.spef
|
|
||||||
set spef_mapping(\gpio_control_in_2[3]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_logic_high.${rc_corner}.spef
|
|
||||||
set spef_mapping(\gpio_control_in_2[4]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_logic_high.${rc_corner}.spef
|
|
||||||
set spef_mapping(\gpio_control_in_2[5]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_logic_high.${rc_corner}.spef
|
|
||||||
set spef_mapping(\gpio_control_in_2[6]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_logic_high.${rc_corner}.spef
|
|
||||||
set spef_mapping(\gpio_control_in_2[7]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_logic_high.${rc_corner}.spef
|
|
||||||
set spef_mapping(\gpio_control_in_2[8]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_logic_high.${rc_corner}.spef
|
|
||||||
set spef_mapping(\gpio_control_in_2[9]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_logic_high.${rc_corner}.spef
|
|
||||||
|
|
||||||
set spef_mapping(gpio_defaults_block_0) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_defaults_block_1803.${rc_corner}.spef
|
set spef_mapping(soc) $::env(MCW_ROOT)/spef/mgmt_core_wrapper/mgmt_core_wrapper.${rc_corner}.spef
|
||||||
set spef_mapping(gpio_defaults_block_1) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_defaults_block_1803.${rc_corner}.spef
|
set spef_mapping(soc/\core.RAM256) $::env(MCW_ROOT)/spef/RAM256/RAM256.${rc_corner}.spef
|
||||||
set spef_mapping(gpio_defaults_block_10) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_defaults_block_0403.${rc_corner}.spef
|
set spef_mapping(soc/\core.RAM128) $::env(MCW_ROOT)/spef/RAM128/RAM128.${rc_corner}.spef
|
||||||
set spef_mapping(gpio_defaults_block_10) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_defaults_block_0403.${rc_corner}.spef
|
|
||||||
set spef_mapping(gpio_defaults_block_11) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_defaults_block_0403.${rc_corner}.spef
|
set spef_mapping(\gpio_control_bidir_1[0]) $::env(CARAVEL_ROOT)/spef/gpio_control_block/gpio_control_block.${rc_corner}.spef
|
||||||
set spef_mapping(gpio_defaults_block_12) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_defaults_block_0403.${rc_corner}.spef
|
set spef_mapping(\gpio_control_bidir_1[1]) $::env(CARAVEL_ROOT)/spef/gpio_control_block/gpio_control_block.${rc_corner}.spef
|
||||||
set spef_mapping(gpio_defaults_block_13) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_defaults_block_0403.${rc_corner}.spef
|
set spef_mapping(\gpio_control_bidir_2[0]) $::env(CARAVEL_ROOT)/spef/gpio_control_block/gpio_control_block.${rc_corner}.spef
|
||||||
set spef_mapping(gpio_defaults_block_14) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_defaults_block_0403.${rc_corner}.spef
|
set spef_mapping(\gpio_control_bidir_2[1]) $::env(CARAVEL_ROOT)/spef/gpio_control_block/gpio_control_block.${rc_corner}.spef
|
||||||
set spef_mapping(gpio_defaults_block_15) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_defaults_block_0403.${rc_corner}.spef
|
set spef_mapping(\gpio_control_bidir_2[2]) $::env(CARAVEL_ROOT)/spef/gpio_control_block/gpio_control_block.${rc_corner}.spef
|
||||||
set spef_mapping(gpio_defaults_block_16) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_defaults_block_0403.${rc_corner}.spef
|
set spef_mapping(\gpio_control_in_1[0]) $::env(CARAVEL_ROOT)/spef/gpio_control_block/gpio_control_block.${rc_corner}.spef
|
||||||
set spef_mapping(gpio_defaults_block_17) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_defaults_block_0403.${rc_corner}.spef
|
set spef_mapping(\gpio_control_in_1[10]) $::env(CARAVEL_ROOT)/spef/gpio_control_block/gpio_control_block.${rc_corner}.spef
|
||||||
set spef_mapping(gpio_defaults_block_18) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_defaults_block_0403.${rc_corner}.spef
|
set spef_mapping(\gpio_control_in_1[1]) $::env(CARAVEL_ROOT)/spef/gpio_control_block/gpio_control_block.${rc_corner}.spef
|
||||||
set spef_mapping(gpio_defaults_block_19) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_defaults_block_0403.${rc_corner}.spef
|
set spef_mapping(\gpio_control_in_1[2]) $::env(CARAVEL_ROOT)/spef/gpio_control_block/gpio_control_block.${rc_corner}.spef
|
||||||
set spef_mapping(gpio_defaults_block_2) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_defaults_block_0403.${rc_corner}.spef
|
set spef_mapping(\gpio_control_in_1[3]) $::env(CARAVEL_ROOT)/spef/gpio_control_block/gpio_control_block.${rc_corner}.spef
|
||||||
set spef_mapping(gpio_defaults_block_20) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_defaults_block_0403.${rc_corner}.spef
|
set spef_mapping(\gpio_control_in_1[4]) $::env(CARAVEL_ROOT)/spef/gpio_control_block/gpio_control_block.${rc_corner}.spef
|
||||||
set spef_mapping(gpio_defaults_block_21) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_defaults_block_0403.${rc_corner}.spef
|
set spef_mapping(\gpio_control_in_1[5]) $::env(CARAVEL_ROOT)/spef/gpio_control_block/gpio_control_block.${rc_corner}.spef
|
||||||
set spef_mapping(gpio_defaults_block_22) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_defaults_block_0403.${rc_corner}.spef
|
set spef_mapping(\gpio_control_in_1[6]) $::env(CARAVEL_ROOT)/spef/gpio_control_block/gpio_control_block.${rc_corner}.spef
|
||||||
set spef_mapping(gpio_defaults_block_23) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_defaults_block_0403.${rc_corner}.spef
|
set spef_mapping(\gpio_control_in_1[7]) $::env(CARAVEL_ROOT)/spef/gpio_control_block/gpio_control_block.${rc_corner}.spef
|
||||||
set spef_mapping(gpio_defaults_block_24) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_defaults_block_0403.${rc_corner}.spef
|
set spef_mapping(\gpio_control_in_1[8]) $::env(CARAVEL_ROOT)/spef/gpio_control_block/gpio_control_block.${rc_corner}.spef
|
||||||
set spef_mapping(gpio_defaults_block_25) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_defaults_block_0403.${rc_corner}.spef
|
set spef_mapping(\gpio_control_in_1[9]) $::env(CARAVEL_ROOT)/spef/gpio_control_block/gpio_control_block.${rc_corner}.spef
|
||||||
set spef_mapping(gpio_defaults_block_26) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_defaults_block_0403.${rc_corner}.spef
|
set spef_mapping(\gpio_control_in_1a[0]) $::env(CARAVEL_ROOT)/spef/gpio_control_block/gpio_control_block.${rc_corner}.spef
|
||||||
set spef_mapping(gpio_defaults_block_27) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_defaults_block_0403.${rc_corner}.spef
|
set spef_mapping(\gpio_control_in_1a[1]) $::env(CARAVEL_ROOT)/spef/gpio_control_block/gpio_control_block.${rc_corner}.spef
|
||||||
set spef_mapping(gpio_defaults_block_28) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_defaults_block_0403.${rc_corner}.spef
|
set spef_mapping(\gpio_control_in_1a[2]) $::env(CARAVEL_ROOT)/spef/gpio_control_block/gpio_control_block.${rc_corner}.spef
|
||||||
set spef_mapping(gpio_defaults_block_29) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_defaults_block_0403.${rc_corner}.spef
|
set spef_mapping(\gpio_control_in_1a[3]) $::env(CARAVEL_ROOT)/spef/gpio_control_block/gpio_control_block.${rc_corner}.spef
|
||||||
set spef_mapping(gpio_defaults_block_3) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_defaults_block.${rc_corner}.spef
|
set spef_mapping(\gpio_control_in_1a[4]) $::env(CARAVEL_ROOT)/spef/gpio_control_block/gpio_control_block.${rc_corner}.spef
|
||||||
set spef_mapping(gpio_defaults_block_30) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_defaults_block_0403.${rc_corner}.spef
|
set spef_mapping(\gpio_control_in_1a[5]) $::env(CARAVEL_ROOT)/spef/gpio_control_block/gpio_control_block.${rc_corner}.spef
|
||||||
set spef_mapping(gpio_defaults_block_31) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_defaults_block_0403.${rc_corner}.spef
|
set spef_mapping(\gpio_control_in_2[0]) $::env(CARAVEL_ROOT)/spef/gpio_control_block/gpio_control_block.${rc_corner}.spef
|
||||||
set spef_mapping(gpio_defaults_block_32) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_defaults_block_0403.${rc_corner}.spef
|
set spef_mapping(\gpio_control_in_2[10]) $::env(CARAVEL_ROOT)/spef/gpio_control_block/gpio_control_block.${rc_corner}.spef
|
||||||
set spef_mapping(gpio_defaults_block_33) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_defaults_block_0403.${rc_corner}.spef
|
set spef_mapping(\gpio_control_in_2[11]) $::env(CARAVEL_ROOT)/spef/gpio_control_block/gpio_control_block.${rc_corner}.spef
|
||||||
set spef_mapping(gpio_defaults_block_35) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_defaults_block_0403.${rc_corner}.spef
|
set spef_mapping(\gpio_control_in_2[12]) $::env(CARAVEL_ROOT)/spef/gpio_control_block/gpio_control_block.${rc_corner}.spef
|
||||||
set spef_mapping(gpio_defaults_block_36) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_defaults_block_0403.${rc_corner}.spef
|
set spef_mapping(\gpio_control_in_2[13]) $::env(CARAVEL_ROOT)/spef/gpio_control_block/gpio_control_block.${rc_corner}.spef
|
||||||
set spef_mapping(gpio_defaults_block_37) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_defaults_block_0403.${rc_corner}.spef
|
set spef_mapping(\gpio_control_in_2[14]) $::env(CARAVEL_ROOT)/spef/gpio_control_block/gpio_control_block.${rc_corner}.spef
|
||||||
set spef_mapping(gpio_defaults_block_4) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_defaults_block_0403.${rc_corner}.spef
|
set spef_mapping(\gpio_control_in_2[15]) $::env(CARAVEL_ROOT)/spef/gpio_control_block/gpio_control_block.${rc_corner}.spef
|
||||||
set spef_mapping(gpio_defaults_block_5) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_defaults_block_0403.${rc_corner}.spef
|
set spef_mapping(\gpio_control_in_2[1]) $::env(CARAVEL_ROOT)/spef/gpio_control_block/gpio_control_block.${rc_corner}.spef
|
||||||
set spef_mapping(gpio_defaults_block_6) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_defaults_block_0403.${rc_corner}.spef
|
set spef_mapping(\gpio_control_in_2[2]) $::env(CARAVEL_ROOT)/spef/gpio_control_block/gpio_control_block.${rc_corner}.spef
|
||||||
set spef_mapping(gpio_defaults_block_7) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_defaults_block_0403.${rc_corner}.spef
|
set spef_mapping(\gpio_control_in_2[3]) $::env(CARAVEL_ROOT)/spef/gpio_control_block/gpio_control_block.${rc_corner}.spef
|
||||||
set spef_mapping(gpio_defaults_block_8) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_defaults_block_0403.${rc_corner}.spef
|
set spef_mapping(\gpio_control_in_2[4]) $::env(CARAVEL_ROOT)/spef/gpio_control_block/gpio_control_block.${rc_corner}.spef
|
||||||
set spef_mapping(gpio_defaults_block_9) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_defaults_block_0403.${rc_corner}.spef
|
set spef_mapping(\gpio_control_in_2[5]) $::env(CARAVEL_ROOT)/spef/gpio_control_block/gpio_control_block.${rc_corner}.spef
|
||||||
set spef_mapping(\gpio_control_bidir_1[0]) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_control_block.${rc_corner}.spef
|
set spef_mapping(\gpio_control_in_2[6]) $::env(CARAVEL_ROOT)/spef/gpio_control_block/gpio_control_block.${rc_corner}.spef
|
||||||
set spef_mapping(\gpio_control_bidir_1[1]) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_control_block.${rc_corner}.spef
|
set spef_mapping(\gpio_control_in_2[7]) $::env(CARAVEL_ROOT)/spef/gpio_control_block/gpio_control_block.${rc_corner}.spef
|
||||||
set spef_mapping(\gpio_control_bidir_2[0]) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_control_block.${rc_corner}.spef
|
set spef_mapping(\gpio_control_in_2[8]) $::env(CARAVEL_ROOT)/spef/gpio_control_block/gpio_control_block.${rc_corner}.spef
|
||||||
set spef_mapping(\gpio_control_bidir_2[1]) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_control_block.${rc_corner}.spef
|
set spef_mapping(\gpio_control_in_2[9]) $::env(CARAVEL_ROOT)/spef/gpio_control_block/gpio_control_block.${rc_corner}.spef
|
||||||
set spef_mapping(\gpio_control_bidir_2[2]) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_control_block.${rc_corner}.spef
|
|
||||||
set spef_mapping(\gpio_control_in_1[0]) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_control_block.${rc_corner}.spef
|
set spef_mapping(\gpio_control_bidir_1[0]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/gpio_logic_high/gpio_logic_high.${rc_corner}.spef
|
||||||
set spef_mapping(\gpio_control_in_1[10]) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_control_block.${rc_corner}.spef
|
set spef_mapping(\gpio_control_bidir_1[1]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/gpio_logic_high/gpio_logic_high.${rc_corner}.spef
|
||||||
set spef_mapping(\gpio_control_in_1[1]) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_control_block.${rc_corner}.spef
|
set spef_mapping(\gpio_control_bidir_2[0]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/gpio_logic_high/gpio_logic_high.${rc_corner}.spef
|
||||||
set spef_mapping(\gpio_control_in_1[2]) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_control_block.${rc_corner}.spef
|
set spef_mapping(\gpio_control_bidir_2[1]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/gpio_logic_high/gpio_logic_high.${rc_corner}.spef
|
||||||
set spef_mapping(\gpio_control_in_1[3]) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_control_block.${rc_corner}.spef
|
set spef_mapping(\gpio_control_bidir_2[2]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/gpio_logic_high/gpio_logic_high.${rc_corner}.spef
|
||||||
set spef_mapping(\gpio_control_in_1[4]) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_control_block.${rc_corner}.spef
|
set spef_mapping(\gpio_control_in_1[0]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/gpio_logic_high/gpio_logic_high.${rc_corner}.spef
|
||||||
set spef_mapping(\gpio_control_in_1[5]) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_control_block.${rc_corner}.spef
|
set spef_mapping(\gpio_control_in_1[10]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/gpio_logic_high/gpio_logic_high.${rc_corner}.spef
|
||||||
set spef_mapping(\gpio_control_in_1[6]) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_control_block.${rc_corner}.spef
|
set spef_mapping(\gpio_control_in_1[1]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/gpio_logic_high/gpio_logic_high.${rc_corner}.spef
|
||||||
set spef_mapping(\gpio_control_in_1[7]) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_control_block.${rc_corner}.spef
|
set spef_mapping(\gpio_control_in_1[2]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/gpio_logic_high/gpio_logic_high.${rc_corner}.spef
|
||||||
set spef_mapping(\gpio_control_in_1[8]) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_control_block.${rc_corner}.spef
|
set spef_mapping(\gpio_control_in_1[3]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/gpio_logic_high/gpio_logic_high.${rc_corner}.spef
|
||||||
set spef_mapping(\gpio_control_in_1[9]) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_control_block.${rc_corner}.spef
|
set spef_mapping(\gpio_control_in_1[4]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/gpio_logic_high/gpio_logic_high.${rc_corner}.spef
|
||||||
set spef_mapping(\gpio_control_in_1a[0]) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_control_block.${rc_corner}.spef
|
set spef_mapping(\gpio_control_in_1[5]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/gpio_logic_high/gpio_logic_high.${rc_corner}.spef
|
||||||
set spef_mapping(\gpio_control_in_1a[1]) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_control_block.${rc_corner}.spef
|
set spef_mapping(\gpio_control_in_1[6]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/gpio_logic_high/gpio_logic_high.${rc_corner}.spef
|
||||||
set spef_mapping(\gpio_control_in_1a[2]) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_control_block.${rc_corner}.spef
|
set spef_mapping(\gpio_control_in_1[7]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/gpio_logic_high/gpio_logic_high.${rc_corner}.spef
|
||||||
set spef_mapping(\gpio_control_in_1a[3]) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_control_block.${rc_corner}.spef
|
set spef_mapping(\gpio_control_in_1[8]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/gpio_logic_high/gpio_logic_high.${rc_corner}.spef
|
||||||
set spef_mapping(\gpio_control_in_1a[4]) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_control_block.${rc_corner}.spef
|
set spef_mapping(\gpio_control_in_1[9]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/gpio_logic_high/gpio_logic_high.${rc_corner}.spef
|
||||||
set spef_mapping(\gpio_control_in_1a[5]) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_control_block.${rc_corner}.spef
|
set spef_mapping(\gpio_control_in_1a[0]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/gpio_logic_high/gpio_logic_high.${rc_corner}.spef
|
||||||
set spef_mapping(\gpio_control_in_2[0]) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_control_block.${rc_corner}.spef
|
set spef_mapping(\gpio_control_in_1a[1]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/gpio_logic_high/gpio_logic_high.${rc_corner}.spef
|
||||||
set spef_mapping(\gpio_control_in_2[10]) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_control_block.${rc_corner}.spef
|
set spef_mapping(\gpio_control_in_1a[2]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/gpio_logic_high/gpio_logic_high.${rc_corner}.spef
|
||||||
set spef_mapping(\gpio_control_in_2[11]) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_control_block.${rc_corner}.spef
|
set spef_mapping(\gpio_control_in_1a[3]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/gpio_logic_high/gpio_logic_high.${rc_corner}.spef
|
||||||
set spef_mapping(\gpio_control_in_2[12]) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_control_block.${rc_corner}.spef
|
set spef_mapping(\gpio_control_in_1a[4]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/gpio_logic_high/gpio_logic_high.${rc_corner}.spef
|
||||||
set spef_mapping(\gpio_control_in_2[13]) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_control_block.${rc_corner}.spef
|
set spef_mapping(\gpio_control_in_1a[5]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/gpio_logic_high/gpio_logic_high.${rc_corner}.spef
|
||||||
set spef_mapping(\gpio_control_in_2[14]) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_control_block.${rc_corner}.spef
|
set spef_mapping(\gpio_control_in_2[0]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/gpio_logic_high/gpio_logic_high.${rc_corner}.spef
|
||||||
set spef_mapping(\gpio_control_in_2[15]) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_control_block.${rc_corner}.spef
|
set spef_mapping(\gpio_control_in_2[10]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/gpio_logic_high/gpio_logic_high.${rc_corner}.spef
|
||||||
set spef_mapping(\gpio_control_in_2[1]) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_control_block.${rc_corner}.spef
|
set spef_mapping(\gpio_control_in_2[11]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/gpio_logic_high/gpio_logic_high.${rc_corner}.spef
|
||||||
set spef_mapping(\gpio_control_in_2[2]) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_control_block.${rc_corner}.spef
|
set spef_mapping(\gpio_control_in_2[12]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/gpio_logic_high/gpio_logic_high.${rc_corner}.spef
|
||||||
set spef_mapping(\gpio_control_in_2[3]) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_control_block.${rc_corner}.spef
|
set spef_mapping(\gpio_control_in_2[13]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/gpio_logic_high/gpio_logic_high.${rc_corner}.spef
|
||||||
set spef_mapping(\gpio_control_in_2[4]) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_control_block.${rc_corner}.spef
|
set spef_mapping(\gpio_control_in_2[14]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/gpio_logic_high/gpio_logic_high.${rc_corner}.spef
|
||||||
set spef_mapping(\gpio_control_in_2[5]) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_control_block.${rc_corner}.spef
|
set spef_mapping(\gpio_control_in_2[15]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/gpio_logic_high/gpio_logic_high.${rc_corner}.spef
|
||||||
set spef_mapping(\gpio_control_in_2[6]) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_control_block.${rc_corner}.spef
|
set spef_mapping(\gpio_control_in_2[1]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/gpio_logic_high/gpio_logic_high.${rc_corner}.spef
|
||||||
set spef_mapping(\gpio_control_in_2[7]) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_control_block.${rc_corner}.spef
|
set spef_mapping(\gpio_control_in_2[2]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/gpio_logic_high/gpio_logic_high.${rc_corner}.spef
|
||||||
set spef_mapping(\gpio_control_in_2[8]) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_control_block.${rc_corner}.spef
|
set spef_mapping(\gpio_control_in_2[3]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/gpio_logic_high/gpio_logic_high.${rc_corner}.spef
|
||||||
set spef_mapping(\gpio_control_in_2[9]) $::env(CARAVEL_ROOT)/spef/multicorner/gpio_control_block.${rc_corner}.spef
|
set spef_mapping(\gpio_control_in_2[4]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/gpio_logic_high/gpio_logic_high.${rc_corner}.spef
|
||||||
|
set spef_mapping(\gpio_control_in_2[5]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/gpio_logic_high/gpio_logic_high.${rc_corner}.spef
|
||||||
|
set spef_mapping(\gpio_control_in_2[6]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/gpio_logic_high/gpio_logic_high.${rc_corner}.spef
|
||||||
|
set spef_mapping(\gpio_control_in_2[7]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/gpio_logic_high/gpio_logic_high.${rc_corner}.spef
|
||||||
|
set spef_mapping(\gpio_control_in_2[8]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/gpio_logic_high/gpio_logic_high.${rc_corner}.spef
|
||||||
|
set spef_mapping(\gpio_control_in_2[9]/gpio_logic_high) $::env(CARAVEL_ROOT)/spef/gpio_logic_high/gpio_logic_high.${rc_corner}.spef
|
||||||
|
|
||||||
|
set spef_mapping(gpio_defaults_block_0) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_1803/gpio_defaults_block_1803.${rc_corner}.spef
|
||||||
|
set spef_mapping(gpio_defaults_block_1) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_1803/gpio_defaults_block_1803.${rc_corner}.spef
|
||||||
|
set spef_mapping(gpio_defaults_block_3) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_0801/gpio_defaults_block_0801.${rc_corner}.spef
|
||||||
|
set spef_mapping(gpio_defaults_block_10) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_0403/gpio_defaults_block_0403.${rc_corner}.spef
|
||||||
|
set spef_mapping(gpio_defaults_block_10) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_0403/gpio_defaults_block_0403.${rc_corner}.spef
|
||||||
|
set spef_mapping(gpio_defaults_block_11) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_0403/gpio_defaults_block_0403.${rc_corner}.spef
|
||||||
|
set spef_mapping(gpio_defaults_block_12) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_0403/gpio_defaults_block_0403.${rc_corner}.spef
|
||||||
|
set spef_mapping(gpio_defaults_block_13) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_0403/gpio_defaults_block_0403.${rc_corner}.spef
|
||||||
|
set spef_mapping(gpio_defaults_block_14) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_0403/gpio_defaults_block_0403.${rc_corner}.spef
|
||||||
|
set spef_mapping(gpio_defaults_block_15) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_0403/gpio_defaults_block_0403.${rc_corner}.spef
|
||||||
|
set spef_mapping(gpio_defaults_block_16) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_0403/gpio_defaults_block_0403.${rc_corner}.spef
|
||||||
|
set spef_mapping(gpio_defaults_block_17) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_0403/gpio_defaults_block_0403.${rc_corner}.spef
|
||||||
|
set spef_mapping(gpio_defaults_block_18) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_0403/gpio_defaults_block_0403.${rc_corner}.spef
|
||||||
|
set spef_mapping(gpio_defaults_block_19) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_0403/gpio_defaults_block_0403.${rc_corner}.spef
|
||||||
|
set spef_mapping(gpio_defaults_block_2) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_0403/gpio_defaults_block_0403.${rc_corner}.spef
|
||||||
|
set spef_mapping(gpio_defaults_block_20) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_0403/gpio_defaults_block_0403.${rc_corner}.spef
|
||||||
|
set spef_mapping(gpio_defaults_block_21) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_0403/gpio_defaults_block_0403.${rc_corner}.spef
|
||||||
|
set spef_mapping(gpio_defaults_block_22) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_0403/gpio_defaults_block_0403.${rc_corner}.spef
|
||||||
|
set spef_mapping(gpio_defaults_block_23) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_0403/gpio_defaults_block_0403.${rc_corner}.spef
|
||||||
|
set spef_mapping(gpio_defaults_block_24) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_0403/gpio_defaults_block_0403.${rc_corner}.spef
|
||||||
|
set spef_mapping(gpio_defaults_block_25) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_0403/gpio_defaults_block_0403.${rc_corner}.spef
|
||||||
|
set spef_mapping(gpio_defaults_block_26) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_0403/gpio_defaults_block_0403.${rc_corner}.spef
|
||||||
|
set spef_mapping(gpio_defaults_block_27) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_0403/gpio_defaults_block_0403.${rc_corner}.spef
|
||||||
|
set spef_mapping(gpio_defaults_block_28) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_0403/gpio_defaults_block_0403.${rc_corner}.spef
|
||||||
|
set spef_mapping(gpio_defaults_block_29) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_0403/gpio_defaults_block_0403.${rc_corner}.spef
|
||||||
|
set spef_mapping(gpio_defaults_block_30) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_0403/gpio_defaults_block_0403.${rc_corner}.spef
|
||||||
|
set spef_mapping(gpio_defaults_block_31) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_0403/gpio_defaults_block_0403.${rc_corner}.spef
|
||||||
|
set spef_mapping(gpio_defaults_block_32) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_0403/gpio_defaults_block_0403.${rc_corner}.spef
|
||||||
|
set spef_mapping(gpio_defaults_block_33) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_0403/gpio_defaults_block_0403.${rc_corner}.spef
|
||||||
|
set spef_mapping(gpio_defaults_block_35) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_0403/gpio_defaults_block_0403.${rc_corner}.spef
|
||||||
|
set spef_mapping(gpio_defaults_block_36) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_0403/gpio_defaults_block_0403.${rc_corner}.spef
|
||||||
|
set spef_mapping(gpio_defaults_block_37) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_0403/gpio_defaults_block_0403.${rc_corner}.spef
|
||||||
|
set spef_mapping(gpio_defaults_block_4) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_0403/gpio_defaults_block_0403.${rc_corner}.spef
|
||||||
|
set spef_mapping(gpio_defaults_block_5) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_0403/gpio_defaults_block_0403.${rc_corner}.spef
|
||||||
|
set spef_mapping(gpio_defaults_block_6) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_0403/gpio_defaults_block_0403.${rc_corner}.spef
|
||||||
|
set spef_mapping(gpio_defaults_block_7) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_0403/gpio_defaults_block_0403.${rc_corner}.spef
|
||||||
|
set spef_mapping(gpio_defaults_block_8) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_0403/gpio_defaults_block_0403.${rc_corner}.spef
|
||||||
|
set spef_mapping(gpio_defaults_block_9) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_0403/gpio_defaults_block_0403.${rc_corner}.spef
|
||||||
|
} elseif {$design == "mgmt_core_wrapper"} {
|
||||||
|
set spef_mapping(\core.RAM128) $::env(MCW_ROOT)/spef/RAM128/RAM128.${rc_corner}.spef
|
||||||
|
set spef_mapping(\core.RAM256) $::env(MCW_ROOT)/spef/RAM512/RAM512.${rc_corner}.spef
|
||||||
|
} elseif {$design == "gpio_control_block"} {
|
||||||
|
set spef_mapping(gpio_logic_high) $::env(CARAVEL_ROOT)/spef/gpio_logic_high/gpio_logic_high.${rc_corner}.spef
|
||||||
|
} elseif {$design == "mgmt_protect"} {
|
||||||
|
set spef_mapping(powergood_check) $::env(CARAVEL_ROOT)/spef/mgmt_protect_hv/mgmt_protect_hv.${rc_corner}.spef
|
||||||
|
set spef_mapping(mprj_logic_high_inst) $::env(CARAVEL_ROOT)/spef/mprj_logic_high/mprj_logic_high.${rc_corner}.spef
|
||||||
|
set spef_mapping(mprj2_logic_high_inst) $::env(CARAVEL_ROOT)/spef/mprj2_logic_high/mprj2_logic_high.${rc_corner}.spef
|
||||||
|
}
|
||||||
|
|
||||||
foreach key [array names spef_mapping] {
|
foreach key [array names spef_mapping] {
|
||||||
read_parasitics -path $key $spef_mapping($key)
|
read_parasitics -path $key $spef_mapping($key)
|
||||||
}
|
}
|
||||||
if {$design == "mgmt_core_wrapper"} {
|
|
||||||
read_parasitics -verbose $::env(MCW_ROOT)/spef/multicorner/$::env(DESIGN).${rc_corner}.spef -pin_cap_included
|
if {$design == "mgmt_core_wrapper" | $design == "RAM128" | $design == "RAM256"} {
|
||||||
|
read_parasitics -verbose $::env(MCW_ROOT)/spef/${design}/${design}.${rc_corner}.spef -pin_cap_included
|
||||||
} else {
|
} else {
|
||||||
read_parasitics -verbose $::env(CARAVEL_ROOT)/spef/multicorner/$::env(DESIGN).${rc_corner}.spef -pin_cap_included
|
read_parasitics -verbose $::env(CARAVEL_ROOT)/spef/${design}/${design}.${rc_corner}.spef -pin_cap_included
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -43,18 +43,25 @@ def run_sta (
|
||||||
PT_tcl = f"{SCRIPT_DIR}/pt_sta.tcl"
|
PT_tcl = f"{SCRIPT_DIR}/pt_sta.tcl"
|
||||||
pt_command = f"source /tools/bashrc_snps; pt_shell -f {PT_tcl} -output_log_file {log_dir}/{design}/{design}-{rc_corner}-{proc_corner}-sta.log"
|
pt_command = f"source /tools/bashrc_snps; pt_shell -f {PT_tcl} -output_log_file {log_dir}/{design}/{design}-{rc_corner}-{proc_corner}-sta.log"
|
||||||
os.system(pt_command)
|
os.system(pt_command)
|
||||||
|
|
||||||
# Check if there exists any violations
|
# Check if there exists any violations
|
||||||
sta_pass=search_viol(f"{output_dir}/pt_reports/{design}/{design}-{rc_corner}-{proc_corner}-all_viol.rpt")
|
sta_pass=search_viol(f"{output_dir}/pt_reports/{design}/{design}-{rc_corner}-{proc_corner}-all_viol.rpt")
|
||||||
|
log = open(f"{log_dir}/{design}/{design}-{rc_corner}-{proc_corner}-sta.log", "a")
|
||||||
if sta_pass == "pass":
|
if sta_pass == "pass":
|
||||||
print (f"STA run passed!")
|
print (f"STA run passed!")
|
||||||
|
log.write(f"STA run passed!")
|
||||||
else:
|
else:
|
||||||
print (f"STA run failed!")
|
print (f"STA run failed!")
|
||||||
|
log.write(f"STA run failed!")
|
||||||
if sta_pass == "viol":
|
if sta_pass == "viol":
|
||||||
print(f"There are violations. check report: {output_dir}/pt_reports/{design}/{design}-{rc_corner}-{proc_corner}-all_viol.rpt")
|
print(f"There are violations. check report: {output_dir}/pt_reports/{design}/{design}-{rc_corner}-{proc_corner}-all_viol.rpt")
|
||||||
|
log.write(f"There are violations. check report: {output_dir}/pt_reports/{design}/{design}-{rc_corner}-{proc_corner}-all_viol.rpt")
|
||||||
|
elif sta_pass== "no cons":
|
||||||
|
print(f"Reading constraints SDC file failed. check log: {log_dir}/{design}/{design}-{rc_corner}-{proc_corner}-sta.log")
|
||||||
|
log.write(f"Reading constraints SDC file failed. check log: {log_dir}/{design}/{design}-{rc_corner}-{proc_corner}-sta.log")
|
||||||
else:
|
else:
|
||||||
print(f"Linking failed. check log: {log_dir}/{design}/{design}-{rc_corner}-{proc_corner}-sta.log")
|
print(f"Linking failed. check log: {log_dir}/{design}/{design}-{rc_corner}-{proc_corner}-sta.log")
|
||||||
|
log.write(f"Linking failed. check log: {log_dir}/{design}/{design}-{rc_corner}-{proc_corner}-sta.log")
|
||||||
|
log.close()
|
||||||
# Check the required env variables
|
# Check the required env variables
|
||||||
def check_env_vars():
|
def check_env_vars():
|
||||||
pdk_root = os.getenv('PDK_ROOT')
|
pdk_root = os.getenv('PDK_ROOT')
|
||||||
|
@ -93,6 +100,11 @@ def search_viol(
|
||||||
return "viol"
|
return "viol"
|
||||||
elif "Could not auto-link design" in data:
|
elif "Could not auto-link design" in data:
|
||||||
return "no link"
|
return "no link"
|
||||||
|
report_path = report_path.replace("all_viol", "min_timing")
|
||||||
|
with open(report_path, 'r') as report:
|
||||||
|
data = report.read()
|
||||||
|
if "No constrained paths" in data:
|
||||||
|
return "no cons"
|
||||||
else:
|
else:
|
||||||
return "pass"
|
return "pass"
|
||||||
|
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -5059,79 +5059,6 @@ module caravel(vddio, vddio_2, vssio, vssio_2, vdda, vssa, vccd, vssd, vdda1, vd
|
||||||
.VPWR(vccd_core),
|
.VPWR(vccd_core),
|
||||||
.mask_rev({ \mask_rev[31] , \mask_rev[30] , \mask_rev[29] , \mask_rev[28] , \mask_rev[27] , \mask_rev[26] , \mask_rev[25] , \mask_rev[24] , \mask_rev[23] , \mask_rev[22] , \mask_rev[21] , \mask_rev[20] , \mask_rev[19] , \mask_rev[18] , \mask_rev[17] , \mask_rev[16] , \mask_rev[15] , \mask_rev[14] , \mask_rev[13] , \mask_rev[12] , \mask_rev[11] , \mask_rev[10] , \mask_rev[9] , \mask_rev[8] , \mask_rev[7] , \mask_rev[6] , \mask_rev[5] , \mask_rev[4] , \mask_rev[3] , \mask_rev[2] , \mask_rev[1] , \mask_rev[0] })
|
.mask_rev({ \mask_rev[31] , \mask_rev[30] , \mask_rev[29] , \mask_rev[28] , \mask_rev[27] , \mask_rev[26] , \mask_rev[25] , \mask_rev[24] , \mask_rev[23] , \mask_rev[22] , \mask_rev[21] , \mask_rev[20] , \mask_rev[19] , \mask_rev[18] , \mask_rev[17] , \mask_rev[16] , \mask_rev[15] , \mask_rev[14] , \mask_rev[13] , \mask_rev[12] , \mask_rev[11] , \mask_rev[10] , \mask_rev[9] , \mask_rev[8] , \mask_rev[7] , \mask_rev[6] , \mask_rev[5] , \mask_rev[4] , \mask_rev[3] , \mask_rev[2] , \mask_rev[1] , \mask_rev[0] })
|
||||||
);
|
);
|
||||||
assign \gpio_load_1_shifted[18] = \gpio_load_1[17] ;
|
|
||||||
assign \gpio_load_1_shifted[17] = \gpio_load_1[16] ;
|
|
||||||
assign \gpio_load_1_shifted[16] = \gpio_load_1[15] ;
|
|
||||||
assign \gpio_load_1_shifted[15] = \gpio_load_1[14] ;
|
|
||||||
assign \gpio_load_1_shifted[14] = \gpio_load_1[13] ;
|
|
||||||
assign \gpio_load_1_shifted[13] = \gpio_load_1[12] ;
|
|
||||||
assign \gpio_load_1_shifted[12] = \gpio_load_1[11] ;
|
|
||||||
assign \gpio_load_1_shifted[11] = \gpio_load_1[10] ;
|
|
||||||
assign \gpio_load_1_shifted[10] = \gpio_load_1[9] ;
|
|
||||||
assign \gpio_load_1_shifted[9] = \gpio_load_1[8] ;
|
|
||||||
assign \gpio_load_1_shifted[8] = \gpio_load_1[7] ;
|
|
||||||
assign \gpio_load_1_shifted[7] = \gpio_load_1[6] ;
|
|
||||||
assign \gpio_load_1_shifted[6] = \gpio_load_1[5] ;
|
|
||||||
assign \gpio_load_1_shifted[5] = \gpio_load_1[4] ;
|
|
||||||
assign \gpio_load_1_shifted[4] = \gpio_load_1[3] ;
|
|
||||||
assign \gpio_load_1_shifted[3] = \gpio_load_1[2] ;
|
|
||||||
assign \gpio_load_1_shifted[2] = \gpio_load_1[1] ;
|
|
||||||
assign \gpio_load_1_shifted[1] = \gpio_load_1[0] ;
|
|
||||||
assign \gpio_serial_link_2_shifted[17] = \gpio_serial_link_2[18] ;
|
|
||||||
assign \gpio_serial_link_2_shifted[16] = \gpio_serial_link_2[17] ;
|
|
||||||
assign \gpio_serial_link_2_shifted[15] = \gpio_serial_link_2[16] ;
|
|
||||||
assign \gpio_serial_link_2_shifted[14] = \gpio_serial_link_2[15] ;
|
|
||||||
assign \gpio_serial_link_2_shifted[13] = \gpio_serial_link_2[14] ;
|
|
||||||
assign \gpio_serial_link_2_shifted[12] = \gpio_serial_link_2[13] ;
|
|
||||||
assign \gpio_serial_link_2_shifted[11] = \gpio_serial_link_2[12] ;
|
|
||||||
assign \gpio_serial_link_2_shifted[10] = \gpio_serial_link_2[11] ;
|
|
||||||
assign \gpio_serial_link_2_shifted[9] = \gpio_serial_link_2[10] ;
|
|
||||||
assign \gpio_serial_link_2_shifted[8] = \gpio_serial_link_2[9] ;
|
|
||||||
assign \gpio_serial_link_2_shifted[7] = \gpio_serial_link_2[8] ;
|
|
||||||
assign \gpio_serial_link_2_shifted[6] = \gpio_serial_link_2[7] ;
|
|
||||||
assign \gpio_serial_link_2_shifted[5] = \gpio_serial_link_2[6] ;
|
|
||||||
assign \gpio_serial_link_2_shifted[4] = \gpio_serial_link_2[5] ;
|
|
||||||
assign \gpio_serial_link_2_shifted[3] = \gpio_serial_link_2[4] ;
|
|
||||||
assign \gpio_serial_link_2_shifted[2] = \gpio_serial_link_2[3] ;
|
|
||||||
assign \gpio_serial_link_2_shifted[1] = \gpio_serial_link_2[2] ;
|
|
||||||
assign \gpio_serial_link_2_shifted[0] = \gpio_serial_link_2[1] ;
|
|
||||||
assign \gpio_resetn_2_shifted[18] = \gpio_resetn_1_shifted[0] ;
|
|
||||||
assign \gpio_resetn_2_shifted[17] = \gpio_resetn_2[18] ;
|
|
||||||
assign \gpio_resetn_2_shifted[16] = \gpio_resetn_2[17] ;
|
|
||||||
assign \gpio_resetn_2_shifted[15] = \gpio_resetn_2[16] ;
|
|
||||||
assign \gpio_resetn_2_shifted[14] = \gpio_resetn_2[15] ;
|
|
||||||
assign \gpio_resetn_2_shifted[13] = \gpio_resetn_2[14] ;
|
|
||||||
assign \gpio_resetn_2_shifted[12] = \gpio_resetn_2[13] ;
|
|
||||||
assign \gpio_resetn_2_shifted[11] = \gpio_resetn_2[12] ;
|
|
||||||
assign \gpio_resetn_2_shifted[10] = \gpio_resetn_2[11] ;
|
|
||||||
assign \gpio_resetn_2_shifted[9] = \gpio_resetn_2[10] ;
|
|
||||||
assign \gpio_resetn_2_shifted[8] = \gpio_resetn_2[9] ;
|
|
||||||
assign \gpio_resetn_2_shifted[7] = \gpio_resetn_2[8] ;
|
|
||||||
assign \gpio_resetn_2_shifted[6] = \gpio_resetn_2[7] ;
|
|
||||||
assign \gpio_resetn_2_shifted[5] = \gpio_resetn_2[6] ;
|
|
||||||
assign \gpio_resetn_2_shifted[4] = \gpio_resetn_2[5] ;
|
|
||||||
assign \gpio_resetn_2_shifted[3] = \gpio_resetn_2[4] ;
|
|
||||||
assign \gpio_resetn_2_shifted[2] = \gpio_resetn_2[3] ;
|
|
||||||
assign \gpio_resetn_2_shifted[1] = \gpio_resetn_2[2] ;
|
|
||||||
assign \gpio_resetn_2_shifted[0] = \gpio_resetn_2[1] ;
|
|
||||||
assign \gpio_serial_link_1_shifted[18] = \gpio_serial_link_1[17] ;
|
|
||||||
assign \gpio_serial_link_1_shifted[17] = \gpio_serial_link_1[16] ;
|
|
||||||
assign \gpio_serial_link_1_shifted[16] = \gpio_serial_link_1[15] ;
|
|
||||||
assign \gpio_serial_link_1_shifted[15] = \gpio_serial_link_1[14] ;
|
|
||||||
assign \gpio_serial_link_1_shifted[14] = \gpio_serial_link_1[13] ;
|
|
||||||
assign \gpio_serial_link_1_shifted[13] = \gpio_serial_link_1[12] ;
|
|
||||||
assign \gpio_serial_link_1_shifted[12] = \gpio_serial_link_1[11] ;
|
|
||||||
assign \gpio_serial_link_1_shifted[11] = \gpio_serial_link_1[10] ;
|
|
||||||
assign \gpio_serial_link_1_shifted[10] = \gpio_serial_link_1[9] ;
|
|
||||||
assign \gpio_serial_link_1_shifted[9] = \gpio_serial_link_1[8] ;
|
|
||||||
assign \gpio_serial_link_1_shifted[8] = \gpio_serial_link_1[7] ;
|
|
||||||
assign \gpio_serial_link_1_shifted[7] = \gpio_serial_link_1[6] ;
|
|
||||||
assign \gpio_serial_link_1_shifted[6] = \gpio_serial_link_1[5] ;
|
|
||||||
assign \gpio_serial_link_1_shifted[5] = \gpio_serial_link_1[4] ;
|
|
||||||
assign \gpio_serial_link_1_shifted[4] = \gpio_serial_link_1[3] ;
|
|
||||||
assign \gpio_serial_link_1_shifted[3] = \gpio_serial_link_1[2] ;
|
|
||||||
assign \gpio_serial_link_1_shifted[2] = \gpio_serial_link_1[1] ;
|
|
||||||
assign \gpio_serial_link_1_shifted[1] = \gpio_serial_link_1[0] ;
|
|
||||||
assign \gpio_clock_1_shifted[18] = \gpio_clock_1[17] ;
|
assign \gpio_clock_1_shifted[18] = \gpio_clock_1[17] ;
|
||||||
assign \gpio_clock_1_shifted[17] = \gpio_clock_1[16] ;
|
assign \gpio_clock_1_shifted[17] = \gpio_clock_1[16] ;
|
||||||
assign \gpio_clock_1_shifted[16] = \gpio_clock_1[15] ;
|
assign \gpio_clock_1_shifted[16] = \gpio_clock_1[15] ;
|
||||||
|
@ -5150,25 +5077,24 @@ module caravel(vddio, vddio_2, vssio, vssio_2, vdda, vssa, vccd, vssd, vdda1, vd
|
||||||
assign \gpio_clock_1_shifted[3] = \gpio_clock_1[2] ;
|
assign \gpio_clock_1_shifted[3] = \gpio_clock_1[2] ;
|
||||||
assign \gpio_clock_1_shifted[2] = \gpio_clock_1[1] ;
|
assign \gpio_clock_1_shifted[2] = \gpio_clock_1[1] ;
|
||||||
assign \gpio_clock_1_shifted[1] = \gpio_clock_1[0] ;
|
assign \gpio_clock_1_shifted[1] = \gpio_clock_1[0] ;
|
||||||
assign \gpio_clock_2_shifted[18] = \gpio_clock_1_shifted[0] ;
|
assign \gpio_serial_link_2_shifted[17] = \gpio_serial_link_2[18] ;
|
||||||
assign \gpio_clock_2_shifted[17] = \gpio_clock_2[18] ;
|
assign \gpio_serial_link_2_shifted[16] = \gpio_serial_link_2[17] ;
|
||||||
assign \gpio_clock_2_shifted[16] = \gpio_clock_2[17] ;
|
assign \gpio_serial_link_2_shifted[15] = \gpio_serial_link_2[16] ;
|
||||||
assign \gpio_clock_2_shifted[15] = \gpio_clock_2[16] ;
|
assign \gpio_serial_link_2_shifted[14] = \gpio_serial_link_2[15] ;
|
||||||
assign \gpio_clock_2_shifted[14] = \gpio_clock_2[15] ;
|
assign \gpio_serial_link_2_shifted[13] = \gpio_serial_link_2[14] ;
|
||||||
assign \gpio_clock_2_shifted[13] = \gpio_clock_2[14] ;
|
assign \gpio_serial_link_2_shifted[12] = \gpio_serial_link_2[13] ;
|
||||||
assign \gpio_clock_2_shifted[12] = \gpio_clock_2[13] ;
|
assign \gpio_serial_link_2_shifted[11] = \gpio_serial_link_2[12] ;
|
||||||
assign \gpio_clock_2_shifted[11] = \gpio_clock_2[12] ;
|
assign \gpio_serial_link_2_shifted[10] = \gpio_serial_link_2[11] ;
|
||||||
assign \gpio_clock_2_shifted[10] = \gpio_clock_2[11] ;
|
assign \gpio_serial_link_2_shifted[9] = \gpio_serial_link_2[10] ;
|
||||||
assign \gpio_clock_2_shifted[9] = \gpio_clock_2[10] ;
|
assign \gpio_serial_link_2_shifted[8] = \gpio_serial_link_2[9] ;
|
||||||
assign \gpio_clock_2_shifted[8] = \gpio_clock_2[9] ;
|
assign \gpio_serial_link_2_shifted[7] = \gpio_serial_link_2[8] ;
|
||||||
assign \gpio_clock_2_shifted[7] = \gpio_clock_2[8] ;
|
assign \gpio_serial_link_2_shifted[6] = \gpio_serial_link_2[7] ;
|
||||||
assign \gpio_clock_2_shifted[6] = \gpio_clock_2[7] ;
|
assign \gpio_serial_link_2_shifted[5] = \gpio_serial_link_2[6] ;
|
||||||
assign \gpio_clock_2_shifted[5] = \gpio_clock_2[6] ;
|
assign \gpio_serial_link_2_shifted[4] = \gpio_serial_link_2[5] ;
|
||||||
assign \gpio_clock_2_shifted[4] = \gpio_clock_2[5] ;
|
assign \gpio_serial_link_2_shifted[3] = \gpio_serial_link_2[4] ;
|
||||||
assign \gpio_clock_2_shifted[3] = \gpio_clock_2[4] ;
|
assign \gpio_serial_link_2_shifted[2] = \gpio_serial_link_2[3] ;
|
||||||
assign \gpio_clock_2_shifted[2] = \gpio_clock_2[3] ;
|
assign \gpio_serial_link_2_shifted[1] = \gpio_serial_link_2[2] ;
|
||||||
assign \gpio_clock_2_shifted[1] = \gpio_clock_2[2] ;
|
assign \gpio_serial_link_2_shifted[0] = \gpio_serial_link_2[1] ;
|
||||||
assign \gpio_clock_2_shifted[0] = \gpio_clock_2[1] ;
|
|
||||||
assign \gpio_load_2_shifted[18] = \gpio_load_1_shifted[0] ;
|
assign \gpio_load_2_shifted[18] = \gpio_load_1_shifted[0] ;
|
||||||
assign \gpio_load_2_shifted[17] = \gpio_load_2[18] ;
|
assign \gpio_load_2_shifted[17] = \gpio_load_2[18] ;
|
||||||
assign \gpio_load_2_shifted[16] = \gpio_load_2[17] ;
|
assign \gpio_load_2_shifted[16] = \gpio_load_2[17] ;
|
||||||
|
@ -5188,6 +5114,62 @@ module caravel(vddio, vddio_2, vssio, vssio_2, vdda, vssa, vccd, vssd, vdda1, vd
|
||||||
assign \gpio_load_2_shifted[2] = \gpio_load_2[3] ;
|
assign \gpio_load_2_shifted[2] = \gpio_load_2[3] ;
|
||||||
assign \gpio_load_2_shifted[1] = \gpio_load_2[2] ;
|
assign \gpio_load_2_shifted[1] = \gpio_load_2[2] ;
|
||||||
assign \gpio_load_2_shifted[0] = \gpio_load_2[1] ;
|
assign \gpio_load_2_shifted[0] = \gpio_load_2[1] ;
|
||||||
|
assign \gpio_resetn_2_shifted[18] = \gpio_resetn_1_shifted[0] ;
|
||||||
|
assign \gpio_resetn_2_shifted[17] = \gpio_resetn_2[18] ;
|
||||||
|
assign \gpio_resetn_2_shifted[16] = \gpio_resetn_2[17] ;
|
||||||
|
assign \gpio_resetn_2_shifted[15] = \gpio_resetn_2[16] ;
|
||||||
|
assign \gpio_resetn_2_shifted[14] = \gpio_resetn_2[15] ;
|
||||||
|
assign \gpio_resetn_2_shifted[13] = \gpio_resetn_2[14] ;
|
||||||
|
assign \gpio_resetn_2_shifted[12] = \gpio_resetn_2[13] ;
|
||||||
|
assign \gpio_resetn_2_shifted[11] = \gpio_resetn_2[12] ;
|
||||||
|
assign \gpio_resetn_2_shifted[10] = \gpio_resetn_2[11] ;
|
||||||
|
assign \gpio_resetn_2_shifted[9] = \gpio_resetn_2[10] ;
|
||||||
|
assign \gpio_resetn_2_shifted[8] = \gpio_resetn_2[9] ;
|
||||||
|
assign \gpio_resetn_2_shifted[7] = \gpio_resetn_2[8] ;
|
||||||
|
assign \gpio_resetn_2_shifted[6] = \gpio_resetn_2[7] ;
|
||||||
|
assign \gpio_resetn_2_shifted[5] = \gpio_resetn_2[6] ;
|
||||||
|
assign \gpio_resetn_2_shifted[4] = \gpio_resetn_2[5] ;
|
||||||
|
assign \gpio_resetn_2_shifted[3] = \gpio_resetn_2[4] ;
|
||||||
|
assign \gpio_resetn_2_shifted[2] = \gpio_resetn_2[3] ;
|
||||||
|
assign \gpio_resetn_2_shifted[1] = \gpio_resetn_2[2] ;
|
||||||
|
assign \gpio_resetn_2_shifted[0] = \gpio_resetn_2[1] ;
|
||||||
|
assign \gpio_clock_2_shifted[18] = \gpio_clock_1_shifted[0] ;
|
||||||
|
assign \gpio_clock_2_shifted[17] = \gpio_clock_2[18] ;
|
||||||
|
assign \gpio_clock_2_shifted[16] = \gpio_clock_2[17] ;
|
||||||
|
assign \gpio_clock_2_shifted[15] = \gpio_clock_2[16] ;
|
||||||
|
assign \gpio_clock_2_shifted[14] = \gpio_clock_2[15] ;
|
||||||
|
assign \gpio_clock_2_shifted[13] = \gpio_clock_2[14] ;
|
||||||
|
assign \gpio_clock_2_shifted[12] = \gpio_clock_2[13] ;
|
||||||
|
assign \gpio_clock_2_shifted[11] = \gpio_clock_2[12] ;
|
||||||
|
assign \gpio_clock_2_shifted[10] = \gpio_clock_2[11] ;
|
||||||
|
assign \gpio_clock_2_shifted[9] = \gpio_clock_2[10] ;
|
||||||
|
assign \gpio_clock_2_shifted[8] = \gpio_clock_2[9] ;
|
||||||
|
assign \gpio_clock_2_shifted[7] = \gpio_clock_2[8] ;
|
||||||
|
assign \gpio_clock_2_shifted[6] = \gpio_clock_2[7] ;
|
||||||
|
assign \gpio_clock_2_shifted[5] = \gpio_clock_2[6] ;
|
||||||
|
assign \gpio_clock_2_shifted[4] = \gpio_clock_2[5] ;
|
||||||
|
assign \gpio_clock_2_shifted[3] = \gpio_clock_2[4] ;
|
||||||
|
assign \gpio_clock_2_shifted[2] = \gpio_clock_2[3] ;
|
||||||
|
assign \gpio_clock_2_shifted[1] = \gpio_clock_2[2] ;
|
||||||
|
assign \gpio_clock_2_shifted[0] = \gpio_clock_2[1] ;
|
||||||
|
assign \gpio_load_1_shifted[18] = \gpio_load_1[17] ;
|
||||||
|
assign \gpio_load_1_shifted[17] = \gpio_load_1[16] ;
|
||||||
|
assign \gpio_load_1_shifted[16] = \gpio_load_1[15] ;
|
||||||
|
assign \gpio_load_1_shifted[15] = \gpio_load_1[14] ;
|
||||||
|
assign \gpio_load_1_shifted[14] = \gpio_load_1[13] ;
|
||||||
|
assign \gpio_load_1_shifted[13] = \gpio_load_1[12] ;
|
||||||
|
assign \gpio_load_1_shifted[12] = \gpio_load_1[11] ;
|
||||||
|
assign \gpio_load_1_shifted[11] = \gpio_load_1[10] ;
|
||||||
|
assign \gpio_load_1_shifted[10] = \gpio_load_1[9] ;
|
||||||
|
assign \gpio_load_1_shifted[9] = \gpio_load_1[8] ;
|
||||||
|
assign \gpio_load_1_shifted[8] = \gpio_load_1[7] ;
|
||||||
|
assign \gpio_load_1_shifted[7] = \gpio_load_1[6] ;
|
||||||
|
assign \gpio_load_1_shifted[6] = \gpio_load_1[5] ;
|
||||||
|
assign \gpio_load_1_shifted[5] = \gpio_load_1[4] ;
|
||||||
|
assign \gpio_load_1_shifted[4] = \gpio_load_1[3] ;
|
||||||
|
assign \gpio_load_1_shifted[3] = \gpio_load_1[2] ;
|
||||||
|
assign \gpio_load_1_shifted[2] = \gpio_load_1[1] ;
|
||||||
|
assign \gpio_load_1_shifted[1] = \gpio_load_1[0] ;
|
||||||
assign \gpio_resetn_1_shifted[18] = \gpio_resetn_1[17] ;
|
assign \gpio_resetn_1_shifted[18] = \gpio_resetn_1[17] ;
|
||||||
assign \gpio_resetn_1_shifted[17] = \gpio_resetn_1[16] ;
|
assign \gpio_resetn_1_shifted[17] = \gpio_resetn_1[16] ;
|
||||||
assign \gpio_resetn_1_shifted[16] = \gpio_resetn_1[15] ;
|
assign \gpio_resetn_1_shifted[16] = \gpio_resetn_1[15] ;
|
||||||
|
@ -5206,9 +5188,27 @@ module caravel(vddio, vddio_2, vssio, vssio_2, vdda, vssa, vccd, vssd, vdda1, vd
|
||||||
assign \gpio_resetn_1_shifted[3] = \gpio_resetn_1[2] ;
|
assign \gpio_resetn_1_shifted[3] = \gpio_resetn_1[2] ;
|
||||||
assign \gpio_resetn_1_shifted[2] = \gpio_resetn_1[1] ;
|
assign \gpio_resetn_1_shifted[2] = \gpio_resetn_1[1] ;
|
||||||
assign \gpio_resetn_1_shifted[1] = \gpio_resetn_1[0] ;
|
assign \gpio_resetn_1_shifted[1] = \gpio_resetn_1[0] ;
|
||||||
|
assign \gpio_serial_link_1_shifted[17] = \gpio_serial_link_1[16] ;
|
||||||
|
assign \gpio_serial_link_1_shifted[11] = \gpio_serial_link_1[10] ;
|
||||||
|
assign \gpio_serial_link_1_shifted[14] = \gpio_serial_link_1[13] ;
|
||||||
|
assign \gpio_serial_link_1_shifted[13] = \gpio_serial_link_1[12] ;
|
||||||
|
assign \gpio_serial_link_1_shifted[5] = \gpio_serial_link_1[4] ;
|
||||||
|
assign \gpio_serial_link_1_shifted[12] = \gpio_serial_link_1[11] ;
|
||||||
|
assign \gpio_serial_link_1_shifted[7] = \gpio_serial_link_1[6] ;
|
||||||
|
assign \gpio_serial_link_1_shifted[18] = \gpio_serial_link_1[17] ;
|
||||||
|
assign \gpio_serial_link_1_shifted[15] = \gpio_serial_link_1[14] ;
|
||||||
|
assign \gpio_serial_link_1_shifted[1] = \gpio_serial_link_1[0] ;
|
||||||
|
assign \gpio_serial_link_1_shifted[16] = \gpio_serial_link_1[15] ;
|
||||||
|
assign \gpio_serial_link_1_shifted[2] = \gpio_serial_link_1[1] ;
|
||||||
|
assign \gpio_serial_link_1_shifted[8] = \gpio_serial_link_1[7] ;
|
||||||
|
assign \gpio_serial_link_1_shifted[10] = \gpio_serial_link_1[9] ;
|
||||||
|
assign \gpio_serial_link_1_shifted[9] = \gpio_serial_link_1[8] ;
|
||||||
|
assign \gpio_serial_link_1_shifted[6] = \gpio_serial_link_1[5] ;
|
||||||
assign mprj_io_loader_data_2 = \gpio_serial_link_2_shifted[18] ;
|
assign mprj_io_loader_data_2 = \gpio_serial_link_2_shifted[18] ;
|
||||||
assign mprj_io_loader_data_1 = \gpio_serial_link_1_shifted[0] ;
|
assign mprj_io_loader_data_1 = \gpio_serial_link_1_shifted[0] ;
|
||||||
assign mprj_io_loader_strobe = \gpio_load_1_shifted[0] ;
|
assign mprj_io_loader_strobe = \gpio_load_1_shifted[0] ;
|
||||||
assign mprj_io_loader_clock = \gpio_clock_1_shifted[0] ;
|
assign mprj_io_loader_clock = \gpio_clock_1_shifted[0] ;
|
||||||
assign mprj_io_loader_resetn = \gpio_resetn_1_shifted[0] ;
|
assign mprj_io_loader_resetn = \gpio_resetn_1_shifted[0] ;
|
||||||
|
assign \gpio_serial_link_1_shifted[4] = \gpio_serial_link_1[3] ;
|
||||||
|
assign \gpio_serial_link_1_shifted[3] = \gpio_serial_link_1[2] ;
|
||||||
endmodule
|
endmodule
|
||||||
|
|
Loading…
Reference in New Issue