国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

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

發(fā)布時間:2015-2-17 18:43    發(fā)布者:eechina
關(guān)鍵詞: Vivado
作者:Ally Zhou,Xilinx工具與方法學(xué)應(yīng)用專家

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

什么是ECO

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

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

ECO的應(yīng)用場景和實(shí)現(xiàn)流程

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

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

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



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

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

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

修改屬性

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



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

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



移動/交換cells


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

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



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



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



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



手動布線

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

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



復(fù)雜的ECO場景


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

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

Tcl操作命令

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



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

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

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



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

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

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

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

ECO在Vivado上的發(fā)展


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

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



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

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

總體來說,ECO是一個比較大的命題,因?yàn)闋砍兜降母膭有枨筇啵鋵?shí)也很難限制在一個GUI界面中實(shí)現(xiàn)。這篇文章的目的就是為了讓大家對在FPGA上實(shí)現(xiàn)ECO有個基本的認(rèn)識,梳理看似復(fù)雜無序的流程,所謂觀一葉而知秋,窺一斑而見全豹,希望能帶給更多用戶信心,用好Vivado其實(shí)一點(diǎn)都不難。
本文地址:http://m.qingdxww.cn/thread-146132-1-1.html     【打印本頁】

本站部分文章為轉(zhuǎn)載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀點(diǎn)和對其真實(shí)性負(fù)責(zé);文章版權(quán)歸原作者及原出處所有,如涉及作品內(nèi)容、版權(quán)和其它問題,我們將根據(jù)著作權(quán)人的要求,第一時間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區(qū)
  • dsPIC® DSC:攻克各種觸摸傳感挑戰(zhàn)的電容式觸摸解決方案
  • 探索PIC16F13145 MCU系列——快速概覽
  • 實(shí)時控制解決方案的正確選擇——數(shù)字信號控制器(DSC)或通用MCU
  • PIC32CK SG單片機(jī)——輕松滿足新型網(wǎng)絡(luò)安全要求
  • 貿(mào)澤電子(Mouser)專區(qū)

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 一本加勒比dvd波多野结衣| 日韩精选| 日本妈妈黄色片| 亚洲视频一二三| 欧美一区2区三区4区公司| 欧美精品色精品一区二区三区| 无限观看社区在线视频| 亚洲无卡视频| 日本天堂网在线观看| 四虎影视成人永久在线观看| 欧美日韩一二三四区| 欧美高清亚洲欧美一区h| 午夜视频在线观看免费视频| 亚洲精品影视| 亚洲福利国产| 香蕉亚洲| 亚洲一区欧美日韩| 亚洲天堂网2018| 亚洲欧洲久久久精品| 日本激情一区二区三区| 亚洲精品网址| 亚洲欧洲精品成人久久曰影片| 三级网站在线播放| 欧美成人午夜在线全部免费| 五月天久草| 色哟哟www网站入口成人学校| 欧洲1区二区三区二页| 亚洲综合图片人成综合网| 欧美一级看片免费观看视频在线| 天天操大逼| 亚州三级| 亚洲综合狠狠99婷婷| 亚洲欧美视频一级| 亚洲sss视频| 亚洲图片中文字幕| 欧美日一本| 亚洲香蕉国产高清在线播放| 日日日夜夜操| 日本三级香港三级人妇网站| 欧美无遮挡国产欧美另类 | 亚州激情|