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的介绍和使用以后再讲。
百度自动驾驶量产计划提前到来,明年7月正式亮相
复杂背景下缺陷检测将Halcon实现转为OpenCV的实例
红米Note 7 Pro正式发布搭载骁龙675芯片支持硬件直出4800万照片
作为自动驾驶领头羊的Waymo 强势跨界到激光雷达行业
赛灵思:以全可编程使能5G 从源头引领市场
Xilinx公司的开发软件Vivado上的在线调试工具——ILA
多媒体音柱,室外蓝牙音柱
国芯思辰| GC080X(兼容AD9361)在无人机图传中的应用方案
美陆军网络司令部借助大数据分析防范内部威胁
qlineedit设置只能输入数字
5G助力下 网络安全迎来机遇的同时也遇到了很大的挑战
vivo新款智能手表通过工信部认证
华为麒麟9000跑分抢先看,全面升级性能炸裂
中国PCB企业汽车业务布局完善 汽车毫米波雷达是高端PCB的重要推手
FPC柔性电路板的优势和应用,FPC测试应用弹片微针模组更稳定
小米新机已通过3C认证该机将搭载1亿像素的后置主摄像头
MCHP推NVMe® 4016 SSD控制器 晶心科技推RISC-V超纯量多核处理器
考虑交易成本的三角套利方法和代码
大象急了也咬人:IT业大一统背后的“黑洞”
你好,客家体育俱乐部!