ECO 指的是 Engineering Change Order ,即工程變更指令赖瞒。目的是為了在設(shè)計(jì)的后期崖媚,快速靈活地做小范圍修改,從而盡可能的保持已經(jīng)驗(yàn)證的功能和時(shí)序勤揩。ECO 是從 IC 設(shè)計(jì)領(lǐng)域繼承而來,ECO 便相當(dāng)于 ISE 上的 FPGA Editor。<font color=#ff00ff>本文可以對于一些FPGA疑難雜癥文件排查括丁,或者對于一些加密 IP 進(jìn)行破解,請讀者自行琢磨伶选,不予公開史飞。【如有興趣仰税,請聯(lián)系作者】</font>
1.ECO的用途
修改 ILA 或者 VIO 的調(diào)試探針
將一個(gè)內(nèi)部網(wǎng)絡(luò)路由到外部探針
修復(fù)邏輯錯(cuò)誤等
2.ECO 流程
打開已經(jīng)實(shí)現(xiàn)的設(shè)計(jì)构资,修改網(wǎng)表后,如果設(shè)計(jì)未完全布局陨簇,請運(yùn)行“增量布局”吐绵。否則,可以直接跳至增量布線河绽。然后可以保存更改到新的檢查點(diǎn)并編寫新的編程和調(diào)試探針文件己单,打開
硬件管理器對設(shè)備進(jìn)行編程。
[圖片上傳失敗...(image-1a410d-1597463493724)]
3.ECO 工程實(shí)例
打開 dcp 耙饰,在 vivado 中一個(gè)工程在生成bit流過程中會(huì)產(chǎn)生 implementation 階段產(chǎn)生三個(gè) dcp 文件纹笼,分別是 *_opt.dcp
, *_place.dcp
, *_route.dcp
中添加,如果需要固定布線苟跪,只是微調(diào)一下某些net廷痘,則使用, *_route.dcp
, 對應(yīng)不同的階段矮嫉,如果工程需要添加一些 cell ,可以在*_place.dcp
中添加牍疏,如果需要固定布線蠢笋,只是微調(diào)某些net,則使用*_route.dcp
鳞陨。
3.1 修改 ila 信號(hào)
本次實(shí)例采用
*_route.dcp
昨寞。
3.1.1 斷開 net
[圖片上傳失敗...(image-570a8-1597463493724)]
disconnect_net -net u_ila_0_axis_rx_tlast -objects [list {u_ila_0/probe8}]
u_ila_0_axis_rx_tlast 的 net 名
Objects 后面的 pin 腳
該命令是為了將某一 net 斷開
[圖片上傳失敗...(image-1b8128-1597463493724)]
3.1.2 連接新的net
connect_net -hierarchical -net {u_ila_0_axis_rx_tdata[47]} -objects [list {u_ila_0/probe8}]
該命令是為了將某一 net 連接到某一 object
[圖片上傳失敗...(image-846ec7-1597463493724)]
3.1.3 將原來的 net 布線 unroute
route_design -unroute -net [get_nets u_ila_0_axis_rx_tlast]
[圖片上傳失敗...(image-f1cf48-1597463493724)]
3.1.4 重新 route 新的 net
route_design -net [get_nets {u_ila_0_axis_rx_tdata[47]}]
[圖片上傳失敗...(image-9098bd-1597463493724)]
3.1.5 重新 route 新的 net
route_design -net [get_nets {u_ila_0_axis_rx_tdata[47]}]
查看布線狀態(tài)
report_route_status
[圖片上傳失敗...(image-3357d4-1597463493724)]
3.1.5 生成 bit 流
write_bitstream aurora_test_route.bit -force
[圖片上傳失敗...(image-f54bfa-1597463493724)]
3.2 將內(nèi)部網(wǎng)絡(luò)布線到另一個(gè)cell
本次實(shí)例采用
*_place.dcp
。
3.2.1 斷開 net
disconnect_net -net u_ila_0_axis_rx_tlast -objects [list {u_ila_0/probe8}]
3.2.2 創(chuàng)建 cell
startgroup
create_cell -reference LUT1 {LUT1}
set_property init 2'h3 [get_cells { {LUT1}}]
endgroup
create_cell -reference VCC {VCC}
[圖片上傳失敗...(image-34a82f-1597463493724)]
[圖片上傳失敗...(image-c5c7d-1597463493724)]
3.2.3 創(chuàng)建 net
startgroup
create_net {LUT1_IO}
LUT1_IO
connect_net -hierarchical -net {LUT1_IO} -objects [list {LUT1/I0}]
endgroup
startgroup
create_net {LUT1_O}
LUT1_O
connect_net -hierarchical -net {LUT1_O} -objects [list {LUT1/O}]
endgroup
[圖片上傳失敗...(image-7e44aa-1597463493724)]
3.2.4 連接 net
將LUT1的輸入連接到 VCC 厦滤,輸出連接到 ila 的 probe8援岩。
connect_net -hierarchical -net {LUT1_IO} -objects [list {VCC/P}]
connect_net -hierarchical -net {LUT1_O} -objects [list {u_ila_0/probe8}]
[圖片上傳失敗...(image-35e896-1597463493724)]
3.2.5 implementation & bitstream
place_design
route_design
write_bitstream aurora_test_place.bit -force
[圖片上傳失敗...(image-f178e1-1597463493724)]
4.參考文獻(xiàn)
<font color=#11fff00>1.《ug904-Vivado Design Suite User Guide P-143:Vivado ECO Flow》</font>
chrome-extension://ibllepbpahcoppkjjllbabhnigcbffpi/https://www.xilinx.com/support/documentation/sw_manuals/xilinx2016_1/ug904-vivado-implementation.pdf
<font color=#11fff00>2.《ug835- Vivado Design Suite Tcl Command Reference Guide》</font>
chrome-extension://ibllepbpahcoppkjjllbabhnigcbffpi/https://www.xilinx.com/support/documentation/sw_manuals/xilinx2012_2/ug835-vivado-tcl-commands.pdf