FPGA开发要懂得使用硬件分析仪调试——ILA
0. ILA概述
在FPGA开发中,当我们写完代码,进行仿真,确定设计没有问题后,下载到硬件上一般都能按照我们的设计意愿执行相应功能。但这也并非绝对的,有时候你会遇到一些突然情况,比如时序问题或者仿真时我没有考虑到某种情况,但实际中它确实存在的,这就会造成功能上的错误了。也有时候你的设计似乎你没法进行仿真或者做起来很费劲,比如设计一个SDRAM或者DDR控制器,让你相应写一个SDRAM或者DDR之类的模型进行仿真,这时候是不是就很为难了哈哈。
所以在很多时候,一个FPGA工程师应该学会使用在线调试工具进行分析。我没法写一个DDR模型,我还不能采集它的时序进行修改,直到满足要求吗?这里给大家介绍Xilinx公司的开发软件Vivado上的在线调试工具——ILA。Vivado中对ILA的使用非常灵活,操作也很方便,这里先介绍做常用的调试方式,即使用ILA核。
1. ILA核如何调用
ILA核,也可以当做是一个IP核。他可以把用户指定的信号存入RAM中,然后读取出来,用于查看分析。如下图所示,在Vivado中,左边栏有一个“IP Catalog”,双击这个选项就可以进行IP选择了。

此时会弹出一个IP核选择界面,在右上角方框里输入“ila”,接着ILA核便会出现,我们只需双击即可。

2. ILA核如何配置
接下来便会看到ILA核的真面目了,它的帮助文档,在左上角的“Documentation”看到没,这个可以链接到IP核的data_sheet,如果对IP核的使用不是很懂可以点击此处获取IP核的详细信息。下面我们介绍最经常的使用。
图中最上面的“Component Name”可以给IP核取一个名字,注意,必须IP核名与代码中的IP名一致,才能关联起来,而且一旦生成了IP核,就算打开IP核,也不能再更改这个IP核的名字了,所以取名需谨慎。
黄色框里是输入信号的格式,如何你是AXI总线,就可以选择"AXI",如果不是就选“Native”。
"Number of Probes"是要采集的信号数量,如果要采集5个信号就在方框里输入5即可。
“Sample Data Depth”是采样深度,深度越大意味着能看到的信息量越多。但是要切记一点,采样的数据都是要存储在芯片内的RAM里,所以选择越大占用的资源就越多,用户要根据自己芯片的情况选择采样深度。另外,因为使用了RAM,所以也会对布局布线产生影响,使用越多对时序可能影响越大,应该根据实际情况选择。
“Trigger Out Port”和“Trigger In Port”是用于触发,可以不选,触发在后面调试时可以灵活使用。
"Trigger And Strorage Setting"是数据捕获的设计,一般直接勾上即可。

“Probe_Ports”这个页面就比较简单了,在"Number of Probes"中用户设置了多少个采样数量,这里就会有多少个通道。如前面所示,我们设置了3,这里就出现了3个通道。
“Probe_Width”数据宽度,有多少位就填多少,像“PROBE1”通道是一个3Bit的数据,就填3.其他的默认即可。

最后点击“OK”就行了,等待ILA核的生成就行了,是不是很简单哈哈。
当然,我们的代码也必须有这个核的定义才行,如下图所示,这样才是一个完整的ILA核设计。

3. 总结
通过ILA核的使用,可以快速的帮助我们调试bug。另外,还有一个非常有用的VIO核,他就是虚拟输入输出IO,可以用来改变PL端的输入信号的值,观测输出的值,至于ILA的使用VIO的介绍和使用以后再讲。
转载:http://blog.csdn.net/wordwarwordwar/article/details/78245442
FPGA开发要懂得使用硬件分析仪调试——ILA的更多相关文章
- FPGA开发流程1(详述每一环节的物理含义和实现目标)
要知道,要把一件事情做好,不管是做哪们技术还是办什么手续,明白这个事情的流程非常关键,它决定了这件事情的顺利进行与否.同样,我们学习FPGA开发数字系统这个技术,先撇开使用这个技术的基础编程语言的具体 ...
- FPGA开发流程
需求说明:Verilog设计 内容 :FPGA开发基本流程及注意事项 来自 :时间的诗 原文来自:http://www.dzsc.com/data/2015-3-16/1080 ...
- 【FPGA篇章二】FPGA开发流程:详述每一环节的物理含义和实现目标
欢迎大家关注我的微信公众账号,支持程序媛写出更多优秀的文章 FPGA的开发流程是遵循着ASIC的开发流程发展的,发展到目前为止,FPGA的开发流程总体按照下图进行,有些步骤可能由于其在当前项目中的条件 ...
- FPGA开发板
kingst.cnblogs.com 各种应用需要的接口不同: 做数字信号处理的,需要有AD/DA, 做图像处理,需要有图像接口.如果是通信的,需要有通信的接口,例如PCI/LVDS等.... 然后根 ...
- GVIM与模板——让FPGA开发变得更简单
还在使用FPGA开发环境自带的代码编辑器?还在逐个字母敲击冗长重复的代码?明德扬至简设计法让你快速提高代码编写效率!利用GVIM这一高效的编辑工具并添加自定义模板,通过简短的脚本命令即可自动生成所有常 ...
- Xilinx FPGA开发环境vivado使用流程
Xilinx FPGA开发环境vivado使用流程 1.启动vivado 2016.1 2.选择Create New Project 3.指定工程名字和工程存放目录 4.选择RTL Project 5 ...
- FPGA 开发详细流程你了解吗?
FPGA 的详细开发流程就是利用 EDA 开发工具对 FPGA 芯片进行开发的过程. FPGA 的详细开发流程如下所示,主要包括电路设计.设计输入.综合(优化).布局布线(实现与优化).编程配置五大步 ...
- FPGA开发时钟资源评估需要考虑的问题
在第一个独立开发的FPGA项目中,使用了Altera平台的三速以太网IP,工作在100M模式下,外部输入的PHY时钟频率为25MHz. 由于在前期没有注意这个外部输入的时钟,导致最后不得不在板子上飞线 ...
- [教学] Delphi Berlin 10.1 开发 Windows 10 平板 App 远程调试
Delphi Berlin 10.1 开发 Windows 10 平板 App 远程调试安装步骤: 准备电脑: 一台开发电脑,安装 Delphi 开发环境 一台平板电脑,安装 PAServer,安装方 ...
随机推荐
- 3、Django实战第3天:数据建模
users modesl.py设计 UserProfile 用户信息 EmailVerifyRecord 验证码 Banner 轮播图 之前我们生成了Django默认的数据表,里面有张表示auth-u ...
- [BZOJ 3233] 找硬币
Link: BZOJ 3233 传送门 Solution: 在本蒟蒻看来算是一道比较神的$dp$了 一开始转移方程都没看出来…… 首先,如果确定了最大面值,是能推出其他面值的所有可能值的 从而发现最大 ...
- Eclipse快速补全快捷键Ctrl+1修改为Android Studio的Alt+Enter
步骤: Window ->Preferences->key-> type filter text 下输入quick fix(这个是快速补全的快捷键)改为Alt+Enter 下面的wh ...
- microsoft sql server - online Resources 在线资源
- Cesium 事件
1.相机事件(移动开始.移动结束等等) viewer.scene.camera.moveEnd.addEventListener(function(){ }): 2.鼠标事件(单击.移动.右键等) v ...
- VirtualBox如何增加CentOS根目录容量
1.扩充磁盘容量 单位为M,40000为40G VBoxManage modifyhd centos.vdi --resize 40000 2.指定新的磁盘文件 系统 > 右击 > 设置 ...
- iOS:二维码的扫描
iOS 中二维码的扫描借用#import <AVFoundation/AVFoundation.h> 实现,会用到<AVCaptureMetadataOutputObjectsDel ...
- parallax corrected cubemap
https://community.arm.com/graphics/b/blog/posts/reflections-based-on-local-cubemaps-in-unity https:/ ...
- 倍福TwinCAT(贝福Beckhoff)常见问题(FAQ)-人机界面如何让文本框可以输入,文本框可以编辑
选中一个文本框,然后在属性中双击输入配置的OnMouseDown事件(也可以是别的事件,但都是通过这种方法) 在左侧点击写变量,然后输入类型改成VisuDialos.Numpad(数字键盘方式), ...
- 打造你爱不释手的编辑器sublime3
首先去官网下载你的sublime3 让后安装好package control 去package control官网 安装好package control 安装emmet,和格式化工具 接着安装一个好主 ...