日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > > ZYNQ
		


Tcl——ToolCommand Language,誕生于80年代的加州大學(xué)伯克利分校,作為一種簡單高效可移植性好的腳本語言,一種基于字符串的命令語言,目前已經(jīng)廣泛應(yīng)用在幾乎所有的EDA工具中。

Xilinx公司從ISE工具的后期開始,在工具中引入了對tcl語言的支持。在目前廣泛使用的設(shè)計工具Vivado中,更是集成了tcl解釋器,實現(xiàn)了對tcl很好的支持,同時也大大提高了編譯及布局布線效率。

Vivado支持工程模式(ProjectBased Mode)和非工程模式(NoneProject Mode)兩種,且都能通過Tcl腳本批處理運行。工程模式主要是在Vivado圖形化界面IDE中運行和調(diào)試,Vivado工具可自動管理設(shè)計流程和設(shè)計數(shù)據(jù),各種數(shù)據(jù)都比較直觀。非工程模式是一直內(nèi)存編譯流程,所有步驟都需要開發(fā)者手動編輯腳本,命令和參數(shù),這樣的模式開發(fā)者對設(shè)計流程有完全的掌控力。

目前,更多的人使用的是工程模式,今天我們就基于工程模式介紹幾個Tcl命令的使用方法。


讀取trace length


在硬件設(shè)計,尤其是高速接口設(shè)計(ddr等接口)中,硬件工程師需要充分考慮線長,除了外部走線之外,芯片管腳到內(nèi)部的線長也需要考慮。

fpga工程師可以在vivadoTcl Console中執(zhí)行tcl命令,生成對應(yīng)器件的trace length文件提供給硬件工程師。

具體命令如下:

link_design -part

write_csv

第一個命令為鏈接具體的芯片型號,第二個命令為導(dǎo)出tracelengthcsv文件。

7系列和Ultrascale/Ultrascale+的型號指定有細微區(qū)別,具體如下:

link_design -part xc7k160tfbg676

link_design -part xcku040-sfva784-1-c


提高編譯效率


不管是綜合(Synthesis)還是實現(xiàn)(Implementation)階段,Vivado都支持多線程編譯。默認情況下,Windows/Linux操作系統(tǒng),綜合階段的線程數(shù)均為2。而在實現(xiàn)階段,Windows系統(tǒng)的默認線程數(shù)為2,Linux操作系統(tǒng)的默認線程數(shù)為8。這就是很多時候,使用Linux系統(tǒng)比Windows系統(tǒng)的編譯效率高的原因之一。

我們可以通過get_param命令進行目前使用線程數(shù)的確認,具體命令見下圖藍色部分。

我們可以通過set_param命令設(shè)定期望的線程數(shù),具體命令見下圖藍色部分。

筆者在Windows系統(tǒng)中嘗試,實現(xiàn)部分的運行時間有一定縮短。


幫助處理不方便處理的部分


有時使用Xilinx自帶的IP,只有網(wǎng)表文件,無法修改IP內(nèi)部的代碼。在實現(xiàn)(Implementation)過程中,發(fā)現(xiàn)某資源占用過多,導(dǎo)致無法通過,我們可以考慮使用tcl命令,remove多余的資源。

下面的例子中,例化了兩個axi_chip2chipIP,這個IP中使用了idelayctrl。例化兩個IP的時,bank33/35中既有axi_c2c_1IO,也有axi_c2c_2IO,一個clock region中只有一個idelayctrl的資源,這就導(dǎo)致了IDELAYCTRL_GROUP的沖突。Vivado實現(xiàn)以后會報如下錯誤:

因為我們無法在代碼中修改idelayctrl的內(nèi)容,所以我們只能通過Project Setting中添加鉤子腳本(HookScript)的方式,將其中一個idelayctrl刪除。


具體的方法如下:

  1. 先將xdc中的idelayctrl等內(nèi)容刪除。

  2. 然后編輯好一個Tcl腳本,腳本文件內(nèi)部命令如下:

###========================================###

remove_cell u_c2c_fp1/inst/master_fpga_gen.axi_chip2chip_master_phy_inst/master_sio_phy.axi_chip2chip_sio_input_inst/idelayctrl_gen.IDELAYCTRL_inst


set_logic_one [get_pinsu_c2c_fp1/inst/master_fpga_gen.axi_chip2chip_master_phy_inst/axi_chip2chip_phy_init_inst/channel_up]

###=======================================###

remove_cell命令是將對應(yīng)的一個idelayctrl刪除。

set_logic_one是為了保證idelayctrl的輸出有效。


3. 最后將上面的Tcl腳本在init_designtcl.postopt_designtcl.pre中指定,使之有效(如下圖所示)。



Vivado的圖形界面中,綜合(Synthesis)和實現(xiàn)(Implementation)階段的每個子步驟都可以添加Tcl腳本。

其中tcl.pre表示在子階段之前需要執(zhí)行的Tcl腳本,tcl.post表示在子階段之后需要執(zhí)行的Tcl腳本。


通過上面的內(nèi)容,我們可以看到如果我們在工作中使用Tcl命令/腳本,可以實現(xiàn)工程模式設(shè)計中,圖形化界面不方便實現(xiàn)的功能。本文對Tcl部分做一些拋磚引玉的簡介,希望大家能靈活使用Tcl功能來加速工程實現(xiàn)。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
關(guān)閉