0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何实现ILA Cross Trigger

Hack电子 来源:AMD开发者社区 2023-11-30 10:17 次阅读

01 关于ILA Cross Trigger

1)ILA Cross Triggering功能使得ILA核心之间、以及ILA核心与处理器(例如,AMD Zynq 7000 SoC)之间可以进行Cross Trigger。这个功能在你需要在不同时钟域的两个ILA核心之间触发,或者在处理器和ILA核心之间执行硬件/软件跨触发时非常有用。

要使用Cross Trigger功能,在核心生成时,你应该配置ILA核心具有专用的触发输入端口(TRIG_IN和TRIG_IN_ACK)和专用的触发输出端口(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 变为低电平。如果 TRIG_OUT_ACK 连接到低电平,您可以重新准备 ILA。

下图展示了典型的交叉触发设置,其中 ILA2 交叉触发到 ILA1。ILA2 的 TRIG_OUT 信号连接到 ILA1 的 TRIG_IN 信号。ILA 1 的 TRIG_IN_ACK 信号连接到 ILA2 的 TRIG_OUT_ACK 信号。

3)典型的交叉触发设置

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 脚本的方式创建新的debug core将Unassigned Debug Nets连接到新的debug core上。

c. Tcl 脚本创建两个新的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的时候会自动创建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

可以发现出现了四个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

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 处理器
    +关注

    关注

    68

    文章

    18275

    浏览量

    222162
  • amd
    amd
    +关注

    关注

    25

    文章

    5197

    浏览量

    132633
  • 信号
    +关注

    关注

    11

    文章

    2639

    浏览量

    75388
  • ILA
    ILA
    +关注

    关注

    0

    文章

    5

    浏览量

    3505

原文标题:如何实现ILA Cross Trigger

文章出处:【微信号:Hack电子,微信公众号:Hack电子】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    如何在下载Bitstream后自动触发ILA采集

    ,以普通人的手速显然是无能为力的。有的变通方法比如在程序中加入一定的延时量或者外部按键做触发 ILA 采集也可以实现。但是某些应用场景下,初始化必须在上电后的一定时间范围内完成。本文将介绍一种可适用于上述场景的方法,即在下载 Bitstream 后自动触发
    的头像 发表于 02-23 09:45 447次阅读
    如何在下载Bitstream后自动触发<b class='flag-5'>ILA</b>采集

    Trigger Handler命令介绍(2)

    trigger
    橙群微电子
    发布于 :2023年04月04日 09:28:10

    vivado ILA 实现在线调试功能报错,显示没有添加ILA,怎么解决?

    在使用vivadao在线调试功能时,对需要抓的信号MARK DEBUG,调用了ILA测试核,添加了时钟约束,但是总是显示no nets matched的warning,最后烧到片子里界面没有跳转到在线调试界面,无信号,显示没有添加ILA,问题出在哪里呢?求大神解答
    发表于 06-08 11:19

    vivado ILA在线调试求助

    在用Vivado实现某个工程时,功能仿真正确,时序满足要求,比特流也能生成,但是在ILA调试和下板子时,无法得到正确的结果信号,请问各位大神可能是什么问题?
    发表于 12-11 11:10

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

    在多核的MCU调试中,几个核之间的程序同步显得非常重要。在调试过程中,当一个核暂停的时候,我们会希望另外的核都能同时暂停,Cross Trigger的功能也就成为了多核调试的必备功能之一。本文介绍了在CCSv5环境下,双核C2000 调试过程中
    发表于 10-16 10:26

    实现ila时出错

    [Chipscope 16-119]实现调试核心u_ila_0 failed.ERROR:无法为u_ila_0生成核心。中止IP生成操作。错误:[Chipscope 16-218]尝试从IP缓存
    发表于 10-26 15:10

    如何更改ILA上的时钟边沿

    你好,是否有可能在ILA内核中将采样时钟边沿从上升变为下降?如果有,怎么样?以上来自于谷歌翻译以下为原文Hello,is it possible to change the sampling
    发表于 04-24 11:31

    ILA数据和波形的关系

    ILA简介添加ILAILA数据和波形的关系
    发表于 02-22 06:24

    蜂鸟E203 V2的FPGA实现之后,上板测试想用ila抓取内部信号没有波形是为什么?

    RISC-V 蜂鸟E203平台在黑金的AX7050上移植搭建,想查看IFU模块的内部信号,于是调用ila查看,却发现没有任何波形输出,FPGA实现是可以正常run编译之后可执行文件的。图1是用ila
    发表于 08-12 06:25

    什么是D-ILA投影技术

    什么是D-ILA投影技术 D-ILA(Direct-Drive Image Light Amplifier,直接驱动图像光源放大器)技术。D-ILA技术在提供高分辨率和高对比度方面显示了技术优势,
    发表于 02-05 10:42 644次阅读

    Schmitt_Trigger_Oscillator电路设计

    Schmitt Trigger Oscillator电路设计
    发表于 01-11 17:55 0次下载

    Vivado中关于ILA的详解

    集成逻辑分析仪 (Integrated Logic Analyzer :ILA) 功能允许用户在 FPGA 设备上执行系统内调试后实现的设计。当设计中需要监视信号时,应使用此功能。用户还可以使用此功能在硬件事件和以系统速度捕获数据时触发。
    的头像 发表于 02-08 11:35 2.3w次阅读
    Vivado中关于<b class='flag-5'>ILA</b>的详解

    Vivado之ILA详解

    集成逻辑分析仪 (Integrated Logic Analyzer :ILA) 功能允许用户在 FPGA 设备上执行系统内调试后实现的设计。当设计中需要监视信号时,应使用此功能。用户还可以使用此功能在硬件事件和以系统速度捕获数据时触发。
    发表于 01-22 07:52 19次下载
    Vivado之<b class='flag-5'>ILA</b>详解

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

    不一致,从而出现Bug。一种debug的方式就是用FPGA工具提供的ILA模块(xilixn在ISE中叫:chipscope),来实时抓取FPGA内部数字信号的波形,分析逻辑错误的原因,帮助debug。 ILA
    的头像 发表于 08-09 14:12 1.5w次阅读
    <b class='flag-5'>ILA</b>工作原理 <b class='flag-5'>ILA</b>使用方法与注意

    怎么分析Cross Couple的结构?

    实现一个触发器电路,并且这种电路适用于各种器件,比如MOS,CMOS以及TTL等。Cross-coupled结构在工业界得到了广泛的应用,例如SRAM,DRAM,PLA和PROM等。本文将详细介绍
    的头像 发表于 09-17 16:25 884次阅读