fpga内嵌逻辑分析仪使用方法

文章目录


前言

本文基于上文的工程文件,讲述了 fpga 内嵌逻辑分析仪的使用方法,内嵌逻辑分析仪是在 fpga 开发调试过程中一个很重要的一个工具,这个工具可以帮助我们去观察内部的一些信号它的一些变化,然后帮助我们去调试从而找到问题。


一、方法1 --- 使用 IP 核创建 ILA 调试环境

1、创建 ILA ip 核

①、点击左侧 PROJECT MANAGER 栏 --> IP Catalog 或者菜单栏下 Window --> IP Catalog 然后在右侧出现的 IP Catalog 窗口下搜索 ILA,双击选择 Debug 下的 ILA 进行 IP 配置操作步骤如下图所示

②、General Options 参数设置

  • Component Name:设置生成 IP Core 的名称,这里设置成 ila
  • Number of Probes:探针数量设置,要观察 2 个信号(一个是计数器,一个是 led 灯),所以这里设置探针数量为 2
  • Sample Data Depth:采样数据深度,设置的数值越大采样的数据越多看到的波形数据越多但是最终占用的资源也会越多并不是设置的越大越好。这个根据实际需求进行合适的设置即可我们这里选择设置 1024。

③、Probe_Ports(0...7) 参数设置

Probe Width:探针数据信号的位宽设置,我们需要对一个 32 位的计数器和一个 1 位的 led 灯信号进行在线观察,因此这里将 PROBE0 位宽设置为 32,PROBE1 位宽设置为 1,并且可以看到左侧的图形器件引脚也跟着进行变化。点击 OK。

④、会弹出一个是否在我们的一个路径去创建 ip

⑤、点击 Generate,生成 IP 核

⑥、点击 OK

⑦、此时在 Design Sources 里面可以看到新增的一个 ila.xci 文件,点击左侧的 ">" 展开它的层级关系。

⑧、展开之后我们就可以看到顶层 .v 文件,打开 ila.v 这个文件我们可以看到 ila 模块名字

2、进行例化

①、下一步我们要做的就是例化,在 led.v 文件里面 endmodule 前添加下面的代码,点击保存后可以看到新的层级关系,led 把 ila 包含进来了,如下图所示

c 复制代码
ila ila_inst
(
    .clk     (sys_clk),
    .probe0  (timer_cnt),
    .probe1  (led)
);

3、生成比特流文件

①、点击 Generate Bitstream

②、在弹出的对话框中可以选择任务数量,这里和 CPU 核心数有关,一般数字越大,编译越快,点击 "OK"

4、下载程序

①、点击 Open Hardware Manager

②、点击 Auto Connect

③、右键 xc7z020_1 -> Program Device

④、可以发现这里多了一个 led.ltx 文件,这是一个描述文件,描述的内容就是我们的逻辑分析仪与哪些信号进行连接,然后点击 Program

⑤、点击 Program 后可以看到这样的一个界面

5、进行在线调试

①、点击 Run trigger for this ILA core,并将计数器以 10 进制方式显示,c+rl + 鼠标滚轮调整界面,可以看到如下图所示:

这些数据都是真实的数据,不同于仿真,我们目前是在板子上进行运行,可以看到实际的运行的情况

②、做一个触发

以计数器做一个触发

根据计数器的最大值做一个触发

③、再点击 Run trigger for this ILA core,可以看到触发到的情况,以及 led 从 0 变为 1

此外为了方便我们观察波形情况,当我们想看后面的数据多一些可以把 Trigger poisition in window 的值调小一点,如果向看前面的数据可以把 Trigger poisition in window 的值调大一些

④、也可以尝试一下循环触发的模式,先点击 Toggle auto re-trigger mode for this ILA core 后再点击 Run trigger for this ILA core

可以看到进行循环触发,且左侧 hw_ila_1 显示了逻辑分析仪的状态,有空闲状态、等待触发状态、触发成功状态

二、方法2 --- 使用 Debug 标记创建 ILA

1、Debug 标记相关信号

①、先将上述 led.v 中新增的 ila 例化代码屏蔽

②、点击 Language Templates,弹出的窗口点击搜索,输入 mark 会出现 Mark Signal for Debug(MARK_DEBUG),点击 Mark Signal for Debug(MARK_DEBUG),复制 Preview 中所显示的 (* MARK_DEBUG="true" *)

③、粘贴到 led.v 中,按照下图方式粘贴,并进行保存

2、综合操作

①、点击 Run Synthesis,弹出的窗口点击 OK

②、点击 "OK"

③、综合完成,点击 Cancel

3、设置 Set Up Debug

①、点击 Set Up Debug,弹出的窗口选择 Next

②、这里我们就可以看到我们源文件里面添加的调试的信息,然后点击 Next

③、下面也是设置采样的数据深度,我们保持默认,点击 Next

④、点击 Finish

⑤、保存一下设置,弹出的窗口点击 OK

⑥、我们再看一下 led.xdc 约束文件,并 Reload 以下,可以看到新增了如下信息

这些信息代表我们创建一个一个 debug_core ila,就是把里面的一些信号连接在一起了

4、生成比特文件

①、点击 Generate Bitstream,弹出的窗口点击 Yes

②、选择 Open Hardware Manager 并点击 OK

5、下载程序

同第一种方法

6、进行在线调试

同第一种方法,操作及界面也完全相同


我的qq:2442391036,欢迎交流!


相关推荐
不是笨小孩i1 小时前
基于Zynq FPGA对雷龙SD NAND的测试
fpga开发·sd nand·spi nand·spi nand flash·工业级tf卡·嵌入式tf卡
FPGA_ADDA1 小时前
FMC 扩展子卡6 路 422,8 组 LVDS,8 路 GPIO
fpga开发·gpio·422·lvds·fmc 扩展子卡
搬砖的小码农_Sky7 小时前
单片机和FPGA有什么区别?
单片机·嵌入式硬件·fpga开发
Jade-YYS10 小时前
如何判断FPGA能够接入几个Camera
fpga开发
apple_ttt1 天前
SystemVerilog学习——虚拟接口(Virtual Interface)
fpga开发·fpga·systemverilog·uvm
学习路上_write2 天前
FPGA/Verilog,Quartus环境下if-else语句和case语句RT视图对比/学习记录
单片机·嵌入式硬件·qt·学习·fpga开发·github·硬件工程
jjjxxxhhh1232 天前
FPGA,使用场景,相比于单片机的优势
单片机·嵌入式硬件·fpga开发
诚实可靠小郎君95272 天前
FPGA高速设计之Aurora64B/66B的应用与不足的修正
fpga开发·aurora·高速通信
百锦再2 天前
基于Zynq FPGA对雷龙SD NAND的测试
fpga开发
∑狸猫不是猫2 天前
HDLBIts习题(4):边沿检测、分频计数器、多位BCD计数器
fpga开发