對傳統(tǒng)的非DFX設(shè)計進(jìn)行調(diào)試時,一個重要環(huán)節(jié)是插入ILA(Integrated Logic Analyzer,集成邏輯分析儀)??梢圆捎萌缦聢D所示的兩種方式。方式1是實例化方式,即在RTL代碼或者BD中實例化ILA。如果圖中紅色字體“Instantiation”所示。方式2是網(wǎng)表插入方式,即在綜合后的網(wǎng)表中插入ILA。
不難看出方式1是在綜合之前完成,而方式2則是在綜合之后完成。方式1需要手工例化ILA,同時將待測網(wǎng)線連接到ILA的測試端口,這個過程稍顯繁瑣,尤其是待測信號需要穿越多個層次到達(dá)ILA所在層次時,但也確保了待測信號能夠百分之百被觀測到(不會被工具優(yōu)化掉)。方式2更為自動化,在綜合后的網(wǎng)表中找到待測信號將其標(biāo)記為debug(本質(zhì)上是將其屬性mark_debug設(shè)置為true)。但有可能出現(xiàn)待測信號名字發(fā)生改變或者徹底被優(yōu)化掉而無法找到的情形。
對于DFX設(shè)計,那么就只能使用實例化方式插入ILA。但即便如此,仍有一些特殊之處。為便于說明,我們看一個實際案例。這個DFX設(shè)計中的RP(Reconfigurable Partition)為math,該RP下有兩個RM(ReconfigurableModule),分別為add和mult,如下圖所示。
每個RM中均包含一個ILA。這個ILA無論參數(shù)配置是否一致,都要分別調(diào)用ILA IP Core,單獨例化。這是DFX設(shè)計所要求的,即每個IP都要以唯一的方式存在于RM中。
到這里我們看到的例化ILA的方式與傳統(tǒng)的非DFX設(shè)計并沒有什么不同。但是在每個RM的頂層,需要添加12個BSCAN端口,如下圖所示。這12個端口最終會與dbg_hub相連。這里要求端口名字必須與圖中紅色方框內(nèi)的名字完全一致,如果不一致,則要通過屬性X_INTERFACE_INFO設(shè)定。
在整個設(shè)計的頂層,對RM進(jìn)行實例化時,這12個端口的端口映射為空,如下圖所示,如果使用的是VHDL,端口映射內(nèi)填寫open。
在綜合階段生成的網(wǎng)表中,dbg_hub是以黑盒子的形式存在,在設(shè)計頂層和RM內(nèi)分別有一個dbg_hub,如下圖所示。dbg_hub與ILA的連接關(guān)系由工具自動處理,無需人工干預(yù)。
實際上,在opt_design階段,Vivado會自動生成dbg_hub,這可在runme.log文件中查看到,如下圖所示。
打開布線后的網(wǎng)表文件,執(zhí)行命令get_debug_cores,可以看到當(dāng)前網(wǎng)表中的ILA、VIO和dbg_hub。如下圖所示,設(shè)計頂層和RM中各有一個dbg_hub。
如果某個RM中并沒有使用ILA或VIO,而其他RM中至少有一個使用了ILA或VIO,那么所有的RM都要列出上文提到的12個BSCAN端口,以確保所有RM接口的一致性。
審核編輯:劉清
-
處理器
+關(guān)注
關(guān)注
68文章
19103瀏覽量
228824 -
VHDL語言
+關(guān)注
關(guān)注
1文章
113瀏覽量
17974 -
RTL
+關(guān)注
關(guān)注
1文章
385瀏覽量
59666 -
VIO
+關(guān)注
關(guān)注
0文章
11瀏覽量
10114 -
DFx
+關(guān)注
關(guān)注
0文章
35瀏覽量
10512
原文標(biāo)題:如何對DFX設(shè)計進(jìn)行調(diào)試?
文章出處:【微信號:Lauren_FPGA,微信公眾號:FPGA技術(shù)驛站】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論