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

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

什么是ECO?ECO的應(yīng)用場景和實現(xiàn)流程

FPGA算法工程師 ? 來源:Ally Zhou ? 2023-04-23 09:06 ? 次閱讀

什么是 ECO?

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

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

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

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

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

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

4713001a-e05c-11ed-bfe3-dac502259ad0.png

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

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

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

修改屬性

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

473fa048-e05c-11ed-bfe3-dac502259ad0.png

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

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

477cfaba-e05c-11ed-bfe3-dac502259ad0.png

移動/交換 cells

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

479ae62e-e05c-11ed-bfe3-dac502259ad0.png

具體操作方法也相當(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)行局部布線。

47c08b9a-e05c-11ed-bfe3-dac502259ad0.png

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

47f21106-e05c-11ed-bfe3-dac502259ad0.png

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

482e045e-e05c-11ed-bfe3-dac502259ad0.png

手動布線

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

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

48616060-e05c-11ed-bfe3-dac502259ad0.png

復(fù)雜的 ECO場景

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

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

Tcl 操作命令

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

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

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

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

48815b68-e05c-11ed-bfe3-dac502259ad0.png

Add Probe

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

48a83d32-e05c-11ed-bfe3-dac502259ad0.png

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

48cc335e-e05c-11ed-bfe3-dac502259ad0.png

ECO 在 Vivado 上的發(fā)展

經(jīng)過了兩年多的發(fā)展,在 Vivado 上實現(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,點擊 Install 稍等片刻,即可看到一個 add_probe 的 Tcl proc 被安裝到了你的 Vivado 中。

48fd02b8-e05c-11ed-bfe3-dac502259ad0.png

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

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

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





審核編輯:劉清

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

    關(guān)注

    553

    文章

    8011

    瀏覽量

    349155
  • FPGA設(shè)計
    +關(guān)注

    關(guān)注

    9

    文章

    428

    瀏覽量

    26532
  • IC設(shè)計
    +關(guān)注

    關(guān)注

    38

    文章

    1297

    瀏覽量

    104023
  • RAM
    RAM
    +關(guān)注

    關(guān)注

    8

    文章

    1369

    瀏覽量

    114755

原文標(biāo)題:在Vivado中實現(xiàn)ECO功能

文章出處:【微信號:FPGA算法工程師,微信公眾號:FPGA算法工程師】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    關(guān)于Altium designer 原理圖轉(zhuǎn)pcb圖出現(xiàn)eco的情況說明

    Designer里面的ECO跟企業(yè)里的設(shè)計變更流程是一樣的,例如在我們公司,如果需要發(fā)起更改設(shè)計文件的時候,就需要先發(fā)起ECO進(jìn)行設(shè)計更改評審,評審結(jié)論是可以更改的話,就要將詳細(xì)的評審結(jié)論、更改內(nèi)容、形成
    發(fā)表于 03-15 10:05

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

    關(guān)于Tcl在Vivado中的應(yīng)用文章從Tcl的基本語法和在Vivado中的應(yīng)用展開,介紹了如何擴(kuò)展甚至是定制FPGA設(shè)計實現(xiàn)流程后,引出了一個更細(xì)節(jié)的應(yīng)用場景:如何利用Tcl在已完成布局布線的設(shè)計上
    發(fā)表于 11-18 18:26 ?5416次閱讀
    Vivado使用誤區(qū)與進(jìn)階——在Vivado中<b class='flag-5'>實現(xiàn)</b><b class='flag-5'>ECO</b>功能

    汽車eco模式使用技巧_eco模式真能省油嗎

    ECO由Ecology(環(huán)保)、Conservation(節(jié)能)和Optimization(動力)合成而得,ECO可以分為主動式ECO駕駛模式和非主動式ECO駕駛模式。其區(qū)別主要是智能
    發(fā)表于 12-14 09:50 ?2.9w次閱讀

    eco模式的好處以及壞處_eco模式會引起積碳是真的嗎

    現(xiàn)在很多車輛都配置了ECO模式的節(jié)油功能,通過調(diào)節(jié)發(fā)動機(jī)和變速箱的工作來主動實現(xiàn)節(jié)油效果的,那么eco模式開著好處和壞處都有什么?eco模式會引起積碳是真的嗎?下面給大家分析分析。
    發(fā)表于 12-14 10:22 ?7.1w次閱讀
    <b class='flag-5'>eco</b>模式的好處以及壞處_<b class='flag-5'>eco</b>模式會引起積碳是真的嗎

    PADS使用ECO對比步驟

    PADS使用ECO對比步驟
    發(fā)表于 01-16 18:20 ?0次下載

    Uber聯(lián)合創(chuàng)始人發(fā)行加密貨幣Eco 希望Eco能夠復(fù)蘇虛擬貨幣

    Uber聯(lián)合創(chuàng)始人格瑞特·坎普(Garrett Camp)發(fā)行了自己的數(shù)字加密貨幣Eco,坎普希望Eco能夠復(fù)蘇虛擬貨幣的最初承諾,Eco首次會發(fā)行1萬億枚,其中50%會贈送給前10億位注冊的認(rèn)證人類用戶。
    發(fā)表于 03-03 15:12 ?2532次閱讀

    如何在Vivado中執(zhí)行工程變更命令 (ECO)

    了解如何在Vivado中執(zhí)行工程變更單(ECO)。 本視頻將向您介紹ECO的常見用例,我們推薦的完成ECO流程,優(yōu)勢和局限性,并將演示功能設(shè)計的
    的頭像 發(fā)表于 11-21 06:40 ?5200次閱讀
    如何在Vivado中執(zhí)行工程變更命令 (<b class='flag-5'>ECO</b>)

    使用ECO進(jìn)行調(diào)試有哪些好處

    了解使用Vivado 2016.1中引入的ECO流程進(jìn)行調(diào)試的好處,以及在ECO布局中替換ILA調(diào)試探針?biāo)璧牟襟E。
    的頭像 發(fā)表于 11-29 06:01 ?3723次閱讀
    使用<b class='flag-5'>ECO</b>進(jìn)行調(diào)試有哪些好處

    ECO技術(shù)在SoC芯片設(shè)計中的應(yīng)用

    在現(xiàn)階段的 SoC芯片設(shè)計中,有一半以上的芯片設(shè)計由于驗證問題需要重新修改,這其中包括功能、時序以及串?dāng)_等問題。芯片設(shè)計的整個流程都要進(jìn)行驗證工作,工程改變命令(ECO,Engi neer i
    發(fā)表于 04-07 09:40 ?8次下載
    <b class='flag-5'>ECO</b>技術(shù)在SoC芯片設(shè)計中的應(yīng)用

    自動ECO參考網(wǎng)表來自動修改實現(xiàn)網(wǎng)表

    用read_library讀入?yún)⒖季W(wǎng)表時增加了額外選項 GOF9.0的主要功能如下: 自動ECO就是用參考網(wǎng)表(通常是重新綜合的網(wǎng)表)來自動修改實現(xiàn)網(wǎng)表(通常指APR網(wǎng)表)。支持Premask
    的頭像 發(fā)表于 09-08 11:06 ?3238次閱讀

    空調(diào)遙控器上的eco是什么意思

    空調(diào)已經(jīng)成為人家夏天離不開的家用電器,隨著科技的發(fā)展,空調(diào)的種類和功能也越來越多。有些人在使用空調(diào)的時候,發(fā)現(xiàn)有一個eco模式。那么空調(diào)遙控器里面的eco是什么意思?跟隨天津電纜廠家一起
    發(fā)表于 04-18 13:39 ?7901次閱讀

    詳解Xilinx FPGA的ECO功能

    ECO 指的是 Engineering Change Order ,即工程變更指令。目的是為了在設(shè)計的后期,快速靈活地做小范圍修改,從而盡可能的保持已經(jīng)驗證的功能和時序。ECO 是從 IC 設(shè)計領(lǐng)域繼承而來,Vivado上 的 ECO
    的頭像 發(fā)表于 08-02 09:18 ?3878次閱讀
    詳解Xilinx FPGA的<b class='flag-5'>ECO</b>功能

    詳細(xì)描述和解釋GOF ECO每一個步驟的實現(xiàn)方法和注意事項

    GOF ECO不僅大大縮短了芯片ECO的Turn-around時間,還大大提升了芯片復(fù)雜邏輯ECO的成功率。
    的頭像 發(fā)表于 11-07 14:39 ?1967次閱讀

    什么是DFT友好的功能ECO呢?

    DFT是確保芯片在制造過程中具有可測試性的一種技術(shù)。DFT友好的ECO是指在進(jìn)行ECO時, 不會破壞芯片的DFT功能或降低DFT覆蓋率的設(shè)計方法。
    的頭像 發(fā)表于 03-06 14:47 ?2284次閱讀

    解析什么是DFT友好的功能ECO?

    DFT是確保芯片在制造過程中具有可測試性的一種技術(shù)。DFT友好的ECO是指在進(jìn)行ECO時, 不會破壞芯片的DFT功能或降低DFT覆蓋率的設(shè)計方法。DFT不友好的ECO會對芯片的測試和調(diào)試帶來很大的困難,可能導(dǎo)致芯片測試效率降低甚
    的頭像 發(fā)表于 05-05 15:06 ?1879次閱讀
    解析什么是DFT友好的功能<b class='flag-5'>ECO</b>?