在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

tcl局部編輯以最小的代價完成最大的改動

Xilinx賽靈思官微 ? 來源:djl ? 作者:Ally Zhou ? 2019-07-25 09:27 ? 次閱讀

關于Tcl在Vivado中的應用文章從Tcl的基本語法和在Vivado中的應用展開,繼上篇《用Tcl定制Vivado設計實現(xiàn)流程》介紹了如何擴展甚至是定制FPGA設計實現(xiàn)流程后,引出了一個更細節(jié)的應用場景:如何利用Tcl在已完成布局布線的設計上對網(wǎng)表或是布局布線進行局部編輯,從而在最短時間內,以最小的代價完成個別的設計改動需求。

什么是 ECO

ECO指的是 Engineering Change Order ,即工程變更指令。目的是為了在設計的后期,快速靈活地做小范圍修改,從而盡可能的保持已經(jīng)驗證的功能和時序。ECO的叫法算是從IC設計領域繼承而來,其應用在FPGA設計上尚屬首次,但這種做法其實在以往的FPGA設計上已被廣泛采用。簡單來說,ECO便相當于ISE上的FPGA Editor。

但與FPGA Editor不同,Vivado中的ECO并不是一個獨立的界面或是一些特定的命令,要實現(xiàn)不同的ECO功能需要使用不同的方式。

ECO的應用場景和實現(xiàn)流程

ECO的應用場景主要包含:修改cell屬性、增減或移動cell、手動局部布線。還有一些需要多種操作配合的復雜場景,例如把RAM(或DSP)的輸出寄存器放入/拉出RAMB(或DSP48)內部,或是把設計內部信號接到I/O上作調試probe用等等。

針對不同的應用場景,Vivado中支持的ECO實現(xiàn)方式也略有區(qū)別。有些可以用圖形界面實現(xiàn),有些則只能使用Tcl命令。但通常可以在圖形化界面上實現(xiàn)的操作,都可以改用一條或數(shù)條Tcl命令來實現(xiàn)。

ECO的實現(xiàn)流程如下圖所示:

tcl局部編輯以最小的代價完成最大的改動

第一步所指的Design通常是完全布局布線后的設計,如果是在工程模式下,可以直接在IDE中打開實現(xiàn)后的設計,若是僅有DCP文件,不論是工程模式或是非工程模式產(chǎn)生的DCP,都可以用open_checkpoint命令打開。

第二步就是ECO的意義所在,我們在布局布線后的設計上進行各種操作,然后僅對改動的部分進行局部布局/布線而無需整體重跑設計,節(jié)約大量時間的同時也不會破壞已經(jīng)收斂的時序。

第三步就是產(chǎn)生可供下載的bit文件了,此時必須在Tcl Console中或是Tcl模式下直接輸入命令產(chǎn)生bit文件,而不能使用IDE上的“Generate Bitstream”按鈕。原因是后者讀到的還是ECO前已經(jīng)完成布局布線的原始設計,生成的bit文件自然也無法使用。

修改屬性

絕大部分的屬性修改都能通過IDE界面完成,如下圖所示:

tcl局部編輯以最小的代價完成最大的改動

比如要修改寄存器的初值INIT或是LUT的真值表,用戶只需在Vivado IDE中打開布局布線后的設計(Implemented Design),在Device View中找到并選中這個FF/LUT,接著在其左側的Cell Properties視圖中選擇需要修改的屬性,直接修改即可。

除了對FF/LUT的操作外,很多時候我們需要對MMCM/PLL輸出時鐘的相移進行修改。對于這種應用,用戶也無需重新產(chǎn)生MMCM/PLL,與上述方法類似,可以在布局布線后的Device View上直接修改。

tcl局部編輯以最小的代價完成最大的改動

移動/交換cells

移動/交換cells是對FF/LUT進行的ECO操作中最基本的一個場景,目前也只有這種情況可以通過圖形化實現(xiàn)。如要刪減cells等則只能通過Tcl命令來進行。

具體操作方法也相當簡便,要互換cells位置的情況下,只要在Device View上選中需要的那兩個cells,如上圖所示的兩個FFs,然后右鍵調出菜單,選擇Swap Locations即可。若要移動cells則更簡單,直接在圖中選中FF拖移到新的位置即可。

tcl局部編輯以最小的代價完成最大的改動


當用戶移動或改變了cells的位置后會發(fā)現(xiàn)與其連接的nets變成了黃色高亮顯示,表示這些nets需要重新布線。這時候需要做的就是在圖中選中這些nets然后右鍵調出菜單,選擇Route進行局部布線。

tcl局部編輯以最小的代價完成最大的改動

局部布線后一定要記得在Tcl Console中使用report_route_status命令檢查布線情況,確保沒有未完成布線(unrouted)或是部分未完成布線(partial routed)的nets存在。給這個命令加上選項則可以報告出更細致的結果,如下圖所示。

tcl局部編輯以最小的代價完成最大的改動

如果換個稍復雜些的Tcl命令配合圖形化顯示,更加直觀的同時,也可以方便右鍵調出命令進行針對性的局部布線。

tcl局部編輯以最小的代價完成最大的改動

手動布線

手動布線是一種非常規(guī)的布線方式,一次只能針對一根net在圖形化界面下進行。所謂手動布線,除了完全手動一個節(jié)點一個節(jié)點的選擇外,也支持工具自動選擇資源來布線。通常我們并不建議全手動的方式,Vivado是時序驅動的工具,所以其自動選擇的布線結果已經(jīng)是遵循了時序約束下的最佳選擇。

在Device View中選擇一根沒有布線或是預先Unroute過的net(顯示為紅色高亮),右鍵調出菜單并選擇Enter Assign Routing Mode… 便可進入手動布線模式。

tcl局部編輯以最小的代價完成最大的改動

復雜的ECO場景

篇幅過半,一直在鋪墊,其實最有實踐意義的ECO還沒提到。相信大部分用戶最懷念FPGA Editor中的一個功能就是probe了,如何快速地把一根內部信號連接到FPGA管腳上,無需重新布局布線,直接更新bit文件后下載調試。曾經(jīng)數(shù)次被客戶問及,很多人還為Vivado中不支持這樣的做法而深表遺憾。

其實這樣類似的功能在Vivado中一直支持,唯一的問題是暫時還沒有圖形化界面可以一鍵操作(相關開發(fā)工作已經(jīng)在進行中)。但受益于Tcl的靈活多變,我們可以更有針對性地實現(xiàn)probe功能,效率也更高。

Tcl操作命令

在UG835中把Vivado支持的Tcl命令按照Category分類,這些列于Netlist目錄下的命令就是實現(xiàn)ECO需要用到的那些。

tcl局部編輯以最小的代價完成最大的改動

通常涉及到增減cells的ECO基本分為三步實現(xiàn):首先用create_cell / create_net 等創(chuàng)建相關cell和/或net,然后用disconnect_net / connect_net 等命令修正因為cell和net的改動而影響到的連接關系,最后用route_design加選項完成局部布線。

不同的Vivado版本對此類ECO修改有稍許不同的限制,例如在2014.1之后的版本上,需要在改變cell的連接關系前先用unplace_cell將cell從當前的布局位置上釋放,在完成新的連接關系后,再用place_cell放到新的布局位置上。

具體操作上可以根據(jù)Vivado的提示或報錯信息來改動具體的Tcl命令,但操作思路和可用的命令相差無幾。

Add Probe

tcl局部編輯以最小的代價完成最大的改動

這是一個在Vivaod上實現(xiàn)probe功能的Tcl腳本,已經(jīng)寫成了proc子程序,簡單易懂。可以直接調用,也可以做成Vivado的嵌入式擴展命令。調用其生成probe只需先source這個腳本,然后按照如下所示在Tcl Console中輸入命令即可。

Vivado% addProbe inst_1/tmp_q[3] D9 LVCMOS18 my_probe_1

該腳本已經(jīng)在Vivado2014.3和2014.4上測試過,一次只能完成一個probe的添加,而且必須按照上述順序輸入信號名,管腳位置,電平標準和probe名。因為不具備預檢功能,可能會碰到一些報錯信息而導致無法繼續(xù)。例如選擇的信號是只存在于SLICE內部的INTRASITE時,則無法拉出到管腳。再比如輸入命令時拼錯了電平標準等,也會造成Tcl已經(jīng)部分修改Vivado數(shù)據(jù)庫而無法繼續(xù)的問題。此時只能關閉已經(jīng)打開的DCP并選擇不保存而重新來過。


用戶可以根據(jù)自己的需要擴展這個Tcl腳本,也可以仿照這個Tcl的寫法來實現(xiàn)其它的ECO需求。例如文章開始舉例時提到過一個將RAMB輸出一級的FF拉出到Fabric上實現(xiàn)的場景,基本的實現(xiàn)方法和思路也類似:先將RAMB的輸出口REG的屬性改為0,然后創(chuàng)建一個新的FF,將其輸入與RAMB的輸出連接,再將FF的輸出與原本RAMB輸出驅動的cell連接,并完成FF的時鐘和復位端的正確連接,然后選擇合適的位置放置這個新的FF,最后針對新增加的nets局部布線。

由此可見,用Tcl來實現(xiàn)的ECO雖然不及圖形化界面來的簡便直觀,但是帶給用戶的卻是最大化的自由。完全由用戶來決定如何修改設計,那怕是在最后已經(jīng)完成布局布線時序收斂的結果上,也能直接改變那些底層單元的連接關系,甚至是增減設計。

ECO在Vivado上的發(fā)展

經(jīng)過了兩年多的發(fā)展,在Vivado上實現(xiàn)ECO已經(jīng)有了多種方式,除了前面提到的圖形化上那些可用的技巧,還有用戶自定義的Tcl命令和腳本等。隨著Xilinx Tcl Store的推出,用戶可以像在App Store中下載使用app一樣下載使用Tcl腳本,簡化了Tcl在Vivado上應用的同時,進一步擴展了Tcl的深入、精細化使用,其中就包括Tcl在ECO上的應用。


目前Vivado 2014.4版本上新增了很多有用的腳本。安裝好Vivado后,只需打開Tcl Store,找到Debug Utilities,點擊Install,稍等片刻,即可看到一個add_probe的Tcl proc被安裝到了你的Vivado中。

tcl局部編輯以最小的代價完成最大的改動

這個add_probe是在上述addProbe例子的基礎上擴展而來,不僅可以新增probe,而且可以改變現(xiàn)有probe連接的信號。此外,這個腳本采用了argument寫法,點擊程序可以看help,所以不一定要按照順序輸入信號、電平標準等選項,輸錯也沒有問題。另外增加了預檢和糾錯功能,碰到問題會報錯退出而不會改變Vivado數(shù)據(jù)庫,效率更高。

此外,Tcl Store上還有很多其它好用的腳本,歡迎大家試用并反饋給我們寶貴意見。雖然里面關于ECO的腳本還很少,但我們一直在補充。此外Tcl Store是一個基于GitHub的完全開源的環(huán)境,當然也歡迎大家上傳自己手中有用的Tcl腳本,對其進行補充。

總體來說,ECO是一個比較大的命題,因為牽扯到的改動需求太多,其實也很難限制在一個GUI界面中實現(xiàn)。這篇文章的目的就是為了讓大家對在FPGA上實現(xiàn)ECO有個基本的認識,梳理看似復雜無序的流程,所謂觀一葉而知秋,窺一斑而見全豹,希望能帶給更多用戶信心,用好Vivado其實一點都不難。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • FPGA設計
    +關注

    關注

    9

    文章

    428

    瀏覽量

    26632
  • TCL
    TCL
    +關注

    關注

    10

    文章

    1742

    瀏覽量

    88879
  • 手動布線
    +關注

    關注

    0

    文章

    6

    瀏覽量

    8185
收藏 人收藏

    評論

    相關推薦

    編程時可以用局部變量替代全局變量嗎

    盡量用局部變量替代全局變量。如果用局部變量能實現(xiàn)功能,最好用局部變量。在函數(shù)僅僅只是要用到某個全局變量,而無需改動時,就將全局變量通過形參傳遞進來,變成
    發(fā)表于 02-28 06:22

    什么是局部放電?

    局部放電測試儀可以幫助眾多電力工作者更加方便的進行各類電力測試。電氣系統(tǒng)是您工廠中最有價值的資產(chǎn)之一,對您的利潤影響最大。它們的生產(chǎn)和管理成本很高,故障幾乎總是導致災難性的損失。電氣系統(tǒng)正在更高
    發(fā)表于 05-19 09:30

    四輸入最小 最大值選擇電路

    四輸入最小 最大值選擇電路
    發(fā)表于 09-25 10:37 ?2779次閱讀
    四輸入<b class='flag-5'>最小</b> <b class='flag-5'>最大</b>值選擇電路

    先驗概率和代價函數(shù)均模糊時基于貝葉斯最小風險準則的分布式?jīng)Q策

    先驗概率和代價函數(shù)均模糊時基于貝葉斯最小風險準則的分布式?jīng)Q策融合 當先驗概率和代價函數(shù)均為梯形模糊數(shù)時,在貝葉斯最小風險準則意義下,研究了在融合中心
    發(fā)表于 10-21 21:57 ?1542次閱讀
    先驗概率和<b class='flag-5'>代價</b>函數(shù)均模糊時基于貝葉斯<b class='flag-5'>最小</b>風險準則的分布式?jīng)Q策

    在Vivado下利用Tcl腳本對綜合后的網(wǎng)表進行編輯過程

    在ISE下,對綜合后的網(wǎng)表進行編輯幾乎是不可能的事情,但在Vivado下成為可能。Vivado對Tcl的支持,使得Tcl腳本在FPGA設計中有了用武之地。本文通過一個實例演示如何在Vivado下利用
    發(fā)表于 11-18 03:16 ?7628次閱讀
    在Vivado下利用<b class='flag-5'>Tcl</b>腳本對綜合后的網(wǎng)表進行<b class='flag-5'>編輯</b>過程

    Vivado使用誤區(qū)與進階——在Vivado中實現(xiàn)ECO功能

    對網(wǎng)表或是布局布線進行局部編輯,從而在最短時間內,最小代價完成個別的設計
    發(fā)表于 11-18 18:26 ?5473次閱讀
    Vivado使用誤區(qū)與進階——在Vivado中實現(xiàn)ECO功能

    基于免疫量子粒子群優(yōu)化的最小測試代價屬性約簡算法

    為了解決測試代價敏感屬性約簡的高效性和準確性問題,提出一種基于免疫量子粒子群優(yōu)化的最小測試代價屬性約簡算法。依據(jù)條件信息熵和測試代價因素定義適當?shù)倪m應值函數(shù),將
    發(fā)表于 11-20 10:15 ?5次下載

    最小費用最大流的資源調度

    并行作業(yè)是大規(guī)模資源調度的研究熱點.已有的研究工作通常采用隊列進行資源調度建模,僅能滿足局部最優(yōu)解且只能適應調度目標固定不變的場景,靈活性不夠.提出了一種基于最小費用最大流的大規(guī)模資源調度建模方法
    發(fā)表于 12-30 15:44 ?0次下載
    <b class='flag-5'>最小</b>費用<b class='flag-5'>最大</b>流的資源調度

    局部拓撲控制的網(wǎng)絡路由方法

    代價最小局部認知拓撲控制路由(LCTCR)算法,優(yōu)化網(wǎng)絡拓撲,并在優(yōu)化后的拓撲上進行網(wǎng)絡路由的選擇。算法分析和仿真實驗證明,在進行認知網(wǎng)絡路徑選擇時,鏈路功耗和鏈路穩(wěn)定性均為重要參數(shù),需聯(lián)合優(yōu)化
    發(fā)表于 02-11 10:17 ?0次下載

    一種無線mesh網(wǎng)中最小編碼代價低時延多播路由協(xié)議

    提出了一種無線mesh網(wǎng)中最小網(wǎng)絡編碼代價低時延多播路由協(xié)議(MNCLDMR, minimal network coding and low delay multicast routing
    發(fā)表于 02-26 11:18 ?3次下載

    TCL電子(01070.HK)擬2.55億元出售TCL財務14%股權予華星光電

    TCL王牌(成都)擬向深圳市華星光電技術有限公司出售TCL財務14%股權,代價為約人民幣2.55億元。
    的頭像 發(fā)表于 08-13 15:18 ?4927次閱讀

    pcb設計改動原理圖 未改動(部分)的元器件布局發(fā)生變化的原因

    Altium原理圖更新時,未改變元件,但PCB出現(xiàn)改動的解決方法 pcb設計時,改動原理圖,修改完成后,導入PCB過程中,發(fā)現(xiàn)PCB中未改動(部分)的元器件 布局發(fā)生了變化,沒
    的頭像 發(fā)表于 10-22 09:51 ?6856次閱讀
    pcb設計<b class='flag-5'>改動</b>原理圖 未<b class='flag-5'>改動</b>(部分)的元器件布局發(fā)生變化的原因

    一種CPS最小防御代價計算方法及工具

    擊防御樹進行預處理,將其轉換為原子攻擊防御樹,釆用代數(shù)方法進行最小防御代價計算。基于此,在 Eclipse平臺上利用Jaⅵa語言實現(xiàn)一款最小防御代價計算軟件。
    發(fā)表于 03-26 14:22 ?16次下載
    一種CPS<b class='flag-5'>最小</b>防御<b class='flag-5'>代價</b>計算方法及工具

    基于約束關鍵路徑的代價優(yōu)化調度算法

    任務的向上權值,將工作流分解成約束關鍵路徑(CCP)集合。結合首次適應插入算法減少空閑時隙,改善費用優(yōu)化效果,采用及時完成最小費用增長代價的虛擬機選擇策略形成備選資源集合。整體分配
    發(fā)表于 05-19 11:05 ?2次下載

    在Vivado中實現(xiàn)ECO功能

    設計實現(xiàn)流程后,引出了一個更細節(jié)的應用場景:如何利用 Tcl 在已完成布局布線的設計上對網(wǎng)表或是布局布線進行局部編輯,從而在最短時間內,
    的頭像 發(fā)表于 05-05 15:34 ?2866次閱讀
    在Vivado中實現(xiàn)ECO功能
    主站蜘蛛池模板: 免费人成在线观看网站品爱网日本 | 国产99久久九九精品免费 | 无遮挡很污很爽很黄的网站 | 五月婷婷激情视频 | 人人干综合 | 亚洲一区不卡视频 | 亚洲婷婷综合色高清在线 | 美女被日出白浆 | 久久做| 一级毛片免费在线观看网站 | 涩999| 成年片色大黄全免费网址 | 欧美一级欧美三级在线 | 深夜视频在线免费 | 激情五月婷婷在线 | 国产成人午夜精品影院游乐网 | 日本三级在线观看免费 | 亚洲人成影网站~色 | 中国高清色视频www 中国高清性色生活片 | 韩国朴银狐诱感在线观看 | 美女鲜嫩bbbb | 天天躁天天狠天天透 | 天堂在线www网亚洲 天堂在线观看 | 成人的天堂视频一区二区三区 | 免费人成在线观看视频播放 | 亚洲最大成人综合网 | 日本一区二区精品88 | 在线免费视频网站 | 天天舔天天操天天干 | 成年人看的黄色 | 久久国模 | 久久亚洲国产成人精品性色 | 亚洲精品网站日本xxxxxxx | 色视频在线播放 | 一级@片| 成人三级电影在线观看 | 日韩在线影院 | 放荡女同老师和女同学生 | 欧美一区二区三区不卡片 | 日日噜夜夜噜 | 久久这里精品青草免费 |