> 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 Sat May 09 14:19:31 2026 > 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 example_board.pre.asf. > # pio_begin >>>>>> DO NOT MODIFY THIS SECTION! >>>>>> > set BOARD_PLL_CLKIN PIN_OSC > set db_io_name_priority False > set ip_pll_vco_lowpower true > set_global_assignment -name ON_CHIP_BITSTREAM_DECOMPRESSION "ON" > # 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 "./example_board.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:3 ## Memory Usage: 317MB (317MB) Using design verilog file ./simulation/modelsim/example_board.vo. Using design VE file example_board.vex. Preparing design... Info: Rename duplicated module cell alta_adc to alta_adc_duplicated at ./alta_db/flatten.vx:1. Info: Rename duplicated module cell alta_dac to alta_dac_duplicated at ./alta_db/flatten.vx:62. Info: Rename duplicated module cell alta_rv32 to alta_rv32_duplicated at ./alta_db/flatten.vx:97. Info: Removing bbox feeder slice gpio0_io_in[0] driving BBOX rv32|gpio0_io_in[0]. Info: Removing bbox feeder slice gpio0_io_out_data[0] driven by BBOX rv32|gpio0_io_out_data[0]. Info: Removing bbox feeder slice gpio0_io_out_en[0] driven by BBOX rv32|gpio0_io_out_en[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_out_data[1] driven by BBOX rv32|gpio4_io_out_data[1]. Info: Removing bbox feeder slice gpio4_io_out_data[2] driven by BBOX rv32|gpio4_io_out_data[2]. Info: Removing bbox feeder slice gpio4_io_out_data[5] driven by BBOX rv32|gpio4_io_out_data[5]. Info: Removing bbox feeder slice gpio4_io_out_data[6] driven by BBOX rv32|gpio4_io_out_data[6]. Info: Removing bbox feeder slice gpio4_io_out_en[1] driven by BBOX rv32|gpio4_io_out_en[1]. Info: Removing bbox feeder slice gpio4_io_out_en[2] driven by BBOX rv32|gpio4_io_out_en[2]. Info: Removing bbox feeder slice gpio4_io_out_en[5] driven by BBOX rv32|gpio4_io_out_en[5]. Info: Removing bbox feeder slice gpio4_io_out_en[6] driven by BBOX rv32|gpio4_io_out_en[6]. Info: Removing bbox feeder slice gpio6_io_in[1] driving BBOX rv32|gpio6_io_in[1]. Info: Removing bbox feeder slice gpio6_io_in[3] driving BBOX rv32|gpio6_io_in[3]. 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_en[0] driven by BBOX rv32|gpio8_io_out_en[0]. Info: Removing bbox feeder slice macro_inst|ahb2apb_inst|haddr[0]~feeder driven by BBOX rv32|mem_ahb_haddr[0]. Info: Removing bbox feeder slice macro_inst|ahb2apb_inst|haddr[10]~feeder driven by BBOX rv32|mem_ahb_haddr[10]. Info: Removing bbox feeder slice macro_inst|ahb2apb_inst|haddr[11]~feeder driven by BBOX rv32|mem_ahb_haddr[11]. Info: Removing bbox feeder slice macro_inst|ahb2apb_inst|haddr[12]~feeder driven by BBOX rv32|mem_ahb_haddr[12]. Info: Removing bbox feeder slice macro_inst|ahb2apb_inst|haddr[13]~feeder driven by BBOX rv32|mem_ahb_haddr[13]. Info: Removing bbox feeder slice macro_inst|ahb2apb_inst|haddr[15]~feeder driven by BBOX rv32|mem_ahb_haddr[15]. Info: Removing bbox feeder slice macro_inst|ahb2apb_inst|haddr[1]~feeder driven by BBOX rv32|mem_ahb_haddr[1]. Info: Removing bbox feeder slice macro_inst|ahb2apb_inst|haddr[6]~feeder driven by BBOX rv32|mem_ahb_haddr[6]. Info: Removing bbox feeder slice macro_inst|ahb2apb_inst|haddr[7]~feeder driven by BBOX rv32|mem_ahb_haddr[7]. Info: Removing bbox feeder slice macro_inst|ahb2apb_inst|haddr[8]~feeder driven by BBOX rv32|mem_ahb_haddr[8]. Info: Removing bbox feeder slice macro_inst|ahb2apb_inst|haddr[9]~feeder driven by BBOX rv32|mem_ahb_haddr[9]. Info: Removing bbox feeder slice macro_inst|ahb2apb_inst|hreadyout~_wirecell driving BBOX rv32|mem_ahb_hreadyout inverted. Info: Removing bbox feeder slice macro_inst|apb_adc0_inst|apb_db[0]~feeder driven by BBOX macro_inst|apb_adc0_inst|adc_inst|db[0]. Info: Removing bbox feeder slice macro_inst|apb_adc0_inst|apb_db[2]~feeder driven by BBOX macro_inst|apb_adc0_inst|adc_inst|db[2]. Info: Removing bbox feeder slice macro_inst|cfg_reg_inst|adc_chnl_sel[0]~_wirecell driving BBOX macro_inst|apb_adc0_inst|adc_inst|insel[0] inverted. Info: Removing bbox feeder slice macro_inst|cfg_reg_inst|adc_chnl_sel[2]~_wirecell driving BBOX macro_inst|apb_adc0_inst|adc_inst|insel[2] inverted. Info: Removing bbox feeder slice macro_inst|cfg_reg_inst|adc_chnl_sel[3]~_wirecell driving BBOX macro_inst|apb_adc0_inst|adc_inst|insel[3] inverted. Info: Removing bbox feeder slice macro_inst|cfg_reg_inst|adc_clk_div[3]~feeder driven by BBOX rv32|mem_ahb_hwdata[3]. Info: Removing bbox feeder slice macro_inst|cfg_reg_inst|adc_clk_div[4]~feeder driven by BBOX rv32|mem_ahb_hwdata[4]. Info: Removing bbox feeder slice macro_inst|cfg_reg_inst|adc_clk_div[5]~feeder driven by BBOX rv32|mem_ahb_hwdata[5]. Info: Removing bbox feeder slice macro_inst|cfg_reg_inst|adc_clk_div[6]~feeder driven by BBOX rv32|mem_ahb_hwdata[6]. Info: Removing bbox feeder slice macro_inst|cfg_reg_inst|adc_clk_div[7]~feeder driven by BBOX rv32|mem_ahb_hwdata[7]. Info: Removing bbox feeder slice macro_inst|cfg_reg_inst|adc_en~_wirecell driving BBOX macro_inst|apb_adc0_inst|adc_inst|enb inverted. Info: Removing bbox feeder slice macro_inst|cfg_reg_inst|adc_restart~feeder driven by BBOX rv32|mem_ahb_hwdata[1]. Info: Removing bbox feeder slice macro_inst|cfg_reg_inst|dac_run~feeder driven by BBOX rv32|mem_ahb_hwdata[1]. Info: Removing bbox feeder slice macro_inst|cfg_reg_inst|frequency[0]~feeder driven by BBOX rv32|mem_ahb_hwdata[0]. Info: Removing bbox feeder slice macro_inst|cfg_reg_inst|frequency[10]~feeder driven by BBOX rv32|mem_ahb_hwdata[10]. Info: Removing bbox feeder slice macro_inst|cfg_reg_inst|frequency[11]~feeder driven by BBOX rv32|mem_ahb_hwdata[11]. Info: Removing bbox feeder slice macro_inst|cfg_reg_inst|frequency[12]~feeder driven by BBOX rv32|mem_ahb_hwdata[12]. Info: Removing bbox feeder slice macro_inst|cfg_reg_inst|frequency[13]~feeder driven by BBOX rv32|mem_ahb_hwdata[13]. Info: Removing bbox feeder slice macro_inst|cfg_reg_inst|frequency[14]~feeder driven by BBOX rv32|mem_ahb_hwdata[14]. Info: Removing bbox feeder slice macro_inst|cfg_reg_inst|frequency[15]~feeder driven by BBOX rv32|mem_ahb_hwdata[15]. Info: Removing bbox feeder slice macro_inst|cfg_reg_inst|frequency[16]~feeder driven by BBOX rv32|mem_ahb_hwdata[16]. Info: Removing bbox feeder slice macro_inst|cfg_reg_inst|frequency[17]~feeder driven by BBOX rv32|mem_ahb_hwdata[17]. Info: Removing bbox feeder slice macro_inst|cfg_reg_inst|frequency[18]~feeder driven by BBOX rv32|mem_ahb_hwdata[18]. Info: Removing bbox feeder slice macro_inst|cfg_reg_inst|frequency[19]~feeder driven by BBOX rv32|mem_ahb_hwdata[19]. Info: Removing bbox feeder slice macro_inst|cfg_reg_inst|frequency[1]~feeder driven by BBOX rv32|mem_ahb_hwdata[1]. Info: Removing bbox feeder slice macro_inst|cfg_reg_inst|frequency[20]~feeder driven by BBOX rv32|mem_ahb_hwdata[20]. Info: Removing bbox feeder slice macro_inst|cfg_reg_inst|frequency[21]~feeder driven by BBOX rv32|mem_ahb_hwdata[21]. Info: Removing bbox feeder slice macro_inst|cfg_reg_inst|frequency[22]~feeder driven by BBOX rv32|mem_ahb_hwdata[22]. Info: Removing bbox feeder slice macro_inst|cfg_reg_inst|frequency[23]~feeder driven by BBOX rv32|mem_ahb_hwdata[23]. Info: Removing bbox feeder slice macro_inst|cfg_reg_inst|frequency[24]~feeder driven by BBOX rv32|mem_ahb_hwdata[24]. Info: Removing bbox feeder slice macro_inst|cfg_reg_inst|frequency[25]~feeder driven by BBOX rv32|mem_ahb_hwdata[25]. Info: Removing bbox feeder slice macro_inst|cfg_reg_inst|frequency[26]~feeder driven by BBOX rv32|mem_ahb_hwdata[26]. Info: Removing bbox feeder slice macro_inst|cfg_reg_inst|frequency[27]~feeder driven by BBOX rv32|mem_ahb_hwdata[27]. Info: Removing bbox feeder slice macro_inst|cfg_reg_inst|frequency[28]~feeder driven by BBOX rv32|mem_ahb_hwdata[28]. Info: Removing bbox feeder slice macro_inst|cfg_reg_inst|frequency[29]~feeder driven by BBOX rv32|mem_ahb_hwdata[29]. Info: Removing bbox feeder slice macro_inst|cfg_reg_inst|frequency[2]~feeder driven by BBOX rv32|mem_ahb_hwdata[2]. Info: Removing bbox feeder slice macro_inst|cfg_reg_inst|frequency[30]~feeder driven by BBOX rv32|mem_ahb_hwdata[30]. Info: Removing bbox feeder slice macro_inst|cfg_reg_inst|frequency[31]~feeder driven by BBOX rv32|mem_ahb_hwdata[31]. Info: Removing bbox feeder slice macro_inst|cfg_reg_inst|frequency[4]~feeder driven by BBOX rv32|mem_ahb_hwdata[4]. Info: Removing bbox feeder slice macro_inst|cfg_reg_inst|max_vol[1]~feeder driven by BBOX rv32|mem_ahb_hwdata[1]. Info: Removing bbox feeder slice macro_inst|cfg_reg_inst|min_vol[0]~feeder driven by BBOX rv32|mem_ahb_hwdata[16]. Info: Removing bbox feeder slice macro_inst|cfg_reg_inst|min_vol[1]~feeder driven by BBOX rv32|mem_ahb_hwdata[17]. Info: Removing bbox feeder slice macro_inst|cfg_reg_inst|min_vol[3]~feeder driven by BBOX rv32|mem_ahb_hwdata[19]. Info: Removing bbox feeder slice macro_inst|cfg_reg_inst|min_vol[7]~feeder driven by BBOX rv32|mem_ahb_hwdata[23]. Info: Removing bbox feeder slice macro_inst|cfg_reg_inst|min_vol[8]~feeder driven by BBOX rv32|mem_ahb_hwdata[24]. Info: Removing bbox feeder slice macro_inst|cfg_reg_inst|min_vol[9]~feeder driven by BBOX rv32|mem_ahb_hwdata[25]. Info: Removing bbox feeder slice macro_inst|cfg_reg_inst|trig_mode[0]~feeder driven by BBOX rv32|mem_ahb_hwdata[2]. Info: Removing bbox feeder slice macro_inst|cfg_reg_inst|trig_mode[1]~feeder driven by BBOX rv32|mem_ahb_hwdata[3]. Info: Removing bbox feeder slice macro_inst|cfg_reg_inst|trig_threshold[0]~feeder driven by BBOX rv32|mem_ahb_hwdata[0]. Info: Removing bbox feeder slice macro_inst|cfg_reg_inst|trig_threshold[1]~feeder driven by BBOX rv32|mem_ahb_hwdata[1]. Info: Removing bbox feeder slice macro_inst|cfg_reg_inst|trig_threshold[2]~feeder driven by BBOX rv32|mem_ahb_hwdata[2]. Info: Removing bbox feeder slice macro_inst|cfg_reg_inst|trig_threshold[4]~feeder driven by BBOX rv32|mem_ahb_hwdata[4]. Info: Removing bbox feeder slice macro_inst|cfg_reg_inst|trig_threshold[6]~feeder driven by BBOX rv32|mem_ahb_hwdata[6]. Info: Removing bbox feeder slice macro_inst|cfg_reg_inst|trig_time_slot[1]~feeder driven by BBOX rv32|mem_ahb_hwdata[5]. Info: Removing bbox feeder slice macro_inst|cfg_reg_inst|trig_time_slot[2]~feeder driven by BBOX rv32|mem_ahb_hwdata[6]. Info: Removing bbox feeder slice macro_inst|cfg_reg_inst|trig_time_slot[3]~feeder driven by BBOX rv32|mem_ahb_hwdata[7]. Info: Removing bbox feeder slice macro_inst|cfg_reg_inst|trig_time_slot[4]~feeder driven by BBOX rv32|mem_ahb_hwdata[8]. Info: Removing bbox feeder slice macro_inst|cfg_reg_inst|wave_type[0]~feeder driven by BBOX rv32|mem_ahb_hwdata[0]. Info: Removing bbox feeder slice macro_inst|cfg_reg_inst|wave_type[1]~feeder driven by BBOX rv32|mem_ahb_hwdata[1]. 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]. Info: Removing bbox feeder slice sys_ctrl_stop driven by BBOX rv32|sys_ctrl_stop. ## CPU time: 0:0:0, REAL time: 0:0:1 ## Memory Usage: 337MB (337MB) Pseudo pack design... Using location file example_board.vex VCO frequency: 416.000 Mhz clkout0: Enabled , 104.000 Mhz clkout1: Disabled, 0.812 Mhz clkout2: Disabled, 0.812 Mhz clkout3: Disabled, 0.812 Mhz clkout4: Disabled, 0.812 Mhz Info: Instance gclksw_inst|gclk_switch is identified as a clock switch. Packing Statistics Total Logics : 1603/2112 ( 75%) Total LUTs : 1527/2112 ( 72%) Total Registers : 484/2112 ( 22%) Total Block Rams : 2/ 4 ( 50%) Total PLLs : 1/ 1 (100%) Total Pins : 15/ 128 ( 11%) Global Signals : 3/ 5 ( 60%) PLL_ENABLE~clkctrl_outclk (from: PLL_ENABLE~combout) auto_generated_inst.hbo_22_f9ff3d300b43c0f2_bp (from: auto_generated_inst.hbo_22_f9ff3d300b43c0f2_bp) sys_resetn~clkctrl_outclk (from: sys_resetn~combout) Total Lonely Datain : 90 Total Lonely Register : 10 Total LUT-FF Pairs : 275 Total Register Packings : 109 Registers with synchronous reset : 0 Registers with asynchronous reset : 323 Registers with sync and async reset : 131 ## CPU time: 0:0:0, REAL time: 0:0:0 ## 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 SPI0_CSN~output false > set_instance_assignment -name ENABLE_OPEN_DRAIN -to GPIO4_1~output false > set_instance_assignment -name ENABLE_OPEN_DRAIN -to SPI0_SCK~output false > set_instance_assignment -name ENABLE_OPEN_DRAIN -to GPIO4_2~output false > set_instance_assignment -name ENABLE_OPEN_DRAIN -to UART1_RX~output false > set_instance_assignment -name ENABLE_OPEN_DRAIN -to UART0_UARTTXD~output false > set_instance_assignment -name ENABLE_OPEN_DRAIN -to UART1_TX~output false > set_instance_assignment -name ENABLE_OPEN_DRAIN -to SPI0_SI_IO0~output false > set_instance_assignment -name ENABLE_OPEN_DRAIN -to BAUD_RATE~output false > set_instance_assignment -name ENABLE_OPEN_DRAIN -to TEST_SINGLE~output false > set_instance_assignment -name ENABLE_OPEN_DRAIN -to so_io1~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 BAUD_RATE PIN_18 > set_location_assignment -to GPIO4_1 PIN_29 > set_location_assignment -to GPIO4_2 PIN_10 > set_location_assignment -to PIN_HSE PIN_HSE > set_location_assignment -to PIN_HSI PIN_HSI > set_location_assignment -to PLL_CLKIN PIN_OSC > set_location_assignment -to SPI0_CSN PIN_3 > set_location_assignment -to SPI0_SCK PIN_2 > set_location_assignment -to SPI0_SI_IO0 PIN_31 > set_location_assignment -to TEST_SINGLE PIN_13 > set_location_assignment -to UART0_UARTRXD PIN_21 > set_location_assignment -to UART0_UARTTXD PIN_20 > set_location_assignment -to UART1_RX PIN_9 > set_location_assignment -to UART1_TX PIN_8 > set_location_assignment -to so_io1 PIN_1 Info: Found GCLK net PLL_ENABLE~clkctrl_outclk (1). Info: Found GCLK net sys_resetn~clkctrl_outclk (50). Info: Found GCLK net auto_generated_inst.hbo_22_f9ff3d300b43c0f2_bp (92). 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_a8f89aa4d95b80e7_bp, from pll_inst|auto_generated|pll1|lock to rv32|sys_ctrl_pllReady. Info: Slice gpio6_io_in[5] is removed. Info: Slice gpio6_io_in[6] is removed. Info: Slice gpio6_io_in[0] is removed. Info: Slice gpio4_io_in[3] is removed. Info: Slice gpio4_io_in[6] is removed. Info: Slice gpio4_io_in[7] is removed. Info: Slice gpio4_io_in[4] is removed. Info: Slice gpio6_io_in[7] is removed. Info: Slice gpio6_io_in[2] is removed. Info: Slice gpio6_io_in[4] is removed. Info: Slice ~VCC is removed. Info: Slice gpio4_io_in[5] is removed. Info: Slice gpio4_io_in[0] is removed. Info: Slice gpio0_io_in[5] is removed. Info: Slice gpio0_io_in[6] is removed. Info: Slice gpio0_io_in[7] is removed. Info: Slice gpio0_io_in[1] is removed. Info: Slice gpio0_io_in[2] is removed. Info: Slice gpio0_io_in[3] is removed. Info: Slice gpio0_io_in[4] is removed. Info: The input of IO BAUD_RATE is disabled since all input pins are unused. Info: The input of IO TEST_SINGLE is disabled since all input pins are unused. Info: The input of IO UART1_TX is disabled since all input pins are unused. Info: The input of IO so_io1 is disabled since all input pins are unused. ## CPU time: 0:0:0, REAL time: 0:0:0 ## Memory Usage: 337MB (337MB) Using design SDC file ./example_board.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_clock -name PLL_CLKIN -period 125.000 PLL_CLKIN. Info: Auto constraint PLL: create_generated_clock -name pll_inst|auto_generated|pll1|clk[0] -multiply_by 13 -add -source PLL_CLKIN -master_clock PLL_CLKIN pll_inst|auto_generated|pll1|clkout0. set_false_path -from rv32|resetn_out # pio_end ## derive_pll_clocks -create_base_clocks > #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 example_board.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 } > puts "************ DESIGN ASF ************" ************ DESIGN ASF ************ > > # Enable PIN_23 (WKUP pin) to wake up device from standby. This function is not available on other pins. > #set_config -pin PIN_23 CFG_WKUP_EN 1'b1 > # Use falling edge of the WKUP pin. By default rising edge is used. > #set_config -pin PIN_23 CFG_WKUP_INV 1'b1 > # pio_end <<<<<< DO NOT MODIFY THIS SECTION! <<<<<< > ## > Info: The input of IO BAUD_RATE is disabled since all input pins are unused. Info: The input of IO TEST_SINGLE is disabled since all input pins are unused. Info: The input of IO UART1_TX is disabled since all input pins are unused. Info: The input of IO so_io1 is disabled since all input pins are unused. Warn: Slice macro_inst|apb_adc0_inst|adc_inst is auto placed at location (22,7). Warn: Slice macro_inst|apb_dac0_inst|dac_inst is auto placed at location (22,11). Info: The input of IO BAUD_RATE is disabled since all input pins are unused. Info: The input of IO TEST_SINGLE is disabled since all input pins are unused. Info: The input of IO UART1_TX is disabled since all input pins are unused. Info: The input of IO so_io1 is disabled since all input pins are unused. Placement Statistics Total Logic Counts : 1583/2112 (75.0%) Total Logic Tiles : 109/132 (82.6%) Total Other Tiles : 2/4 (50.0%) Total Valid Nets : 1889 (1104+785) Total Valid Fanouts : 8298 (5371+2927) Total Tile Fanouts : 2301 Tile Zip Fanins : 17 (1:33) Tile Zip Fanouts : 31 (0:516) Total Ignored Nets : 1157 Total Valid Blocks : 114 (102/8) Total Ignored Blocks : 2 Total Zip Complexities : 640/3691 2.41/1540.71 Avg Zip Bottleneck : 3.98 30.31 Avg Net Bottleneck : 15.18 449.50 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:4, REAL time: 0:0:6 Pass 2 #1/1 ... Legalization and Swapping... .......... ## CPU time: 0:0:2, REAL time: 0:0:3 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:3, REAL time: 0:0:4 Total wire cost after placement: 0.827384:0.0860479:0.285(0.827384:0.0860479) 5430.29(617.123)+18707(0)+4924.13 4537.95(1278.2)+1119.25 *** Post Placement Timing Report *** === User constraints === Fmax report User constraint: 8.000MHz, Fmax: 115.167MHz, Clock: PIN_HSE User constraint: 10.000MHz, Fmax: 115.168MHz, Clock: PIN_HSI User constraint: 104.000MHz, Fmax: 115.168MHz, Clock: pll_inst|auto_generated|pll1|clk[0] Clock transfer report: Worst setup: 116.317, with clock PIN_HSE Worst setup: 91.317, with clock PIN_HSI Worst setup: 0.932, with clock pll_inst|auto_generated|pll1|clk[0] Worst hold: 0.285, with clock PIN_HSE Worst hold: 0.285, with clock PIN_HSI Worst hold: 0.285, with clock pll_inst|auto_generated|pll1|clk[0] === Auto constraints === Coverage report User constraints covered 3450 connections out of 6471 total, coverage: 53.3% Auto constraints covered 3450 connections out of 6471 total, coverage: 53.3% Setup from macro_inst|trig_ctrl_inst|trigger_ptr[0] to clken_ctrl_X61_Y5_N0, clock pll_inst|auto_generated|pll1|clk[0], constraint 9.615, skew -0.332, data 8.261 Slack: 0.932 Arrival Time: 9.198 Required Time: 10.130 *** End Timing Report *** route_design -dump ./alta_db/route.tx -replace ./alta_db/replace.tx Route Design Statistics Total Routing Nets : 1890 Fanout Average : 3.39 (1..150) Max Fanout Net : macro_inst|apb_dac0_inst|phase_r[1] Logic Slices : 1583/2112 (75.0%) Routing... Budget Useful Skew... ## CPU time: 0:0:0, REAL time: 0:0:0 iter = 1/1, route#: 1890, violation# : 971, overflow# : 922, conflict# : 865, node#: 11996 ## CPU time: 0:0:0, REAL time: 0:0:1 iter = 2/2, route#: 1890, violation# : 744, overflow# : 738, conflict# : 683, node#: 12518 ## CPU time: 0:0:1, REAL time: 0:0:1 iter = 3/3, route#: 1890, violation# : 295, overflow# : 295, conflict# : 290, node#: 13104 ## CPU time: 0:0:1, REAL time: 0:0:1 iter = 4/4, route#: 1890, violation# : 59, overflow# : 59, conflict# : 79, node#: 13443 ## CPU time: 0:0:1, REAL time: 0:0:2 iter = 5/5, route#: 1890, violation# : 2, overflow# : 2, conflict# : 4, node#: 13540 ## CPU time: 0:0:2, REAL time: 0:0:2 iter = 6/6, route#: 1890, violation# : 0, overflow# : 0, conflict# : 0, node#: 13529 ## CPU time: 0:0:2, REAL time: 0:0:2 iter = 7/3, route#: 38, violation# : 10, overflow# : 10, conflict# : 17, node#: 13509 ## CPU time: 0:0:2, REAL time: 0:0:3 iter = 8/4, route#: 10, violation# : 0, overflow# : 0, conflict# : 0, node#: 13524 ## CPU time: 0:0:2, REAL time: 0:0:3 iter = 9/3, route#: 36, violation# : 10, overflow# : 10, conflict# : 17, node#: 13509 ## CPU time: 0:0:2, REAL time: 0:0:3 iter = 10/4, route#: 13, violation# : 0, overflow# : 0, conflict# : 0, node#: 13520 ## CPU time: 0:0:2, REAL time: 0:0:3 iter = 11/3, route#: 46, violation# : 12, overflow# : 12, conflict# : 21, node#: 13505 ## CPU time: 0:0:2, REAL time: 0:0:3 iter = 12/4, route#: 14, violation# : 2, overflow# : 2, conflict# : 3, node#: 13519 ## CPU time: 0:0:2, REAL time: 0:0:3 iter = 13/5, route#: 25, violation# : 0, overflow# : 0, conflict# : 0, node#: 13523 ## CPU time: 0:0:2, REAL time: 0:0:3 iter = 14/3, route#: 30, violation# : 4, overflow# : 4, conflict# : 8, node#: 13520 ## CPU time: 0:0:3, REAL time: 0:0:3 iter = 15/4, route#: 4, violation# : 0, overflow# : 0, conflict# : 0, node#: 13528 Optimizing... ... Done *** Post Routing Timing Report *** === User constraints === Fmax report User constraint: 8.000MHz, Fmax: 118.329MHz, Clock: PIN_HSE User constraint: 10.000MHz, Fmax: 118.329MHz, Clock: PIN_HSI User constraint: 104.000MHz, Fmax: 118.329MHz, Clock: pll_inst|auto_generated|pll1|clk[0] Clock transfer report: Worst setup: 116.549, with clock PIN_HSE Worst setup: 91.549, with clock PIN_HSI Worst setup: 1.164, with clock pll_inst|auto_generated|pll1|clk[0] Worst hold: 0.543, with clock PIN_HSE Worst hold: 0.543, with clock PIN_HSI Worst hold: 0.543, with clock pll_inst|auto_generated|pll1|clk[0] === Auto constraints === Coverage report User constraints covered 3450 connections out of 6471 total, coverage: 53.3% Auto constraints covered 3450 connections out of 6471 total, coverage: 53.3% Setup from macro_inst|cfg_reg_inst|trig_threshold[0] to clken_ctrl_X58_Y6_N1, clock pll_inst|auto_generated|pll1|clk[0], constraint 9.615, skew -0.332, data 8.029 Slack: 1.164 Arrival Time: 8.966 Required Time: 10.130 *** End Timing Report *** Sat May 09 14:19:58 2026 Warn: User constraints coverage is too low at 53.3%. 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 ./example_board_batch.bin --logic-config ./example_board.bin --logic-address 0x80007000 --logic-compress > > 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 example_board.post.asf. > # pio_begin >>>>>> DO NOT MODIFY THIS SECTION! >>>>>> > # pio_end <<<<<< DO NOT MODIFY THIS SECTION! <<<<<< > ## > > date_time Sat May 09 14:19:59 2026 > exit Total 0 fatals, 0 errors, 3 warnings, 138 infos.