0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何實現ILA Cross Trigger

Hack電子 ? 來源:AMD開發(fā)者社區(qū) ? 2023-11-30 10:17 ? 次閱讀

01 關于ILA Cross Trigger

1)ILA Cross Triggering功能使得ILA核心之間、以及ILA核心與處理器(例如,AMD Zynq 7000 SoC)之間可以進行Cross Trigger。這個功能在你需要在不同時鐘域的兩個ILA核心之間觸發(fā),或者在處理器和ILA核心之間執(zhí)行硬件/軟件跨觸發(fā)時非常有用。

要使用Cross Trigger功能,在核心生成時,你應該配置ILA核心具有專用的觸發(fā)輸入端口(TRIG_IN和TRIG_IN_ACK)和專用的觸發(fā)輸出端口(TRIG_OUT和TRIG_OUT_ACK)。0a4b18f2-8f25-11ee-939d-92fbcf53809c.png

0a6000fa-8f25-11ee-939d-92fbcf53809c.png

(一對ILA的TRIG_OUT和TRIG_IN 在Block Design中的互聯示意圖)

2)RIG_OUT_ACK 信號向 ILA 內核(另一個 ILA、用戶設計或處理器)指示 TRIG_OUT 已正確接收,并導致 ILA 在接收 TRIG_OUT_ACK 時降低 TRIG_OUT 信號。

換句話說,TRIG_OUT 保持高電平,直到 TRIG_OUT_ACK 可用。如果 TRIG_OUT_ACK 信號連接至低電平,則 TRIG_OUT 保持高電平,直到用戶重新啟動 ILA。只有 TRIG_OUT 變?yōu)榈碗娖?。如?TRIG_OUT_ACK 連接到低電平,您可以重新準備 ILA。

下圖展示了典型的交叉觸發(fā)設置,其中 ILA2 交叉觸發(fā)到 ILA1。ILA2 的 TRIG_OUT 信號連接到 ILA1 的 TRIG_IN 信號。ILA 1 的 TRIG_IN_ACK 信號連接到 ILA2 的 TRIG_OUT_ACK 信號。

3)典型的交叉觸發(fā)設置

0a7c2474-8f25-11ee-939d-92fbcf53809c.png

02 測試工程基本情況介紹

本測試工程基與Vivado 2022.2

本測試工程基于Versal VCK190 Evaluation Platform (xcvc1902-vsva2197-2MP-e-S),這里同時介紹了以下兩種方式實現ILA Cross Trigger:

IPI的方式例化帶有Cross TRIG端口的ILA。(對應axis_ila_0和axis_ila_1)

(* MARK_DEBUG="true" *)+ Tcl腳本的的方式(這種方式只支持Vivado 2022.1及更高版本)

0a8eb904-8f25-11ee-939d-92fbcf53809c.png

紅色方框內的axis_ila_0和axis_ila_1在配置IP的時候直接例化了對應的Cross Trigger接口,黃色方框內是對部分的RTL代碼設置了(* MARK_DEBUG="true" *)。

0aa77aac-8f25-11ee-939d-92fbcf53809c.png0abd64c0-8f25-11ee-939d-92fbcf53809c.png

03 構建步驟

測試的C_SLR_REG module的代碼如下:

0ad880d4-8f25-11ee-939d-92fbcf53809c.png0ae88588-8f25-11ee-939d-92fbcf53809c.png

按照下圖構建BD工程。

將C_SLR_REG module以RTL的方式加入到BD內, 操作方法見下圖。

0b09bdf2-8f25-11ee-939d-92fbcf53809c.png0b22d88c-8f25-11ee-939d-92fbcf53809c.png

連接好整個BD然后Create HDL Wrapper并將design_1_wrapper. v設置成top。

0b3b1712-8f25-11ee-939d-92fbcf53809c.png

Run Synthesis

a. 綜合完成之后點擊Open Synthesized Design

b. 使用如下方式打開Debug窗口

0b52306e-8f25-11ee-939d-92fbcf53809c.png0b5a6be4-8f25-11ee-939d-92fbcf53809c.png

從Debug視圖可以看到已有兩個IPI例化的ILA(axis_ila_0和axis_ila_1),還有一些Unassigned Debug Nets(design_1_i/C_SLR_REG_0/inst/test_out,design_1_i/C_SLR_REG_0/inst/test_in_r0,design_1_i/C_SLR_REG_0/inst/test_in_r1),下面需要通過Tcl 腳本的方式創(chuàng)建新的debug core將Unassigned Debug Nets連接到新的debug core上。

c. Tcl 腳本創(chuàng)建兩個新的debug core(u_ila_2和u_ila_3),(u_ila_3) trig_out -> (u_ila_2) trig_in.新建一個Tcl腳本(此處位Cross_ila.tcl)。然后在下圖位置調用Cross_ila.tcl腳本。

0b701b10-8f25-11ee-939d-92fbcf53809c.png

Cross_ila.tcl文件內容如下:

###createu_ila_2
create_debug_coreu_ila_2ila
set_propertyC_TRIGIN_ENtrue[get_debug_coresu_ila_2]
set_propertyC_TRIGOUT_ENfalse[get_debug_coresu_ila_2]
set_propertyC_NUM_OF_PROBES1[get_debug_coresu_ila_2]
#createu_ila_2TRIG_IN_trigandTRIG_IN_ack
create_debug_portu_ila_2TRIG_IN_trig
create_debug_portu_ila_2TRIG_IN_ack
#configu_ila_2/clk
set_propertyport_width1[get_debug_portsu_ila_2/clk]
connect_debug_portu_ila_2/clk[get_nets[listdesign_1_i/clk_wizard_0_clk_out3]]
#configu_ila_2/probe0
set_propertyPROBE_TYPEDATA_AND_TRIGGER[get_debug_portsu_ila_2/probe0]
set_propertyport_width16[get_debug_portsu_ila_2/probe0]
connect_debug_portu_ila_2/probe0[get_nets[listdesign_1_i/C_SLR_REG_0/inst/test_out[*]]]
###createu_ila_3
create_debug_coreu_ila_3ila
set_propertyC_TRIGIN_ENfalse[get_debug_coresu_ila_3]
set_propertyC_TRIGOUT_ENtrue[get_debug_coresu_ila_3]
set_propertyC_NUM_OF_PROBES2[get_debug_coresu_ila_3]
#createu_ila_3TRIG_IN_trigandTRIG_IN_ack
create_debug_portu_ila_3TRIG_OUT_trig
create_debug_portu_ila_3TRIG_OUT_ack
#configu_ila_3/clk
set_propertyport_width1[get_debug_portsu_ila_3/clk]
connect_debug_portu_ila_3/clk[get_nets[listdesign_1_i/clk_wizard_0_clk_out3]]
##create_debug_core的時候會自動創(chuàng)建probe0和clk端口
#configu_ila_3/probe0
set_propertyPROBE_TYPEDATA_AND_TRIGGER[get_debug_portsu_ila_3/probe0]
set_propertyport_width16[get_debug_portsu_ila_3/probe0]
connect_debug_portu_ila_3/probe0[get_nets[listdesign_1_i/C_SLR_REG_0/inst/test_in_r0[*]]]
#configu_ila_3/probe1
create_debug_portu_ila_3probe
set_propertyPROBE_TYPEDATA_AND_TRIGGER[get_debug_portsu_ila_3/probe1]
set_propertyport_width16[get_debug_portsu_ila_3/probe1]
connect_debug_portu_ila_3/probe1[get_nets[listdesign_1_i/C_SLR_REG_0/inst/test_in_r1[*]]]
###connectu_ila_2/3
create_netila2_trig_to_ila3
create_netila2_ack_to_ila3
connect_net-netila2_trig_to_ila3-objects[get_pinsu_ila_3/TRIG_OUT_trig]
connect_net-netila2_ack_to_ila3-objects[get_pinsu_ila_3/TRIG_OUT_ack]
connect_net-netila2_trig_to_ila3-objects[get_pinsu_ila_2/TRIG_IN_trig]
connect_net-netila2_ack_to_ila3-objects[get_pinsu_ila_2/TRIG_IN_ack]
#set_false_path
set_false_path-through[get_nets{ila2_trig_to_ila3}]
set_false_path-through[get_nets{ila2_ack_to_ila3}]
5)RunImplementation.
6)GenerateDevieImage/Bit.

04 HW調試

Implementation完成之后,連接上板卡。

實際運行結果

將PDI文件下載到器件中。

0b7c58bc-8f25-11ee-939d-92fbcf53809c.png

可以發(fā)現出現了四個hw_ila_1/2/3/4,與工程中的ila debug core對應關系如下。

hw_ila_1:axis_ila_0
hw_ila_2:axis_ila_1
hw_ila_3:u_ila_2
hw_ila_4:u_ila_3

之前配置的兩組Cross Trigger:

axis_ila_0trig_out->axis_ila_1trig_in
(u_ila_3)trig_out->(u_ila_2)trig_in
即:
hw_ila_1trig_out->hw_ila_2trig_in
hw_ila_4trig_out->hw_ila_3trig_in

分別設置hw_ila_1/2/3/4的Trigger mode。

0b949300-8f25-11ee-939d-92fbcf53809c.png

(hw_ila_1)

0bb31ba4-8f25-11ee-939d-92fbcf53809c.png

(hw_ila_2)

0bd24434-8f25-11ee-939d-92fbcf53809c.png

(hw_ila_3)

0bec8772-8f25-11ee-939d-92fbcf53809c.png

(hw_ila_4)

設置完成之后就可以實現ila之間的Cross Trigger.

0c03e8ae-8f25-11ee-939d-92fbcf53809c.png0c19f4e6-8f25-11ee-939d-92fbcf53809c.png

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯系本站處理。 舉報投訴
  • 處理器
    +關注

    關注

    68

    文章

    19313

    瀏覽量

    230044
  • amd
    amd
    +關注

    關注

    25

    文章

    5470

    瀏覽量

    134237
  • 信號
    +關注

    關注

    11

    文章

    2791

    瀏覽量

    76829
  • ILA
    ILA
    +關注

    關注

    0

    文章

    5

    瀏覽量

    3608

原文標題:如何實現ILA Cross Trigger

文章出處:【微信號:Hack電子,微信公眾號:Hack電子】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    如何在下載Bitstream后自動觸發(fā)ILA采集

    普通人的手速顯然是無能為力的。有的變通方法比如在程序中加入一定的延時量或者外部按鍵做觸發(fā) ILA 采集也可以實現。但是某些應用場景下,初始化必須在上電后的一定時間范圍內完成。本文將介紹一種可適用于上述場景的方法,即在下載 Bitstream 后自動觸發(fā)
    的頭像 發(fā)表于 02-23 09:45 ?867次閱讀
    如何在下載Bitstream后自動觸發(fā)<b class='flag-5'>ILA</b>采集

    Trigger Handler命令介紹(2)

    trigger
    橙群微電子
    發(fā)布于 :2023年04月04日 09:28:10

    vivado ILA 實現在線調試功能報錯,顯示沒有添加ILA,怎么解決?

    在使用vivadao在線調試功能時,對需要抓的信號MARK DEBUG,調用了ILA測試核,添加了時鐘約束,但是總是顯示no nets matched的warning,最后燒到片子里界面沒有跳轉到在線調試界面,無信號,顯示沒有添加ILA,問題出在哪里呢?求大神解答
    發(fā)表于 06-08 11:19

    vivado ILA在線調試求助

    在用Vivado實現某個工程時,功能仿真正確,時序滿足要求,比特流也能生成,但是在ILA調試和下板子時,無法得到正確的結果信號,請問各位大神可能是什么問題?
    發(fā)表于 12-11 11:10

    雙核C2000 Cross Trigger功能使用方法分享

    在多核的MCU調試中,幾個核之間的程序同步顯得非常重要。在調試過程中,當一個核暫停的時候,我們會希望另外的核都能同時暫停,Cross Trigger的功能也就成為了多核調試的必備功能之一。本文介紹了在CCSv5環(huán)境下,雙核C2000 調試過程中
    發(fā)表于 10-16 10:26

    實現ila時出錯

    [Chipscope 16-119]實現調試核心u_ila_0 failed.ERROR:無法為u_ila_0生成核心。中止IP生成操作。錯誤:[Chipscope 16-218]嘗試從IP緩存
    發(fā)表于 10-26 15:10

    蜂鳥E203 V2的FPGA實現之后,上板測試想用ila抓取內部信號沒有波形是為什么?

    RISC-V 蜂鳥E203平臺在黑金的AX7050上移植搭建,想查看IFU模塊的內部信號,于是調用ila查看,卻發(fā)現沒有任何波形輸出,FPGA實現是可以正常run編譯之后可執(zhí)行文件的。圖1是用ila
    發(fā)表于 08-12 06:25

    Logic Cross-Reference

    Introduction This Logic Cross-Reference for Buyers, Distribution Specialists and others
    發(fā)表于 07-09 21:19 ?9次下載

    什么是D-ILA投影技術

    什么是D-ILA投影技術 D-ILA(Direct-Drive Image Light Amplifier,直接驅動圖像光源放大器)技術。D-ILA技術在提供高分辨率和高對比度方面顯示了技術優(yōu)勢,
    發(fā)表于 02-05 10:42 ?720次閱讀

    Schmitt_Trigger_Oscillator電路設計

    Schmitt Trigger Oscillator電路設計
    發(fā)表于 01-11 17:55 ?0次下載

    Vivado中關于ILA的詳解

    集成邏輯分析儀 (Integrated Logic Analyzer :ILA) 功能允許用戶在 FPGA 設備上執(zhí)行系統(tǒng)內調試后實現的設計。當設計中需要監(jiān)視信號時,應使用此功能。用戶還可以使用此功能在硬件事件和以系統(tǒng)速度捕獲數據時觸發(fā)。
    的頭像 發(fā)表于 02-08 11:35 ?2.6w次閱讀
    Vivado中關于<b class='flag-5'>ILA</b>的詳解

    Vivado之ILA詳解

    集成邏輯分析儀 (Integrated Logic Analyzer :ILA) 功能允許用戶在 FPGA 設備上執(zhí)行系統(tǒng)內調試后實現的設計。當設計中需要監(jiān)視信號時,應使用此功能。用戶還可以使用此功能在硬件事件和以系統(tǒng)速度捕獲數據時觸發(fā)。
    發(fā)表于 01-22 07:52 ?19次下載
    Vivado之<b class='flag-5'>ILA</b>詳解

    ILA工作原理 ILA使用方法與注意

    不一致,從而出現Bug。一種debug的方式就是用FPGA工具提供的ILA模塊(xilixn在ISE中叫:chipscope),來實時抓取FPGA內部數字信號的波形,分析邏輯錯誤的原因,幫助debug。 ILA
    的頭像 發(fā)表于 08-09 14:12 ?1.7w次閱讀
    <b class='flag-5'>ILA</b>工作原理 <b class='flag-5'>ILA</b>使用方法與注意

    怎么分析Cross Couple的結構?

    實現一個觸發(fā)器電路,并且這種電路適用于各種器件,比如MOS,CMOS以及TTL等。Cross-coupled結構在工業(yè)界得到了廣泛的應用,例如SRAM,DRAM,PLA和PROM等。本文將詳細介紹
    的頭像 發(fā)表于 09-17 16:25 ?2154次閱讀

    使用Python提取ILA數據的流程

    ILA應該是調試AMD-Xilinx FPGA最常用的IP。
    的頭像 發(fā)表于 05-01 10:43 ?800次閱讀
    使用Python提取<b class='flag-5'>ILA</b>數據的流程