run.log 71 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280
  1. > alta::tcl_whisper "Cmd : [alta::prog_path] [alta::prog_version]([alta::prog_subversion])\n"
  2. Cmd : C:/Users/zzz17/AgRV_pio/packages/tool-agrv_logic/bin/af.exe 2025.06.b0(3f05be1c)
  3. > alta::tcl_whisper "Args : [string map {\{ \" \} \"} $tcl_cmd_args]\n"
  4. 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
  5. >
  6. > set_seed_rand $SEED
  7. > set ar_timing_derate ${TIMING_DERATE}
  8. >
  9. > date_time
  10. Tue Jul 15 16:27:27 2025
  11. > if { [file exists [file join . ${DESIGN}.pre.asf]] } {
  12. alta::tcl_highlight "Using pre-ASF file ${DESIGN}.pre.asf.\n"
  13. source [file join . ${DESIGN}.pre.asf]
  14. }
  15. Using pre-ASF file test_uart.pre.asf.
  16. > # pio_begin >>>>>> DO NOT MODIFY THIS SECTION! >>>>>>
  17. > set BOARD_PLL_CLKIN PIN_HSE
  18. > set db_io_name_priority False
  19. > set ip_pll_vco_lowpower true
  20. > set_global_assignment -name ON_CHIP_BITSTREAM_DECOMPRESSION "OFF"
  21. > # pio_end <<<<<< DO NOT MODIFY THIS SECTION! <<<<<<
  22. > ##
  23. >
  24. >
  25. > set LOAD_DB false
  26. > set LOAD_PLACE false
  27. > set LOAD_ROUTE false
  28. > set LOAD_PACK false
  29. > if { $FLOW == "LOAD" || $FLOW == "CHECK" || $FLOW == "PROBE" } {
  30. set LOAD_DB true
  31. set LOAD_PLACE true
  32. set LOAD_ROUTE true
  33. } elseif { $FLOW == "R" || $FLOW == "ROUTE" } {
  34. set LOAD_DB true
  35. set LOAD_PLACE true
  36. } elseif { $FLOW == "PR" || $FLOW == "PLACE_AND_ROUTE" } {
  37. set LOAD_DB false
  38. set LOAD_PACK true
  39. }
  40. >
  41. > set ORIGINAL_QSF "./test_uart.qsf"
  42. > set ORIGINAL_PIN ""
  43. >
  44. > #################################################################################
  45. >
  46. > # The default SDC file is ${DESIGN}.sdc
  47. > set sdc_file $SDC_FILE
  48. > if { $sdc_file == "" } {
  49. set sdc_file [file join . ${DESIGN}.adc]
  50. if { ! [file exists $sdc_file] } { set sdc_file [file join . ${DESIGN}.sdc]; }
  51. }
  52. > # No default VE file is not specified
  53. > set ve_file $VEX_FILE
  54. >
  55. > while (1) {
  56. if { $FLOW == "SKIP" } { break }
  57. if { [info exists CORNER] } { set_mode -corner $CORNER; }
  58. eval "load_architect ${no_route} -type ${DEVICE} 1 1 1000 1000"
  59. foreach ip_file $IP_FILES { read_ip $ip_file; }
  60. if { $FLOW == "GEN" } {
  61. if { ! [info exists CONFIG_BITS] } {
  62. set CONFIG_BITS [file join ${RESULT_DIR} ${DESIGN}.bin]
  63. }
  64. if { [llength $CONFIG_BITS] > 1 } {
  65. if { ! [info exists BOOT_BINARY] } {
  66. set BOOT_BINARY [file join ${RESULT_DIR} ${DESIGN}_boot.bin]
  67. }
  68. if { ! [info exists CONFIG_ADDRESSES] } {
  69. set CONFIG_ADDRESSES ""
  70. }
  71. generate_binary -master $BOOT_BINARY -inputs $CONFIG_BITS -address $CONFIG_ADDRESSES
  72. } else {
  73. set CONFIG_ROOT [file rootname [lindex $CONFIG_BITS 0]]
  74. set SLAVE_RBF "${CONFIG_ROOT}_slave.rbf"
  75. set MASTER_BINARY "${CONFIG_ROOT}_master.bin"
  76. if { [file exists [lindex $CONFIG_BITS 0]] } {
  77. generate_binary -slave $SLAVE_RBF -inputs [lindex $CONFIG_BITS 0] -reverse
  78. generate_binary -master $MASTER_BINARY -inputs [lindex $CONFIG_BITS 0]
  79. }
  80. if { ! [info exists BOOT_BINARY] } {
  81. set BOOT_BINARY $MASTER_BINARY
  82. }
  83. }
  84. set PRG_FILE [file rootname $BOOT_BINARY].prg
  85. set AS_FILE [file rootname $BOOT_BINARY]_as.prg
  86. generate_programming_file $BOOT_BINARY -erase $ERASE \
  87. -program $PROGRAM -verify $VERIFY -offset $OFFSET \
  88. -prg $PRG_FILE -as $AS_FILE
  89. break
  90. }
  91. if { $LOAD_DB } {
  92. load_db -top ${TOP_MODULE}
  93. if { [file exists $sdc_file] } { read_sdc $sdc_file; }
  94. } elseif { $MODE == "QUARTUS" } {
  95. set verilog ${DESIGN}.vo
  96. set is_migrated false
  97. if { ! [file exists $verilog] } {
  98. set verilog [file join . simulation modelsim ${DESIGN}.vo]
  99. set is_migrated true
  100. }
  101. if { ! [file exists $verilog] } {
  102. error "Can not find design verilog file $verilog"
  103. }
  104. alta::tcl_highlight "Using design verilog file $verilog.\n"
  105. if { $ve_file != "" && ! [file exists $ve_file] } {
  106. alta::tcl_warn "Can not find design VE file $ve_file"
  107. set ve_file ""
  108. } else {
  109. alta::tcl_highlight "Using design VE file $ve_file.\n"
  110. }
  111. set ret [read_design -top ${TOP_MODULE} -ve $ve_file -qsf $ORIGINAL_QSF $verilog -hierachy 1]
  112. if { !$ret } { exit -1; }
  113. if { $sdc_file != "" && ! [file exists $sdc_file] } {
  114. alta::tcl_warn "Can not find design SDC file $sdc_file"
  115. set sdc_file ""
  116. } else {
  117. alta::tcl_highlight "Using design SDC file $sdc_file.\n"
  118. read_sdc $sdc_file
  119. }
  120. } elseif { $MODE == "SYNPLICITY" || $MODE == "NATIVE" } {
  121. set_hierarchy_separator .
  122. set db_gclk_assignment_level 2
  123. set verilog ${DESIGN}.vqm
  124. set is_migrated false
  125. if { ! [file exists $verilog] } {
  126. error "Can not find design verilog file $verilog"
  127. }
  128. if { $VEX_FILE != "" } {
  129. if { $VEX_FILE == "-" } {
  130. set VEX_FILE ""
  131. } elseif { ! [file exists $VEX_FILE] } {
  132. error "Can not find design VE file $VEX_FILE"
  133. }
  134. }
  135. if { $AGF_FILE != "" } {
  136. if { $AGF_FILE == "-" } {
  137. set AGF_FILE ""
  138. } elseif { ! [file exists $AGF_FILE] } {
  139. error "Can not find design AGF file $AGF_FILE"
  140. }
  141. }
  142. set alta0_asf [file join $::alta_work alta0.asf]
  143. set alta0_apf [file join $::alta_work alta0.apf]
  144. file delete -force $alta0_asf
  145. file delete -force $alta0_apf
  146. if { $AGF_FILE != "" || $VEX_FILE != "" } {
  147. alta::convert_pio_settings_cmd $VEX_FILE $AGF_FILE $alta0_asf $alta0_apf
  148. }
  149. alta::tcl_highlight "Using design verilog file $verilog.\n"
  150. if { $sdc_file != "" && ! [file exists $sdc_file] } {
  151. alta::tcl_warn "Can not find design SDC file $sdc_file"
  152. set sdc_file ""
  153. } else {
  154. alta::tcl_highlight "Using design SDC file $sdc_file.\n"
  155. }
  156. set load_pack ""
  157. if { $LOAD_PACK } { set load_pack "-load_pack"; }
  158. set ret [eval "read_design_and_pack $load_pack -sdc {$sdc_file} -top ${TOP_MODULE} -type vqm -gclk_level 2 $verilog"]
  159. set FITTER "full"
  160. if { !$ret } { exit -1; }
  161. } else {
  162. error "Unsupported mode $MODE"
  163. }
  164. if { $FLOW == "PACK" } { break }
  165. if { [info exists FITTING] } {
  166. if { $FITTING == "Auto" } { set FITTING auto; }
  167. set_mode -fitting $FITTING
  168. }
  169. if { [info exists FITTER] } {
  170. if { $FITTER == "Auto" } {
  171. if { $MODE == "QUARTUS" } { set FITTER hybrid; } else { set FITTER full; }
  172. }
  173. if { $MODE == "SYNPLICITY" || $MODE == "NATIVE" } { set FITTER full; }
  174. set_mode -fitter $FITTER
  175. }
  176. if { [info exists EFFORT] } { set_mode -effort $EFFORT; }
  177. if { [info exists SKEW ] } { set_mode -skew $SKEW ; }
  178. if { [info exists SKOPE ] } { set_mode -skope $SKOPE ; }
  179. if { [info exists HOLDX ] } { set_mode -holdx $HOLDX; }
  180. if { [info exists TUNING] } { set_mode -tuning $TUNING; }
  181. if { [info exists TARGET] } { set_mode -target $TARGET; }
  182. if { [info exists PRESET] } { set_mode -preset $PRESET; }
  183. if { [info exists ADJUST] } { set pl_criticality_wadjust $ADJUST; }
  184. set alta_aqf [file join $::alta_work alta.aqf]
  185. if { $LOAD_DB } {
  186. # Empty
  187. } else {
  188. file delete -force $alta_aqf
  189. if { true } {
  190. if { $ORIGINAL_PIN != "" } {
  191. if { [file exists $VE_FILE] } {
  192. set ORIGINAL_PIN ""
  193. } elseif { $ORIGINAL_PIN == "-" } {
  194. set ORIGINAL_PIN ""
  195. } elseif { ! [file exists $ORIGINAL_PIN] } {
  196. if { $is_migrated } {
  197. error "Can not find design PIN file $ORIGINAL_PIN, please compile design first"
  198. }
  199. set ORIGINAL_PIN ""
  200. }
  201. }
  202. if { $ORIGINAL_QSF != "" } {
  203. if { $ORIGINAL_QSF == "-" } {
  204. set ORIGINAL_QSF ""
  205. } elseif { ! [file exists $ORIGINAL_QSF] } {
  206. if { $is_migrated } {
  207. error "Can not find design exported QSF file $ORIGINAL_QSF, please export assigments first"
  208. }
  209. }
  210. }
  211. if { $ORIGINAL_QSF != "" || $ORIGINAL_PIN != "" } {
  212. alta::convert_quartus_settings_cmd $ORIGINAL_QSF $ORIGINAL_PIN $alta_aqf
  213. }
  214. }
  215. }
  216. if { [file exists "$alta_aqf"] } {
  217. alta::tcl_highlight "Using AQF file $alta_aqf.\n"
  218. source "$alta_aqf"
  219. }
  220. if { [file exists [file join . ${DESIGN}.asf]] } {
  221. alta::tcl_highlight "Using ASF file ${DESIGN}.asf.\n"
  222. source [file join . ${DESIGN}.asf]
  223. }
  224. if { $FLOW == "PROBE" } {
  225. set ret [eval "place_pseudo ${user_io} -place_io -place_pll -place_gclk"]
  226. if { !$ret } { exit -1 }
  227. set force ""
  228. if { [info exists PROBE_FORCE] && $PROBE_FORCE } { set force "-force" }
  229. eval "probe_design -froms {${PROBE_FROMS}} -tos {${PROBE_TOS}} ${force}"
  230. } elseif { $FLOW == "CHECK" } {
  231. set ret [eval "place_pseudo ${user_io} -place_io -place_pll -place_gclk"]
  232. if { !$ret } { exit -1 }
  233. if { [file exists [file join . ${DESIGN}.chk]] } {
  234. alta::tcl_highlight "Using CHK file ${DESIGN}.chk.\n"
  235. source [file join . ${DESIGN}.chk]
  236. place_design -dry
  237. check_design -rule led_guide
  238. } else {
  239. error "Can not find design CHECK file ${DESIGN}.chk"
  240. }
  241. } else {
  242. set ret [eval "place_pseudo ${user_io} -place_io -place_pll -place_gclk -warn_io"]
  243. if { !$ret } { exit -1 }
  244. set org_place ""
  245. set load_place ""
  246. set load_route ""
  247. set quiet ""
  248. if { $ORG_PLACE } { set org_place "-org_place" ; }
  249. if { $LOAD_PLACE } { set load_place "-load_place"; }
  250. if { $LOAD_ROUTE } { set load_route "-load_route"; }
  251. eval "place_and_route_design $org_place $load_place $load_route \
  252. -retry $RETRY $seed_rand $quiet"
  253. }
  254. date_time
  255. if { $FLOW != "CHECK" } {
  256. if { $FLOW != "PROBE" } {
  257. report_timing -verbose 2 -setup -file $::alta_work/setup.rpt.gz
  258. report_timing -verbose 1 -setup -file $::alta_work/setup_summary.rpt
  259. report_timing -verbose 2 -hold -file $::alta_work/hold.rpt.gz
  260. report_timing -verbose 1 -hold -file $::alta_work/hold_summary.rpt
  261. set ta_report_auto_constraints 0
  262. report_timing -fmax -file $::alta_work/fmax.rpt
  263. report_timing -xfer -file $::alta_work/xfer.rpt
  264. set ta_report_auto_constraints $ta_report_auto
  265. set ta_dump_uncovered 1
  266. report_timing -verbose 1 -coverage >! $::alta_work/coverage.rpt.gz
  267. set ta_dump_uncovered -1
  268. if { ! [info exists rt_report_timing_fast] } {
  269. set rt_report_timing_fast false
  270. }
  271. if { $rt_report_timing_fast } {
  272. set_timing_corner fast
  273. route_delay -quiet
  274. report_timing -verbose 2 -setup -file $::alta_work/setup_fast.rpt.gz
  275. report_timing -verbose 1 -setup -file $::alta_work/setup_fast_summary.rpt
  276. report_timing -verbose 2 -hold -file $::alta_work/hold_fast.rpt.gz
  277. report_timing -verbose 1 -hold -file $::alta_work/hold_fast_summary.rpt
  278. set ta_report_auto_constraints 0
  279. report_timing -fmax -file $::alta_work/fmax_fast.rpt
  280. report_timing -xfer -file $::alta_work/xfer_fast.rpt
  281. set ta_report_auto_constraints $ta_report_auto
  282. }
  283. write_routed_design "${RESULT_DIR}/${RESULT}_routed.v"
  284. }
  285. bitgen normal -prg "${RESULT_DIR}/${RESULT}.prg" -bin "${RESULT_DIR}/${RESULT}.bin"
  286. if { true } {
  287. alta::bin_to_asc "${RESULT_DIR}/${RESULT}.bin" "${RESULT_DIR}/${RESULT}.inc"
  288. set python_exe [expr {$tcl_platform(platform) eq "unix" ? "python3" : "python.exe"}]
  289. if { ! [ info exist BATCH_ARG ] } {
  290. set BATCH_ARG ""
  291. }
  292. set LOGIC_COMPRESS [alta::get_global_assignment_cmd ON_CHIP_BITSTREAM_DECOMPRESSION false]
  293. if { [string toupper $LOGIC_COMPRESS] != "OFF" } {
  294. set BATCH_ARG "$BATCH_ARG --logic-compress"
  295. }
  296. set BATCH_MCU 0xbff5105000730062aa234371030002b7
  297. if { [info exists BATCH_HSE] } {
  298. set BATCH_MCU 0xbff5105000730062a62343110062aa234371030002b7
  299. }
  300. set GEN_BATCH "{[alta::prog_home]/python_dist/$python_exe} {[alta::prog_home]/pio/gen_batch}\
  301. -d [[alta::get_device_info_cmd $DEVICE] device_id]\
  302. -i $BATCH_MCU\
  303. -o ${RESULT_DIR}/${RESULT}_batch.bin\
  304. --logic-config ${RESULT_DIR}/${RESULT}.bin\
  305. --logic-address 0x80007000\
  306. $BATCH_ARG"
  307. alta::tcl_highlight "Generating batch file: $GEN_BATCH\n"
  308. eval "exec $GEN_BATCH"
  309. } else {
  310. bitgen sram -prg "${RESULT_DIR}/${RESULT}_sram.prg"
  311. bitgen download -bin "${RESULT_DIR}/${RESULT}.bin" -svf "${RESULT_DIR}/${RESULT}_download.svf"
  312. generate_binary -slave "${RESULT_DIR}/${RESULT}_slave.rbf" \
  313. -inputs "${RESULT_DIR}/${RESULT}.bin" -reverse
  314. generate_binary -master "${RESULT_DIR}/${RESULT}_master.bin" \
  315. -inputs "${RESULT_DIR}/${RESULT}.bin"
  316. generate_programming_file "${RESULT_DIR}/${RESULT}_master.bin" -prg "${RESULT_DIR}/${RESULT}_master.prg" \
  317. -as "${RESULT_DIR}/${RESULT}_master_as.prg" -hybrid "${RESULT_DIR}/${RESULT}_hybrid.prg"
  318. }
  319. }
  320. break
  321. }
  322. Total IO : 150
  323. Total Pin : 128/17
  324. Top array is built.
  325. Loading architect libraries...
  326. ## CPU time: 0:0:0, REAL time: 0:0:0
  327. ## Memory Usage: 52MB (52MB)
  328. Loading route table...
  329. ## CPU time: 0:0:2, REAL time: 0:0:2
  330. ## Memory Usage: 317MB (317MB)
  331. Using design verilog file ./simulation/modelsim/test_uart.vo.
  332. Using design VE file test_uart.vex.
  333. Preparing design...
  334. Info: Rename duplicated module cell alta_rv32 to alta_rv32_duplicated at ./alta_db/flatten.vx:1.
  335. Info: Removing bbox feeder slice gpio1_io_out_data[0] driven by BBOX rv32|gpio1_io_out_data[0].
  336. Info: Removing bbox feeder slice gpio1_io_out_data[1] driven by BBOX rv32|gpio1_io_out_data[1].
  337. Info: Removing bbox feeder slice gpio1_io_out_data[2] driven by BBOX rv32|gpio1_io_out_data[2].
  338. Info: Removing bbox feeder slice gpio1_io_out_data[3] driven by BBOX rv32|gpio1_io_out_data[3].
  339. Info: Removing bbox feeder slice gpio1_io_out_data[4] driven by BBOX rv32|gpio1_io_out_data[4].
  340. Info: Removing bbox feeder slice gpio1_io_out_data[5] driven by BBOX rv32|gpio1_io_out_data[5].
  341. Info: Removing bbox feeder slice gpio1_io_out_data[6] driven by BBOX rv32|gpio1_io_out_data[6].
  342. Info: Removing bbox feeder slice gpio1_io_out_data[7] driven by BBOX rv32|gpio1_io_out_data[7].
  343. Info: Removing bbox feeder slice gpio1_io_out_en[0] driven by BBOX rv32|gpio1_io_out_en[0].
  344. Info: Removing bbox feeder slice gpio1_io_out_en[1] driven by BBOX rv32|gpio1_io_out_en[1].
  345. Info: Removing bbox feeder slice gpio1_io_out_en[2] driven by BBOX rv32|gpio1_io_out_en[2].
  346. Info: Removing bbox feeder slice gpio1_io_out_en[3] driven by BBOX rv32|gpio1_io_out_en[3].
  347. Info: Removing bbox feeder slice gpio1_io_out_en[4] driven by BBOX rv32|gpio1_io_out_en[4].
  348. Info: Removing bbox feeder slice gpio1_io_out_en[5] driven by BBOX rv32|gpio1_io_out_en[5].
  349. Info: Removing bbox feeder slice gpio1_io_out_en[6] driven by BBOX rv32|gpio1_io_out_en[6].
  350. Info: Removing bbox feeder slice gpio1_io_out_en[7] driven by BBOX rv32|gpio1_io_out_en[7].
  351. Info: Removing bbox feeder slice gpio2_io_out_data[0] driven by BBOX rv32|gpio2_io_out_data[0].
  352. Info: Removing bbox feeder slice gpio2_io_out_data[1] driven by BBOX rv32|gpio2_io_out_data[1].
  353. Info: Removing bbox feeder slice gpio2_io_out_data[2] driven by BBOX rv32|gpio2_io_out_data[2].
  354. Info: Removing bbox feeder slice gpio2_io_out_data[3] driven by BBOX rv32|gpio2_io_out_data[3].
  355. Info: Removing bbox feeder slice gpio2_io_out_data[4] driven by BBOX rv32|gpio2_io_out_data[4].
  356. Info: Removing bbox feeder slice gpio2_io_out_data[5] driven by BBOX rv32|gpio2_io_out_data[5].
  357. Info: Removing bbox feeder slice gpio2_io_out_data[6] driven by BBOX rv32|gpio2_io_out_data[6].
  358. Info: Removing bbox feeder slice gpio2_io_out_data[7] driven by BBOX rv32|gpio2_io_out_data[7].
  359. Info: Removing bbox feeder slice gpio2_io_out_en[0] driven by BBOX rv32|gpio2_io_out_en[0].
  360. Info: Removing bbox feeder slice gpio2_io_out_en[1] driven by BBOX rv32|gpio2_io_out_en[1].
  361. Info: Removing bbox feeder slice gpio2_io_out_en[2] driven by BBOX rv32|gpio2_io_out_en[2].
  362. Info: Removing bbox feeder slice gpio2_io_out_en[3] driven by BBOX rv32|gpio2_io_out_en[3].
  363. Info: Removing bbox feeder slice gpio2_io_out_en[4] driven by BBOX rv32|gpio2_io_out_en[4].
  364. Info: Removing bbox feeder slice gpio2_io_out_en[5] driven by BBOX rv32|gpio2_io_out_en[5].
  365. Info: Removing bbox feeder slice gpio2_io_out_en[6] driven by BBOX rv32|gpio2_io_out_en[6].
  366. Info: Removing bbox feeder slice gpio2_io_out_en[7] driven by BBOX rv32|gpio2_io_out_en[7].
  367. Info: Removing bbox feeder slice gpio3_io_in[0] driving BBOX rv32|gpio3_io_in[0].
  368. Info: Removing bbox feeder slice gpio3_io_in[1] driving BBOX rv32|gpio3_io_in[1].
  369. Info: Removing bbox feeder slice gpio3_io_in[2] driving BBOX rv32|gpio3_io_in[2].
  370. Info: Removing bbox feeder slice gpio3_io_in[3] driving BBOX rv32|gpio3_io_in[3].
  371. Info: Removing bbox feeder slice gpio3_io_in[4] driving BBOX rv32|gpio3_io_in[4].
  372. Info: Removing bbox feeder slice gpio4_io_in[0] driving BBOX rv32|gpio4_io_in[0].
  373. Info: Removing bbox feeder slice gpio4_io_in[1] driving BBOX rv32|gpio4_io_in[1].
  374. Info: Removing bbox feeder slice gpio4_io_in[2] driving BBOX rv32|gpio4_io_in[2].
  375. Info: Removing bbox feeder slice gpio4_io_in[3] driving BBOX rv32|gpio4_io_in[3].
  376. Info: Removing bbox feeder slice gpio4_io_in[4] driving BBOX rv32|gpio4_io_in[4].
  377. Info: Removing bbox feeder slice gpio4_io_in[5] driving BBOX rv32|gpio4_io_in[5].
  378. Info: Removing bbox feeder slice gpio5_io_in[0] driving BBOX rv32|gpio5_io_in[0].
  379. Info: Removing bbox feeder slice gpio5_io_in[1] driving BBOX rv32|gpio5_io_in[1].
  380. Info: Removing bbox feeder slice gpio5_io_in[2] driving BBOX rv32|gpio5_io_in[2].
  381. Info: Removing bbox feeder slice gpio5_io_in[3] driving BBOX rv32|gpio5_io_in[3].
  382. Info: Removing bbox feeder slice gpio5_io_in[4] driving BBOX rv32|gpio5_io_in[4].
  383. Info: Removing bbox feeder slice gpio5_io_in[5] driving BBOX rv32|gpio5_io_in[5].
  384. Info: Removing bbox feeder slice gpio6_io_in[6] driving BBOX rv32|gpio6_io_in[6].
  385. Info: Removing bbox feeder slice gpio6_io_in[7] driving BBOX rv32|gpio6_io_in[7].
  386. Info: Removing bbox feeder slice gpio6_io_out_data[0] driven by BBOX rv32|gpio6_io_out_data[0].
  387. Info: Removing bbox feeder slice gpio6_io_out_data[2] driven by BBOX rv32|gpio6_io_out_data[2].
  388. Info: Removing bbox feeder slice gpio6_io_out_data[4] driven by BBOX rv32|gpio6_io_out_data[4].
  389. Info: Removing bbox feeder slice gpio6_io_out_data[6] driven by BBOX rv32|gpio6_io_out_data[6].
  390. Info: Removing bbox feeder slice gpio6_io_out_en[0] driven by BBOX rv32|gpio6_io_out_en[0].
  391. Info: Removing bbox feeder slice gpio6_io_out_en[2] driven by BBOX rv32|gpio6_io_out_en[2].
  392. Info: Removing bbox feeder slice gpio6_io_out_en[4] driven by BBOX rv32|gpio6_io_out_en[4].
  393. Info: Removing bbox feeder slice gpio6_io_out_en[6] driven by BBOX rv32|gpio6_io_out_en[6].
  394. Info: Removing bbox feeder slice gpio7_io_in[1] driving BBOX rv32|gpio7_io_in[1].
  395. Info: Removing bbox feeder slice gpio7_io_out_data[6] driven by BBOX rv32|gpio7_io_out_data[6].
  396. Info: Removing bbox feeder slice gpio7_io_out_en[6] driven by BBOX rv32|gpio7_io_out_en[6].
  397. Info: Removing bbox feeder slice gpio8_io_out_data[0] driven by BBOX rv32|gpio8_io_out_data[0].
  398. Info: Removing bbox feeder slice gpio8_io_out_data[1] driven by BBOX rv32|gpio8_io_out_data[1].
  399. Info: Removing bbox feeder slice gpio8_io_out_data[2] driven by BBOX rv32|gpio8_io_out_data[2].
  400. Info: Removing bbox feeder slice gpio8_io_out_data[3] driven by BBOX rv32|gpio8_io_out_data[3].
  401. Info: Removing bbox feeder slice gpio8_io_out_data[4] driven by BBOX rv32|gpio8_io_out_data[4].
  402. Info: Removing bbox feeder slice gpio8_io_out_data[6] driven by BBOX rv32|gpio8_io_out_data[6].
  403. Info: Removing bbox feeder slice gpio8_io_out_data[7] driven by BBOX rv32|gpio8_io_out_data[7].
  404. Info: Removing bbox feeder slice gpio8_io_out_en[0] driven by BBOX rv32|gpio8_io_out_en[0].
  405. Info: Removing bbox feeder slice gpio8_io_out_en[1] driven by BBOX rv32|gpio8_io_out_en[1].
  406. Info: Removing bbox feeder slice gpio8_io_out_en[2] driven by BBOX rv32|gpio8_io_out_en[2].
  407. Info: Removing bbox feeder slice gpio8_io_out_en[3] driven by BBOX rv32|gpio8_io_out_en[3].
  408. Info: Removing bbox feeder slice gpio8_io_out_en[4] driven by BBOX rv32|gpio8_io_out_en[4].
  409. Info: Removing bbox feeder slice gpio8_io_out_en[6] driven by BBOX rv32|gpio8_io_out_en[6].
  410. Info: Removing bbox feeder slice gpio9_io_in[1] driving BBOX rv32|gpio9_io_in[1].
  411. Info: Removing bbox feeder slice gpio9_io_out_data[0] driven by BBOX rv32|gpio9_io_out_data[0].
  412. Info: Removing bbox feeder slice gpio9_io_out_data[1] driven by BBOX rv32|gpio9_io_out_data[1].
  413. Info: Removing bbox feeder slice gpio9_io_out_data[2] driven by BBOX rv32|gpio9_io_out_data[2].
  414. Info: Removing bbox feeder slice gpio9_io_out_data[3] driven by BBOX rv32|gpio9_io_out_data[3].
  415. Info: Removing bbox feeder slice gpio9_io_out_data[4] driven by BBOX rv32|gpio9_io_out_data[4].
  416. Info: Removing bbox feeder slice gpio9_io_out_data[5] driven by BBOX rv32|gpio9_io_out_data[5].
  417. Info: Removing bbox feeder slice gpio9_io_out_data[6] driven by BBOX rv32|gpio9_io_out_data[6].
  418. Info: Removing bbox feeder slice gpio9_io_out_data[7] driven by BBOX rv32|gpio9_io_out_data[7].
  419. Info: Removing bbox feeder slice gpio9_io_out_en[0] driven by BBOX rv32|gpio9_io_out_en[0].
  420. Info: Removing bbox feeder slice gpio9_io_out_en[1] driven by BBOX rv32|gpio9_io_out_en[1].
  421. Info: Removing bbox feeder slice gpio9_io_out_en[2] driven by BBOX rv32|gpio9_io_out_en[2].
  422. Info: Removing bbox feeder slice gpio9_io_out_en[3] driven by BBOX rv32|gpio9_io_out_en[3].
  423. Info: Removing bbox feeder slice gpio9_io_out_en[4] driven by BBOX rv32|gpio9_io_out_en[4].
  424. Info: Removing bbox feeder slice gpio9_io_out_en[5] driven by BBOX rv32|gpio9_io_out_en[5].
  425. Info: Removing bbox feeder slice gpio9_io_out_en[6] driven by BBOX rv32|gpio9_io_out_en[6].
  426. Info: Removing bbox feeder slice gpio9_io_out_en[7] driven by BBOX rv32|gpio9_io_out_en[7].
  427. Info: Removing bbox feeder slice macro_inst|u_ahb2apb|hreadyout~_wirecell driving BBOX rv32|mem_ahb_hreadyout inverted.
  428. 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].
  429. 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].
  430. Info: Removing bbox feeder slice macro_inst|u_uart[0]|u_regs|fbrd[1]~feeder driven by BBOX rv32|mem_ahb_hwdata[1].
  431. Info: Removing bbox feeder slice macro_inst|u_uart[0]|u_regs|fbrd[2]~feeder driven by BBOX rv32|mem_ahb_hwdata[2].
  432. 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].
  433. Info: Removing bbox feeder slice macro_inst|u_uart[0]|u_regs|ibrd[12]~feeder driven by BBOX rv32|mem_ahb_hwdata[12].
  434. Info: Removing bbox feeder slice macro_inst|u_uart[0]|u_regs|ibrd[5]~feeder driven by BBOX rv32|mem_ahb_hwdata[5].
  435. Info: Removing bbox feeder slice macro_inst|u_uart[0]|u_regs|ibrd[7]~feeder driven by BBOX rv32|mem_ahb_hwdata[7].
  436. Info: Removing bbox feeder slice macro_inst|u_uart[0]|u_regs|ibrd[9]~feeder driven by BBOX rv32|mem_ahb_hwdata[9].
  437. 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].
  438. 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].
  439. 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].
  440. 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].
  441. 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].
  442. 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].
  443. 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].
  444. 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].
  445. 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].
  446. 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].
  447. 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].
  448. 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].
  449. 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].
  450. 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].
  451. 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].
  452. 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].
  453. 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].
  454. 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].
  455. 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].
  456. 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].
  457. 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].
  458. 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].
  459. 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].
  460. 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].
  461. 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].
  462. 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].
  463. 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].
  464. 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].
  465. 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].
  466. 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].
  467. 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].
  468. 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].
  469. 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].
  470. 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].
  471. 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].
  472. 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].
  473. 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].
  474. 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].
  475. 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].
  476. 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].
  477. 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].
  478. 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].
  479. 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].
  480. Info: Removing bbox feeder slice macro_inst|u_uart[1]|u_regs|fbrd[5]~feeder driven by BBOX rv32|mem_ahb_hwdata[5].
  481. 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].
  482. Info: Removing bbox feeder slice macro_inst|u_uart[1]|u_regs|ibrd[10]~feeder driven by BBOX rv32|mem_ahb_hwdata[10].
  483. Info: Removing bbox feeder slice macro_inst|u_uart[1]|u_regs|ibrd[1]~feeder driven by BBOX rv32|mem_ahb_hwdata[1].
  484. Info: Removing bbox feeder slice macro_inst|u_uart[1]|u_regs|ibrd[4]~feeder driven by BBOX rv32|mem_ahb_hwdata[4].
  485. Info: Removing bbox feeder slice macro_inst|u_uart[1]|u_regs|ibrd[5]~feeder driven by BBOX rv32|mem_ahb_hwdata[5].
  486. Info: Removing bbox feeder slice macro_inst|u_uart[1]|u_regs|ibrd[6]~feeder driven by BBOX rv32|mem_ahb_hwdata[6].
  487. Info: Removing bbox feeder slice macro_inst|u_uart[1]|u_regs|lcr_sps~feeder driven by BBOX rv32|mem_ahb_hwdata[7].
  488. 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].
  489. 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].
  490. 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].
  491. 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].
  492. 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].
  493. 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].
  494. 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].
  495. 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].
  496. 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].
  497. 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].
  498. 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].
  499. 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].
  500. 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].
  501. 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].
  502. 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].
  503. 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].
  504. 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].
  505. 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].
  506. 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].
  507. 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].
  508. 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].
  509. 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].
  510. 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].
  511. 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].
  512. 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].
  513. 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].
  514. 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].
  515. 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].
  516. 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].
  517. 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].
  518. 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].
  519. 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].
  520. 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].
  521. 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].
  522. 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].
  523. 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].
  524. 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].
  525. 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].
  526. 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].
  527. 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].
  528. 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].
  529. 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].
  530. 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].
  531. 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].
  532. 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].
  533. Info: Removing bbox feeder slice sys_ctrl_clkSource[0] driven by BBOX rv32|sys_ctrl_clkSource[0].
  534. Info: Removing bbox feeder slice sys_ctrl_clkSource[1] driven by BBOX rv32|sys_ctrl_clkSource[1].
  535. ## CPU time: 0:0:1, REAL time: 0:0:1
  536. ## Memory Usage: 337MB (337MB)
  537. Pseudo pack design...
  538. Using location file test_uart.vex
  539. VCO frequency: 480.000 Mhz
  540. clkout0: Enabled , 240.000 Mhz
  541. clkout1: Disabled, 0.938 Mhz
  542. clkout2: Disabled, 0.938 Mhz
  543. clkout3: Enabled , 120.000 Mhz
  544. clkout4: Disabled, 0.938 Mhz
  545. Info: Instance gclksw_inst|gclk_switch is identified as a clock switch.
  546. Packing Statistics
  547. Total Logics : 1988/2112 ( 94%)
  548. Total LUTs : 1866/2112 ( 88%)
  549. Total Registers : 1303/2112 ( 61%)
  550. Total Block Rams : 0/ 4 ( 0%)
  551. Total PLLs : 1/ 1 (100%)
  552. Total Pins : 58/ 128 ( 45%)
  553. Global Signals : 4/ 5 ( 80%)
  554. PLL_ENABLE~clkctrl_outclk (from: PLL_ENABLE~combout)
  555. auto_generated_inst.hbo_22_f9ff3d300b43c0f2_bp (from: auto_generated_inst.hbo_22_f9ff3d300b43c0f2_bp)
  556. auto_generated_inst.hbo_22_717df45ba12dbb20_bp (from: pll_inst|auto_generated|pll1_CLK_bus[3])
  557. sys_resetn~clkctrl_outclk (from: sys_resetn~combout)
  558. Total Lonely Datain : 177
  559. Total Lonely Register : 17
  560. Total LUT-FF Pairs : 777
  561. Total Register Packings : 332
  562. Registers with synchronous reset : 0
  563. Registers with asynchronous reset : 897
  564. Registers with sync and async reset : 70
  565. ## CPU time: 0:0:0, REAL time: 0:0:1
  566. ## Memory Usage: 335MB (337MB)
  567. Filter verilog...
  568. ## CPU time: 0:0:0, REAL time: 0:0:0
  569. ## Memory Usage: 335MB (337MB)
  570. Reading DB design...
  571. ## CPU time: 0:0:0, REAL time: 0:0:1
  572. ## Memory Usage: 337MB (337MB)
  573. Processing design...
  574. > set_instance_assignment -name ENABLE_OPEN_DRAIN -to SIM_CLK~output false
  575. > set_instance_assignment -name ENABLE_OPEN_DRAIN -to GPIO2_5~output false
  576. > set_instance_assignment -name ENABLE_OPEN_DRAIN -to GPIO2_6~output false
  577. > set_instance_assignment -name ENABLE_OPEN_DRAIN -to GPIO2_4~output false
  578. > set_instance_assignment -name ENABLE_OPEN_DRAIN -to GPIO6_0~output false
  579. > set_instance_assignment -name ENABLE_OPEN_DRAIN -to GPIO6_4~output false
  580. > set_instance_assignment -name ENABLE_OPEN_DRAIN -to GPIO2_3~output false
  581. > set_instance_assignment -name ENABLE_OPEN_DRAIN -to GPIO6_2~output false
  582. > set_instance_assignment -name ENABLE_OPEN_DRAIN -to uart15_tx~output false
  583. > set_instance_assignment -name ENABLE_OPEN_DRAIN -to GPIO2_7~output false
  584. > set_instance_assignment -name ENABLE_OPEN_DRAIN -to SIM_IO[1]~output false
  585. > set_instance_assignment -name ENABLE_OPEN_DRAIN -to UART4_UARTTXD~output false
  586. > set_instance_assignment -name ENABLE_OPEN_DRAIN -to SIM_IO_15~output false
  587. > set_instance_assignment -name ENABLE_OPEN_DRAIN -to SIM_IO_12~output false
  588. > set_instance_assignment -name ENABLE_OPEN_DRAIN -to GPIO6_6~output false
  589. > set_instance_assignment -name ENABLE_OPEN_DRAIN -to SIM_IO_13~output false
  590. > set_instance_assignment -name ENABLE_OPEN_DRAIN -to GPIO9_1~output false
  591. > set_instance_assignment -name ENABLE_OPEN_DRAIN -to GPIO9_5~output false
  592. > set_instance_assignment -name ENABLE_OPEN_DRAIN -to UART3_UARTTXD~output false
  593. > set_instance_assignment -name ENABLE_OPEN_DRAIN -to GPIO9_0~output false
  594. > set_instance_assignment -name ENABLE_OPEN_DRAIN -to SIM_IO[0]~output false
  595. > set_instance_assignment -name ENABLE_OPEN_DRAIN -to GPIO9_2~output false
  596. > set_instance_assignment -name ENABLE_OPEN_DRAIN -to GPIO9_7~output false
  597. > set_instance_assignment -name ENABLE_OPEN_DRAIN -to GPIO9_6~output false
  598. > set_instance_assignment -name ENABLE_OPEN_DRAIN -to SIM_IO[11]~output false
  599. > set_instance_assignment -name ENABLE_OPEN_DRAIN -to SIM_IO[5]~output false
  600. > set_instance_assignment -name ENABLE_OPEN_DRAIN -to SIM_IO[7]~output false
  601. > set_instance_assignment -name ENABLE_OPEN_DRAIN -to SIM_IO[6]~output false
  602. > set_instance_assignment -name ENABLE_OPEN_DRAIN -to SIM_IO[8]~output false
  603. > set_instance_assignment -name ENABLE_OPEN_DRAIN -to GPIO1_1~output false
  604. > set_instance_assignment -name ENABLE_OPEN_DRAIN -to GPIO1_2~output false
  605. > set_instance_assignment -name ENABLE_OPEN_DRAIN -to GPIO1_0~output false
  606. > set_instance_assignment -name ENABLE_OPEN_DRAIN -to SIM_IO[3]~output false
  607. > set_instance_assignment -name ENABLE_OPEN_DRAIN -to SIM_IO[2]~output false
  608. > set_instance_assignment -name ENABLE_OPEN_DRAIN -to SIM_IO[9]~output false
  609. > set_instance_assignment -name ENABLE_OPEN_DRAIN -to GPIO2_1~output false
  610. > set_instance_assignment -name ENABLE_OPEN_DRAIN -to GPIO2_2~output false
  611. > set_instance_assignment -name ENABLE_OPEN_DRAIN -to SIM_IO[4]~output false
  612. > set_instance_assignment -name ENABLE_OPEN_DRAIN -to SIM_IO[10]~output false
  613. > set_instance_assignment -name ENABLE_OPEN_DRAIN -to GPIO1_5~output false
  614. > set_instance_assignment -name ENABLE_OPEN_DRAIN -to GPIO1_7~output false
  615. > set_instance_assignment -name ENABLE_OPEN_DRAIN -to GPIO1_6~output false
  616. > set_instance_assignment -name ENABLE_OPEN_DRAIN -to GPIO1_4~output false
  617. > set_instance_assignment -name ENABLE_OPEN_DRAIN -to GPIO2_0~output false
  618. > set_instance_assignment -name ENABLE_OPEN_DRAIN -to GPIO1_3~output false
  619. > set_instance_assignment -name ENABLE_OPEN_DRAIN -to GPIO9_4~output false
  620. > set_instance_assignment -name ENABLE_OPEN_DRAIN -to GPIO9_3~output false
  621. > set_instance_assignment -extension -name CLKIN_FREQ -to pll_inst|auto_generated|pll1 8
  622. > set_instance_assignment -extension -name FIXED_COORD -to gclksw_inst|gclk_switch__alta_gclksw {22 4 0}
  623. > set_instance_assignment -extension -name FIXED_COORD -to gclksw_inst|gclk_switch {22 4 5}
  624. > set_location_assignment -to GPIO1_0 PIN_78
  625. > set_location_assignment -to GPIO1_1 PIN_82
  626. > set_location_assignment -to GPIO1_2 PIN_87
  627. > set_location_assignment -to GPIO1_3 PIN_91
  628. > set_location_assignment -to GPIO1_4 PIN_80
  629. > set_location_assignment -to GPIO1_5 PIN_84
  630. > set_location_assignment -to GPIO1_6 PIN_89
  631. > set_location_assignment -to GPIO1_7 PIN_93
  632. > set_location_assignment -to GPIO2_0 PIN_29
  633. > set_location_assignment -to GPIO2_1 PIN_23
  634. > set_location_assignment -to GPIO2_2 PIN_15
  635. > set_location_assignment -to GPIO2_3 PIN_3
  636. > set_location_assignment -to GPIO2_4 PIN_31
  637. > set_location_assignment -to GPIO2_5 PIN_25
  638. > set_location_assignment -to GPIO2_6 PIN_17
  639. > set_location_assignment -to GPIO2_7 PIN_5
  640. > set_location_assignment -to GPIO3_0 PIN_95
  641. > set_location_assignment -to GPIO3_1 PIN_97
  642. > set_location_assignment -to GPIO3_2 PIN_35
  643. > set_location_assignment -to GPIO3_3 PIN_33
  644. > set_location_assignment -to GPIO3_4 PIN_32
  645. > set_location_assignment -to GPIO6_0 PIN_51
  646. > set_location_assignment -to GPIO6_2 PIN_52
  647. > set_location_assignment -to GPIO6_4 PIN_1
  648. > set_location_assignment -to GPIO6_6 PIN_98
  649. > set_location_assignment -to GPIO9_0 PIN_47
  650. > set_location_assignment -to GPIO9_1 PIN_48
  651. > set_location_assignment -to GPIO9_2 PIN_46
  652. > set_location_assignment -to GPIO9_3 PIN_96
  653. > set_location_assignment -to GPIO9_4 PIN_39
  654. > set_location_assignment -to GPIO9_5 PIN_34
  655. > set_location_assignment -to GPIO9_6 PIN_71
  656. > set_location_assignment -to GPIO9_7 PIN_70
  657. > set_location_assignment -to PIN_HSE PIN_HSE
  658. > set_location_assignment -to PIN_HSI PIN_HSI
  659. > set_location_assignment -to PIN_OSC PIN_OSC
  660. > set_location_assignment -to SIM_CLK PIN_85
  661. > set_location_assignment -to SIM_IO[0] PIN_77
  662. > set_location_assignment -to SIM_IO[10] PIN_7
  663. > set_location_assignment -to SIM_IO[11] PIN_2
  664. > set_location_assignment -to SIM_IO[1] PIN_81
  665. > set_location_assignment -to SIM_IO[2] PIN_86
  666. > set_location_assignment -to SIM_IO[3] PIN_90
  667. > set_location_assignment -to SIM_IO[4] PIN_79
  668. > set_location_assignment -to SIM_IO[5] PIN_83
  669. > set_location_assignment -to SIM_IO[6] PIN_88
  670. > set_location_assignment -to SIM_IO[7] PIN_92
  671. > set_location_assignment -to SIM_IO[8] PIN_26
  672. > set_location_assignment -to SIM_IO[9] PIN_18
  673. > set_location_assignment -to SIM_IO_12 PIN_30
  674. > set_location_assignment -to SIM_IO_13 PIN_24
  675. > set_location_assignment -to SIM_IO_15 PIN_4
  676. > set_location_assignment -to UART3_UARTRXD PIN_66
  677. > set_location_assignment -to UART3_UARTTXD PIN_67
  678. > set_location_assignment -to UART4_UARTRXD PIN_38
  679. > set_location_assignment -to UART4_UARTTXD PIN_36
  680. > set_location_assignment -to uart15_rx PIN_69
  681. > set_location_assignment -to uart15_tx PIN_68
  682. Info: Found GCLK net PLL_ENABLE~clkctrl_outclk (1).
  683. Info: Found GCLK net sys_resetn~clkctrl_outclk (124).
  684. Info: Found GCLK net auto_generated_inst.hbo_22_f9ff3d300b43c0f2_bp (5).
  685. Info: Found GCLK net auto_generated_inst.hbo_22_717df45ba12dbb20_bp (242).
  686. Info: Fixing net rv32.resetn_out, from rv32|resetn_out to gclksw_inst|gclk_switch__alta_gclksw|resetn.
  687. Info: Fixing net PIN_HSE~input_o, from PIN_HSE~input|combout to gclksw_inst|gclk_switch__alta_gclksw|clkin1.
  688. Info: Fixing net gclksw_inst|gclk_switch__alta_gclksw__clkout, from gclksw_inst|gclk_switch__alta_gclksw|clkout to rv32|sys_clk.
  689. Info: Fixing net auto_generated_inst.hbo_13_1797ab7b230f061a_bp, from pll_inst|auto_generated|pll1|lock to rv32|sys_ctrl_pllReady.
  690. Info: Slice gpio3_io_in[5] is removed.
  691. Info: Slice gpio3_io_in[6] is removed.
  692. Info: Slice gpio3_io_in[7] is removed.
  693. Info: Slice gpio4_io_in[6] is removed.
  694. Info: Slice gpio4_io_in[7] is removed.
  695. Info: Slice gpio5_io_in[6] is removed.
  696. Info: Slice gpio5_io_in[7] is removed.
  697. Info: Slice gpio6_io_in[0] is removed.
  698. Info: Slice gpio6_io_in[2] is removed.
  699. Info: Slice gpio6_io_in[4] is removed.
  700. Info: Slice gpio7_io_in[0] is removed.
  701. Info: Slice gpio7_io_in[5] is removed.
  702. Info: Slice gpio7_io_in[6] is removed.
  703. Info: Slice gpio7_io_in[7] is removed.
  704. Info: Slice gpio7_io_in[2] is removed.
  705. Info: Slice gpio7_io_in[3] is removed.
  706. Info: Slice gpio7_io_in[4] is removed.
  707. Info: Slice gpio9_io_in[0] is removed.
  708. Info: Slice gpio9_io_in[5] is removed.
  709. Info: Slice gpio9_io_in[6] is removed.
  710. Info: Slice gpio9_io_in[7] is removed.
  711. Info: Slice gpio9_io_in[2] is removed.
  712. Info: Slice gpio9_io_in[3] is removed.
  713. Info: Slice gpio9_io_in[4] is removed.
  714. ## CPU time: 0:0:0, REAL time: 0:0:0
  715. ## Memory Usage: 338MB (338MB)
  716. Using design SDC file ./test_uart.sdc.
  717. # pio_begin
  718. if { ! [info exists ::HSI_PERIOD] } {
  719. set ::HSI_PERIOD 100.0
  720. }
  721. create_clock -name PIN_HSI -period $::HSI_PERIOD [get_ports PIN_HSI]
  722. set_clock_groups -asynchronous -group PIN_HSI
  723. if { ! [info exists ::HSE_PERIOD] } {
  724. set ::HSE_PERIOD 125.0
  725. }
  726. create_clock -name PIN_HSE -period $::HSE_PERIOD [get_ports PIN_HSE]
  727. set_clock_groups -asynchronous -group PIN_HSE
  728. derive_pll_clocks -create_base_clocks
  729. 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.
  730. 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.
  731. set_false_path -from rv32|resetn_out
  732. # pio_end
  733. ##
  734. set SYS_CLK [get_clocks pll_inst|*clk*0*]
  735. if { [get_clocks -nowarn pll_inst|*clk*3*] != {} } {
  736. set BUS_CLK [get_clocks pll_inst|*clk*3*]
  737. # Always make sure there is an extra cycle of margin for inter domain transfers between SYS_CLK
  738. # and BUS_CLK. The extra cycle is always in terms of the to (latching) clock.
  739. set_multicycle_path -from $SYS_CLK -to $BUS_CLK -setup 2
  740. set_multicycle_path -from $SYS_CLK -to $BUS_CLK -hold 1
  741. set_multicycle_path -from $BUS_CLK -to $SYS_CLK -setup 2
  742. set_multicycle_path -from $BUS_CLK -to $SYS_CLK -hold 1
  743. # These are for mem_ahb_hreadyout going into rv32, since it's ok for rv32 to receive
  744. # mem_ahb_hreadyout 1 cycle late. They theoretically should help useful skew.
  745. set_multicycle_path -from $SYS_CLK -to rv32 -setup 2
  746. set_multicycle_path -from $SYS_CLK -to rv32 -hold 1
  747. }
  748. > #set pl_criticality_wratio "1.00 1.00 1.00 1.00"
  749. > #set pl_max_iter_eco "10 20 300 40 3 100 100 1"
  750. > #set pl_eco_slack_crit "99999. 1.00 0.10 5 0.03 20 0.01 100"
  751. >
  752. > #set pl_priority_compare "2 2 2 3"
  753. > #set pl_priority_result "2 1 1 0"
  754. > #set pl_priority_pass "2 1 1 0"
  755. > #set pl_swap_cost_margin "200.0 0.0 200.0 0.0 200.0 0.0 0.00 0.0"
  756. > #set pl_swap_wirelength_margin "200.0 0.0 200.0 0.0 200.0 0.0 020.0 -0.3 2000. 1.30"
  757. > #set pl_swap_congestion_margin "100.0 0.0 100.0 0.0 100.0 0.0 010.0 -0.3 1000. 1.15"
  758. > #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"
  759. > #set pl_oci_iter "1 1 100 1"
  760. >
  761. > set rt_retiming_idx 5
  762. > #set rt_converge_accelerator "2 2 0 3"
  763. > #set rt_pres_cost_ratio "1.00 1.50 2.00 2.50"
  764. > #set rt_dly_ratio "0.50 0.30 0.30 0.50 0.50 0.30"
  765. > #set rt_reroute_max_iter "6 6 6 7 9 12"
  766. > #set rt_reroute_start_iter "0 2 2 2 4 0 "
  767. > #set rt_quick_converge_ratio 0.50
  768. > set pl_reuse_existing_placement false
  769. > set pl_fix_bram_cells 0
  770. > set pl_fix_mult_cells 0
  771. > set pl_neighbor_swap_range "3 6 6 3 "
  772. > set pl_pass_result "1 1 1 1"
  773. > set pl_max_pass "1 1 1 1 1"
  774. > set pl_max_iter 10
  775. > set pl_max_iter_part 20
  776. > set pl_max_iter_final 20
  777. > set pl_max_iter_legal 10
  778. > set pl_max_iter_touch 00
  779. > #set pl_neighbor_swap_range "2 6 6 3 "
  780. > #set pl_spread_swap_max_iter "3 5 5 4"
  781. > #set pl_use_initial_place_once 0
  782. > set rt_min_converge "5"
  783. > set rt_optimize_max "3"
  784. > set pl_useful_skew_level -1
  785. > set rt_useful_skew_level 0
  786. > set rt_useful_skew_bram true
  787. > set rt_useful_skew_io false
  788. > set rt_useful_skew_io_ireg false
  789. > set rt_useful_skew_io_oreg false
  790. > set rt_useful_skew_output_io false
  791. > set rt_useful_skew_input_io false
  792. > set rt_useful_skew_unconstraint "false false"
  793. > set rt_useful_skew_max "0 100"
  794. > set rt_skew_crit_minmax "0.00 1.00"
  795. > #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"
  796. > #set rt_useful_skew_hold_slack_margin "0.10 0.10 0.30 0.30 0.30 0.30"
  797. > #set rt_useful_skew_hold_slack_ratio "0.05 0.05 0.10 0.10 0.10 0.10"
  798. > # Minimal logical slice hold fix, only by routing to bram/mult, no IO delay
  799. >
  800. > set ta_cross_clock_slack "2 0"
  801. >
  802. > #set pl_max_iter_hold_fix "30 1 3"
  803. > #set pl_hold_slack_margin 0.2
  804. > #set pl_setup_slack_margin "0.5 -1000."
  805. > #set pl_net_hold_fix_target "alta_bram alta_bram9k alta_mult"
  806. >
  807. > set rt_hold_slack_margin "0.2 0.2 0.2 0.2 0.2 0.7 -1000. 0.0"
  808. > set rt_setup_slack_margin "0.5 -1000. 0.5 -1000. 0.0 -1000."
  809. > #set rt_net_hold_crit_minmax "0.5 0.5"
  810. > set rt_net_hold_budget_method 0
  811. > set rt_net_hold_fix_target "alta_bram alta_bram9k alta_mult"
  812. >
  813. > #set pl_net_hold_fix_clock false
  814. > #set pl_net_hold_fix_auto false
  815. > #set pl_net_hold_fix_io false
  816. > #set rt_net_hold_fix_start false
  817. > #set rt_net_hold_fix_clock false
  818. > #set rt_net_hold_fix_auto false
  819. > #set rt_net_hold_fix_io false
  820. Using AQF file ./alta_db/alta.aqf.
  821. > set_global_assignment -name DEVICE_IO_STANDARD "3.3-V LVTTL"
  822. Using ASF file test_uart.asf.
  823. > # pio_begin >>>>>> DO NOT MODIFY THIS SECTION! >>>>>>
  824. > if { [info exists BOARD_PLL_CLKIN] } {
  825. if { $BOARD_PLL_CLKIN == "PIN_OSC" } {
  826. set_config -loc 18 0 0 CFG_RCOSC_EN 1'b1
  827. }
  828. }
  829. > if { [info exists USB0_MODE] } {
  830. alta::tcl_info "USB0_MODE = $USB0_MODE"
  831. set_config -loc 0 1 3 CFG_PULLUP_ENB 1'b0
  832. set_config -loc 0 1 3 CFG_PULLDN_ENB 1'b0
  833. }
  834. > # pio_end <<<<<< DO NOT MODIFY THIS SECTION! <<<<<<
  835. > ##
  836. >
  837. > # set_instance_assignment -name WEAK_PULLUP -to uart_rxd* true
  838. >
  839. > set_instance_assignment -name WEAK_PULLUP -to SIM_IO* true
  840. > set_instance_assignment -name WEAK_PULLUP -to SIM_RST* true
  841. Warn: [set_instance_assignment] Empty -to specified, objects SIM_RST* are not recognized.
  842. >
  843. > set_instance_assignment -name AUTO_OPEN_DRAIN_PINS ON -to PIN_77
  844. > set_instance_assignment -name AUTO_OPEN_DRAIN_PINS ON -to PIN_81
  845. > set_instance_assignment -name AUTO_OPEN_DRAIN_PINS ON -to PIN_86
  846. > set_instance_assignment -name AUTO_OPEN_DRAIN_PINS ON -to PIN_90
  847. > set_instance_assignment -name AUTO_OPEN_DRAIN_PINS ON -to PIN_79
  848. > set_instance_assignment -name AUTO_OPEN_DRAIN_PINS ON -to PIN_83
  849. > set_instance_assignment -name AUTO_OPEN_DRAIN_PINS ON -to PIN_88
  850. > set_instance_assignment -name AUTO_OPEN_DRAIN_PINS ON -to PIN_92
  851. > set_instance_assignment -name AUTO_OPEN_DRAIN_PINS ON -to PIN_26
  852. > set_instance_assignment -name AUTO_OPEN_DRAIN_PINS ON -to PIN_18
  853. > set_instance_assignment -name AUTO_OPEN_DRAIN_PINS ON -to PIN_7
  854. > set_instance_assignment -name AUTO_OPEN_DRAIN_PINS ON -to PIN_2
  855. > set_instance_assignment -name AUTO_OPEN_DRAIN_PINS ON -to PIN_30
  856. > set_instance_assignment -name AUTO_OPEN_DRAIN_PINS ON -to PIN_24
  857. > set_instance_assignment -name AUTO_OPEN_DRAIN_PINS ON -to PIN_16
  858. Warn: [set_instance_assignment] Empty -to specified, objects PIN_16 are not recognized.
  859. > set_instance_assignment -name AUTO_OPEN_DRAIN_PINS ON -to PIN_4
  860. >
  861. >
  862. > set_instance_assignment -name AUTO_OPEN_DRAIN_PINS ON -to PIN_48
  863. > set_instance_assignment -name AUTO_OPEN_DRAIN_PINS ON -to PIN_98
  864. Placement Statistics
  865. Total Logic Counts : 1964/2112 (93.0%)
  866. Total Logic Tiles : 132/132 (100.0%)
  867. Total Valid Nets : 3051 (1520+1531)
  868. Total Valid Fanouts : 13298 (6988+6310)
  869. Total Tile Fanouts : 3461
  870. Tile Zip Fanins : 19 (1:36)
  871. Tile Zip Fanouts : 27 (1:481)
  872. Total Ignored Nets : 1330
  873. Total Valid Blocks : 155 (132/21)
  874. Total Ignored Blocks : 0
  875. Total Zip Complexities : 1122/4003 1.74/1950.47
  876. Avg Zip Bottleneck : 7.30 82.54
  877. Avg Net Bottleneck : 18.97 523.94
  878. Iter #1/1 ...
  879. Pass 1 #1/1 ...
  880. Partitioning...
  881. step = 0, partition : 20,12
  882. step = 1, partition : 10,7
  883. ....................
  884. step = 2, partition : 5,3
  885. ....................
  886. step = 3, partition : 2,2
  887. ....................
  888. step = 4, partition : 2,2
  889. ....................
  890. ## CPU time: 0:0:7, REAL time: 0:0:8
  891. Pass 2 #1/1 ...
  892. Legalization and Swapping...
  893. ..........
  894. ## CPU time: 0:0:4, REAL time: 0:0:5
  895. Pass 3 #1/1 ...
  896. Touchup...
  897. ## CPU time: 0:0:0, REAL time: 0:0:0
  898. Pass 4 #1/1 ...
  899. Optimization...
  900. ............................................................
  901. Finishing...
  902. ## CPU time: 0:0:10, REAL time: 0:0:10
  903. 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
  904. *** Post Placement Timing Report ***
  905. === User constraints ===
  906. Fmax report
  907. User constraint: 8.000MHz, Fmax: 140.588MHz, Clock: PIN_HSE
  908. User constraint: 10.000MHz, Fmax: 140.588MHz, Clock: PIN_HSI
  909. User constraint: 240.000MHz, Fmax: 195.313MHz, Clock: pll_inst|auto_generated|pll1|clk[0]
  910. User constraint: 120.000MHz, Fmax: 114.077MHz, Clock: pll_inst|auto_generated|pll1|clk[3]
  911. Clock transfer report:
  912. Worst setup: 117.887, with clock PIN_HSE
  913. Worst setup: 92.887, with clock PIN_HSI
  914. Worst setup: -0.953, with clock pll_inst|auto_generated|pll1|clk[0]
  915. Worst setup: -0.433, with clock pll_inst|auto_generated|pll1|clk[3]
  916. Worst setup: 6.183, from clock pll_inst|auto_generated|pll1|clk[0] to pll_inst|auto_generated|pll1|clk[3]
  917. Worst setup: 3.158, from clock pll_inst|auto_generated|pll1|clk[3] to pll_inst|auto_generated|pll1|clk[0]
  918. Worst hold: 0.615, with clock PIN_HSE
  919. Worst hold: 0.615, with clock PIN_HSI
  920. Worst hold: 0.615, with clock pll_inst|auto_generated|pll1|clk[0]
  921. Worst hold: 0.603, with clock pll_inst|auto_generated|pll1|clk[3]
  922. Worst hold: 0.750, from clock pll_inst|auto_generated|pll1|clk[0] to pll_inst|auto_generated|pll1|clk[3]
  923. Worst hold: 1.079, from clock pll_inst|auto_generated|pll1|clk[3] to pll_inst|auto_generated|pll1|clk[0]
  924. === Auto constraints ===
  925. Coverage report
  926. User constraints covered 9470 connections out of 9603 total, coverage: 98.6%
  927. Auto constraints covered 9470 connections out of 9603 total, coverage: 98.6%
  928. 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
  929. Slack: -0.953
  930. Arrival Time: 5.645
  931. Required Time: 4.692
  932. *** End Timing Report ***
  933. route_design -dump ./alta_db/route.tx -replace ./alta_db/replace.tx
  934. Route Design Statistics
  935. Total Routing Nets : 3051
  936. Fanout Average : 3.36 (1..242)
  937. Max Fanout Net : auto_generated_inst.hbo_22_717df45ba12dbb20_bp
  938. Logic Slices : 1964/2112 (93.0%)
  939. Routing...
  940. Budget Useful Skew...
  941. ## CPU time: 0:0:0, REAL time: 0:0:1
  942. iter = 1/1, route#: 3051, violation# : 1835, overflow# : 1727, conflict# : 1488, node#: 18654
  943. ## CPU time: 0:0:1, REAL time: 0:0:2
  944. iter = 2/2, route#: 3051, violation# : 1344, overflow# : 1308, conflict# : 1156, node#: 19699
  945. ## CPU time: 0:0:2, REAL time: 0:0:2
  946. iter = 3/3, route#: 3051, violation# : 602, overflow# : 588, conflict# : 597, node#: 20863
  947. ## CPU time: 0:0:2, REAL time: 0:0:3
  948. iter = 4/4, route#: 3051, violation# : 304, overflow# : 300, conflict# : 317, node#: 21518
  949. ## CPU time: 0:0:3, REAL time: 0:0:3
  950. iter = 5/5, route#: 3051, violation# : 207, overflow# : 204, conflict# : 242, node#: 21793
  951. ## CPU time: 0:0:3, REAL time: 0:0:4
  952. iter = 6/6, route#: 3051, violation# : 134, overflow# : 134, conflict# : 198, node#: 21938
  953. ## CPU time: 0:0:4, REAL time: 0:0:4
  954. iter = 7/7, route#: 3051, violation# : 128, overflow# : 128, conflict# : 182, node#: 22073
  955. ## CPU time: 0:0:4, REAL time: 0:0:5
  956. iter = 8/3, route#: 336, violation# : 312, overflow# : 312, conflict# : 301, node#: 21420
  957. ## CPU time: 0:0:5, REAL time: 0:0:5
  958. iter = 9/4, route#: 267, violation# : 162, overflow# : 161, conflict# : 199, node#: 21745
  959. ## CPU time: 0:0:5, REAL time: 0:0:6
  960. iter = 10/5, route#: 280, violation# : 112, overflow# : 112, conflict# : 172, node#: 21886
  961. ## CPU time: 0:0:5, REAL time: 0:0:6
  962. iter = 11/6, route#: 115, violation# : 51, overflow# : 51, conflict# : 82, node#: 22159
  963. ## CPU time: 0:0:6, REAL time: 0:0:6
  964. iter = 12/7, route#: 181, violation# : 47, overflow# : 47, conflict# : 82, node#: 22232
  965. ## CPU time: 0:0:6, REAL time: 0:0:7
  966. iter = 13/8, route#: 88, violation# : 36, overflow# : 36, conflict# : 64, node#: 22373
  967. ## CPU time: 0:0:6, REAL time: 0:0:7
  968. iter = 14/5, route#: 83, violation# : 55, overflow# : 55, conflict# : 82, node#: 22264
  969. ## CPU time: 0:0:6, REAL time: 0:0:7
  970. iter = 15/6, route#: 62, violation# : 25, overflow# : 25, conflict# : 44, node#: 22350
  971. ## CPU time: 0:0:6, REAL time: 0:0:7
  972. iter = 16/7, route#: 49, violation# : 20, overflow# : 20, conflict# : 38, node#: 22427
  973. ## CPU time: 0:0:7, REAL time: 0:0:7
  974. iter = 17/8, route#: 30, violation# : 16, overflow# : 16, conflict# : 27, node#: 22465
  975. ## CPU time: 0:0:7, REAL time: 0:0:7
  976. iter = 18/9, route#: 47, violation# : 18, overflow# : 18, conflict# : 31, node#: 22506
  977. ## CPU time: 0:0:7, REAL time: 0:0:7
  978. iter = 19/10, route#: 22, violation# : 14, overflow# : 14, conflict# : 26, node#: 22537
  979. ## CPU time: 0:0:7, REAL time: 0:0:8
  980. iter = 20/5, route#: 50, violation# : 38, overflow# : 38, conflict# : 58, node#: 22483
  981. ## CPU time: 0:0:7, REAL time: 0:0:8
  982. iter = 21/6, route#: 78, violation# : 39, overflow# : 39, conflict# : 53, node#: 22455
  983. ## CPU time: 0:0:7, REAL time: 0:0:8
  984. iter = 22/7, route#: 55, violation# : 22, overflow# : 22, conflict# : 37, node#: 22548
  985. ## CPU time: 0:0:7, REAL time: 0:0:8
  986. iter = 23/8, route#: 39, violation# : 22, overflow# : 22, conflict# : 36, node#: 22644
  987. ## CPU time: 0:0:7, REAL time: 0:0:8
  988. iter = 24/9, route#: 47, violation# : 15, overflow# : 15, conflict# : 26, node#: 22609
  989. ## CPU time: 0:0:7, REAL time: 0:0:8
  990. iter = 25/10, route#: 34, violation# : 16, overflow# : 16, conflict# : 27, node#: 22661
  991. ## CPU time: 0:0:8, REAL time: 0:0:8
  992. iter = 26/5, route#: 117, violation# : 68, overflow# : 68, conflict# : 95, node#: 22451
  993. ## CPU time: 0:0:8, REAL time: 0:0:8
  994. iter = 27/6, route#: 71, violation# : 40, overflow# : 40, conflict# : 63, node#: 22601
  995. ## CPU time: 0:0:8, REAL time: 0:0:9
  996. iter = 28/7, route#: 67, violation# : 27, overflow# : 27, conflict# : 42, node#: 22679
  997. ## CPU time: 0:0:8, REAL time: 0:0:9
  998. iter = 29/8, route#: 70, violation# : 17, overflow# : 17, conflict# : 30, node#: 22711
  999. ## CPU time: 0:0:8, REAL time: 0:0:9
  1000. iter = 30/9, route#: 35, violation# : 14, overflow# : 14, conflict# : 25, node#: 22762
  1001. ## CPU time: 0:0:8, REAL time: 0:0:9
  1002. iter = 31/10, route#: 18, violation# : 16, overflow# : 16, conflict# : 24, node#: 22783
  1003. ## CPU time: 0:0:8, REAL time: 0:0:9
  1004. iter = 32/5, route#: 101, violation# : 56, overflow# : 56, conflict# : 77, node#: 22577
  1005. ## CPU time: 0:0:8, REAL time: 0:0:9
  1006. iter = 33/6, route#: 78, violation# : 33, overflow# : 33, conflict# : 54, node#: 22615
  1007. ## CPU time: 0:0:9, REAL time: 0:0:9
  1008. iter = 34/7, route#: 32, violation# : 17, overflow# : 17, conflict# : 30, node#: 22704
  1009. ## CPU time: 0:0:9, REAL time: 0:0:9
  1010. iter = 35/8, route#: 40, violation# : 11, overflow# : 11, conflict# : 21, node#: 22741
  1011. ## CPU time: 0:0:9, REAL time: 0:0:9
  1012. iter = 36/9, route#: 19, violation# : 11, overflow# : 11, conflict# : 20, node#: 22763
  1013. ## CPU time: 0:0:9, REAL time: 0:0:9
  1014. iter = 37/10, route#: 23, violation# : 12, overflow# : 12, conflict# : 19, node#: 22779
  1015. ## CPU time: 0:0:9, REAL time: 0:0:10
  1016. iter = 38/5, route#: 90, violation# : 56, overflow# : 56, conflict# : 84, node#: 22572
  1017. ## CPU time: 0:0:9, REAL time: 0:0:10
  1018. iter = 39/6, route#: 81, violation# : 31, overflow# : 31, conflict# : 55, node#: 22649
  1019. ## CPU time: 0:0:9, REAL time: 0:0:10
  1020. iter = 40/7, route#: 36, violation# : 23, overflow# : 23, conflict# : 35, node#: 22724
  1021. ## CPU time: 0:0:9, REAL time: 0:0:10
  1022. iter = 41/8, route#: 28, violation# : 10, overflow# : 10, conflict# : 18, node#: 22735
  1023. ## CPU time: 0:0:9, REAL time: 0:0:10
  1024. iter = 42/9, route#: 27, violation# : 10, overflow# : 10, conflict# : 19, node#: 22768
  1025. ## CPU time: 0:0:9, REAL time: 0:0:10
  1026. iter = 43/10, route#: 26, violation# : 8, overflow# : 8, conflict# : 16, node#: 22753
  1027. ## CPU time: 0:0:9, REAL time: 0:0:10
  1028. iter = 44/5, route#: 19, violation# : 11, overflow# : 11, conflict# : 16, node#: 22726
  1029. ## CPU time: 0:0:9, REAL time: 0:0:10
  1030. iter = 45/6, route#: 9, violation# : 8, overflow# : 8, conflict# : 13, node#: 22742
  1031. ## CPU time: 0:0:9, REAL time: 0:0:10
  1032. iter = 46/7, route#: 23, violation# : 6, overflow# : 6, conflict# : 11, node#: 22767
  1033. ## CPU time: 0:0:9, REAL time: 0:0:10
  1034. iter = 47/8, route#: 9, violation# : 5, overflow# : 5, conflict# : 7, node#: 22804
  1035. ## CPU time: 0:0:9, REAL time: 0:0:10
  1036. iter = 48/9, route#: 10, violation# : 3, overflow# : 3, conflict# : 5, node#: 22814
  1037. ## CPU time: 0:0:10, REAL time: 0:0:10
  1038. iter = 49/10, route#: 4, violation# : 2, overflow# : 2, conflict# : 4, node#: 22814
  1039. ## CPU time: 0:0:10, REAL time: 0:0:10
  1040. iter = 50/5, route#: 22, violation# : 15, overflow# : 15, conflict# : 22, node#: 22746
  1041. ## CPU time: 0:0:10, REAL time: 0:0:10
  1042. iter = 51/6, route#: 18, violation# : 8, overflow# : 8, conflict# : 12, node#: 22772
  1043. ## CPU time: 0:0:10, REAL time: 0:0:10
  1044. iter = 52/7, route#: 9, violation# : 6, overflow# : 6, conflict# : 10, node#: 22784
  1045. ## CPU time: 0:0:10, REAL time: 0:0:10
  1046. iter = 53/8, route#: 15, violation# : 5, overflow# : 5, conflict# : 9, node#: 22786
  1047. ## CPU time: 0:0:10, REAL time: 0:0:10
  1048. iter = 54/9, route#: 8, violation# : 3, overflow# : 3, conflict# : 6, node#: 22794
  1049. ## CPU time: 0:0:10, REAL time: 0:0:10
  1050. iter = 55/10, route#: 22, violation# : 10, overflow# : 10, conflict# : 13, node#: 22820
  1051. ## CPU time: 0:0:10, REAL time: 0:0:11
  1052. iter = 56/5, route#: 10, violation# : 11, overflow# : 11, conflict# : 16, node#: 22784
  1053. ## CPU time: 0:0:10, REAL time: 0:0:11
  1054. iter = 57/6, route#: 19, violation# : 9, overflow# : 9, conflict# : 16, node#: 22771
  1055. ## CPU time: 0:0:10, REAL time: 0:0:11
  1056. iter = 58/7, route#: 34, violation# : 10, overflow# : 10, conflict# : 17, node#: 22785
  1057. ## CPU time: 0:0:10, REAL time: 0:0:11
  1058. iter = 59/8, route#: 12, violation# : 8, overflow# : 8, conflict# : 13, node#: 22824
  1059. ## CPU time: 0:0:10, REAL time: 0:0:11
  1060. iter = 60/9, route#: 24, violation# : 8, overflow# : 8, conflict# : 14, node#: 22853
  1061. ## CPU time: 0:0:10, REAL time: 0:0:11
  1062. iter = 61/10, route#: 19, violation# : 4, overflow# : 4, conflict# : 7, node#: 22892
  1063. ## CPU time: 0:0:10, REAL time: 0:0:11
  1064. iter = 62/5, route#: 6, violation# : 4, overflow# : 4, conflict# : 7, node#: 22865
  1065. ## CPU time: 0:0:10, REAL time: 0:0:11
  1066. iter = 63/6, route#: 8, violation# : 4, overflow# : 4, conflict# : 6, node#: 22847
  1067. ## CPU time: 0:0:10, REAL time: 0:0:11
  1068. iter = 64/7, route#: 13, violation# : 8, overflow# : 8, conflict# : 13, node#: 22850
  1069. ## CPU time: 0:0:10, REAL time: 0:0:11
  1070. iter = 65/8, route#: 13, violation# : 3, overflow# : 3, conflict# : 6, node#: 22863
  1071. ## CPU time: 0:0:10, REAL time: 0:0:11
  1072. iter = 66/9, route#: 5, violation# : 3, overflow# : 3, conflict# : 6, node#: 22872
  1073. ## CPU time: 0:0:10, REAL time: 0:0:11
  1074. iter = 67/10, route#: 8, violation# : 0, overflow# : 0, conflict# : 0, node#: 22880
  1075. ## CPU time: 0:0:11, REAL time: 0:0:12
  1076. iter = 68/3, route#: 375, violation# : 216, overflow# : 216, conflict# : 261, node#: 21908
  1077. ## CPU time: 0:0:11, REAL time: 0:0:12
  1078. iter = 69/4, route#: 193, violation# : 44, overflow# : 44, conflict# : 78, node#: 22194
  1079. ## CPU time: 0:0:11, REAL time: 0:0:12
  1080. iter = 70/5, route#: 93, violation# : 15, overflow# : 15, conflict# : 28, node#: 22268
  1081. ## CPU time: 0:0:11, REAL time: 0:0:12
  1082. iter = 71/6, route#: 20, violation# : 6, overflow# : 6, conflict# : 12, node#: 22305
  1083. ## CPU time: 0:0:12, REAL time: 0:0:12
  1084. iter = 72/7, route#: 51, violation# : 4, overflow# : 4, conflict# : 8, node#: 22294
  1085. ## CPU time: 0:0:12, REAL time: 0:0:12
  1086. iter = 73/3, route#: 68, violation# : 35, overflow# : 35, conflict# : 53, node#: 22212
  1087. ## CPU time: 0:0:12, REAL time: 0:0:13
  1088. iter = 74/4, route#: 84, violation# : 33, overflow# : 33, conflict# : 47, node#: 22164
  1089. ## CPU time: 0:0:12, REAL time: 0:0:13
  1090. iter = 75/5, route#: 46, violation# : 4, overflow# : 4, conflict# : 8, node#: 22278
  1091. ## CPU time: 0:0:12, REAL time: 0:0:13
  1092. iter = 76/6, route#: 7, violation# : 1, overflow# : 1, conflict# : 2, node#: 22298
  1093. ## CPU time: 0:0:12, REAL time: 0:0:13
  1094. iter = 77/7, route#: 45, violation# : 2, overflow# : 2, conflict# : 4, node#: 22265
  1095. ## CPU time: 0:0:12, REAL time: 0:0:13
  1096. iter = 78/8, route#: 3, violation# : 1, overflow# : 1, conflict# : 2, node#: 22269
  1097. ## CPU time: 0:0:12, REAL time: 0:0:13
  1098. iter = 79/5, route#: 2, violation# : 1, overflow# : 1, conflict# : 2, node#: 22265
  1099. ## CPU time: 0:0:12, REAL time: 0:0:13
  1100. iter = 80/6, route#: 2, violation# : 1, overflow# : 1, conflict# : 2, node#: 22265
  1101. ## CPU time: 0:0:12, REAL time: 0:0:13
  1102. iter = 81/7, route#: 3, violation# : 1, overflow# : 1, conflict# : 2, node#: 22265
  1103. ## CPU time: 0:0:12, REAL time: 0:0:13
  1104. iter = 82/8, route#: 3, violation# : 2, overflow# : 2, conflict# : 3, node#: 22275
  1105. ## CPU time: 0:0:12, REAL time: 0:0:13
  1106. iter = 83/9, route#: 3, violation# : 0, overflow# : 0, conflict# : 0, node#: 22273
  1107. ## CPU time: 0:0:13, REAL time: 0:0:13
  1108. iter = 84/3, route#: 207, violation# : 94, overflow# : 94, conflict# : 131, node#: 21963
  1109. ## CPU time: 0:0:13, REAL time: 0:0:14
  1110. iter = 85/4, route#: 105, violation# : 30, overflow# : 30, conflict# : 55, node#: 22095
  1111. ## CPU time: 0:0:13, REAL time: 0:0:14
  1112. iter = 86/5, route#: 65, violation# : 7, overflow# : 7, conflict# : 13, node#: 22169
  1113. ## CPU time: 0:0:13, REAL time: 0:0:14
  1114. iter = 87/6, route#: 18, violation# : 3, overflow# : 3, conflict# : 5, node#: 22195
  1115. ## CPU time: 0:0:13, REAL time: 0:0:14
  1116. iter = 88/7, route#: 42, violation# : 0, overflow# : 0, conflict# : 0, node#: 22202
  1117. ## CPU time: 0:0:14, REAL time: 0:0:15
  1118. iter = 89/3, route#: 182, violation# : 110, overflow# : 110, conflict# : 131, node#: 21976
  1119. ## CPU time: 0:0:14, REAL time: 0:0:15
  1120. iter = 90/4, route#: 114, violation# : 34, overflow# : 34, conflict# : 56, node#: 22139
  1121. ## CPU time: 0:0:14, REAL time: 0:0:15
  1122. iter = 91/5, route#: 56, violation# : 6, overflow# : 6, conflict# : 12, node#: 22217
  1123. ## CPU time: 0:0:14, REAL time: 0:0:15
  1124. iter = 92/6, route#: 10, violation# : 3, overflow# : 3, conflict# : 6, node#: 22223
  1125. ## CPU time: 0:0:14, REAL time: 0:0:15
  1126. iter = 93/7, route#: 34, violation# : 1, overflow# : 1, conflict# : 2, node#: 22240
  1127. ## CPU time: 0:0:14, REAL time: 0:0:15
  1128. iter = 94/5, route#: 40, violation# : 3, overflow# : 3, conflict# : 6, node#: 22210
  1129. ## CPU time: 0:0:14, REAL time: 0:0:15
  1130. iter = 95/6, route#: 4, violation# : 1, overflow# : 1, conflict# : 2, node#: 22222
  1131. ## CPU time: 0:0:15, REAL time: 0:0:15
  1132. iter = 96/7, route#: 25, violation# : 1, overflow# : 1, conflict# : 2, node#: 22215
  1133. ## CPU time: 0:0:15, REAL time: 0:0:15
  1134. iter = 97/8, route#: 2, violation# : 2, overflow# : 2, conflict# : 3, node#: 22222
  1135. ## CPU time: 0:0:15, REAL time: 0:0:15
  1136. iter = 98/9, route#: 24, violation# : 2, overflow# : 2, conflict# : 4, node#: 22234
  1137. ## CPU time: 0:0:15, REAL time: 0:0:15
  1138. iter = 99/10, route#: 3, violation# : 2, overflow# : 2, conflict# : 3, node#: 22233
  1139. ## CPU time: 0:0:15, REAL time: 0:0:15
  1140. iter = 100/5, route#: 3, violation# : 2, overflow# : 2, conflict# : 3, node#: 22233
  1141. ## CPU time: 0:0:15, REAL time: 0:0:15
  1142. iter = 101/6, route#: 4, violation# : 2, overflow# : 2, conflict# : 4, node#: 22233
  1143. ## CPU time: 0:0:15, REAL time: 0:0:15
  1144. iter = 102/7, route#: 3, violation# : 2, overflow# : 2, conflict# : 4, node#: 22230
  1145. ## CPU time: 0:0:15, REAL time: 0:0:15
  1146. iter = 103/8, route#: 6, violation# : 1, overflow# : 1, conflict# : 2, node#: 22250
  1147. ## CPU time: 0:0:15, REAL time: 0:0:16
  1148. iter = 104/9, route#: 3, violation# : 0, overflow# : 0, conflict# : 0, node#: 22242
  1149. ## CPU time: 0:0:15, REAL time: 0:0:16
  1150. iter = 105/3, route#: 152, violation# : 80, overflow# : 80, conflict# : 110, node#: 22014
  1151. ## CPU time: 0:0:15, REAL time: 0:0:16
  1152. iter = 106/4, route#: 63, violation# : 17, overflow# : 17, conflict# : 29, node#: 22157
  1153. ## CPU time: 0:0:15, REAL time: 0:0:16
  1154. iter = 107/5, route#: 53, violation# : 5, overflow# : 5, conflict# : 10, node#: 22181
  1155. ## CPU time: 0:0:16, REAL time: 0:0:16
  1156. iter = 108/6, route#: 8, violation# : 2, overflow# : 2, conflict# : 4, node#: 22203
  1157. ## CPU time: 0:0:16, REAL time: 0:0:16
  1158. iter = 109/7, route#: 37, violation# : 4, overflow# : 4, conflict# : 7, node#: 22220
  1159. ## CPU time: 0:0:16, REAL time: 0:0:16
  1160. iter = 110/3, route#: 55, violation# : 26, overflow# : 26, conflict# : 38, node#: 22111
  1161. ## CPU time: 0:0:16, REAL time: 0:0:17
  1162. iter = 111/4, route#: 52, violation# : 16, overflow# : 16, conflict# : 23, node#: 22136
  1163. ## CPU time: 0:0:16, REAL time: 0:0:17
  1164. iter = 112/5, route#: 31, violation# : 3, overflow# : 3, conflict# : 6, node#: 22176
  1165. ## CPU time: 0:0:16, REAL time: 0:0:17
  1166. iter = 113/6, route#: 4, violation# : 1, overflow# : 1, conflict# : 2, node#: 22188
  1167. ## CPU time: 0:0:16, REAL time: 0:0:17
  1168. iter = 114/7, route#: 31, violation# : 1, overflow# : 1, conflict# : 2, node#: 22211
  1169. ## CPU time: 0:0:16, REAL time: 0:0:17
  1170. iter = 115/8, route#: 2, violation# : 0, overflow# : 0, conflict# : 0, node#: 22209
  1171. Optimizing...
  1172. ...
  1173. Done
  1174. *** Post Routing Timing Report ***
  1175. === User constraints ===
  1176. Fmax report
  1177. User constraint: 8.000MHz, Fmax: 145.033MHz, Clock: PIN_HSE
  1178. User constraint: 10.000MHz, Fmax: 145.033MHz, Clock: PIN_HSI
  1179. User constraint: 240.000MHz, Fmax: 249.314MHz, Clock: pll_inst|auto_generated|pll1|clk[0]
  1180. User constraint: 120.000MHz, Fmax: 106.270MHz, Clock: pll_inst|auto_generated|pll1|clk[3]
  1181. Clock transfer report:
  1182. Worst setup: 118.105, with clock PIN_HSE
  1183. Worst setup: 93.105, with clock PIN_HSI
  1184. Worst setup: 0.156, with clock pll_inst|auto_generated|pll1|clk[0]
  1185. Worst setup: -1.077, with clock pll_inst|auto_generated|pll1|clk[3]
  1186. Worst setup: 3.132, from clock pll_inst|auto_generated|pll1|clk[0] to pll_inst|auto_generated|pll1|clk[3]
  1187. Worst setup: 3.396, from clock pll_inst|auto_generated|pll1|clk[3] to pll_inst|auto_generated|pll1|clk[0]
  1188. Worst hold: 0.615, with clock PIN_HSE
  1189. Worst hold: 0.615, with clock PIN_HSI
  1190. Worst hold: 0.615, with clock pll_inst|auto_generated|pll1|clk[0]
  1191. Worst hold: 0.606, with clock pll_inst|auto_generated|pll1|clk[3]
  1192. Worst hold: 1.740, from clock pll_inst|auto_generated|pll1|clk[0] to pll_inst|auto_generated|pll1|clk[3]
  1193. Worst hold: 0.818, from clock pll_inst|auto_generated|pll1|clk[3] to pll_inst|auto_generated|pll1|clk[0]
  1194. === Auto constraints ===
  1195. Coverage report
  1196. User constraints covered 9470 connections out of 9603 total, coverage: 98.6%
  1197. Auto constraints covered 9470 connections out of 9603 total, coverage: 98.6%
  1198. 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
  1199. Slack: -1.077
  1200. Arrival Time: 9.805
  1201. Required Time: 8.728
  1202. *** End Timing Report ***
  1203. Tue Jul 15 16:28:19 2025
  1204. 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
  1205. >
  1206. > if { [file exists "./${DESIGN}.post.asf"] } {
  1207. alta::tcl_highlight "Using post-ASF file ${DESIGN}.post.asf.\n"
  1208. source "./${DESIGN}.post.asf"
  1209. }
  1210. Using post-ASF file test_uart.post.asf.
  1211. > # pio_begin >>>>>> DO NOT MODIFY THIS SECTION! >>>>>>
  1212. > # pio_end <<<<<< DO NOT MODIFY THIS SECTION! <<<<<<
  1213. > ##
  1214. >
  1215. > date_time
  1216. Tue Jul 15 16:28:20 2025
  1217. > exit
  1218. Total 0 fatals, 0 errors, 2 warnings, 236 infos.