本文對(duì)如何在一個(gè)工程里例化和使用多個(gè)BSCANE2模塊做一個(gè)簡(jiǎn)單說(shuō)明。
BSCANE2模塊是FPGA的一種特殊硬核模塊,用于聯(lián)通外部JTAG引腳和內(nèi)部邏輯,構(gòu)建FPGA內(nèi)部的用戶(hù)掃描鏈。關(guān)于BSCANE2的用法, 有一個(gè)基于7系列器件的參考設(shè)計(jì):
https://support.xilinx.com/s/article/1181110?language=zh_CN
在UltraScale/UltraScale+器件上, BSCANE2的用法類(lèi)似。
UG570里面提到,UltraScale/UltraScale+的BSCANE2模塊多達(dá)4個(gè),可以在設(shè)計(jì)中全部例化,并用JTAG_CHAIN屬性加以區(qū)分。之后,就可以用使用JTAG的指令USER1到USER4來(lái)對(duì)應(yīng)操作了。
本文對(duì)如何在一個(gè)工程里例化和使用多個(gè)BSCANE2模塊做一個(gè)簡(jiǎn)單說(shuō)明。工程基于Xilinx的KCU105開(kāi)發(fā)板,同時(shí)例化兩個(gè)BSCANE2模塊,并使用ILA去觀測(cè)兩個(gè)模塊的信號(hào)。由于ILA的實(shí)現(xiàn)同樣需要借助一個(gè)BSCANE2,由Vivado在綜合后自動(dòng)插入設(shè)計(jì),所以其實(shí)是使用了全部四個(gè)中的三個(gè)BSCANE2。
工程文件請(qǐng)點(diǎn)擊閱讀原文查看并下載。
這個(gè)設(shè)計(jì)簡(jiǎn)單利用KCU105板上4盞User LED燈GPIO_LED_2/3/4/5來(lái)展示一個(gè)counter最低4位的結(jié)果。BSCANE2_inst2對(duì)應(yīng)User Scan Chain 2, BSCANE3_inst3對(duì)應(yīng)User Scan Chain3。通過(guò)JTAG指令發(fā)送USERx指令,可以觀測(cè)到對(duì)應(yīng)的sel信號(hào)會(huì)置高有效。當(dāng)選中User chain 2時(shí),sel2有效,counter收到工作信號(hào)0101, counter隨時(shí)鐘信號(hào)遞增;當(dāng)選中User Chain 3時(shí),counter收到工作信號(hào)1010, counter值遞減操作。
調(diào)試步驟:
1. 打開(kāi)Vivado,按照常規(guī)流程下載好bit和ltx文件
2. 由于調(diào)試需要進(jìn)入JTAG模式,先關(guān)閉上個(gè)步驟正常/自動(dòng)打開(kāi)的target, 但此時(shí)FPGA已經(jīng)處于工作狀態(tài)(不要掉電),Tcl console輸入:close_hw_target
3. 以JTAG調(diào)試的方式重新打開(kāi)鏈:
open_hw_target -jtag_mode 1
4. 運(yùn)行:
refresh_hw_device [lindex [get_hw_devices xcku040_0] 0]
看到ILA的界面。我們主要是對(duì)比觀測(cè)可以起到控制作用的sel2和sel3,在Trigger中,將其設(shè)為B (Both Transitions) 進(jìn)行捕捉:
進(jìn)入捕捉等候狀態(tài):
5. 從BSDL文件中,查詢(xún)到KU040對(duì)應(yīng)的USER指令:
"USER2 (000011)," & -- Not available until after configuration
"USER3 (100010)," & -- Not available until after configuration
6. 選擇USER Chain 2和Chain 3的指令分別如下;依次輸入,可以看到LED燈增減方向會(huì)有變化。
scan_ir_hw_jtag 6 -tdi 03
scan_ir_hw_jtag 6 -tdi 22
7. 對(duì)應(yīng)查看ILA波形,可以看到第一條指令USER2執(zhí)行時(shí),捕捉到的sel2:
需要注意的是,兩條chain對(duì)應(yīng)的JTAG信號(hào)都會(huì)產(chǎn)生toggle動(dòng)作,所以實(shí)際工程中,需要依靠不同的sel信號(hào)來(lái)區(qū)分并做對(duì)應(yīng)的控制。
-
FPGA
+關(guān)注
關(guān)注
1644文章
22009瀏覽量
616557 -
模塊
+關(guān)注
關(guān)注
7文章
2785瀏覽量
50017 -
Xilinx
+關(guān)注
關(guān)注
73文章
2184瀏覽量
124799
原文標(biāo)題:開(kāi)發(fā)者分享|如何在設(shè)計(jì)中例化和使用多個(gè) BSCANE2 模塊
文章出處:【微信號(hào):gh_2d1c7e2d540e,微信公眾號(hào):XILINX開(kāi)發(fā)者社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
CMU通道例化與普通GXB例化的差異比較
例說(shuō)FPGA連載62:電子點(diǎn)菜單之FIFO例化說(shuō)明
模塊例化錯(cuò)誤
在verilog中調(diào)用VHDL模塊
在verilog中調(diào)用VHDL模塊
如何在RTC程序中設(shè)置多個(gè)報(bào)警?
基于7系列的ISE版本的參考設(shè)計(jì)
如何在UltraScale+設(shè)計(jì)中使用UltraRAM模塊
BSCANE2模塊是FPGA中的一個(gè)特殊硬核模塊
開(kāi)發(fā)者分享 | 如何在設(shè)計(jì)里例化并使用BSCANE2模塊 (一)

評(píng)論