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

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

3天内不再提示

集成逻辑分析仪(ILA)的使用方法

CHANBAEK 来源:杰克拉力船长 作者:杰克拉力船长 2023-10-01 17:08 次阅读

大家好,这里是程序员 杰克 。一名平平无奇的嵌入式软件工程师

在日常FPGA开发过程中,逻辑代码设计完成后,为了验证代码逻辑的正确性,优先使用逻辑仿真(modesim)进行验证。仿真验证通过后进行板级验证时,使用逻辑分析仪进行分析和验证逻辑是否正确。FPGA两大主流厂商的软件集成逻辑分析仪供使用,AlteraQuartus自带SignalTap、Xilinx的Vivado自带ILA逻辑调试工具。

本篇总结和分享在Xilinx编译工具Vivado环境下,使用内嵌的逻辑分析仪(ILA)的4种方法:

  • HDL代码实例化ILA IP核
  • Block Design添加ILA IP核
  • Synthesis后对Nets执行Mark Debug操作
  • 在HDL代码中使用属性关键字mark_debug

本文以"LED每0.5s间隔亮灭"工程为例,观测 led[0]信号以及led_cnt[24:0]时钟计数信号 ,演示ILA使用的4种方法以及相关的注意事项。

01 HDL代码实例化ILA IP核

在IP Catalog中搜索ILA,然后双击该IP核进行配置。

图片

本示例中led[0]、led_cnt[24:0]信号位宽分别为1、25bit,具体配置如下所示;配置完成后,点击“OK”;在弹出的界面点击“Generate”完成IP核的配置和生成。

图片

图片

图片

Verilog代码中对刚生成的ILA核进行实例化,在具体代码添加例化代码,如下所示:

ila_0 ila_0_inst0 (
  .clk     (clk    ),     // input wire clk
  .probe0  (led    ),     // input wire [0:0]  probe0  
  .probe1  (led_cnt)      // input wire [24:0]  probe1
);

综合、实现、生成bit后写到FPGA芯片便可观测到信号(此处不做演示)。

图片

特别说明:对于纯FPGA工程,杰克推荐该方式去使用ILA;

02 Block Design添加ILA IP核

在Vivado中,除了使用HDL语言去描述设计,还可以通过Block Design图形化连接的方式进行设计。7系列的软核MicroBlaze、带硬核的SOC芯片(ZYNQ、MPSOC等)的设计都是通过Block和HDL相结合来描述设计。本文仍以纯FPGA方式来说明在Block Design中使用ILA核(纯FPGA开发不建议)。ILA使用操作如下:

创建/打开Block Design,在Diagram界面,点击“+”按钮,搜索ILA,然后双击该IP核进行配置。

图片

参数配置的方式与上一小节一致,这里不作赘述。不同之处是在Block Design中使用ILA核,ILA核的实例化HDL代码会自动生成到Block Design文件中。

综合、实现、生成bit后写到FPGA芯片便可观测到信号(此处不做演示)。

图片

特别说明:

带MicroBlaze软核/ARM硬核的FPGA的复杂设计中,模块接口的信号观测ILA使用该方法;模块内部信号的观测ILA使用上一小节的方式;两者可结合使用。

03 综合后添加Mark Debug

对工程执行综合,综合完成后,找到要观测的信号的Nets,右键选择“Mark Debug”;

图片

图片

要观测信号的Nets选择并设置完成后,点击“Set Up Debug”;按照下面步骤配置Debug ILA参数;

图片

图片

图片

图片

Debug ILA配置完成后,保存SYNTHESIZED DESIGN后会在约束文件(.xdc)中生成ILA的配置约束,如下图所示:

图片

综合、实现、生成bit后写到FPGA芯片便可观测到信号(此处不做演示)。

图片

特别说明:mark_debug仅可以对Nets类型进行操作,不能对Cells操作;

04 HDL中使用MARK_DEBUG

MARK_DEBUG描述

vivado设计IDE提供了一些属性供开发者使用,本篇推文主要是描述MARK_DEBUG属性约束的使用和注意事项。详细可参考UG912文档的内容。使用MARK_DEBUG的条件如下:

约束对象必须是Nets类型

在Nets信号的顶端声明处进行约束

vivado提供了包括Verilog、VHDL、XDC三种语法。三种语法如下所示:

//Verilog语法
约束语法:
(* MARK_DEBUG="value" *) 
#value = true/flase
使用示例:
(* MARK_DEBUG="true" *) output wire led;
(* MARK_DEBUG="true" *) reg [24:0] led_cnt;


//VHDL语法
约束语法:
声明: attribute MARK_DEBUG : string;
语法: attribute MARK_DEBUG of signal_name : signal is "value";
//signal_name-内部信号, value = TRUE/FALSE
使用示例:
signal led : std_logic;
attribute MARK_DEBUG : string;
attribute MARK_DEBUG of led : signal is "TRUE";


//XDC语法
约束语法: 
set_property MARK_DEBUG value [get_nets < net_name >] 
#value = TRUE/FLASE
#net_name-是信号名
使用示例:
set_property MARK_DEBUG TURE [get_nets led];

使用MARK_DEBUG标记生成ILA观测信号步骤

在led[0]、led_cnt[24:0]信号的顶端声明处进行约束,省略代码如下:

module led_top(
    input   wire    clk_i,
    input   wire    rst_n,
    (* MARK_DEBUG="true" *) output  wire    led_o
)
;
...
(* MARK_DEBUG="true" *) reg [24:0] led_cnt;
...
endmodule

执行综合操作,综合完成后,打开综合设计,然后点击“Set Up Debug”;

图片

按照下面步骤配置Debug ILA参数;

图片

图片

图片

图片* Debug ILA配置完成后,保存SYNTHESIZED DESIGN后会在约束文件(.xdc)中生成ILA的配置约束,如下图所示:

图片

综合、实现、生成bit后写到FPGA芯片便可观测到信号(此处不做演示)。

图片

特别说明:

MARK_DEBUG约束标记会阻止Vivado对该信号以及下级信号的优化。因此,在逻辑验证完成后,要删除Mark_DEBUG约束标记或者将其失能。

05 文章总结

上面总结和分享了4种Vivado下使用ILA的方法。杰克更推荐使用前面两种实例化的方法去使用ILA IP核。对于 纯FPGA HDL开发 ,配置生成ILA核并在HDL代码中实例化使用便可;对于带软核/硬核的FPGA开发 ,在Block模块外部接口信号通过添加ILA核,Block模块内部信号则在HDL代码中实例化ILA核,两者结合使用。

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

    关注

    1627

    文章

    21685

    浏览量

    602323
  • Xilinx
    +关注

    关注

    71

    文章

    2164

    浏览量

    121089
  • 逻辑分析仪
    +关注

    关注

    3

    文章

    214

    浏览量

    23148
  • Vivado
    +关注

    关注

    19

    文章

    808

    浏览量

    66370
  • ILA
    ILA
    +关注

    关注

    0

    文章

    5

    浏览量

    3588
收藏 人收藏

    评论

    相关推荐

    SignalTapⅡ逻辑分析仪

    SignalTapⅡ逻辑分析仪使用方法
    发表于 03-07 13:24

    逻辑分析仪是什么

    逻辑分析软件可快速完成大量波形数据的高难度分析和显示,同时提供友好简便的人机交互体验。逻辑分析仪具有极高的采样率,能够精确捕获和显示多路数字
    发表于 08-23 16:31

    Vivado逻辑分析仪使用教程

    ,将捕获到的数据通过下载器回传给我们的用户界面,以便我们进行观察。在逻辑分析仪使用的过程中,我们一般常用的调用方法有两种:1、IP核2、mark debug标记信号接下来我们先说一下第一种方法
    发表于 04-17 16:33

    逻辑分析仪的应用分析

    逻辑分析仪原理及相关术语简介。逻辑分析仪的工作原理简介逻辑分析仪的组成结构如图1所示,它主要包括
    发表于 11-27 13:06 11次下载

    逻辑分析仪的使用

    逻辑分析仪的使用 本文主要介绍逻辑分析仪的使用步骤与方法,从探头与被测系统连接、设置时钟模式和触发功能、捕获、
    发表于 11-27 08:50 2152次阅读

    什么是逻辑分析仪逻辑分析仪使用方法是什么?逻辑分析仪和示波器有什么区别

    逻辑分析仪,通常具有数量众多的采样通道,超快的采样速度和大容量的存储深度,但昂贵的价格也不是个人所能承受的。作为工程师手头常备的开发工具,目前有许多入门级的逻辑分析仪设计,整体功能虽
    发表于 05-09 09:11 6363次阅读

    逻辑分析仪的作用_逻辑分析仪怎么用_逻辑分析仪使用方法(教程)

    逻辑分析仪是一种类似于示波器的波形测试设备,它可以监测硬件电路工作时的逻辑电平(高或低),并加以存储,用图形的方式直观地表达出来,便于用户检测,分析电路设计(硬件设计和软件设计) 中的
    发表于 12-20 16:23 5w次阅读

    逻辑分析仪选型参数有哪些_逻辑分析仪有哪些技术指标_逻辑分析仪有什么推荐的?

    逻辑分析仪分析数字系统逻辑关系的仪器。逻辑分析仪是属于数据域测试[2]仪器中的一种总线
    发表于 12-20 16:43 5506次阅读

    逻辑分析仪的计量说明

    中国国内每年销售逻辑分析仪大概一千万美元,但是能够完整计量逻辑分析仪参数的单位却不多。一般的计量单位只能做到门限精度的计量,而不能进行逻辑
    发表于 01-14 10:28 3次下载

    Based逻辑分析仪的应用特点、优势及使用方法

    工程师在测量数字讯号时使用逻辑分析仪能够快速的找出问题所在,而孕龙逻辑分析仪更提供了多项专利技术使工程师开发产品时可提升工作效率。孕龙科技逻辑
    发表于 10-28 10:17 1117次阅读

    在Vivado中使用逻辑分析仪ILA的过程

    FPGA综合出来的电路都在芯片内部,基本上是没法用示波器或者逻辑分析仪器去测量信号的,所以xilinx等厂家就发明了内置的逻辑分析仪
    的头像 发表于 06-29 16:08 4860次阅读
    在Vivado中使用<b class='flag-5'>逻辑</b><b class='flag-5'>分析仪</b><b class='flag-5'>ILA</b>的过程

    逻辑分析仪是干啥用的 逻辑分析仪的主要用途 逻辑分析仪的应用场景

    逻辑分析仪是干啥用的 逻辑分析仪的主要用途 逻辑分析仪的应用场景
    的头像 发表于 09-19 16:03 2927次阅读

    频谱分析仪使用方法

    频谱分析仪使用方法  频谱分析仪是一种用于测量电子信号频谱的仪器,广泛应用于通信、无线电、音频等领域。它可以分析信号的频率、幅度、相位等参数,帮助工程师进行信号
    的头像 发表于 09-19 16:03 2215次阅读

    逻辑分析仪如何使用 逻辑分析仪使用教程

    逻辑分析仪如何使用 逻辑分析仪使用教程  逻辑分析仪是一种用来监测和
    的头像 发表于 09-19 16:03 2825次阅读

    usb逻辑分析仪怎么用

    的错误和故障。USB逻辑分析仪被广泛应用于USB控制器的开发和调试、USB设备的验证以及USB通信的分析和解决。在本文中,我们将详细介绍USB逻辑
    的头像 发表于 09-19 16:03 2459次阅读