通常在設(shè)計(jì)網(wǎng)表中,需要在基礎(chǔ)上微調(diào)邏輯,這樣既無(wú)需修改代碼,也無(wú)需重新做綜合,在設(shè)計(jì)調(diào)試中可以節(jié)省時(shí)間的同時(shí)維持其邏輯無(wú)任何改動(dòng)。
本文將帶大家一起體驗(yàn)一下Vivado的ECO流程,以Vivado自帶的Example Design為例, 直接用TCL命令修改網(wǎng)表,在正常的寄存器路徑之間加一級(jí)LUT.
1.打開(kāi)Vivado 界面
2.打開(kāi)Example Design "Wavegen":
<1> File -> Project -> Open Example
<2> 選中Wavegen (HDL),器件選擇xcku035
3.點(diǎn)擊左側(cè)Flow Navigator 窗口 Run Implementation 按鈕, 完成綜合實(shí)現(xiàn).
4. 打開(kāi)Implemented Design
(點(diǎn)擊左側(cè)Flow Navigator 窗口 Open Implemented Design 按鈕)
5.選一條兩個(gè)寄存器之間的路徑
運(yùn)行以下命令,選中打印出的路徑,雙擊可以查看時(shí)序報(bào)告,F(xiàn)4 鍵可以打開(kāi)這條路徑的原理圖,可以看到Data Path的布線延遲是0.504ns
%report_timing -from[get_cells clkx_spd_i0/meta_harden_bus_new_i0/signal_meta_reg] -to [get_cellsclkx_spd_i0/meta_harden_bus_new_i0/signal_dst_reg] -delay_type max -name test1

路徑的原理圖

6.把目的寄存器的D端從net上斷下來(lái)
%disconnect_net -netclkx_spd_i0/meta_harden_bus_new_i0/signal_meta_reg_n_0-objects {clkx_spd_i0/meta_harden_bus_new_i0/signal_dst_reg/D}
在這里獲取操作對(duì)象(net, Pin)的方法:在原理圖中選中對(duì)象,然后查看走下角Property 窗口中的NAME 屬性

Pin被從Net上斷開(kāi)后,會(huì)在原理圖上顯示n/c

7.創(chuàng)建一個(gè)LUT1,并設(shè)置LUT的INITproperty
%create_cell -reference LUT1clkx_spd_i0/meta_harden_bus_new_i0/my_lut1
%set_property INIT 2'h1 [get_cellsclkx_spd_i0/meta_harden_bus_new_i0/my_lut1]

可以看到這個(gè)新創(chuàng)建的LUT1所有端口(Pin)都是懸空的. 接下來(lái)的步驟要將這些pin連接到合適的net上.
8.把LUT1的輸入端口連接到之前斷開(kāi)的net上.
%connect_net -netclkx_spd_i0/meta_harden_bus_new_i0/signal_meta_reg_n_0 -objects{clkx_spd_i0/meta_harden_bus_new_i0/my_lut1/I0}
9.創(chuàng)建一個(gè)新的net用來(lái)連接LUT1的輸出pin和之前斷下來(lái)的寄存器D pin
%create_net clkx_spd_i0/meta_harden_bus_new_i0/my_net
10. 連接LUT1的輸出pin和之前斷下來(lái)的寄存器Dpin 到新創(chuàng)建的net上
%connect_net -net clkx_spd_i0/meta_harden_bus_new_i0/my_net -objects {clkx_spd_i0/meta_harden_bus_new_i0/my_lut1/O clkx_spd_i0/meta_harden_bus_new_i0/signal_dst_reg/D}

11.在Netlist窗口選窗口選中新建的LUT1,將其拖曳到Device中空著的slice LUT bel中對(duì)應(yīng)的命令:
place_cell clkx_spd_i0/meta_harden_bus_new_i0/my_lut1 SLICE_X52Y83/B6LUT
12.對(duì)新的LUT1兩端的net進(jìn)行布線
%route_design -nets [get_nets -of [get_pins clkx_spd_i0/meta_harden_bus_new_i0/my_lut1/*]]
13. 檢查布線結(jié)果確保沒(méi)有布線錯(cuò)誤
%report_route_status

14.用步驟5的命令重新報(bào)一下時(shí)序
15.生成bit文件
責(zé)任編輯:lq
-
寄存器
+關(guān)注
關(guān)注
31文章
5611瀏覽量
130116 -
ECO
+關(guān)注
關(guān)注
0文章
54瀏覽量
15473 -
Vivado
+關(guān)注
關(guān)注
19文章
858瀏覽量
71197
原文標(biāo)題:開(kāi)發(fā)者分享 | 用ECO腳本的方式在網(wǎng)表中插入LUT1
文章出處:【微信號(hào):gh_2d1c7e2d540e,微信公眾號(hào):XILINX開(kāi)發(fā)者社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
Vivado中IP核被鎖定的解決辦法
通過(guò)vivado HLS設(shè)計(jì)一個(gè)FIR低通濾波器
奇捷科技EasyAI ECO Suite即將發(fā)布
AMD Vivado Design Suite 2025.2版本現(xiàn)已發(fā)布
FPGA板下載運(yùn)行調(diào)試流程
FPGA板下載調(diào)試流程
vcs和vivado聯(lián)合仿真
AMD Vivado ChipScope助力硬件調(diào)試
vivado仿真時(shí)GSR信號(hào)的影響
Vivado無(wú)法選中開(kāi)發(fā)板的常見(jiàn)原因及解決方法
如何使用One Spin檢查AMD Vivado Design Suite Synth的結(jié)果
適用于Versal的AMD Vivado 加快FPGA開(kāi)發(fā)完成Versal自適應(yīng)SoC設(shè)計(jì)
Vivado 2018.3軟件的使用教程
Vivado HLS設(shè)計(jì)流程
Vivado的ECO流程
評(píng)論