vivado無工程生成韌體及時序報告

Galois_V發表於2024-08-17

  做IC一般都是使用linux系統進行編寫程式碼,綜合模擬等操作。因此沒有影像化介面只跑指令碼是提高效率的一種方式,筆者以前一直使用影像化介面的方式對Vivado工程進行編譯綜合,後來學會了windows下也可以使用指令碼直接無工程生成bit檔案,時序報告等。

  步驟大致如下,rtl.list在上文有提及,這裡不重複講具體怎麼寫。

  1. 首先是開啟vivado在windows下的shell

  接著跳出指令畫面

  2. 進入到需要編譯的工程所在的目錄下

  3. 在當前目錄下的檔案如下,其中src存放的是程式碼,IP核,xdc檔案等檔案,這些上一篇文章有提到,都是同一個工程

  run.tcl的內容如下

set name ETH_Display_v1

set proj_dir D:/project/ETH_Display

set output_dir ./run_out_$name
file mkdir $output_dir

set_part xczu3eg-sfvc784-1-i

source $proj_dir/rtl_list.tcl
#read_xdc $proj_dir/constraints/AXU3EG.xdc

set_param general.maxThreads 16

synth_design -top AXU3EG_top -part xczu3eg-sfvc784-1-i     \
-include_dirs $proj_dir/src/hdl                            \
-include_dirs $proj_dir/src/hdl/udp                        \
-include_dirs $proj_dir/src/hdl/udp/arp                    \
-include_dirs $proj_dir/src/hdl/udp/gmii_to_rgmii        
#sfcu


write_checkpoint -force $output_dir/postsynth
write_verilog -force $output_dir/postsynth_netlist.v
report_clocks -file $output_dir/clock_out.txt

opt_design
place_design -directive AltSpreadLogic_high
write_checkpoint -force $output_dir/post_place

route_design
write_checkpoint -force $output_dir/post_route

report_timing_summary -max_paths 5 -file $output_dir/post_route_timing_summary.rpt
report_timing -sort_by group -max_path 5 -path_type summary -file $output_dir/post_route_timing.rpt

report_utilization -file $output_dir/post_route_util.rpt
report_utilization -hierarchical -append -file $output_dir/post_route_util.rpt

write_bitstream -force -bin_file $output_dir/$name.bit                    

  之後只需在步驟2處輸入指令source run.tcl即可,然後等待編譯完成即可,編譯完成目錄下會出現生成的檔案。

  以上是筆者在vivado2020.1版本進行的無工程生成韌體的操作,不同的vivado版本對指令也存在差異,正常報錯會提示。筆者覺得使用無工程生成韌體比UI介面生成的方式要快不少。

相關文章