《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 解決方案 > 【Vivado使用誤區與進階】用Tcl定制Vivado設計實現流程

【Vivado使用誤區與進階】用Tcl定制Vivado設計實現流程

2015-03-05
關鍵詞: Vivado TCL 流程


上一篇《TclVivado中的應用》介紹了Tcl的基本語法以及如何利用Tcl在Vivado中定位目標。其實Tcl在Vivado中還有很多延展應用,接下來我們就來討論如何利用Tcl語言的靈活性和可擴展性,在Vivado中實現定制化的FPGA設計流程。

基本的FPGA設計實現流程

FPGA的設計流程簡單來講,就是從源代碼到比特流文件的實現過程。大體上跟IC設計流程類似,可以分為前端設計和后端設計。其中前端設計是把源代碼綜合為對應的門級網表的過程,而后端設計則是把門級網表布局布線到芯片上最終實現的過程。

以下兩圖分別表示ISE和Vivado的基本設計流程:

7924-14940-eetrend-xilinx-1.png

ISE中設計實現的每一步都是相對獨立的過程,數據模型各不相同,用戶需要維護不同的輸入文件,例如約束等,輸出文件也不是標準網表格式,并且形式各異,導致整體運行時間過長,冗余文件較多。

Vivado中則統一了約束格式和數據模型,在設計實現的任何一個階段都支持XDC約束,可以生成時序報告,在每一步都能輸出包含有網表、約束以及布局布線信息(如果有)的設計檢查點(DCP)文件,大大縮短了運行時間。

從使用方式上來講,Vivado支持工程模式(Project Based Mode)和非工程模式(None Project Mode)兩種,且都能通過Tcl 腳本批處理運行,或是在Vivado 圖形化界面IDE 中交互運行和調試。

工程模式

工程模式的關鍵優勢在于可以通過在Vivado 中創建工程的方式管理整個設計流程,包括工程文件的位置、階段性關鍵報告的生成、重要數據的輸出和存儲等。

如 下左圖所示,用戶建立了一個Vivado工程后,工具會自動創建相應的.xpr工程文件,并在工程文件所在的位置同層創建相應的幾個目錄,包 括<prj_name>.cache、<prj_name>.data、<prj_name>.runs 和<prj_name>.srcs等等(不同版本可能有稍許差異),分別用于存儲運行工程過程中產生的數據、輸出的文件和報告以及工程的輸入 源文件(包含約束文件)等。

如下右圖所示,在Vivado IDE 中還可以一鍵式運行整個設計流程。這些預置的命令按鈕就放置在工具最左邊的欄:Flow Navigator 。不同按鈕對應不同的實現過程,其中在后端實現階段,還可以用右鍵調出詳細分步命令,指引工具具體執行實現的哪一步。

7924-14941-eetrend-xilinx-2.png

特別需要指出的是 Flow Navigator只有在Vivado IDE中打開 .xpr 工程文件才會顯示,如果打開的是設計檢查點 .dcp 文件(不論是工程模式或是非工程模式產生的dcp)都不會顯示這個側欄。

非工程模式

非工程模式下,由于不會創建工程,用戶就需要自己管理設計源文件和設計過程。源文件只能從當前位置訪問,在設計實現過程中的每一步,數據和運行結果都存在于Vivado分配到的機器內存中,在用戶不主動輸出的情況下,不會存儲到硬盤中。

簡單來講,非工程模式提供了一種類似ASIC設計的流程,用戶擁有絕對的自由,可以完全掌控設計實現流程,但也需要用戶對設計實現的過程和數據,尤其對文件輸出和管理全權負責,包括何時、何地、輸出怎樣的文件等等。

7924-14942-eetrend-xilinx-3.jpg

使 用非工程模式管理輸入輸出文件、進行設計實現都需要使用Tcl腳本,但這并不代表非工程模式不支持圖形化界面。非工程模式下產生的.dcp文件一樣可以在 Vivdao IDE中打開,繼而產生各種報告,進行交互式調試等各種在圖形化下更便捷直觀的操作。這是一個常見誤區,就像很多人誤認為工程模式下不支持Tcl腳本運行 是一個道理。但兩種模式支持的Tcl命令確實是完全不同的,使用起來也不能混淆。

下圖 所示是同一個設計(Vivado自帶的Example Design)采用兩種模式實現所需使用的不同腳本,更詳細的內容可以在UG975和UG835中找到。需要注意的是,工程模式下的Tcl腳本更簡潔,但 并不是最底層的Tcl命令,實際執行一條相當于執行非工程模式下的數條Tcl命令。

Vivado支持的兩種Tcl腳本

7924-14943-eetrend-xilinx-4.png

Tcl對圖形化的補充

相 信對大部分FPGA工程設計人員來說,圖形化界面仍舊是最熟悉的操作環境,也是設計實現的首選。在Xilinx推出全面支持Tcl的Vivado后,這一 點依然沒有改變,但我們要指出的是,即使是在圖形化界面上跑設計,仍然可以充分利用Tcl的優勢。在Vivado IDE 上運行Tcl腳本主要有以下幾個渠道。

Tcl Console

Vivado IDE的最下方有一個Tcl Console,在運行過程中允許用戶輸入Tcl/XDC命令或是source預先寫好的Tcl腳本,返回值會即時顯示在這個對話框。

7924-14944-eetrend-xilinx-5.png

舉 例來說,設計調試過程中,需要將一些約束應用在某些網表目標上(具體可參照《Tcl在Vivado中的應用》所示),推薦的做法就是在IDE中打 開.dcp然后在Tcl Console中輸入相應的Tcl/XDC命令,驗證返回值,碰到問題可以直接修改,直到找到正確合適的命令。然后可以記錄這些命令,并存入XDC文件中 以備下次實現時使用。

還有一種情況是,預先讀入的XDC中有些約束需要修改,或是缺失 了某些重要約束。不同于ISE中必須修改UCF重跑設計的做法,在Vivado中,我們可以充分利用Tcl/XDC的優勢, 在Tcl Console中輸入新的Tcl/XDC,無需重跑設計,只要運行時序報告來驗證。當然,如果能重跑設計,效果會更好,但是這種方法在早期設計階段提供了 一種快速進行交互式驗證的可能,保證了更快地設計迭代,大大提升了效率。

另外,通過某些Tcl命令(例如show_objects、select_objects等等)的幫助,我們還可以利用Tcl Console與時序報告、RTL和門級網表以及布局布線后的網表之間進行交互調試,極大發揮Vivado IDE的優勢。

Hook Scripts

Vivado IDE中內置了tcl.pre和tcl.post,用戶可以在Synthesis和Implementation的設置窗口中找到。設計實現的每一步都有這樣兩個位置可供用戶加入自己的Tcl腳本。

7924-14945-eetrend-xilinx-6.png

tcl.pre 表示當前這步之前Vivado會主動source的Tcl腳本,tcl.post 表示這步之后會source的腳本。Tcl腳本必須事先寫好,然后在上圖所示的設置界面由用戶使用彈出窗口指定到腳本所在位置。

這些就是所謂的“鉤子”腳本,正是有了這樣的腳本,我們才得以在圖形化界面上既享有一鍵式執行的便利,又充分利用Tcl帶來的擴展性。比較常見的使用場景是,在某個步驟后多產生幾個特別的報告,或是在布線前再跑幾次物理優化等。

Customer Commands

Vivado IDE中還有一個擴展功能,允許用戶把事先創建好的Tcl腳本以定制化命令的方式加入圖形化界面,成為一個按鈕,方便快速執行。這個功能常常用來報告特定的時序信息、修改網表內容、實現ECO等等。

7924-14946-eetrend-xilinx-7.png

用Tcl定制實現流程

綜上所述,標準的FPGA設計實現流程完全可以通過Vivado IDE一鍵式執行,如果僅需要少量擴展,通過前述鉤子腳本等幾種方法也完全可以做到。若是這些方法都不能滿足需求,還可以使用Tcl腳本來跑設計,從而實現設計流程的全定制。

注:以下討論的幾種實現方案中僅包含后端實現具體步驟的區別,而且只列出非工程模式下對應的Tcl命令。

下 圖所示是Vivado中設計實現的基本流程,藍色部分表示實現的基本步驟(盡管 opt_design 這一步理論上不是必選項,但仍強烈建議用戶執行),對應Implementation的Default策略。黃色部分表示可選擇執行的部分,不同的實現策 略中配置不同。

7924-14947-eetrend-xilinx-8.png

這里不會討論那些圖形化界面中可選的策略,不同策略有何側重,具體如何配置我們將在另外一篇關于Vivado策略選擇的文章中詳細描述。

我們要展示的是如何對設計流程進行改動來更好的滿足設計需求,這些動作往往只能通過Tcl腳本來實現。

充分利用物理優化

物理優化即 phys_opt_design 是在后端通過復制、移動寄存器來降扇出和retiming,從而進行時序優化的重要手段,一般在布局和布線之間運行,從Vivado 2014.1開始,還支持布局后的物理優化。

很多用戶會在Vivado中選中phys_opt_design,但往往不知道這一步其實可以運行多次,并且可以選擇不同的directive來有側重的優化時序。

比 如,我們可以寫這樣一個Tcl腳本,在布局后,使用不同的directive或選項來跑多次物理優化,甚至可以再多運行一次物理優化,專門針對那些事先通 過get_nets命令找到并定義為highfanout_nets的高扇出網絡。具體directive的含義可以通過UG835、UG904或 phys_opt_design -help命令查詢。

布局布線之間的多次物理優化不 會惡化時序,但會增加額外的運行時間,也有可能出現時序完全沒有得到優化的結果。布線后的物理優化有時候會惡化THS,所以請一定記得每一步后都運行 report_timing_summary,并且通過 write_checkpoint  寫出一個 .dcp 文件來保留階段性結果。這一步的結果不理想就可以及時退回到上一步的 .dcp 繼續進行。

7924-14948-eetrend-xilinx-9.png

閉環設計流程

通 常的FPGA設計流程是一個開環系統,從前到后依次執行。但Vivado中提供了一種可能,用戶可以通過place_design -post_place_opt 在已經完成布局布線的設計上再做一次布局布線,從而形成一個有了反饋信息的閉環系統。這次因為有了前一次布線后的真實連線延遲信息,布局的針對性更好,并 且只會基于時序不滿足的路徑進行重布局而不會改變大部分已經存在的布局信息,之后的布線過程也是增量流程。

這一過程所需的運行時間較短,是一種很有針對性的時序優化方案??梢酝ㄟ^Tcl寫一個循環多次迭代運行,但需留意每次的時序報告,若出現時序惡化就應及時停止。

7924-14949-eetrend-xilinx-10.png

增量設計流程

Vivado中的增量設計也是一個不得不提的功能。當設計進行到后期,每次運行改動很小,在開始后端實現前讀入的設計網表具有較高相似度的情況下,推薦使用Vivado的增量布局布線功能。

如下圖所示,運行增量流程的前提是有一個已經完成布局布線的.dcp文件,并以此用來作為新的布局布線的參考。

運行過程中,Vivado會重新利用已有的布局布線數據來縮短運行時間,并生成可預測的結果。當設計有95% 以上的相似度時,增量布局布線的運行時間會比一般布局布線平均縮短2 倍。若相似度低于80%,則使用增量布局布線只有很小的優勢或者基本沒有優勢。

7924-14950-eetrend-xilinx-11.png

除了縮短運行時間外,增量布局布線對沒有發生變化的設計部分造成的破壞也很小,因此能減少時序變化,最大限度保留時序結果,所以一般要求用做參考的 .dcp 文件必須是一個完全時序收斂的設計。

參 考點 .dcp 文件可以在Vivado IDE的Implementation設置中指定,也可以在Tcl腳本中用 read_checkpoint -incremental 讀入。特別需要指出的是,在工程模式中,如要在不新建一個impl實現的情況下使用上一次運行的結果作為參考點,必須將其另存到這次運行目錄之外的位置, 否則會因沖突而報錯。

7924-14951-eetrend-xilinx-12.jpg

以上用Tcl定制Vivado設計實現流程的討論就到這里,關于更細節的Tcl使用場景,包括ECO流程等,會另外展開,敬請關注Xilinx 官方網站和中文論壇上的更多技術文章。



本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          国内精品免费午夜毛片| 欧美精品久久久久久久| 久久香蕉国产线看观看av| 在线免费一区三区| 欧美精品在线一区| 久久国内精品自在自线400部| 亚洲永久免费观看| 欧美日韩少妇| 欧美福利小视频| 国产精品区免费视频| 一区二区av在线| 亚洲免费影视第一页| 亚洲欧美日韩另类| 欧美成人中文字幕在线| 国产欧美日本在线| 亚洲美女淫视频| 亚洲一区中文字幕在线观看| 日韩视频免费观看高清在线视频| 亚洲综合国产精品| 午夜精品久久久久久久久久久| 国产精品wwwwww| 正在播放欧美一区| 亚洲日本一区二区三区| 国产精品久久久久久久久果冻传媒| 亚洲嫩草精品久久| 极品av少妇一区二区| 亚洲视频1区2区| 久久嫩草精品久久久精品一| 亚洲免费观看| 亚洲欧美日韩国产精品| 亚洲大片精品永久免费| 亚洲精品自在在线观看| 欧美一区二粉嫩精品国产一线天| 蜜桃伊人久久| 在线观看精品| 欧美午夜a级限制福利片| 亚洲欧美自拍偷拍| 在线视频欧美日韩| 欧美激情一区二区三区高清视频| 中文精品视频一区二区在线观看| 久久久久久一区二区| 亚洲在线免费观看| 国产精品自拍视频| 欧美一区二区三区在线观看视频| 好看不卡的中文字幕| 欧美日韩影院| 国产精品白丝jk黑袜喷水| 亚洲已满18点击进入久久| 国产日韩欧美夫妻视频在线观看| 欧美视频在线免费看| 亚洲精品五月天| 99精品国产热久久91蜜凸| 男人插女人欧美| 欧美一区二区三区日韩| 亚洲一二三区视频在线观看| 久久久精品国产免大香伊| 国产精品亚洲综合色区韩国| 一区二区三区国产精品| 久久综合国产精品台湾中文娱乐网| 国产欧美日韩在线播放| 亚洲日韩欧美视频一区| 亚洲精品久久久久久久久| 欧美日韩一区二区三区视频| 国产精品丝袜91| 欧美日韩福利| 一区二区免费在线视频| 欧美日韩国产亚洲一区| 国产精品羞羞答答xxdd| 国产精品高潮视频| 久久久亚洲国产天美传媒修理工| 国产精品区免费视频| 香蕉av777xxx色综合一区| 一区二区三区高清在线观看| 国产日韩欧美日韩| 91久久精品国产91性色tv| 亚洲精品美女在线观看播放| 国产一区二区三区四区三区四| 欧美在线播放高清精品| 国产有码在线一区二区视频| 亚洲精品视频在线观看网站| 极品日韩久久| 麻豆精品一区二区av白丝在线| 国产精品电影观看| 亚洲欧美在线播放| 国产精品va在线播放| 久久久人成影片一区二区三区| 国产精品手机在线| 欧美日韩1080p| 在线亚洲一区观看| 激情综合电影网| 在线观看国产精品网站| 国产精品国产三级国产aⅴ9色| 狼人社综合社区| 久久亚洲精品伦理| 欧美性猛交99久久久久99按摩| 国产精品五区| 国产精品一级| 欧美另类在线观看| 欧美精品成人91久久久久久久| 中文欧美在线视频| 欧美视频在线播放| 欧美激情黄色片| 欧美三级电影一区| 亚洲影院色无极综合| 亚洲激情av在线| 亚洲裸体俱乐部裸体舞表演av| 国产精品日韩欧美一区二区三区| 午夜精品视频在线观看一区二区| 亚洲一二三区精品| 亚洲第一天堂av| 国产精品视频福利| 久久久国产午夜精品| 欧美一区二区三区视频在线观看| 欧美涩涩视频| 欧美高清影院| 欧美激情一区二区三区全黄| 999亚洲国产精| 国产亚洲欧美一区二区| 久久久综合网站| 欧美在线免费一级片| 亚洲欧美区自拍先锋| 欧美成人资源| 欧美在线免费一级片| 欧美一区二区在线视频| 在线播放亚洲一区| 欧美激情成人在线视频| 亚洲香蕉在线观看| 国产日韩欧美三级| 亚洲日产国产精品| 99在线热播精品免费99热| 在线看片第一页欧美| 午夜精品久久久久久久99樱桃| 国产日韩欧美视频在线| 裸体歌舞表演一区二区| 久久国产精品一区二区三区四区| 欧美一级播放| 久久精品国产99精品国产亚洲性色| 久久久一区二区三区| 亚洲激情二区| 欧美日产在线观看| 亚洲激情一区二区| 国产视频亚洲精品| 久久久97精品| 香蕉久久一区二区不卡无毒影院| 久久精品中文字幕一区二区三区| 欧美精品亚洲一区二区在线播放| 欧美二区视频| 久久综合免费视频影院| 香蕉久久夜色精品国产| 一区二区动漫| 国产日韩欧美精品综合| 欧美日韩视频专区在线播放| 国产一在线精品一区在线观看| 午夜精品影院在线观看| 黑人一区二区| 狠狠色丁香久久婷婷综合丁香| 欧美亚洲一区二区在线观看| 欧美高清不卡在线| 国内精品久久国产| 在线中文字幕一区| 欧美肉体xxxx裸体137大胆| 99视频在线精品国自产拍免费观看| 亚洲高清免费视频| 欧美日韩少妇| 国产在线不卡| 国产日韩在线看片| 国产欧美日韩一区二区三区在线观看| 欧美精品尤物在线| 欧美三级特黄| 国产乱码精品| 亚洲精品国产系列| 久久综合色婷婷| 久久精品一区二区三区四区| 久久久久国色av免费看影院| 91久久香蕉国产日韩欧美9色| 亚洲网站在线观看| 国产精品亚洲综合天堂夜夜| 欧美日韩在线播放三区四区| 亚洲国产精品一区制服丝袜| 久久成人免费网| 在线免费高清一区二区三区| 欧美专区日韩视频| 久久精品一本久久99精品| 香蕉免费一区二区三区在线观看| 欧美午夜视频在线观看| 久久精品国产欧美亚洲人人爽| 国产精品免费观看视频| 午夜精品久久| 嫩草伊人久久精品少妇av杨幂| 麻豆国产精品va在线观看不卡| 国产日产高清欧美一区二区三区| 欧美在线视频网站| 国产情人节一区| 欲色影视综合吧| 欧美v日韩v国产v| 欧美激情一区二区三级高清视频| 欧美日韩精品一区二区天天拍小说| 亚洲国产欧美不卡在线观看| 国产香蕉久久精品综合网| 激情欧美一区二区三区| 欲香欲色天天天综合和网| 欧美激情乱人伦| 国产精品久久久久免费a∨大胸| 久久久人人人| 久久九九热re6这里有精品| 欧美福利视频网站| 国产精品社区| 国产欧美精品在线观看| 欧美成人午夜影院| 在线观看亚洲视频| 在线观看久久av| 精品动漫3d一区二区三区免费版| 免费高清在线视频一区·| 久久综合伊人77777| 久久久久久**毛片大全| 亚洲天堂av电影| 国产精品美女一区二区| 精品二区视频| 国产精品久久网站| 欧美另类在线播放| 欧美韩日一区二区三区| 亚洲免费精彩视频| 国产精品青草久久久久福利99| 在线一区免费观看| 亚洲亚洲精品三区日韩精品在线视频| 欧美日韩一区二区三区在线观看免| 日韩午夜在线| 久久国产精品一区二区| 麻豆久久久9性大片| 中文日韩在线视频| 激情欧美一区二区| 一区二区亚洲精品国产| 亚洲日本中文字幕| 国产欧美1区2区3区| 欧美一区二区三区播放老司机| 亚洲黄色性网站| 国产香蕉97碰碰久久人人| 午夜精品久久久久久久久久久久久| 亚洲国产专区校园欧美| 99国产欧美久久久精品| 欧美激情 亚洲a∨综合| 久久精品国产亚洲一区二区三区| 毛片一区二区三区| 欧美在线视频免费播放| 国产精品美腿一区在线看| 欧美一区二区三区四区夜夜大片| 久久精品国产一区二区三区免费看| 亚洲经典视频在线观看| 国产精品久久久久9999| 99成人精品| 国产精品高潮视频| 久久久噜噜噜久久狠狠50岁| 国产视频一区在线观看一区免费| 国产日韩欧美精品综合| 久久久国产成人精品| 欧美综合第一页| 夜夜嗨av一区二区三区网站四季av| 91久久在线观看| 免费中文字幕日韩欧美| 亚洲自拍都市欧美小说| 亚洲一区二三| 国产日韩精品视频一区| 免费看精品久久片| 国产一区二区av| 午夜亚洲激情| 欧美视频一区在线| 久久精品一二三| 性欧美超级视频| 一区二区国产日产| 欧美日韩一区二区三区免费看| 亚洲精品久久久久久下一站| 国产主播一区二区| 在线精品在线| 欧美va天堂va视频va在线| 欧美三日本三级三级在线播放| 久久国产精彩视频| 久久久免费精品| 欧美国产大片| 国产综合18久久久久久| 欧美日韩p片| 欧美精品情趣视频| 亚洲日本一区二区| 18成人免费观看视频| 欧美日韩播放| 黑人极品videos精品欧美裸| 伊人婷婷久久| 好吊妞**欧美| 蜜桃久久精品乱码一区二区| 亚洲片在线观看| 狠狠色伊人亚洲综合网站色| 黄网站色欧美视频| 国产精品久久综合| 狠狠色综合网站久久久久久久| 欧美精品日韩www.p站| 亚洲电影一级黄| 日韩亚洲一区二区| 亚洲福利视频三区| 欧美午夜片在线观看| 可以看av的网站久久看| 在线观看成人av电影| 亚洲精品在线观看免费| 亚洲欧美偷拍卡通变态| 久久久蜜臀国产一区二区| 韩国精品主播一区二区在线观看| 欧美寡妇偷汉性猛交| 国产精品一区=区| 日韩视频在线免费| 国产精品video| 欧美日本在线一区| 国产精品大全| 一区二区三区欧美激情| 国外成人在线视频网站| 国产精品欧美一区二区三区奶水| 亚洲一区二区免费看| 欧美午夜免费影院| 小黄鸭精品aⅴ导航网站入口| 国产精品99久久99久久久二8| 国产日本欧美一区二区三区| 欧美成人免费全部观看天天性色| 亚洲高清色综合| 依依成人综合视频| 国产精品女人网站| 国产精品在线看| 国产精品国产自产拍高清av| 樱花yy私人影院亚洲| 欧美理论在线播放| 免费视频久久| 久久久精品国产一区二区三区|