【 Vivado 】在工程模式下通過jou檔案來學習 Tcl 命令
Xilinx 的資料手冊UG895提供了一些系統級設計的方法,寫得很詳細,詳細到得不到重要的訊息(我菜)。
Tcl命令在工程模式下以及非工程模式下有一些差異,具體什麼差異,這裡暫時不說,後面我想應該會有一篇博文專門講解。(我懂了的話會有,我相信會有。)
這裡尋求一種方法來學習Vivado的工程模式下如何掌握Tcl命令(工程模式下的Tcl命令)。那就是通過vivado.jou 和 vivado.log檔案來學習。
下面是UG895對兩者的說明:
As an alternative to creating a project in the Vivado IDE, you can create a project using a Tcl script. Most actions run in the Vivado IDE result in a Tcl command being executed. The Tcl commands appear in the Vivado IDE Tcl Console and are also captured in the vivado.jou and vivado.log files.
翻譯:
作為在Vivado IDE中建立專案的替代方法,您可以使用Tcl指令碼建立專案。 在Vivado IDE中執行的大多數操作都會導致執行Tcl命令。 Tcl命令出現在Vivado IDE Tcl控制檯中,也可以在vivado.jou和vivado.log檔案中捕獲。 vivado.jou檔案僅包含命令,vivado.log檔案包含命令和任何返回的訊息。
使用Vivado IDE是瞭解Vivado最快速的方法,通過GUI介面的方式去執行工程的建立,RTL程式碼的編寫,綜合,實現等過程,可這一系列操作的背後都是Tcl命令的執行,所以瞭解Vivado下的Tcl命令是有必要的。(至少給予心理上以自由。)
既然,我們的每一步操作對應的Tcl命令都會被Vivado.jou檔案捕獲,何不先使用Vivado IDE操作,之後參看jou檔案的方式來學習工程模式下的Tcl命令呢?
下面以開啟一個已經存在的工程為例,來檢視到底使用到了什麼樣的Tcl命令。(預設你已經明白了或者學會了如何使用Vivado IDE的方式進行操作)
大致操作如下:
開啟Vivado IDE,開啟工程,綜合,檢視綜合後的各種報告,執行實現,參看實現後的各種報告,生成bit流檔案。
開啟Jou檔案看看:(我對其新增一些註釋!)
#-----------------------------------------------------------
# Vivado v2014.4 (64-bit)
# SW Build 1071353 on Tue Nov 18 18:24:04 MST 2014
# IP Build 1070531 on Tue Nov 18 01:10:18 MST 2014
# Start of session at: Mon Dec 24 15:57:03 2018
# Process ID: 9112
# Log file: C:/Users/Administrator/AppData/Roaming/Xilinx/Vivado/vivado.log
# Journal file: C:/Users/Administrator/AppData/Roaming/Xilinx/Vivado\vivado.jou
#-----------------------------------------------------------#開啟GUI介面
start_gui
#開啟工程
open_project G:/Vivado_file/gate_verilog/gate_verilog.xpr#
synth_design -rtl -name rtl_1
report_drc -name drc_1report_ssn -name ssn_1
#重置綜合並執行綜合
reset_run synth_1
launch_runs synth_1
wait_on_run synth_1
close_design
open_run synth_1 -name synth_1
set_property target_constrs_file G:/Vivado_file/gate_verilog/gate_verilog.srcs/constrs_1/new/top.xdc [current_fileset -constrset]#報告設計規則檢測(drc)、利用率(utilization)
report_drc -name drc_1
report_utilization -name utilization_1#執行實現
launch_runs impl_1
wait_on_run impl_1
close_design
open_run impl_1
report_timing_summary -delay_type min_max -report_unconstrained -check_timing_verbose -max_paths 10 -input_pins -name timing_1
report_clock_networks -name {network_1}
report_clock_interaction -delay_type min_max -significant_digits 3 -name timing_2
report_drc -name drc_1
report_utilization -name utilization_1
report_power -name {power_1}#生成位元流檔案
launch_runs impl_1 -to_step write_bitstream
wait_on_run impl_1#開啟硬體管理器
open_hw
我知道還不夠詳細,但是方法大概就是如此,你可以執行一步操作,之後開啟這個檔案,看看運行了什麼樣的Tcl命令,這樣便明白了每條Tcl命令的含義。
在工程模式下如果學會了使用Tcl命令,不僅可以裝逼(更裝逼的是非工程模式下的Tcl命令),還可以更方便的去使用Vivado IDE,當然了,內心更加自由,人也更自信了。
更進一步的學習Tcl命令,可以檢視Xilinx的官方文件:
Vivado Design Suite User Guide
Using Tcl Scripting
UG894 (v2017.1) April 5, 2017
UG894 (v2017.2) June 7, 2017
在DocNav中搜索UG894即可。
忘了說了,這個Jou檔案在Vivado IDE主介面下的File下檢視。
更新:
在Vivado IDE中執行操作:
對應的Tcl命令為:
#開啟Elaborated design,並報告drc(設計規則檢測)
synth_design -rtl -name rtl_1
report_drc -name drc_1
close_design
#在開啟綜合設計之前要關閉上一次的Elaborated design
#開啟綜合設計並報告時序總結
open_run synth_1 -name synth_1
report_timing_summary -delay_type min_max -report_unconstrained -check_timing_verbose -max_paths 10 -input_pins -name timing_1
要想看每一條命令對應的報告,介面上就有。
下面想要設計一個RTL工程,一個全新的RTL工程,工程的作用是2分頻。
下篇博文見吧!