| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280 |
- > alta::tcl_whisper "Cmd : [alta::prog_path] [alta::prog_version]([alta::prog_subversion])\n"
- Cmd : C:/Users/zzz17/AgRV_pio/packages/tool-agrv_logic/bin/af.exe 2025.06.b0(3f05be1c)
- > alta::tcl_whisper "Args : [string map {\{ \" \} \"} $tcl_cmd_args]\n"
- Args : -X "set QUARTUS_SDC true" -X "set FITTING Auto" -X "set FITTER full" -X "set EFFORT high" -X "set HOLDX default" -X "set SKEW basic" -X "set MODE QUARTUS" -X "set FLOW ALL" -F ./af_run.tcl
- >
- > set_seed_rand $SEED
- > set ar_timing_derate ${TIMING_DERATE}
- >
- > date_time
- Tue Jul 15 16:27:27 2025
- > if { [file exists [file join . ${DESIGN}.pre.asf]] } {
- alta::tcl_highlight "Using pre-ASF file ${DESIGN}.pre.asf.\n"
- source [file join . ${DESIGN}.pre.asf]
- }
- Using pre-ASF file test_uart.pre.asf.
- > # pio_begin >>>>>> DO NOT MODIFY THIS SECTION! >>>>>>
- > set BOARD_PLL_CLKIN PIN_HSE
- > set db_io_name_priority False
- > set ip_pll_vco_lowpower true
- > set_global_assignment -name ON_CHIP_BITSTREAM_DECOMPRESSION "OFF"
- > # pio_end <<<<<< DO NOT MODIFY THIS SECTION! <<<<<<
- > ##
- >
- >
- > set LOAD_DB false
- > set LOAD_PLACE false
- > set LOAD_ROUTE false
- > set LOAD_PACK false
- > if { $FLOW == "LOAD" || $FLOW == "CHECK" || $FLOW == "PROBE" } {
- set LOAD_DB true
- set LOAD_PLACE true
- set LOAD_ROUTE true
- } elseif { $FLOW == "R" || $FLOW == "ROUTE" } {
- set LOAD_DB true
- set LOAD_PLACE true
- } elseif { $FLOW == "PR" || $FLOW == "PLACE_AND_ROUTE" } {
- set LOAD_DB false
- set LOAD_PACK true
- }
- >
- > set ORIGINAL_QSF "./test_uart.qsf"
- > set ORIGINAL_PIN ""
- >
- > #################################################################################
- >
- > # The default SDC file is ${DESIGN}.sdc
- > set sdc_file $SDC_FILE
- > if { $sdc_file == "" } {
- set sdc_file [file join . ${DESIGN}.adc]
- if { ! [file exists $sdc_file] } { set sdc_file [file join . ${DESIGN}.sdc]; }
- }
- > # No default VE file is not specified
- > set ve_file $VEX_FILE
- >
- > while (1) {
- if { $FLOW == "SKIP" } { break }
- if { [info exists CORNER] } { set_mode -corner $CORNER; }
- eval "load_architect ${no_route} -type ${DEVICE} 1 1 1000 1000"
- foreach ip_file $IP_FILES { read_ip $ip_file; }
- if { $FLOW == "GEN" } {
- if { ! [info exists CONFIG_BITS] } {
- set CONFIG_BITS [file join ${RESULT_DIR} ${DESIGN}.bin]
- }
- if { [llength $CONFIG_BITS] > 1 } {
- if { ! [info exists BOOT_BINARY] } {
- set BOOT_BINARY [file join ${RESULT_DIR} ${DESIGN}_boot.bin]
- }
- if { ! [info exists CONFIG_ADDRESSES] } {
- set CONFIG_ADDRESSES ""
- }
- generate_binary -master $BOOT_BINARY -inputs $CONFIG_BITS -address $CONFIG_ADDRESSES
- } else {
- set CONFIG_ROOT [file rootname [lindex $CONFIG_BITS 0]]
- set SLAVE_RBF "${CONFIG_ROOT}_slave.rbf"
- set MASTER_BINARY "${CONFIG_ROOT}_master.bin"
- if { [file exists [lindex $CONFIG_BITS 0]] } {
- generate_binary -slave $SLAVE_RBF -inputs [lindex $CONFIG_BITS 0] -reverse
- generate_binary -master $MASTER_BINARY -inputs [lindex $CONFIG_BITS 0]
- }
- if { ! [info exists BOOT_BINARY] } {
- set BOOT_BINARY $MASTER_BINARY
- }
- }
- set PRG_FILE [file rootname $BOOT_BINARY].prg
- set AS_FILE [file rootname $BOOT_BINARY]_as.prg
- generate_programming_file $BOOT_BINARY -erase $ERASE \
- -program $PROGRAM -verify $VERIFY -offset $OFFSET \
- -prg $PRG_FILE -as $AS_FILE
- break
- }
- if { $LOAD_DB } {
- load_db -top ${TOP_MODULE}
- if { [file exists $sdc_file] } { read_sdc $sdc_file; }
- } elseif { $MODE == "QUARTUS" } {
- set verilog ${DESIGN}.vo
- set is_migrated false
- if { ! [file exists $verilog] } {
- set verilog [file join . simulation modelsim ${DESIGN}.vo]
- set is_migrated true
- }
- if { ! [file exists $verilog] } {
- error "Can not find design verilog file $verilog"
- }
- alta::tcl_highlight "Using design verilog file $verilog.\n"
- if { $ve_file != "" && ! [file exists $ve_file] } {
- alta::tcl_warn "Can not find design VE file $ve_file"
- set ve_file ""
- } else {
- alta::tcl_highlight "Using design VE file $ve_file.\n"
- }
- set ret [read_design -top ${TOP_MODULE} -ve $ve_file -qsf $ORIGINAL_QSF $verilog -hierachy 1]
- if { !$ret } { exit -1; }
- if { $sdc_file != "" && ! [file exists $sdc_file] } {
- alta::tcl_warn "Can not find design SDC file $sdc_file"
- set sdc_file ""
- } else {
- alta::tcl_highlight "Using design SDC file $sdc_file.\n"
- read_sdc $sdc_file
- }
- } elseif { $MODE == "SYNPLICITY" || $MODE == "NATIVE" } {
- set_hierarchy_separator .
- set db_gclk_assignment_level 2
- set verilog ${DESIGN}.vqm
- set is_migrated false
- if { ! [file exists $verilog] } {
- error "Can not find design verilog file $verilog"
- }
- if { $VEX_FILE != "" } {
- if { $VEX_FILE == "-" } {
- set VEX_FILE ""
- } elseif { ! [file exists $VEX_FILE] } {
- error "Can not find design VE file $VEX_FILE"
- }
- }
- if { $AGF_FILE != "" } {
- if { $AGF_FILE == "-" } {
- set AGF_FILE ""
- } elseif { ! [file exists $AGF_FILE] } {
- error "Can not find design AGF file $AGF_FILE"
- }
- }
- set alta0_asf [file join $::alta_work alta0.asf]
- set alta0_apf [file join $::alta_work alta0.apf]
- file delete -force $alta0_asf
- file delete -force $alta0_apf
- if { $AGF_FILE != "" || $VEX_FILE != "" } {
- alta::convert_pio_settings_cmd $VEX_FILE $AGF_FILE $alta0_asf $alta0_apf
- }
- alta::tcl_highlight "Using design verilog file $verilog.\n"
- if { $sdc_file != "" && ! [file exists $sdc_file] } {
- alta::tcl_warn "Can not find design SDC file $sdc_file"
- set sdc_file ""
- } else {
- alta::tcl_highlight "Using design SDC file $sdc_file.\n"
- }
- set load_pack ""
- if { $LOAD_PACK } { set load_pack "-load_pack"; }
- set ret [eval "read_design_and_pack $load_pack -sdc {$sdc_file} -top ${TOP_MODULE} -type vqm -gclk_level 2 $verilog"]
- set FITTER "full"
- if { !$ret } { exit -1; }
- } else {
- error "Unsupported mode $MODE"
- }
- if { $FLOW == "PACK" } { break }
- if { [info exists FITTING] } {
- if { $FITTING == "Auto" } { set FITTING auto; }
- set_mode -fitting $FITTING
- }
- if { [info exists FITTER] } {
- if { $FITTER == "Auto" } {
- if { $MODE == "QUARTUS" } { set FITTER hybrid; } else { set FITTER full; }
- }
- if { $MODE == "SYNPLICITY" || $MODE == "NATIVE" } { set FITTER full; }
- set_mode -fitter $FITTER
- }
- if { [info exists EFFORT] } { set_mode -effort $EFFORT; }
- if { [info exists SKEW ] } { set_mode -skew $SKEW ; }
- if { [info exists SKOPE ] } { set_mode -skope $SKOPE ; }
- if { [info exists HOLDX ] } { set_mode -holdx $HOLDX; }
- if { [info exists TUNING] } { set_mode -tuning $TUNING; }
- if { [info exists TARGET] } { set_mode -target $TARGET; }
- if { [info exists PRESET] } { set_mode -preset $PRESET; }
- if { [info exists ADJUST] } { set pl_criticality_wadjust $ADJUST; }
- set alta_aqf [file join $::alta_work alta.aqf]
- if { $LOAD_DB } {
- # Empty
- } else {
- file delete -force $alta_aqf
- if { true } {
- if { $ORIGINAL_PIN != "" } {
- if { [file exists $VE_FILE] } {
- set ORIGINAL_PIN ""
- } elseif { $ORIGINAL_PIN == "-" } {
- set ORIGINAL_PIN ""
- } elseif { ! [file exists $ORIGINAL_PIN] } {
- if { $is_migrated } {
- error "Can not find design PIN file $ORIGINAL_PIN, please compile design first"
- }
- set ORIGINAL_PIN ""
- }
- }
- if { $ORIGINAL_QSF != "" } {
- if { $ORIGINAL_QSF == "-" } {
- set ORIGINAL_QSF ""
- } elseif { ! [file exists $ORIGINAL_QSF] } {
- if { $is_migrated } {
- error "Can not find design exported QSF file $ORIGINAL_QSF, please export assigments first"
- }
- }
- }
- if { $ORIGINAL_QSF != "" || $ORIGINAL_PIN != "" } {
- alta::convert_quartus_settings_cmd $ORIGINAL_QSF $ORIGINAL_PIN $alta_aqf
- }
- }
- }
- if { [file exists "$alta_aqf"] } {
- alta::tcl_highlight "Using AQF file $alta_aqf.\n"
- source "$alta_aqf"
- }
- if { [file exists [file join . ${DESIGN}.asf]] } {
- alta::tcl_highlight "Using ASF file ${DESIGN}.asf.\n"
- source [file join . ${DESIGN}.asf]
- }
- if { $FLOW == "PROBE" } {
- set ret [eval "place_pseudo ${user_io} -place_io -place_pll -place_gclk"]
- if { !$ret } { exit -1 }
- set force ""
- if { [info exists PROBE_FORCE] && $PROBE_FORCE } { set force "-force" }
- eval "probe_design -froms {${PROBE_FROMS}} -tos {${PROBE_TOS}} ${force}"
- } elseif { $FLOW == "CHECK" } {
- set ret [eval "place_pseudo ${user_io} -place_io -place_pll -place_gclk"]
- if { !$ret } { exit -1 }
- if { [file exists [file join . ${DESIGN}.chk]] } {
- alta::tcl_highlight "Using CHK file ${DESIGN}.chk.\n"
- source [file join . ${DESIGN}.chk]
- place_design -dry
- check_design -rule led_guide
- } else {
- error "Can not find design CHECK file ${DESIGN}.chk"
- }
- } else {
- set ret [eval "place_pseudo ${user_io} -place_io -place_pll -place_gclk -warn_io"]
- if { !$ret } { exit -1 }
- set org_place ""
- set load_place ""
- set load_route ""
- set quiet ""
- if { $ORG_PLACE } { set org_place "-org_place" ; }
- if { $LOAD_PLACE } { set load_place "-load_place"; }
- if { $LOAD_ROUTE } { set load_route "-load_route"; }
- eval "place_and_route_design $org_place $load_place $load_route \
- -retry $RETRY $seed_rand $quiet"
- }
- date_time
- if { $FLOW != "CHECK" } {
- if { $FLOW != "PROBE" } {
- report_timing -verbose 2 -setup -file $::alta_work/setup.rpt.gz
- report_timing -verbose 1 -setup -file $::alta_work/setup_summary.rpt
- report_timing -verbose 2 -hold -file $::alta_work/hold.rpt.gz
- report_timing -verbose 1 -hold -file $::alta_work/hold_summary.rpt
- set ta_report_auto_constraints 0
- report_timing -fmax -file $::alta_work/fmax.rpt
- report_timing -xfer -file $::alta_work/xfer.rpt
- set ta_report_auto_constraints $ta_report_auto
- set ta_dump_uncovered 1
- report_timing -verbose 1 -coverage >! $::alta_work/coverage.rpt.gz
- set ta_dump_uncovered -1
- if { ! [info exists rt_report_timing_fast] } {
- set rt_report_timing_fast false
- }
- if { $rt_report_timing_fast } {
- set_timing_corner fast
- route_delay -quiet
- report_timing -verbose 2 -setup -file $::alta_work/setup_fast.rpt.gz
- report_timing -verbose 1 -setup -file $::alta_work/setup_fast_summary.rpt
- report_timing -verbose 2 -hold -file $::alta_work/hold_fast.rpt.gz
- report_timing -verbose 1 -hold -file $::alta_work/hold_fast_summary.rpt
- set ta_report_auto_constraints 0
- report_timing -fmax -file $::alta_work/fmax_fast.rpt
- report_timing -xfer -file $::alta_work/xfer_fast.rpt
- set ta_report_auto_constraints $ta_report_auto
- }
- write_routed_design "${RESULT_DIR}/${RESULT}_routed.v"
- }
- bitgen normal -prg "${RESULT_DIR}/${RESULT}.prg" -bin "${RESULT_DIR}/${RESULT}.bin"
- if { true } {
- alta::bin_to_asc "${RESULT_DIR}/${RESULT}.bin" "${RESULT_DIR}/${RESULT}.inc"
- set python_exe [expr {$tcl_platform(platform) eq "unix" ? "python3" : "python.exe"}]
- if { ! [ info exist BATCH_ARG ] } {
- set BATCH_ARG ""
- }
- set LOGIC_COMPRESS [alta::get_global_assignment_cmd ON_CHIP_BITSTREAM_DECOMPRESSION false]
- if { [string toupper $LOGIC_COMPRESS] != "OFF" } {
- set BATCH_ARG "$BATCH_ARG --logic-compress"
- }
- set BATCH_MCU 0xbff5105000730062aa234371030002b7
- if { [info exists BATCH_HSE] } {
- set BATCH_MCU 0xbff5105000730062a62343110062aa234371030002b7
- }
- set GEN_BATCH "{[alta::prog_home]/python_dist/$python_exe} {[alta::prog_home]/pio/gen_batch}\
- -d [[alta::get_device_info_cmd $DEVICE] device_id]\
- -i $BATCH_MCU\
- -o ${RESULT_DIR}/${RESULT}_batch.bin\
- --logic-config ${RESULT_DIR}/${RESULT}.bin\
- --logic-address 0x80007000\
- $BATCH_ARG"
- alta::tcl_highlight "Generating batch file: $GEN_BATCH\n"
- eval "exec $GEN_BATCH"
- } else {
- bitgen sram -prg "${RESULT_DIR}/${RESULT}_sram.prg"
- bitgen download -bin "${RESULT_DIR}/${RESULT}.bin" -svf "${RESULT_DIR}/${RESULT}_download.svf"
- generate_binary -slave "${RESULT_DIR}/${RESULT}_slave.rbf" \
- -inputs "${RESULT_DIR}/${RESULT}.bin" -reverse
- generate_binary -master "${RESULT_DIR}/${RESULT}_master.bin" \
- -inputs "${RESULT_DIR}/${RESULT}.bin"
- generate_programming_file "${RESULT_DIR}/${RESULT}_master.bin" -prg "${RESULT_DIR}/${RESULT}_master.prg" \
- -as "${RESULT_DIR}/${RESULT}_master_as.prg" -hybrid "${RESULT_DIR}/${RESULT}_hybrid.prg"
- }
- }
- break
- }
- Total IO : 150
- Total Pin : 128/17
- Top array is built.
- Loading architect libraries...
- ## CPU time: 0:0:0, REAL time: 0:0:0
- ## Memory Usage: 52MB (52MB)
- Loading route table...
- ## CPU time: 0:0:2, REAL time: 0:0:2
- ## Memory Usage: 317MB (317MB)
- Using design verilog file ./simulation/modelsim/test_uart.vo.
- Using design VE file test_uart.vex.
- Preparing design...
- Info: Rename duplicated module cell alta_rv32 to alta_rv32_duplicated at ./alta_db/flatten.vx:1.
- Info: Removing bbox feeder slice gpio1_io_out_data[0] driven by BBOX rv32|gpio1_io_out_data[0].
- Info: Removing bbox feeder slice gpio1_io_out_data[1] driven by BBOX rv32|gpio1_io_out_data[1].
- Info: Removing bbox feeder slice gpio1_io_out_data[2] driven by BBOX rv32|gpio1_io_out_data[2].
- Info: Removing bbox feeder slice gpio1_io_out_data[3] driven by BBOX rv32|gpio1_io_out_data[3].
- Info: Removing bbox feeder slice gpio1_io_out_data[4] driven by BBOX rv32|gpio1_io_out_data[4].
- Info: Removing bbox feeder slice gpio1_io_out_data[5] driven by BBOX rv32|gpio1_io_out_data[5].
- Info: Removing bbox feeder slice gpio1_io_out_data[6] driven by BBOX rv32|gpio1_io_out_data[6].
- Info: Removing bbox feeder slice gpio1_io_out_data[7] driven by BBOX rv32|gpio1_io_out_data[7].
- Info: Removing bbox feeder slice gpio1_io_out_en[0] driven by BBOX rv32|gpio1_io_out_en[0].
- Info: Removing bbox feeder slice gpio1_io_out_en[1] driven by BBOX rv32|gpio1_io_out_en[1].
- Info: Removing bbox feeder slice gpio1_io_out_en[2] driven by BBOX rv32|gpio1_io_out_en[2].
- Info: Removing bbox feeder slice gpio1_io_out_en[3] driven by BBOX rv32|gpio1_io_out_en[3].
- Info: Removing bbox feeder slice gpio1_io_out_en[4] driven by BBOX rv32|gpio1_io_out_en[4].
- Info: Removing bbox feeder slice gpio1_io_out_en[5] driven by BBOX rv32|gpio1_io_out_en[5].
- Info: Removing bbox feeder slice gpio1_io_out_en[6] driven by BBOX rv32|gpio1_io_out_en[6].
- Info: Removing bbox feeder slice gpio1_io_out_en[7] driven by BBOX rv32|gpio1_io_out_en[7].
- Info: Removing bbox feeder slice gpio2_io_out_data[0] driven by BBOX rv32|gpio2_io_out_data[0].
- Info: Removing bbox feeder slice gpio2_io_out_data[1] driven by BBOX rv32|gpio2_io_out_data[1].
- Info: Removing bbox feeder slice gpio2_io_out_data[2] driven by BBOX rv32|gpio2_io_out_data[2].
- Info: Removing bbox feeder slice gpio2_io_out_data[3] driven by BBOX rv32|gpio2_io_out_data[3].
- Info: Removing bbox feeder slice gpio2_io_out_data[4] driven by BBOX rv32|gpio2_io_out_data[4].
- Info: Removing bbox feeder slice gpio2_io_out_data[5] driven by BBOX rv32|gpio2_io_out_data[5].
- Info: Removing bbox feeder slice gpio2_io_out_data[6] driven by BBOX rv32|gpio2_io_out_data[6].
- Info: Removing bbox feeder slice gpio2_io_out_data[7] driven by BBOX rv32|gpio2_io_out_data[7].
- Info: Removing bbox feeder slice gpio2_io_out_en[0] driven by BBOX rv32|gpio2_io_out_en[0].
- Info: Removing bbox feeder slice gpio2_io_out_en[1] driven by BBOX rv32|gpio2_io_out_en[1].
- Info: Removing bbox feeder slice gpio2_io_out_en[2] driven by BBOX rv32|gpio2_io_out_en[2].
- Info: Removing bbox feeder slice gpio2_io_out_en[3] driven by BBOX rv32|gpio2_io_out_en[3].
- Info: Removing bbox feeder slice gpio2_io_out_en[4] driven by BBOX rv32|gpio2_io_out_en[4].
- Info: Removing bbox feeder slice gpio2_io_out_en[5] driven by BBOX rv32|gpio2_io_out_en[5].
- Info: Removing bbox feeder slice gpio2_io_out_en[6] driven by BBOX rv32|gpio2_io_out_en[6].
- Info: Removing bbox feeder slice gpio2_io_out_en[7] driven by BBOX rv32|gpio2_io_out_en[7].
- Info: Removing bbox feeder slice gpio3_io_in[0] driving BBOX rv32|gpio3_io_in[0].
- Info: Removing bbox feeder slice gpio3_io_in[1] driving BBOX rv32|gpio3_io_in[1].
- Info: Removing bbox feeder slice gpio3_io_in[2] driving BBOX rv32|gpio3_io_in[2].
- Info: Removing bbox feeder slice gpio3_io_in[3] driving BBOX rv32|gpio3_io_in[3].
- Info: Removing bbox feeder slice gpio3_io_in[4] driving BBOX rv32|gpio3_io_in[4].
- Info: Removing bbox feeder slice gpio4_io_in[0] driving BBOX rv32|gpio4_io_in[0].
- Info: Removing bbox feeder slice gpio4_io_in[1] driving BBOX rv32|gpio4_io_in[1].
- Info: Removing bbox feeder slice gpio4_io_in[2] driving BBOX rv32|gpio4_io_in[2].
- Info: Removing bbox feeder slice gpio4_io_in[3] driving BBOX rv32|gpio4_io_in[3].
- Info: Removing bbox feeder slice gpio4_io_in[4] driving BBOX rv32|gpio4_io_in[4].
- Info: Removing bbox feeder slice gpio4_io_in[5] driving BBOX rv32|gpio4_io_in[5].
- Info: Removing bbox feeder slice gpio5_io_in[0] driving BBOX rv32|gpio5_io_in[0].
- Info: Removing bbox feeder slice gpio5_io_in[1] driving BBOX rv32|gpio5_io_in[1].
- Info: Removing bbox feeder slice gpio5_io_in[2] driving BBOX rv32|gpio5_io_in[2].
- Info: Removing bbox feeder slice gpio5_io_in[3] driving BBOX rv32|gpio5_io_in[3].
- Info: Removing bbox feeder slice gpio5_io_in[4] driving BBOX rv32|gpio5_io_in[4].
- Info: Removing bbox feeder slice gpio5_io_in[5] driving BBOX rv32|gpio5_io_in[5].
- Info: Removing bbox feeder slice gpio6_io_in[6] driving BBOX rv32|gpio6_io_in[6].
- Info: Removing bbox feeder slice gpio6_io_in[7] driving BBOX rv32|gpio6_io_in[7].
- Info: Removing bbox feeder slice gpio6_io_out_data[0] driven by BBOX rv32|gpio6_io_out_data[0].
- Info: Removing bbox feeder slice gpio6_io_out_data[2] driven by BBOX rv32|gpio6_io_out_data[2].
- Info: Removing bbox feeder slice gpio6_io_out_data[4] driven by BBOX rv32|gpio6_io_out_data[4].
- Info: Removing bbox feeder slice gpio6_io_out_data[6] driven by BBOX rv32|gpio6_io_out_data[6].
- Info: Removing bbox feeder slice gpio6_io_out_en[0] driven by BBOX rv32|gpio6_io_out_en[0].
- Info: Removing bbox feeder slice gpio6_io_out_en[2] driven by BBOX rv32|gpio6_io_out_en[2].
- Info: Removing bbox feeder slice gpio6_io_out_en[4] driven by BBOX rv32|gpio6_io_out_en[4].
- Info: Removing bbox feeder slice gpio6_io_out_en[6] driven by BBOX rv32|gpio6_io_out_en[6].
- Info: Removing bbox feeder slice gpio7_io_in[1] driving BBOX rv32|gpio7_io_in[1].
- Info: Removing bbox feeder slice gpio7_io_out_data[6] driven by BBOX rv32|gpio7_io_out_data[6].
- Info: Removing bbox feeder slice gpio7_io_out_en[6] driven by BBOX rv32|gpio7_io_out_en[6].
- Info: Removing bbox feeder slice gpio8_io_out_data[0] driven by BBOX rv32|gpio8_io_out_data[0].
- Info: Removing bbox feeder slice gpio8_io_out_data[1] driven by BBOX rv32|gpio8_io_out_data[1].
- Info: Removing bbox feeder slice gpio8_io_out_data[2] driven by BBOX rv32|gpio8_io_out_data[2].
- Info: Removing bbox feeder slice gpio8_io_out_data[3] driven by BBOX rv32|gpio8_io_out_data[3].
- Info: Removing bbox feeder slice gpio8_io_out_data[4] driven by BBOX rv32|gpio8_io_out_data[4].
- Info: Removing bbox feeder slice gpio8_io_out_data[6] driven by BBOX rv32|gpio8_io_out_data[6].
- Info: Removing bbox feeder slice gpio8_io_out_data[7] driven by BBOX rv32|gpio8_io_out_data[7].
- Info: Removing bbox feeder slice gpio8_io_out_en[0] driven by BBOX rv32|gpio8_io_out_en[0].
- Info: Removing bbox feeder slice gpio8_io_out_en[1] driven by BBOX rv32|gpio8_io_out_en[1].
- Info: Removing bbox feeder slice gpio8_io_out_en[2] driven by BBOX rv32|gpio8_io_out_en[2].
- Info: Removing bbox feeder slice gpio8_io_out_en[3] driven by BBOX rv32|gpio8_io_out_en[3].
- Info: Removing bbox feeder slice gpio8_io_out_en[4] driven by BBOX rv32|gpio8_io_out_en[4].
- Info: Removing bbox feeder slice gpio8_io_out_en[6] driven by BBOX rv32|gpio8_io_out_en[6].
- Info: Removing bbox feeder slice gpio9_io_in[1] driving BBOX rv32|gpio9_io_in[1].
- Info: Removing bbox feeder slice gpio9_io_out_data[0] driven by BBOX rv32|gpio9_io_out_data[0].
- Info: Removing bbox feeder slice gpio9_io_out_data[1] driven by BBOX rv32|gpio9_io_out_data[1].
- Info: Removing bbox feeder slice gpio9_io_out_data[2] driven by BBOX rv32|gpio9_io_out_data[2].
- Info: Removing bbox feeder slice gpio9_io_out_data[3] driven by BBOX rv32|gpio9_io_out_data[3].
- Info: Removing bbox feeder slice gpio9_io_out_data[4] driven by BBOX rv32|gpio9_io_out_data[4].
- Info: Removing bbox feeder slice gpio9_io_out_data[5] driven by BBOX rv32|gpio9_io_out_data[5].
- Info: Removing bbox feeder slice gpio9_io_out_data[6] driven by BBOX rv32|gpio9_io_out_data[6].
- Info: Removing bbox feeder slice gpio9_io_out_data[7] driven by BBOX rv32|gpio9_io_out_data[7].
- Info: Removing bbox feeder slice gpio9_io_out_en[0] driven by BBOX rv32|gpio9_io_out_en[0].
- Info: Removing bbox feeder slice gpio9_io_out_en[1] driven by BBOX rv32|gpio9_io_out_en[1].
- Info: Removing bbox feeder slice gpio9_io_out_en[2] driven by BBOX rv32|gpio9_io_out_en[2].
- Info: Removing bbox feeder slice gpio9_io_out_en[3] driven by BBOX rv32|gpio9_io_out_en[3].
- Info: Removing bbox feeder slice gpio9_io_out_en[4] driven by BBOX rv32|gpio9_io_out_en[4].
- Info: Removing bbox feeder slice gpio9_io_out_en[5] driven by BBOX rv32|gpio9_io_out_en[5].
- Info: Removing bbox feeder slice gpio9_io_out_en[6] driven by BBOX rv32|gpio9_io_out_en[6].
- Info: Removing bbox feeder slice gpio9_io_out_en[7] driven by BBOX rv32|gpio9_io_out_en[7].
- Info: Removing bbox feeder slice macro_inst|u_ahb2apb|hreadyout~_wirecell driving BBOX rv32|mem_ahb_hreadyout inverted.
- Info: Removing bbox feeder slice macro_inst|u_uart[0]|u_regs|break_error_ie[1]~feeder driven by BBOX rv32|mem_ahb_hwdata[9].
- Info: Removing bbox feeder slice macro_inst|u_uart[0]|u_regs|break_error_ie[2]~feeder driven by BBOX rv32|mem_ahb_hwdata[9].
- Info: Removing bbox feeder slice macro_inst|u_uart[0]|u_regs|fbrd[1]~feeder driven by BBOX rv32|mem_ahb_hwdata[1].
- Info: Removing bbox feeder slice macro_inst|u_uart[0]|u_regs|fbrd[2]~feeder driven by BBOX rv32|mem_ahb_hwdata[2].
- Info: Removing bbox feeder slice macro_inst|u_uart[0]|u_regs|framing_error_ie[2]~feeder driven by BBOX rv32|mem_ahb_hwdata[7].
- Info: Removing bbox feeder slice macro_inst|u_uart[0]|u_regs|ibrd[12]~feeder driven by BBOX rv32|mem_ahb_hwdata[12].
- Info: Removing bbox feeder slice macro_inst|u_uart[0]|u_regs|ibrd[5]~feeder driven by BBOX rv32|mem_ahb_hwdata[5].
- Info: Removing bbox feeder slice macro_inst|u_uart[0]|u_regs|ibrd[7]~feeder driven by BBOX rv32|mem_ahb_hwdata[7].
- Info: Removing bbox feeder slice macro_inst|u_uart[0]|u_regs|ibrd[9]~feeder driven by BBOX rv32|mem_ahb_hwdata[9].
- Info: Removing bbox feeder slice macro_inst|u_uart[0]|u_regs|overrun_error_ie[1]~feeder driven by BBOX rv32|mem_ahb_hwdata[10].
- Info: Removing bbox feeder slice macro_inst|u_uart[0]|u_regs|parity_error_ie[2]~feeder driven by BBOX rv32|mem_ahb_hwdata[8].
- Info: Removing bbox feeder slice macro_inst|u_uart[0]|u_regs|rx_idle_ie[1]~feeder driven by BBOX rv32|mem_ahb_hwdata[11].
- Info: Removing bbox feeder slice macro_inst|u_uart[0]|u_regs|rx_idle_ie[4]~feeder driven by BBOX rv32|mem_ahb_hwdata[11].
- Info: Removing bbox feeder slice macro_inst|u_uart[0]|u_regs|rx_not_empty_ie[2]~feeder driven by BBOX rv32|mem_ahb_hwdata[4].
- Info: Removing bbox feeder slice macro_inst|u_uart[0]|u_regs|rx_not_empty_ie[4]~feeder driven by BBOX rv32|mem_ahb_hwdata[4].
- Info: Removing bbox feeder slice macro_inst|u_uart[0]|u_regs|tx_dma_en[0]~feeder driven by BBOX rv32|mem_ahb_hwdata[1].
- Info: Removing bbox feeder slice macro_inst|u_uart[0]|u_regs|tx_not_full_ie[2]~feeder driven by BBOX rv32|mem_ahb_hwdata[5].
- Info: Removing bbox feeder slice macro_inst|u_uart[0]|u_tx[0]|tx_fifo|fifo[1][6]~feeder driven by BBOX rv32|mem_ahb_hwdata[6].
- Info: Removing bbox feeder slice macro_inst|u_uart[0]|u_tx[1]|tx_fifo|fifo[1][0]~feeder driven by BBOX rv32|mem_ahb_hwdata[0].
- Info: Removing bbox feeder slice macro_inst|u_uart[0]|u_tx[1]|tx_fifo|fifo[1][4]~feeder driven by BBOX rv32|mem_ahb_hwdata[4].
- Info: Removing bbox feeder slice macro_inst|u_uart[0]|u_tx[1]|tx_fifo|fifo[1][6]~feeder driven by BBOX rv32|mem_ahb_hwdata[6].
- Info: Removing bbox feeder slice macro_inst|u_uart[0]|u_tx[1]|tx_fifo|fifo[1][7]~feeder driven by BBOX rv32|mem_ahb_hwdata[7].
- Info: Removing bbox feeder slice macro_inst|u_uart[0]|u_tx[2]|tx_fifo|fifo[1][0]~feeder driven by BBOX rv32|mem_ahb_hwdata[0].
- Info: Removing bbox feeder slice macro_inst|u_uart[0]|u_tx[2]|tx_fifo|fifo[1][1]~feeder driven by BBOX rv32|mem_ahb_hwdata[1].
- Info: Removing bbox feeder slice macro_inst|u_uart[0]|u_tx[2]|tx_fifo|fifo[1][3]~feeder driven by BBOX rv32|mem_ahb_hwdata[3].
- Info: Removing bbox feeder slice macro_inst|u_uart[0]|u_tx[2]|tx_fifo|fifo[1][4]~feeder driven by BBOX rv32|mem_ahb_hwdata[4].
- Info: Removing bbox feeder slice macro_inst|u_uart[0]|u_tx[2]|tx_fifo|fifo[1][5]~feeder driven by BBOX rv32|mem_ahb_hwdata[5].
- Info: Removing bbox feeder slice macro_inst|u_uart[0]|u_tx[2]|tx_fifo|fifo[1][6]~feeder driven by BBOX rv32|mem_ahb_hwdata[6].
- Info: Removing bbox feeder slice macro_inst|u_uart[0]|u_tx[2]|tx_fifo|fifo[1][7]~feeder driven by BBOX rv32|mem_ahb_hwdata[7].
- Info: Removing bbox feeder slice macro_inst|u_uart[0]|u_tx[3]|tx_fifo|fifo[1][0]~feeder driven by BBOX rv32|mem_ahb_hwdata[0].
- Info: Removing bbox feeder slice macro_inst|u_uart[0]|u_tx[3]|tx_fifo|fifo[1][1]~feeder driven by BBOX rv32|mem_ahb_hwdata[1].
- Info: Removing bbox feeder slice macro_inst|u_uart[0]|u_tx[3]|tx_fifo|fifo[1][2]~feeder driven by BBOX rv32|mem_ahb_hwdata[2].
- Info: Removing bbox feeder slice macro_inst|u_uart[0]|u_tx[3]|tx_fifo|fifo[1][3]~feeder driven by BBOX rv32|mem_ahb_hwdata[3].
- Info: Removing bbox feeder slice macro_inst|u_uart[0]|u_tx[3]|tx_fifo|fifo[1][4]~feeder driven by BBOX rv32|mem_ahb_hwdata[4].
- Info: Removing bbox feeder slice macro_inst|u_uart[0]|u_tx[3]|tx_fifo|fifo[1][5]~feeder driven by BBOX rv32|mem_ahb_hwdata[5].
- Info: Removing bbox feeder slice macro_inst|u_uart[0]|u_tx[3]|tx_fifo|fifo[1][6]~feeder driven by BBOX rv32|mem_ahb_hwdata[6].
- Info: Removing bbox feeder slice macro_inst|u_uart[0]|u_tx[4]|tx_fifo|fifo[1][0]~feeder driven by BBOX rv32|mem_ahb_hwdata[0].
- Info: Removing bbox feeder slice macro_inst|u_uart[0]|u_tx[4]|tx_fifo|fifo[1][1]~feeder driven by BBOX rv32|mem_ahb_hwdata[1].
- Info: Removing bbox feeder slice macro_inst|u_uart[0]|u_tx[4]|tx_fifo|fifo[1][2]~feeder driven by BBOX rv32|mem_ahb_hwdata[2].
- Info: Removing bbox feeder slice macro_inst|u_uart[0]|u_tx[4]|tx_fifo|fifo[1][3]~feeder driven by BBOX rv32|mem_ahb_hwdata[3].
- Info: Removing bbox feeder slice macro_inst|u_uart[0]|u_tx[4]|tx_fifo|fifo[1][4]~feeder driven by BBOX rv32|mem_ahb_hwdata[4].
- Info: Removing bbox feeder slice macro_inst|u_uart[0]|u_tx[4]|tx_fifo|fifo[1][6]~feeder driven by BBOX rv32|mem_ahb_hwdata[6].
- Info: Removing bbox feeder slice macro_inst|u_uart[0]|u_tx[4]|tx_fifo|fifo[1][7]~feeder driven by BBOX rv32|mem_ahb_hwdata[7].
- Info: Removing bbox feeder slice macro_inst|u_uart[0]|u_tx[5]|tx_fifo|fifo[1][0]~feeder driven by BBOX rv32|mem_ahb_hwdata[0].
- Info: Removing bbox feeder slice macro_inst|u_uart[0]|u_tx[5]|tx_fifo|fifo[1][1]~feeder driven by BBOX rv32|mem_ahb_hwdata[1].
- Info: Removing bbox feeder slice macro_inst|u_uart[0]|u_tx[5]|tx_fifo|fifo[1][2]~feeder driven by BBOX rv32|mem_ahb_hwdata[2].
- Info: Removing bbox feeder slice macro_inst|u_uart[0]|u_tx[5]|tx_fifo|fifo[1][3]~feeder driven by BBOX rv32|mem_ahb_hwdata[3].
- Info: Removing bbox feeder slice macro_inst|u_uart[0]|u_tx[5]|tx_fifo|fifo[1][5]~feeder driven by BBOX rv32|mem_ahb_hwdata[5].
- Info: Removing bbox feeder slice macro_inst|u_uart[0]|u_tx[5]|tx_fifo|fifo[1][6]~feeder driven by BBOX rv32|mem_ahb_hwdata[6].
- Info: Removing bbox feeder slice macro_inst|u_uart[0]|u_tx[5]|tx_fifo|fifo[1][7]~feeder driven by BBOX rv32|mem_ahb_hwdata[7].
- Info: Removing bbox feeder slice macro_inst|u_uart[1]|u_regs|break_error_ie[2]~feeder driven by BBOX rv32|mem_ahb_hwdata[9].
- Info: Removing bbox feeder slice macro_inst|u_uart[1]|u_regs|break_error_ie[4]~feeder driven by BBOX rv32|mem_ahb_hwdata[9].
- Info: Removing bbox feeder slice macro_inst|u_uart[1]|u_regs|fbrd[5]~feeder driven by BBOX rv32|mem_ahb_hwdata[5].
- Info: Removing bbox feeder slice macro_inst|u_uart[1]|u_regs|framing_error_ie[4]~feeder driven by BBOX rv32|mem_ahb_hwdata[7].
- Info: Removing bbox feeder slice macro_inst|u_uart[1]|u_regs|ibrd[10]~feeder driven by BBOX rv32|mem_ahb_hwdata[10].
- Info: Removing bbox feeder slice macro_inst|u_uart[1]|u_regs|ibrd[1]~feeder driven by BBOX rv32|mem_ahb_hwdata[1].
- Info: Removing bbox feeder slice macro_inst|u_uart[1]|u_regs|ibrd[4]~feeder driven by BBOX rv32|mem_ahb_hwdata[4].
- Info: Removing bbox feeder slice macro_inst|u_uart[1]|u_regs|ibrd[5]~feeder driven by BBOX rv32|mem_ahb_hwdata[5].
- Info: Removing bbox feeder slice macro_inst|u_uart[1]|u_regs|ibrd[6]~feeder driven by BBOX rv32|mem_ahb_hwdata[6].
- Info: Removing bbox feeder slice macro_inst|u_uart[1]|u_regs|lcr_sps~feeder driven by BBOX rv32|mem_ahb_hwdata[7].
- Info: Removing bbox feeder slice macro_inst|u_uart[1]|u_regs|rx_dma_en[2]~feeder driven by BBOX rv32|mem_ahb_hwdata[0].
- Info: Removing bbox feeder slice macro_inst|u_uart[1]|u_regs|rx_dma_en[4]~feeder driven by BBOX rv32|mem_ahb_hwdata[0].
- Info: Removing bbox feeder slice macro_inst|u_uart[1]|u_regs|rx_idle_ie[1]~feeder driven by BBOX rv32|mem_ahb_hwdata[11].
- Info: Removing bbox feeder slice macro_inst|u_uart[1]|u_regs|rx_idle_ie[2]~feeder driven by BBOX rv32|mem_ahb_hwdata[11].
- Info: Removing bbox feeder slice macro_inst|u_uart[1]|u_regs|rx_not_empty_ie[2]~feeder driven by BBOX rv32|mem_ahb_hwdata[4].
- Info: Removing bbox feeder slice macro_inst|u_uart[1]|u_regs|tx_dma_en[4]~feeder driven by BBOX rv32|mem_ahb_hwdata[1].
- Info: Removing bbox feeder slice macro_inst|u_uart[1]|u_tx[0]|tx_fifo|fifo[1][0]~feeder driven by BBOX rv32|mem_ahb_hwdata[0].
- Info: Removing bbox feeder slice macro_inst|u_uart[1]|u_tx[0]|tx_fifo|fifo[1][1]~feeder driven by BBOX rv32|mem_ahb_hwdata[1].
- Info: Removing bbox feeder slice macro_inst|u_uart[1]|u_tx[0]|tx_fifo|fifo[1][2]~feeder driven by BBOX rv32|mem_ahb_hwdata[2].
- Info: Removing bbox feeder slice macro_inst|u_uart[1]|u_tx[0]|tx_fifo|fifo[1][4]~feeder driven by BBOX rv32|mem_ahb_hwdata[4].
- Info: Removing bbox feeder slice macro_inst|u_uart[1]|u_tx[0]|tx_fifo|fifo[1][5]~feeder driven by BBOX rv32|mem_ahb_hwdata[5].
- Info: Removing bbox feeder slice macro_inst|u_uart[1]|u_tx[0]|tx_fifo|fifo[1][6]~feeder driven by BBOX rv32|mem_ahb_hwdata[6].
- Info: Removing bbox feeder slice macro_inst|u_uart[1]|u_tx[0]|tx_fifo|fifo[1][7]~feeder driven by BBOX rv32|mem_ahb_hwdata[7].
- Info: Removing bbox feeder slice macro_inst|u_uart[1]|u_tx[1]|tx_fifo|fifo[1][0]~feeder driven by BBOX rv32|mem_ahb_hwdata[0].
- Info: Removing bbox feeder slice macro_inst|u_uart[1]|u_tx[1]|tx_fifo|fifo[1][2]~feeder driven by BBOX rv32|mem_ahb_hwdata[2].
- Info: Removing bbox feeder slice macro_inst|u_uart[1]|u_tx[1]|tx_fifo|fifo[1][4]~feeder driven by BBOX rv32|mem_ahb_hwdata[4].
- Info: Removing bbox feeder slice macro_inst|u_uart[1]|u_tx[1]|tx_fifo|fifo[1][5]~feeder driven by BBOX rv32|mem_ahb_hwdata[5].
- Info: Removing bbox feeder slice macro_inst|u_uart[1]|u_tx[1]|tx_fifo|fifo[1][6]~feeder driven by BBOX rv32|mem_ahb_hwdata[6].
- Info: Removing bbox feeder slice macro_inst|u_uart[1]|u_tx[2]|tx_fifo|fifo[1][0]~feeder driven by BBOX rv32|mem_ahb_hwdata[0].
- Info: Removing bbox feeder slice macro_inst|u_uart[1]|u_tx[2]|tx_fifo|fifo[1][1]~feeder driven by BBOX rv32|mem_ahb_hwdata[1].
- Info: Removing bbox feeder slice macro_inst|u_uart[1]|u_tx[2]|tx_fifo|fifo[1][2]~feeder driven by BBOX rv32|mem_ahb_hwdata[2].
- Info: Removing bbox feeder slice macro_inst|u_uart[1]|u_tx[2]|tx_fifo|fifo[1][3]~feeder driven by BBOX rv32|mem_ahb_hwdata[3].
- Info: Removing bbox feeder slice macro_inst|u_uart[1]|u_tx[2]|tx_fifo|fifo[1][4]~feeder driven by BBOX rv32|mem_ahb_hwdata[4].
- Info: Removing bbox feeder slice macro_inst|u_uart[1]|u_tx[2]|tx_fifo|fifo[1][5]~feeder driven by BBOX rv32|mem_ahb_hwdata[5].
- Info: Removing bbox feeder slice macro_inst|u_uart[1]|u_tx[2]|tx_fifo|fifo[1][7]~feeder driven by BBOX rv32|mem_ahb_hwdata[7].
- Info: Removing bbox feeder slice macro_inst|u_uart[1]|u_tx[3]|tx_fifo|fifo[1][0]~feeder driven by BBOX rv32|mem_ahb_hwdata[0].
- Info: Removing bbox feeder slice macro_inst|u_uart[1]|u_tx[3]|tx_fifo|fifo[1][1]~feeder driven by BBOX rv32|mem_ahb_hwdata[1].
- Info: Removing bbox feeder slice macro_inst|u_uart[1]|u_tx[3]|tx_fifo|fifo[1][3]~feeder driven by BBOX rv32|mem_ahb_hwdata[3].
- Info: Removing bbox feeder slice macro_inst|u_uart[1]|u_tx[3]|tx_fifo|fifo[1][4]~feeder driven by BBOX rv32|mem_ahb_hwdata[4].
- Info: Removing bbox feeder slice macro_inst|u_uart[1]|u_tx[3]|tx_fifo|fifo[1][5]~feeder driven by BBOX rv32|mem_ahb_hwdata[5].
- Info: Removing bbox feeder slice macro_inst|u_uart[1]|u_tx[3]|tx_fifo|fifo[1][6]~feeder driven by BBOX rv32|mem_ahb_hwdata[6].
- Info: Removing bbox feeder slice macro_inst|u_uart[1]|u_tx[3]|tx_fifo|fifo[1][7]~feeder driven by BBOX rv32|mem_ahb_hwdata[7].
- Info: Removing bbox feeder slice macro_inst|u_uart[1]|u_tx[4]|tx_fifo|fifo[1][0]~feeder driven by BBOX rv32|mem_ahb_hwdata[0].
- Info: Removing bbox feeder slice macro_inst|u_uart[1]|u_tx[4]|tx_fifo|fifo[1][2]~feeder driven by BBOX rv32|mem_ahb_hwdata[2].
- Info: Removing bbox feeder slice macro_inst|u_uart[1]|u_tx[4]|tx_fifo|fifo[1][3]~feeder driven by BBOX rv32|mem_ahb_hwdata[3].
- Info: Removing bbox feeder slice macro_inst|u_uart[1]|u_tx[4]|tx_fifo|fifo[1][4]~feeder driven by BBOX rv32|mem_ahb_hwdata[4].
- Info: Removing bbox feeder slice macro_inst|u_uart[1]|u_tx[4]|tx_fifo|fifo[1][5]~feeder driven by BBOX rv32|mem_ahb_hwdata[5].
- Info: Removing bbox feeder slice macro_inst|u_uart[1]|u_tx[4]|tx_fifo|fifo[1][6]~feeder driven by BBOX rv32|mem_ahb_hwdata[6].
- Info: Removing bbox feeder slice macro_inst|u_uart[1]|u_tx[4]|tx_fifo|fifo[1][7]~feeder driven by BBOX rv32|mem_ahb_hwdata[7].
- Info: Removing bbox feeder slice macro_inst|u_uart[1]|u_tx[5]|tx_fifo|fifo[1][0]~feeder driven by BBOX rv32|mem_ahb_hwdata[0].
- Info: Removing bbox feeder slice macro_inst|u_uart[1]|u_tx[5]|tx_fifo|fifo[1][1]~feeder driven by BBOX rv32|mem_ahb_hwdata[1].
- Info: Removing bbox feeder slice macro_inst|u_uart[1]|u_tx[5]|tx_fifo|fifo[1][3]~feeder driven by BBOX rv32|mem_ahb_hwdata[3].
- Info: Removing bbox feeder slice macro_inst|u_uart[1]|u_tx[5]|tx_fifo|fifo[1][5]~feeder driven by BBOX rv32|mem_ahb_hwdata[5].
- Info: Removing bbox feeder slice macro_inst|u_uart[1]|u_tx[5]|tx_fifo|fifo[1][6]~feeder driven by BBOX rv32|mem_ahb_hwdata[6].
- Info: Removing bbox feeder slice macro_inst|u_uart[1]|u_tx[5]|tx_fifo|fifo[1][7]~feeder driven by BBOX rv32|mem_ahb_hwdata[7].
- Info: Removing bbox feeder slice sys_ctrl_clkSource[0] driven by BBOX rv32|sys_ctrl_clkSource[0].
- Info: Removing bbox feeder slice sys_ctrl_clkSource[1] driven by BBOX rv32|sys_ctrl_clkSource[1].
- ## CPU time: 0:0:1, REAL time: 0:0:1
- ## Memory Usage: 337MB (337MB)
- Pseudo pack design...
- Using location file test_uart.vex
- VCO frequency: 480.000 Mhz
- clkout0: Enabled , 240.000 Mhz
- clkout1: Disabled, 0.938 Mhz
- clkout2: Disabled, 0.938 Mhz
- clkout3: Enabled , 120.000 Mhz
- clkout4: Disabled, 0.938 Mhz
- Info: Instance gclksw_inst|gclk_switch is identified as a clock switch.
- Packing Statistics
- Total Logics : 1988/2112 ( 94%)
- Total LUTs : 1866/2112 ( 88%)
- Total Registers : 1303/2112 ( 61%)
- Total Block Rams : 0/ 4 ( 0%)
- Total PLLs : 1/ 1 (100%)
- Total Pins : 58/ 128 ( 45%)
- Global Signals : 4/ 5 ( 80%)
- PLL_ENABLE~clkctrl_outclk (from: PLL_ENABLE~combout)
- auto_generated_inst.hbo_22_f9ff3d300b43c0f2_bp (from: auto_generated_inst.hbo_22_f9ff3d300b43c0f2_bp)
- auto_generated_inst.hbo_22_717df45ba12dbb20_bp (from: pll_inst|auto_generated|pll1_CLK_bus[3])
- sys_resetn~clkctrl_outclk (from: sys_resetn~combout)
- Total Lonely Datain : 177
- Total Lonely Register : 17
- Total LUT-FF Pairs : 777
- Total Register Packings : 332
- Registers with synchronous reset : 0
- Registers with asynchronous reset : 897
- Registers with sync and async reset : 70
- ## CPU time: 0:0:0, REAL time: 0:0:1
- ## Memory Usage: 335MB (337MB)
- Filter verilog...
- ## CPU time: 0:0:0, REAL time: 0:0:0
- ## Memory Usage: 335MB (337MB)
- Reading DB design...
- ## CPU time: 0:0:0, REAL time: 0:0:1
- ## Memory Usage: 337MB (337MB)
- Processing design...
- > set_instance_assignment -name ENABLE_OPEN_DRAIN -to SIM_CLK~output false
- > set_instance_assignment -name ENABLE_OPEN_DRAIN -to GPIO2_5~output false
- > set_instance_assignment -name ENABLE_OPEN_DRAIN -to GPIO2_6~output false
- > set_instance_assignment -name ENABLE_OPEN_DRAIN -to GPIO2_4~output false
- > set_instance_assignment -name ENABLE_OPEN_DRAIN -to GPIO6_0~output false
- > set_instance_assignment -name ENABLE_OPEN_DRAIN -to GPIO6_4~output false
- > set_instance_assignment -name ENABLE_OPEN_DRAIN -to GPIO2_3~output false
- > set_instance_assignment -name ENABLE_OPEN_DRAIN -to GPIO6_2~output false
- > set_instance_assignment -name ENABLE_OPEN_DRAIN -to uart15_tx~output false
- > set_instance_assignment -name ENABLE_OPEN_DRAIN -to GPIO2_7~output false
- > set_instance_assignment -name ENABLE_OPEN_DRAIN -to SIM_IO[1]~output false
- > set_instance_assignment -name ENABLE_OPEN_DRAIN -to UART4_UARTTXD~output false
- > set_instance_assignment -name ENABLE_OPEN_DRAIN -to SIM_IO_15~output false
- > set_instance_assignment -name ENABLE_OPEN_DRAIN -to SIM_IO_12~output false
- > set_instance_assignment -name ENABLE_OPEN_DRAIN -to GPIO6_6~output false
- > set_instance_assignment -name ENABLE_OPEN_DRAIN -to SIM_IO_13~output false
- > set_instance_assignment -name ENABLE_OPEN_DRAIN -to GPIO9_1~output false
- > set_instance_assignment -name ENABLE_OPEN_DRAIN -to GPIO9_5~output false
- > set_instance_assignment -name ENABLE_OPEN_DRAIN -to UART3_UARTTXD~output false
- > set_instance_assignment -name ENABLE_OPEN_DRAIN -to GPIO9_0~output false
- > set_instance_assignment -name ENABLE_OPEN_DRAIN -to SIM_IO[0]~output false
- > set_instance_assignment -name ENABLE_OPEN_DRAIN -to GPIO9_2~output false
- > set_instance_assignment -name ENABLE_OPEN_DRAIN -to GPIO9_7~output false
- > set_instance_assignment -name ENABLE_OPEN_DRAIN -to GPIO9_6~output false
- > set_instance_assignment -name ENABLE_OPEN_DRAIN -to SIM_IO[11]~output false
- > set_instance_assignment -name ENABLE_OPEN_DRAIN -to SIM_IO[5]~output false
- > set_instance_assignment -name ENABLE_OPEN_DRAIN -to SIM_IO[7]~output false
- > set_instance_assignment -name ENABLE_OPEN_DRAIN -to SIM_IO[6]~output false
- > set_instance_assignment -name ENABLE_OPEN_DRAIN -to SIM_IO[8]~output false
- > set_instance_assignment -name ENABLE_OPEN_DRAIN -to GPIO1_1~output false
- > set_instance_assignment -name ENABLE_OPEN_DRAIN -to GPIO1_2~output false
- > set_instance_assignment -name ENABLE_OPEN_DRAIN -to GPIO1_0~output false
- > set_instance_assignment -name ENABLE_OPEN_DRAIN -to SIM_IO[3]~output false
- > set_instance_assignment -name ENABLE_OPEN_DRAIN -to SIM_IO[2]~output false
- > set_instance_assignment -name ENABLE_OPEN_DRAIN -to SIM_IO[9]~output false
- > set_instance_assignment -name ENABLE_OPEN_DRAIN -to GPIO2_1~output false
- > set_instance_assignment -name ENABLE_OPEN_DRAIN -to GPIO2_2~output false
- > set_instance_assignment -name ENABLE_OPEN_DRAIN -to SIM_IO[4]~output false
- > set_instance_assignment -name ENABLE_OPEN_DRAIN -to SIM_IO[10]~output false
- > set_instance_assignment -name ENABLE_OPEN_DRAIN -to GPIO1_5~output false
- > set_instance_assignment -name ENABLE_OPEN_DRAIN -to GPIO1_7~output false
- > set_instance_assignment -name ENABLE_OPEN_DRAIN -to GPIO1_6~output false
- > set_instance_assignment -name ENABLE_OPEN_DRAIN -to GPIO1_4~output false
- > set_instance_assignment -name ENABLE_OPEN_DRAIN -to GPIO2_0~output false
- > set_instance_assignment -name ENABLE_OPEN_DRAIN -to GPIO1_3~output false
- > set_instance_assignment -name ENABLE_OPEN_DRAIN -to GPIO9_4~output false
- > set_instance_assignment -name ENABLE_OPEN_DRAIN -to GPIO9_3~output false
- > set_instance_assignment -extension -name CLKIN_FREQ -to pll_inst|auto_generated|pll1 8
- > set_instance_assignment -extension -name FIXED_COORD -to gclksw_inst|gclk_switch__alta_gclksw {22 4 0}
- > set_instance_assignment -extension -name FIXED_COORD -to gclksw_inst|gclk_switch {22 4 5}
- > set_location_assignment -to GPIO1_0 PIN_78
- > set_location_assignment -to GPIO1_1 PIN_82
- > set_location_assignment -to GPIO1_2 PIN_87
- > set_location_assignment -to GPIO1_3 PIN_91
- > set_location_assignment -to GPIO1_4 PIN_80
- > set_location_assignment -to GPIO1_5 PIN_84
- > set_location_assignment -to GPIO1_6 PIN_89
- > set_location_assignment -to GPIO1_7 PIN_93
- > set_location_assignment -to GPIO2_0 PIN_29
- > set_location_assignment -to GPIO2_1 PIN_23
- > set_location_assignment -to GPIO2_2 PIN_15
- > set_location_assignment -to GPIO2_3 PIN_3
- > set_location_assignment -to GPIO2_4 PIN_31
- > set_location_assignment -to GPIO2_5 PIN_25
- > set_location_assignment -to GPIO2_6 PIN_17
- > set_location_assignment -to GPIO2_7 PIN_5
- > set_location_assignment -to GPIO3_0 PIN_95
- > set_location_assignment -to GPIO3_1 PIN_97
- > set_location_assignment -to GPIO3_2 PIN_35
- > set_location_assignment -to GPIO3_3 PIN_33
- > set_location_assignment -to GPIO3_4 PIN_32
- > set_location_assignment -to GPIO6_0 PIN_51
- > set_location_assignment -to GPIO6_2 PIN_52
- > set_location_assignment -to GPIO6_4 PIN_1
- > set_location_assignment -to GPIO6_6 PIN_98
- > set_location_assignment -to GPIO9_0 PIN_47
- > set_location_assignment -to GPIO9_1 PIN_48
- > set_location_assignment -to GPIO9_2 PIN_46
- > set_location_assignment -to GPIO9_3 PIN_96
- > set_location_assignment -to GPIO9_4 PIN_39
- > set_location_assignment -to GPIO9_5 PIN_34
- > set_location_assignment -to GPIO9_6 PIN_71
- > set_location_assignment -to GPIO9_7 PIN_70
- > set_location_assignment -to PIN_HSE PIN_HSE
- > set_location_assignment -to PIN_HSI PIN_HSI
- > set_location_assignment -to PIN_OSC PIN_OSC
- > set_location_assignment -to SIM_CLK PIN_85
- > set_location_assignment -to SIM_IO[0] PIN_77
- > set_location_assignment -to SIM_IO[10] PIN_7
- > set_location_assignment -to SIM_IO[11] PIN_2
- > set_location_assignment -to SIM_IO[1] PIN_81
- > set_location_assignment -to SIM_IO[2] PIN_86
- > set_location_assignment -to SIM_IO[3] PIN_90
- > set_location_assignment -to SIM_IO[4] PIN_79
- > set_location_assignment -to SIM_IO[5] PIN_83
- > set_location_assignment -to SIM_IO[6] PIN_88
- > set_location_assignment -to SIM_IO[7] PIN_92
- > set_location_assignment -to SIM_IO[8] PIN_26
- > set_location_assignment -to SIM_IO[9] PIN_18
- > set_location_assignment -to SIM_IO_12 PIN_30
- > set_location_assignment -to SIM_IO_13 PIN_24
- > set_location_assignment -to SIM_IO_15 PIN_4
- > set_location_assignment -to UART3_UARTRXD PIN_66
- > set_location_assignment -to UART3_UARTTXD PIN_67
- > set_location_assignment -to UART4_UARTRXD PIN_38
- > set_location_assignment -to UART4_UARTTXD PIN_36
- > set_location_assignment -to uart15_rx PIN_69
- > set_location_assignment -to uart15_tx PIN_68
- Info: Found GCLK net PLL_ENABLE~clkctrl_outclk (1).
- Info: Found GCLK net sys_resetn~clkctrl_outclk (124).
- Info: Found GCLK net auto_generated_inst.hbo_22_f9ff3d300b43c0f2_bp (5).
- Info: Found GCLK net auto_generated_inst.hbo_22_717df45ba12dbb20_bp (242).
- Info: Fixing net rv32.resetn_out, from rv32|resetn_out to gclksw_inst|gclk_switch__alta_gclksw|resetn.
- Info: Fixing net PIN_HSE~input_o, from PIN_HSE~input|combout to gclksw_inst|gclk_switch__alta_gclksw|clkin1.
- Info: Fixing net gclksw_inst|gclk_switch__alta_gclksw__clkout, from gclksw_inst|gclk_switch__alta_gclksw|clkout to rv32|sys_clk.
- Info: Fixing net auto_generated_inst.hbo_13_1797ab7b230f061a_bp, from pll_inst|auto_generated|pll1|lock to rv32|sys_ctrl_pllReady.
- Info: Slice gpio3_io_in[5] is removed.
- Info: Slice gpio3_io_in[6] is removed.
- Info: Slice gpio3_io_in[7] is removed.
- Info: Slice gpio4_io_in[6] is removed.
- Info: Slice gpio4_io_in[7] is removed.
- Info: Slice gpio5_io_in[6] is removed.
- Info: Slice gpio5_io_in[7] is removed.
- Info: Slice gpio6_io_in[0] is removed.
- Info: Slice gpio6_io_in[2] is removed.
- Info: Slice gpio6_io_in[4] is removed.
- Info: Slice gpio7_io_in[0] is removed.
- Info: Slice gpio7_io_in[5] is removed.
- Info: Slice gpio7_io_in[6] is removed.
- Info: Slice gpio7_io_in[7] is removed.
- Info: Slice gpio7_io_in[2] is removed.
- Info: Slice gpio7_io_in[3] is removed.
- Info: Slice gpio7_io_in[4] is removed.
- Info: Slice gpio9_io_in[0] is removed.
- Info: Slice gpio9_io_in[5] is removed.
- Info: Slice gpio9_io_in[6] is removed.
- Info: Slice gpio9_io_in[7] is removed.
- Info: Slice gpio9_io_in[2] is removed.
- Info: Slice gpio9_io_in[3] is removed.
- Info: Slice gpio9_io_in[4] is removed.
- ## CPU time: 0:0:0, REAL time: 0:0:0
- ## Memory Usage: 338MB (338MB)
- Using design SDC file ./test_uart.sdc.
- # pio_begin
- if { ! [info exists ::HSI_PERIOD] } {
- set ::HSI_PERIOD 100.0
- }
- create_clock -name PIN_HSI -period $::HSI_PERIOD [get_ports PIN_HSI]
- set_clock_groups -asynchronous -group PIN_HSI
- if { ! [info exists ::HSE_PERIOD] } {
- set ::HSE_PERIOD 125.0
- }
- create_clock -name PIN_HSE -period $::HSE_PERIOD [get_ports PIN_HSE]
- set_clock_groups -asynchronous -group PIN_HSE
- derive_pll_clocks -create_base_clocks
- Info: Auto constraint PLL: create_generated_clock -name pll_inst|auto_generated|pll1|clk[0] -multiply_by 30 -add -source PIN_HSE -master_clock PIN_HSE pll_inst|auto_generated|pll1|clkout0.
- Info: Auto constraint PLL: create_generated_clock -name pll_inst|auto_generated|pll1|clk[3] -multiply_by 15 -add -source PIN_HSE -master_clock PIN_HSE pll_inst|auto_generated|pll1|clkout3.
- set_false_path -from rv32|resetn_out
- # pio_end
- ##
- set SYS_CLK [get_clocks pll_inst|*clk*0*]
- if { [get_clocks -nowarn pll_inst|*clk*3*] != {} } {
- set BUS_CLK [get_clocks pll_inst|*clk*3*]
- # Always make sure there is an extra cycle of margin for inter domain transfers between SYS_CLK
- # and BUS_CLK. The extra cycle is always in terms of the to (latching) clock.
- set_multicycle_path -from $SYS_CLK -to $BUS_CLK -setup 2
- set_multicycle_path -from $SYS_CLK -to $BUS_CLK -hold 1
- set_multicycle_path -from $BUS_CLK -to $SYS_CLK -setup 2
- set_multicycle_path -from $BUS_CLK -to $SYS_CLK -hold 1
- # These are for mem_ahb_hreadyout going into rv32, since it's ok for rv32 to receive
- # mem_ahb_hreadyout 1 cycle late. They theoretically should help useful skew.
- set_multicycle_path -from $SYS_CLK -to rv32 -setup 2
- set_multicycle_path -from $SYS_CLK -to rv32 -hold 1
- }
- > #set pl_criticality_wratio "1.00 1.00 1.00 1.00"
- > #set pl_max_iter_eco "10 20 300 40 3 100 100 1"
- > #set pl_eco_slack_crit "99999. 1.00 0.10 5 0.03 20 0.01 100"
- >
- > #set pl_priority_compare "2 2 2 3"
- > #set pl_priority_result "2 1 1 0"
- > #set pl_priority_pass "2 1 1 0"
- > #set pl_swap_cost_margin "200.0 0.0 200.0 0.0 200.0 0.0 0.00 0.0"
- > #set pl_swap_wirelength_margin "200.0 0.0 200.0 0.0 200.0 0.0 020.0 -0.3 2000. 1.30"
- > #set pl_swap_congestion_margin "100.0 0.0 100.0 0.0 100.0 0.0 010.0 -0.3 1000. 1.15"
- > #set pl_criticality_beta "1.0 3.0 1.0 1.0 3.0 1.0 1.0 3.0 1.0 99999 3.0 3.0"
- > #set pl_oci_iter "1 1 100 1"
- >
- > set rt_retiming_idx 5
- > #set rt_converge_accelerator "2 2 0 3"
- > #set rt_pres_cost_ratio "1.00 1.50 2.00 2.50"
- > #set rt_dly_ratio "0.50 0.30 0.30 0.50 0.50 0.30"
- > #set rt_reroute_max_iter "6 6 6 7 9 12"
- > #set rt_reroute_start_iter "0 2 2 2 4 0 "
- > #set rt_quick_converge_ratio 0.50
- > set pl_reuse_existing_placement false
- > set pl_fix_bram_cells 0
- > set pl_fix_mult_cells 0
- > set pl_neighbor_swap_range "3 6 6 3 "
- > set pl_pass_result "1 1 1 1"
- > set pl_max_pass "1 1 1 1 1"
- > set pl_max_iter 10
- > set pl_max_iter_part 20
- > set pl_max_iter_final 20
- > set pl_max_iter_legal 10
- > set pl_max_iter_touch 00
- > #set pl_neighbor_swap_range "2 6 6 3 "
- > #set pl_spread_swap_max_iter "3 5 5 4"
- > #set pl_use_initial_place_once 0
- > set rt_min_converge "5"
- > set rt_optimize_max "3"
- > set pl_useful_skew_level -1
- > set rt_useful_skew_level 0
- > set rt_useful_skew_bram true
- > set rt_useful_skew_io false
- > set rt_useful_skew_io_ireg false
- > set rt_useful_skew_io_oreg false
- > set rt_useful_skew_output_io false
- > set rt_useful_skew_input_io false
- > set rt_useful_skew_unconstraint "false false"
- > set rt_useful_skew_max "0 100"
- > set rt_skew_crit_minmax "0.00 1.00"
- > #set rt_useful_skew_setup_slac_margin "1.00 1.00 1.00 1.00 1.00 0.10 0.50 0.10 0.70 0.10 1.00"
- > #set rt_useful_skew_hold_slack_margin "0.10 0.10 0.30 0.30 0.30 0.30"
- > #set rt_useful_skew_hold_slack_ratio "0.05 0.05 0.10 0.10 0.10 0.10"
- > # Minimal logical slice hold fix, only by routing to bram/mult, no IO delay
- >
- > set ta_cross_clock_slack "2 0"
- >
- > #set pl_max_iter_hold_fix "30 1 3"
- > #set pl_hold_slack_margin 0.2
- > #set pl_setup_slack_margin "0.5 -1000."
- > #set pl_net_hold_fix_target "alta_bram alta_bram9k alta_mult"
- >
- > set rt_hold_slack_margin "0.2 0.2 0.2 0.2 0.2 0.7 -1000. 0.0"
- > set rt_setup_slack_margin "0.5 -1000. 0.5 -1000. 0.0 -1000."
- > #set rt_net_hold_crit_minmax "0.5 0.5"
- > set rt_net_hold_budget_method 0
- > set rt_net_hold_fix_target "alta_bram alta_bram9k alta_mult"
- >
- > #set pl_net_hold_fix_clock false
- > #set pl_net_hold_fix_auto false
- > #set pl_net_hold_fix_io false
- > #set rt_net_hold_fix_start false
- > #set rt_net_hold_fix_clock false
- > #set rt_net_hold_fix_auto false
- > #set rt_net_hold_fix_io false
- Using AQF file ./alta_db/alta.aqf.
- > set_global_assignment -name DEVICE_IO_STANDARD "3.3-V LVTTL"
- Using ASF file test_uart.asf.
- > # pio_begin >>>>>> DO NOT MODIFY THIS SECTION! >>>>>>
- > if { [info exists BOARD_PLL_CLKIN] } {
- if { $BOARD_PLL_CLKIN == "PIN_OSC" } {
- set_config -loc 18 0 0 CFG_RCOSC_EN 1'b1
- }
- }
- > if { [info exists USB0_MODE] } {
- alta::tcl_info "USB0_MODE = $USB0_MODE"
- set_config -loc 0 1 3 CFG_PULLUP_ENB 1'b0
- set_config -loc 0 1 3 CFG_PULLDN_ENB 1'b0
- }
- > # pio_end <<<<<< DO NOT MODIFY THIS SECTION! <<<<<<
- > ##
- >
- > # set_instance_assignment -name WEAK_PULLUP -to uart_rxd* true
- >
- > set_instance_assignment -name WEAK_PULLUP -to SIM_IO* true
- > set_instance_assignment -name WEAK_PULLUP -to SIM_RST* true
- Warn: [set_instance_assignment] Empty -to specified, objects SIM_RST* are not recognized.
- >
- > set_instance_assignment -name AUTO_OPEN_DRAIN_PINS ON -to PIN_77
- > set_instance_assignment -name AUTO_OPEN_DRAIN_PINS ON -to PIN_81
- > set_instance_assignment -name AUTO_OPEN_DRAIN_PINS ON -to PIN_86
- > set_instance_assignment -name AUTO_OPEN_DRAIN_PINS ON -to PIN_90
- > set_instance_assignment -name AUTO_OPEN_DRAIN_PINS ON -to PIN_79
- > set_instance_assignment -name AUTO_OPEN_DRAIN_PINS ON -to PIN_83
- > set_instance_assignment -name AUTO_OPEN_DRAIN_PINS ON -to PIN_88
- > set_instance_assignment -name AUTO_OPEN_DRAIN_PINS ON -to PIN_92
- > set_instance_assignment -name AUTO_OPEN_DRAIN_PINS ON -to PIN_26
- > set_instance_assignment -name AUTO_OPEN_DRAIN_PINS ON -to PIN_18
- > set_instance_assignment -name AUTO_OPEN_DRAIN_PINS ON -to PIN_7
- > set_instance_assignment -name AUTO_OPEN_DRAIN_PINS ON -to PIN_2
- > set_instance_assignment -name AUTO_OPEN_DRAIN_PINS ON -to PIN_30
- > set_instance_assignment -name AUTO_OPEN_DRAIN_PINS ON -to PIN_24
- > set_instance_assignment -name AUTO_OPEN_DRAIN_PINS ON -to PIN_16
- Warn: [set_instance_assignment] Empty -to specified, objects PIN_16 are not recognized.
- > set_instance_assignment -name AUTO_OPEN_DRAIN_PINS ON -to PIN_4
- >
- >
- > set_instance_assignment -name AUTO_OPEN_DRAIN_PINS ON -to PIN_48
- > set_instance_assignment -name AUTO_OPEN_DRAIN_PINS ON -to PIN_98
- Placement Statistics
- Total Logic Counts : 1964/2112 (93.0%)
- Total Logic Tiles : 132/132 (100.0%)
- Total Valid Nets : 3051 (1520+1531)
- Total Valid Fanouts : 13298 (6988+6310)
- Total Tile Fanouts : 3461
- Tile Zip Fanins : 19 (1:36)
- Tile Zip Fanouts : 27 (1:481)
- Total Ignored Nets : 1330
- Total Valid Blocks : 155 (132/21)
- Total Ignored Blocks : 0
- Total Zip Complexities : 1122/4003 1.74/1950.47
- Avg Zip Bottleneck : 7.30 82.54
- Avg Net Bottleneck : 18.97 523.94
- Iter #1/1 ...
- Pass 1 #1/1 ...
- Partitioning...
- step = 0, partition : 20,12
- step = 1, partition : 10,7
- ....................
- step = 2, partition : 5,3
- ....................
- step = 3, partition : 2,2
- ....................
- step = 4, partition : 2,2
- ....................
- ## CPU time: 0:0:7, REAL time: 0:0:8
- Pass 2 #1/1 ...
- Legalization and Swapping...
- ..........
- ## CPU time: 0:0:4, REAL time: 0:0:5
- Pass 3 #1/1 ...
- Touchup...
- ## CPU time: 0:0:0, REAL time: 0:0:0
- Pass 4 #1/1 ...
- Optimization...
- ............................................................
- Finishing...
- ## CPU time: 0:0:10, REAL time: 0:0:10
- Total wire cost after placement: -0.953333:-0.2288:0.644(-0.953333:-0.2288) 6529.16(1358.04)+18985(0)+8935.54 8574.23(4637.34)+4740.75
- *** Post Placement Timing Report ***
- === User constraints ===
- Fmax report
- User constraint: 8.000MHz, Fmax: 140.588MHz, Clock: PIN_HSE
- User constraint: 10.000MHz, Fmax: 140.588MHz, Clock: PIN_HSI
- User constraint: 240.000MHz, Fmax: 195.313MHz, Clock: pll_inst|auto_generated|pll1|clk[0]
- User constraint: 120.000MHz, Fmax: 114.077MHz, Clock: pll_inst|auto_generated|pll1|clk[3]
- Clock transfer report:
- Worst setup: 117.887, with clock PIN_HSE
- Worst setup: 92.887, with clock PIN_HSI
- Worst setup: -0.953, with clock pll_inst|auto_generated|pll1|clk[0]
- Worst setup: -0.433, with clock pll_inst|auto_generated|pll1|clk[3]
- Worst setup: 6.183, from clock pll_inst|auto_generated|pll1|clk[0] to pll_inst|auto_generated|pll1|clk[3]
- Worst setup: 3.158, from clock pll_inst|auto_generated|pll1|clk[3] to pll_inst|auto_generated|pll1|clk[0]
- Worst hold: 0.615, with clock PIN_HSE
- Worst hold: 0.615, with clock PIN_HSI
- Worst hold: 0.615, with clock pll_inst|auto_generated|pll1|clk[0]
- Worst hold: 0.603, with clock pll_inst|auto_generated|pll1|clk[3]
- Worst hold: 0.750, from clock pll_inst|auto_generated|pll1|clk[0] to pll_inst|auto_generated|pll1|clk[3]
- Worst hold: 1.079, from clock pll_inst|auto_generated|pll1|clk[3] to pll_inst|auto_generated|pll1|clk[0]
- === Auto constraints ===
- Coverage report
- User constraints covered 9470 connections out of 9603 total, coverage: 98.6%
- Auto constraints covered 9470 connections out of 9603 total, coverage: 98.6%
- Setup from rv32 to clken_ctrl_X59_Y2_N1, clock pll_inst|auto_generated|pll1|clk[0], constraint 4.167, skew 1.613, data 6.600
- Slack: -0.953
- Arrival Time: 5.645
- Required Time: 4.692
- *** End Timing Report ***
- route_design -dump ./alta_db/route.tx -replace ./alta_db/replace.tx
- Route Design Statistics
- Total Routing Nets : 3051
- Fanout Average : 3.36 (1..242)
- Max Fanout Net : auto_generated_inst.hbo_22_717df45ba12dbb20_bp
- Logic Slices : 1964/2112 (93.0%)
- Routing...
- Budget Useful Skew...
- ## CPU time: 0:0:0, REAL time: 0:0:1
- iter = 1/1, route#: 3051, violation# : 1835, overflow# : 1727, conflict# : 1488, node#: 18654
- ## CPU time: 0:0:1, REAL time: 0:0:2
- iter = 2/2, route#: 3051, violation# : 1344, overflow# : 1308, conflict# : 1156, node#: 19699
- ## CPU time: 0:0:2, REAL time: 0:0:2
- iter = 3/3, route#: 3051, violation# : 602, overflow# : 588, conflict# : 597, node#: 20863
- ## CPU time: 0:0:2, REAL time: 0:0:3
- iter = 4/4, route#: 3051, violation# : 304, overflow# : 300, conflict# : 317, node#: 21518
- ## CPU time: 0:0:3, REAL time: 0:0:3
- iter = 5/5, route#: 3051, violation# : 207, overflow# : 204, conflict# : 242, node#: 21793
- ## CPU time: 0:0:3, REAL time: 0:0:4
- iter = 6/6, route#: 3051, violation# : 134, overflow# : 134, conflict# : 198, node#: 21938
- ## CPU time: 0:0:4, REAL time: 0:0:4
- iter = 7/7, route#: 3051, violation# : 128, overflow# : 128, conflict# : 182, node#: 22073
- ## CPU time: 0:0:4, REAL time: 0:0:5
- iter = 8/3, route#: 336, violation# : 312, overflow# : 312, conflict# : 301, node#: 21420
- ## CPU time: 0:0:5, REAL time: 0:0:5
- iter = 9/4, route#: 267, violation# : 162, overflow# : 161, conflict# : 199, node#: 21745
- ## CPU time: 0:0:5, REAL time: 0:0:6
- iter = 10/5, route#: 280, violation# : 112, overflow# : 112, conflict# : 172, node#: 21886
- ## CPU time: 0:0:5, REAL time: 0:0:6
- iter = 11/6, route#: 115, violation# : 51, overflow# : 51, conflict# : 82, node#: 22159
- ## CPU time: 0:0:6, REAL time: 0:0:6
- iter = 12/7, route#: 181, violation# : 47, overflow# : 47, conflict# : 82, node#: 22232
- ## CPU time: 0:0:6, REAL time: 0:0:7
- iter = 13/8, route#: 88, violation# : 36, overflow# : 36, conflict# : 64, node#: 22373
- ## CPU time: 0:0:6, REAL time: 0:0:7
- iter = 14/5, route#: 83, violation# : 55, overflow# : 55, conflict# : 82, node#: 22264
- ## CPU time: 0:0:6, REAL time: 0:0:7
- iter = 15/6, route#: 62, violation# : 25, overflow# : 25, conflict# : 44, node#: 22350
- ## CPU time: 0:0:6, REAL time: 0:0:7
- iter = 16/7, route#: 49, violation# : 20, overflow# : 20, conflict# : 38, node#: 22427
- ## CPU time: 0:0:7, REAL time: 0:0:7
- iter = 17/8, route#: 30, violation# : 16, overflow# : 16, conflict# : 27, node#: 22465
- ## CPU time: 0:0:7, REAL time: 0:0:7
- iter = 18/9, route#: 47, violation# : 18, overflow# : 18, conflict# : 31, node#: 22506
- ## CPU time: 0:0:7, REAL time: 0:0:7
- iter = 19/10, route#: 22, violation# : 14, overflow# : 14, conflict# : 26, node#: 22537
- ## CPU time: 0:0:7, REAL time: 0:0:8
- iter = 20/5, route#: 50, violation# : 38, overflow# : 38, conflict# : 58, node#: 22483
- ## CPU time: 0:0:7, REAL time: 0:0:8
- iter = 21/6, route#: 78, violation# : 39, overflow# : 39, conflict# : 53, node#: 22455
- ## CPU time: 0:0:7, REAL time: 0:0:8
- iter = 22/7, route#: 55, violation# : 22, overflow# : 22, conflict# : 37, node#: 22548
- ## CPU time: 0:0:7, REAL time: 0:0:8
- iter = 23/8, route#: 39, violation# : 22, overflow# : 22, conflict# : 36, node#: 22644
- ## CPU time: 0:0:7, REAL time: 0:0:8
- iter = 24/9, route#: 47, violation# : 15, overflow# : 15, conflict# : 26, node#: 22609
- ## CPU time: 0:0:7, REAL time: 0:0:8
- iter = 25/10, route#: 34, violation# : 16, overflow# : 16, conflict# : 27, node#: 22661
- ## CPU time: 0:0:8, REAL time: 0:0:8
- iter = 26/5, route#: 117, violation# : 68, overflow# : 68, conflict# : 95, node#: 22451
- ## CPU time: 0:0:8, REAL time: 0:0:8
- iter = 27/6, route#: 71, violation# : 40, overflow# : 40, conflict# : 63, node#: 22601
- ## CPU time: 0:0:8, REAL time: 0:0:9
- iter = 28/7, route#: 67, violation# : 27, overflow# : 27, conflict# : 42, node#: 22679
- ## CPU time: 0:0:8, REAL time: 0:0:9
- iter = 29/8, route#: 70, violation# : 17, overflow# : 17, conflict# : 30, node#: 22711
- ## CPU time: 0:0:8, REAL time: 0:0:9
- iter = 30/9, route#: 35, violation# : 14, overflow# : 14, conflict# : 25, node#: 22762
- ## CPU time: 0:0:8, REAL time: 0:0:9
- iter = 31/10, route#: 18, violation# : 16, overflow# : 16, conflict# : 24, node#: 22783
- ## CPU time: 0:0:8, REAL time: 0:0:9
- iter = 32/5, route#: 101, violation# : 56, overflow# : 56, conflict# : 77, node#: 22577
- ## CPU time: 0:0:8, REAL time: 0:0:9
- iter = 33/6, route#: 78, violation# : 33, overflow# : 33, conflict# : 54, node#: 22615
- ## CPU time: 0:0:9, REAL time: 0:0:9
- iter = 34/7, route#: 32, violation# : 17, overflow# : 17, conflict# : 30, node#: 22704
- ## CPU time: 0:0:9, REAL time: 0:0:9
- iter = 35/8, route#: 40, violation# : 11, overflow# : 11, conflict# : 21, node#: 22741
- ## CPU time: 0:0:9, REAL time: 0:0:9
- iter = 36/9, route#: 19, violation# : 11, overflow# : 11, conflict# : 20, node#: 22763
- ## CPU time: 0:0:9, REAL time: 0:0:9
- iter = 37/10, route#: 23, violation# : 12, overflow# : 12, conflict# : 19, node#: 22779
- ## CPU time: 0:0:9, REAL time: 0:0:10
- iter = 38/5, route#: 90, violation# : 56, overflow# : 56, conflict# : 84, node#: 22572
- ## CPU time: 0:0:9, REAL time: 0:0:10
- iter = 39/6, route#: 81, violation# : 31, overflow# : 31, conflict# : 55, node#: 22649
- ## CPU time: 0:0:9, REAL time: 0:0:10
- iter = 40/7, route#: 36, violation# : 23, overflow# : 23, conflict# : 35, node#: 22724
- ## CPU time: 0:0:9, REAL time: 0:0:10
- iter = 41/8, route#: 28, violation# : 10, overflow# : 10, conflict# : 18, node#: 22735
- ## CPU time: 0:0:9, REAL time: 0:0:10
- iter = 42/9, route#: 27, violation# : 10, overflow# : 10, conflict# : 19, node#: 22768
- ## CPU time: 0:0:9, REAL time: 0:0:10
- iter = 43/10, route#: 26, violation# : 8, overflow# : 8, conflict# : 16, node#: 22753
- ## CPU time: 0:0:9, REAL time: 0:0:10
- iter = 44/5, route#: 19, violation# : 11, overflow# : 11, conflict# : 16, node#: 22726
- ## CPU time: 0:0:9, REAL time: 0:0:10
- iter = 45/6, route#: 9, violation# : 8, overflow# : 8, conflict# : 13, node#: 22742
- ## CPU time: 0:0:9, REAL time: 0:0:10
- iter = 46/7, route#: 23, violation# : 6, overflow# : 6, conflict# : 11, node#: 22767
- ## CPU time: 0:0:9, REAL time: 0:0:10
- iter = 47/8, route#: 9, violation# : 5, overflow# : 5, conflict# : 7, node#: 22804
- ## CPU time: 0:0:9, REAL time: 0:0:10
- iter = 48/9, route#: 10, violation# : 3, overflow# : 3, conflict# : 5, node#: 22814
- ## CPU time: 0:0:10, REAL time: 0:0:10
- iter = 49/10, route#: 4, violation# : 2, overflow# : 2, conflict# : 4, node#: 22814
- ## CPU time: 0:0:10, REAL time: 0:0:10
- iter = 50/5, route#: 22, violation# : 15, overflow# : 15, conflict# : 22, node#: 22746
- ## CPU time: 0:0:10, REAL time: 0:0:10
- iter = 51/6, route#: 18, violation# : 8, overflow# : 8, conflict# : 12, node#: 22772
- ## CPU time: 0:0:10, REAL time: 0:0:10
- iter = 52/7, route#: 9, violation# : 6, overflow# : 6, conflict# : 10, node#: 22784
- ## CPU time: 0:0:10, REAL time: 0:0:10
- iter = 53/8, route#: 15, violation# : 5, overflow# : 5, conflict# : 9, node#: 22786
- ## CPU time: 0:0:10, REAL time: 0:0:10
- iter = 54/9, route#: 8, violation# : 3, overflow# : 3, conflict# : 6, node#: 22794
- ## CPU time: 0:0:10, REAL time: 0:0:10
- iter = 55/10, route#: 22, violation# : 10, overflow# : 10, conflict# : 13, node#: 22820
- ## CPU time: 0:0:10, REAL time: 0:0:11
- iter = 56/5, route#: 10, violation# : 11, overflow# : 11, conflict# : 16, node#: 22784
- ## CPU time: 0:0:10, REAL time: 0:0:11
- iter = 57/6, route#: 19, violation# : 9, overflow# : 9, conflict# : 16, node#: 22771
- ## CPU time: 0:0:10, REAL time: 0:0:11
- iter = 58/7, route#: 34, violation# : 10, overflow# : 10, conflict# : 17, node#: 22785
- ## CPU time: 0:0:10, REAL time: 0:0:11
- iter = 59/8, route#: 12, violation# : 8, overflow# : 8, conflict# : 13, node#: 22824
- ## CPU time: 0:0:10, REAL time: 0:0:11
- iter = 60/9, route#: 24, violation# : 8, overflow# : 8, conflict# : 14, node#: 22853
- ## CPU time: 0:0:10, REAL time: 0:0:11
- iter = 61/10, route#: 19, violation# : 4, overflow# : 4, conflict# : 7, node#: 22892
- ## CPU time: 0:0:10, REAL time: 0:0:11
- iter = 62/5, route#: 6, violation# : 4, overflow# : 4, conflict# : 7, node#: 22865
- ## CPU time: 0:0:10, REAL time: 0:0:11
- iter = 63/6, route#: 8, violation# : 4, overflow# : 4, conflict# : 6, node#: 22847
- ## CPU time: 0:0:10, REAL time: 0:0:11
- iter = 64/7, route#: 13, violation# : 8, overflow# : 8, conflict# : 13, node#: 22850
- ## CPU time: 0:0:10, REAL time: 0:0:11
- iter = 65/8, route#: 13, violation# : 3, overflow# : 3, conflict# : 6, node#: 22863
- ## CPU time: 0:0:10, REAL time: 0:0:11
- iter = 66/9, route#: 5, violation# : 3, overflow# : 3, conflict# : 6, node#: 22872
- ## CPU time: 0:0:10, REAL time: 0:0:11
- iter = 67/10, route#: 8, violation# : 0, overflow# : 0, conflict# : 0, node#: 22880
- ## CPU time: 0:0:11, REAL time: 0:0:12
- iter = 68/3, route#: 375, violation# : 216, overflow# : 216, conflict# : 261, node#: 21908
- ## CPU time: 0:0:11, REAL time: 0:0:12
- iter = 69/4, route#: 193, violation# : 44, overflow# : 44, conflict# : 78, node#: 22194
- ## CPU time: 0:0:11, REAL time: 0:0:12
- iter = 70/5, route#: 93, violation# : 15, overflow# : 15, conflict# : 28, node#: 22268
- ## CPU time: 0:0:11, REAL time: 0:0:12
- iter = 71/6, route#: 20, violation# : 6, overflow# : 6, conflict# : 12, node#: 22305
- ## CPU time: 0:0:12, REAL time: 0:0:12
- iter = 72/7, route#: 51, violation# : 4, overflow# : 4, conflict# : 8, node#: 22294
- ## CPU time: 0:0:12, REAL time: 0:0:12
- iter = 73/3, route#: 68, violation# : 35, overflow# : 35, conflict# : 53, node#: 22212
- ## CPU time: 0:0:12, REAL time: 0:0:13
- iter = 74/4, route#: 84, violation# : 33, overflow# : 33, conflict# : 47, node#: 22164
- ## CPU time: 0:0:12, REAL time: 0:0:13
- iter = 75/5, route#: 46, violation# : 4, overflow# : 4, conflict# : 8, node#: 22278
- ## CPU time: 0:0:12, REAL time: 0:0:13
- iter = 76/6, route#: 7, violation# : 1, overflow# : 1, conflict# : 2, node#: 22298
- ## CPU time: 0:0:12, REAL time: 0:0:13
- iter = 77/7, route#: 45, violation# : 2, overflow# : 2, conflict# : 4, node#: 22265
- ## CPU time: 0:0:12, REAL time: 0:0:13
- iter = 78/8, route#: 3, violation# : 1, overflow# : 1, conflict# : 2, node#: 22269
- ## CPU time: 0:0:12, REAL time: 0:0:13
- iter = 79/5, route#: 2, violation# : 1, overflow# : 1, conflict# : 2, node#: 22265
- ## CPU time: 0:0:12, REAL time: 0:0:13
- iter = 80/6, route#: 2, violation# : 1, overflow# : 1, conflict# : 2, node#: 22265
- ## CPU time: 0:0:12, REAL time: 0:0:13
- iter = 81/7, route#: 3, violation# : 1, overflow# : 1, conflict# : 2, node#: 22265
- ## CPU time: 0:0:12, REAL time: 0:0:13
- iter = 82/8, route#: 3, violation# : 2, overflow# : 2, conflict# : 3, node#: 22275
- ## CPU time: 0:0:12, REAL time: 0:0:13
- iter = 83/9, route#: 3, violation# : 0, overflow# : 0, conflict# : 0, node#: 22273
- ## CPU time: 0:0:13, REAL time: 0:0:13
- iter = 84/3, route#: 207, violation# : 94, overflow# : 94, conflict# : 131, node#: 21963
- ## CPU time: 0:0:13, REAL time: 0:0:14
- iter = 85/4, route#: 105, violation# : 30, overflow# : 30, conflict# : 55, node#: 22095
- ## CPU time: 0:0:13, REAL time: 0:0:14
- iter = 86/5, route#: 65, violation# : 7, overflow# : 7, conflict# : 13, node#: 22169
- ## CPU time: 0:0:13, REAL time: 0:0:14
- iter = 87/6, route#: 18, violation# : 3, overflow# : 3, conflict# : 5, node#: 22195
- ## CPU time: 0:0:13, REAL time: 0:0:14
- iter = 88/7, route#: 42, violation# : 0, overflow# : 0, conflict# : 0, node#: 22202
- ## CPU time: 0:0:14, REAL time: 0:0:15
- iter = 89/3, route#: 182, violation# : 110, overflow# : 110, conflict# : 131, node#: 21976
- ## CPU time: 0:0:14, REAL time: 0:0:15
- iter = 90/4, route#: 114, violation# : 34, overflow# : 34, conflict# : 56, node#: 22139
- ## CPU time: 0:0:14, REAL time: 0:0:15
- iter = 91/5, route#: 56, violation# : 6, overflow# : 6, conflict# : 12, node#: 22217
- ## CPU time: 0:0:14, REAL time: 0:0:15
- iter = 92/6, route#: 10, violation# : 3, overflow# : 3, conflict# : 6, node#: 22223
- ## CPU time: 0:0:14, REAL time: 0:0:15
- iter = 93/7, route#: 34, violation# : 1, overflow# : 1, conflict# : 2, node#: 22240
- ## CPU time: 0:0:14, REAL time: 0:0:15
- iter = 94/5, route#: 40, violation# : 3, overflow# : 3, conflict# : 6, node#: 22210
- ## CPU time: 0:0:14, REAL time: 0:0:15
- iter = 95/6, route#: 4, violation# : 1, overflow# : 1, conflict# : 2, node#: 22222
- ## CPU time: 0:0:15, REAL time: 0:0:15
- iter = 96/7, route#: 25, violation# : 1, overflow# : 1, conflict# : 2, node#: 22215
- ## CPU time: 0:0:15, REAL time: 0:0:15
- iter = 97/8, route#: 2, violation# : 2, overflow# : 2, conflict# : 3, node#: 22222
- ## CPU time: 0:0:15, REAL time: 0:0:15
- iter = 98/9, route#: 24, violation# : 2, overflow# : 2, conflict# : 4, node#: 22234
- ## CPU time: 0:0:15, REAL time: 0:0:15
- iter = 99/10, route#: 3, violation# : 2, overflow# : 2, conflict# : 3, node#: 22233
- ## CPU time: 0:0:15, REAL time: 0:0:15
- iter = 100/5, route#: 3, violation# : 2, overflow# : 2, conflict# : 3, node#: 22233
- ## CPU time: 0:0:15, REAL time: 0:0:15
- iter = 101/6, route#: 4, violation# : 2, overflow# : 2, conflict# : 4, node#: 22233
- ## CPU time: 0:0:15, REAL time: 0:0:15
- iter = 102/7, route#: 3, violation# : 2, overflow# : 2, conflict# : 4, node#: 22230
- ## CPU time: 0:0:15, REAL time: 0:0:15
- iter = 103/8, route#: 6, violation# : 1, overflow# : 1, conflict# : 2, node#: 22250
- ## CPU time: 0:0:15, REAL time: 0:0:16
- iter = 104/9, route#: 3, violation# : 0, overflow# : 0, conflict# : 0, node#: 22242
- ## CPU time: 0:0:15, REAL time: 0:0:16
- iter = 105/3, route#: 152, violation# : 80, overflow# : 80, conflict# : 110, node#: 22014
- ## CPU time: 0:0:15, REAL time: 0:0:16
- iter = 106/4, route#: 63, violation# : 17, overflow# : 17, conflict# : 29, node#: 22157
- ## CPU time: 0:0:15, REAL time: 0:0:16
- iter = 107/5, route#: 53, violation# : 5, overflow# : 5, conflict# : 10, node#: 22181
- ## CPU time: 0:0:16, REAL time: 0:0:16
- iter = 108/6, route#: 8, violation# : 2, overflow# : 2, conflict# : 4, node#: 22203
- ## CPU time: 0:0:16, REAL time: 0:0:16
- iter = 109/7, route#: 37, violation# : 4, overflow# : 4, conflict# : 7, node#: 22220
- ## CPU time: 0:0:16, REAL time: 0:0:16
- iter = 110/3, route#: 55, violation# : 26, overflow# : 26, conflict# : 38, node#: 22111
- ## CPU time: 0:0:16, REAL time: 0:0:17
- iter = 111/4, route#: 52, violation# : 16, overflow# : 16, conflict# : 23, node#: 22136
- ## CPU time: 0:0:16, REAL time: 0:0:17
- iter = 112/5, route#: 31, violation# : 3, overflow# : 3, conflict# : 6, node#: 22176
- ## CPU time: 0:0:16, REAL time: 0:0:17
- iter = 113/6, route#: 4, violation# : 1, overflow# : 1, conflict# : 2, node#: 22188
- ## CPU time: 0:0:16, REAL time: 0:0:17
- iter = 114/7, route#: 31, violation# : 1, overflow# : 1, conflict# : 2, node#: 22211
- ## CPU time: 0:0:16, REAL time: 0:0:17
- iter = 115/8, route#: 2, violation# : 0, overflow# : 0, conflict# : 0, node#: 22209
- Optimizing...
- ...
- Done
- *** Post Routing Timing Report ***
- === User constraints ===
- Fmax report
- User constraint: 8.000MHz, Fmax: 145.033MHz, Clock: PIN_HSE
- User constraint: 10.000MHz, Fmax: 145.033MHz, Clock: PIN_HSI
- User constraint: 240.000MHz, Fmax: 249.314MHz, Clock: pll_inst|auto_generated|pll1|clk[0]
- User constraint: 120.000MHz, Fmax: 106.270MHz, Clock: pll_inst|auto_generated|pll1|clk[3]
- Clock transfer report:
- Worst setup: 118.105, with clock PIN_HSE
- Worst setup: 93.105, with clock PIN_HSI
- Worst setup: 0.156, with clock pll_inst|auto_generated|pll1|clk[0]
- Worst setup: -1.077, with clock pll_inst|auto_generated|pll1|clk[3]
- Worst setup: 3.132, from clock pll_inst|auto_generated|pll1|clk[0] to pll_inst|auto_generated|pll1|clk[3]
- Worst setup: 3.396, from clock pll_inst|auto_generated|pll1|clk[3] to pll_inst|auto_generated|pll1|clk[0]
- Worst hold: 0.615, with clock PIN_HSE
- Worst hold: 0.615, with clock PIN_HSI
- Worst hold: 0.615, with clock pll_inst|auto_generated|pll1|clk[0]
- Worst hold: 0.606, with clock pll_inst|auto_generated|pll1|clk[3]
- Worst hold: 1.740, from clock pll_inst|auto_generated|pll1|clk[0] to pll_inst|auto_generated|pll1|clk[3]
- Worst hold: 0.818, from clock pll_inst|auto_generated|pll1|clk[3] to pll_inst|auto_generated|pll1|clk[0]
- === Auto constraints ===
- Coverage report
- User constraints covered 9470 connections out of 9603 total, coverage: 98.6%
- Auto constraints covered 9470 connections out of 9603 total, coverage: 98.6%
- Setup from macro_inst|u_uart[0]|u_rx[0]|parity_error to macro_inst|u_uart[0]|u_regs|apb_prdata[1], clock pll_inst|auto_generated|pll1|clk[3], constraint 8.333, skew -0.066, data 9.015
- Slack: -1.077
- Arrival Time: 9.805
- Required Time: 8.728
- *** End Timing Report ***
- Tue Jul 15 16:28:19 2025
- Generating batch file: {C:/Users/zzz17/AgRV_pio/packages/tool-agrv_logic/python_dist/python.exe} {C:/Users/zzz17/AgRV_pio/packages/tool-agrv_logic/pio/gen_batch} -d 1075838977 -i 0xbff5105000730062aa234371030002b7 -o ./test_uart_batch.bin --logic-config ./test_uart.bin --logic-address 0x80007000
- >
- > if { [file exists "./${DESIGN}.post.asf"] } {
- alta::tcl_highlight "Using post-ASF file ${DESIGN}.post.asf.\n"
- source "./${DESIGN}.post.asf"
- }
- Using post-ASF file test_uart.post.asf.
- > # pio_begin >>>>>> DO NOT MODIFY THIS SECTION! >>>>>>
- > # pio_end <<<<<< DO NOT MODIFY THIS SECTION! <<<<<<
- > ##
- >
- > date_time
- Tue Jul 15 16:28:20 2025
- > exit
- Total 0 fatals, 0 errors, 2 warnings, 236 infos.
|