我們做項目,進入找bug階段時,需要用ILA捕獲相關的信號。之前我做項目,每改動一次探針(debug probes),都要重新綜合、實現,通常要花掉1個小時,一天下來調試不了兩下就過去了,效率極其低下,因此也吐槽過vivado的編譯時間問題。這兩天無意從高老師的公衆號中看了高效的方法,有種相見恨晚的感覺。因爲從原來的1個小時,提升到了5-10分鐘,感激涕零。
根據高老師的公衆號的介紹,我自己手動操作一遍,記錄一下相對詳細的操作方法。
1. 什麼是ECO
ECO 指的是Engineering Change Order ,即工程變更指令。目的是爲了在設計的後期,快速靈活地做小範圍修改,從而儘可能的保持已經驗證的功能和時序。ECO 的叫法算是從IC 設計領域繼承而來,其應用在FPGA設計上尚屬首次,但這種做法其實在以往的FPGA 設計上已被廣泛採用。簡單來說, ECO 便相當於ISE 上的FPGA Editor 。但與FPGA Editor 不同, Vivado 中的ECO 並不是一個獨立的界面或是一些特定的命令,要實現不同的ECO 功能需要使用不同的方式。
我們的操作環境就是在ECO模式下進行的。
2. 操作步驟
基於vivado 2016.4
- 打開佈線DCP文件
經過綜合、實現後的工程,會生產幾個DCP文件,其中一個是佈線文件(routed dcp)。通過“open Checkpoint”打開。
將vivado layout切換爲ECO模式。
- replace debug probes
點擊“ECO Navigator”欄中的“Replace Debug Probes”,會出現之前設計的ILA中的各種探針,一個探針代表一個觀測信號。
選中要被替換的信號,右鍵點擊“Edit Probes”或者點擊最右側的"鉛筆"標誌,會出現“Choose Nets”小窗口,查詢需要用來替換的信號。
注意事項:最開始我直接搜索代碼中的信號名,一直搜索不出來。結果忽視了綜合、實現過程中,已將代碼轉換爲網表,所以只能用schematic中的nets名來進行搜索。
查到nets之後,移向右側。各種確定之後保存,這就完成了debug probes的替換工作。
- 生成新的bit 、ltx文件
在Navigator欄最下面保存、生成bit和ltx文件。就可以進行新的測試了。
關於ECO還有更多內容,包括手動佈局、佈線之類的,可以參考官方文檔UG904。
參考文獻:
- UG904;
- 《替換Debug Probes其實很簡單》——高亞軍;