通常在設(shè)計(jì)網(wǎng)表中,需要在基礎(chǔ)上微調(diào)邏輯,這樣既無需修改代碼,也無需重新做綜合,在設(shè)計(jì)調(diào)試中可以節(jié)省時(shí)間的同時(shí)維持其邏輯無任何改動(dòng)。
本文將帶大家一起體驗(yàn)一下Vivado的ECO流程,以Vivado自帶的Example Design為例, 直接用TCL命令修改網(wǎng)表,在正常的寄存器路徑之間加一級(jí)LUT.
1.打開Vivado 界面
2.打開Example Design "Wavegen":
<1> File -> Project -> Open Example
<2> 選中Wavegen (HDL),器件選擇xcku035
3.點(diǎn)擊左側(cè)Flow Navigator 窗口 Run Implementation 按鈕, 完成綜合實(shí)現(xiàn).
4. 打開Implemented Design
(點(diǎn)擊左側(cè)Flow Navigator 窗口 Open Implemented Design 按鈕)
5.選一條兩個(gè)寄存器之間的路徑
運(yùn)行以下命令,選中打印出的路徑,雙擊可以查看時(shí)序報(bào)告,F(xiàn)4 鍵可以打開這條路徑的原理圖,可以看到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上斷下來
%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上斷開后,會(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)都是懸空的. 接下來的步驟要將這些pin連接到合適的net上.
8.把LUT1的輸入端口連接到之前斷開的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用來連接LUT1的輸出pin和之前斷下來的寄存器D pin
%create_net clkx_spd_i0/meta_harden_bus_new_i0/my_net
10. 連接LUT1的輸出pin和之前斷下來的寄存器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é)果確保沒有布線錯(cuò)誤
%report_route_status
14.用步驟5的命令重新報(bào)一下時(shí)序
15.生成bit文件
責(zé)任編輯:lq
-
寄存器
+關(guān)注
關(guān)注
31文章
5433瀏覽量
124416 -
ECO
+關(guān)注
關(guān)注
0文章
52瀏覽量
15186 -
Vivado
+關(guān)注
關(guān)注
19文章
835瀏覽量
68727
原文標(biāo)題:開發(fā)者分享 | 用ECO腳本的方式在網(wǎng)表中插入LUT1
文章出處:【微信號(hào):gh_2d1c7e2d540e,微信公眾號(hào):XILINX開發(fā)者社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
Vivado無法選中開發(fā)板的常見原因及解決方法

如何使用One Spin檢查AMD Vivado Design Suite Synth的結(jié)果

適用于Versal的AMD Vivado 加快FPGA開發(fā)完成Versal自適應(yīng)SoC設(shè)計(jì)

Vivado HLS設(shè)計(jì)流程

AMD Vivado Design Suite IDE中的設(shè)計(jì)分析簡(jiǎn)介

Vivado Design Suite用戶指南:邏輯仿真

Vivado之實(shí)現(xiàn)布局布線流程介紹

Xilinx_Vivado_SDK的安裝教程

U50的AMD Vivado Design Tool flow設(shè)置

每次Vivado編譯的結(jié)果都一樣嗎

Vivado使用小技巧

Vivado編輯器亂碼問題

評(píng)論