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的介绍和使用以后再讲。

FPGA开发要懂得使用硬件分析仪调试——ILA相关推荐

  1. STM32开发记录三: 硬件IIC调试(STHC3温湿度传感器)

    一.STM32_CubeMX配置 /* I2C4 init function */ void MX_I2C4_Init(void) {hi2c4.Instance = I2C4;hi2c4.Init. ...

  2. 【基于zynq的卷积神经网络加速器设计】(一)熟悉vivado和fpga开发流程:使用Vivado硬件调试烧写hello-world led闪烁程序实现及vivado软件仿真

    HIGHLIGHT: vivado设计流程: note: 分析与综合 和 约束输入 可以调换顺序 [基于zynq的卷积神经网络加速器设计](一)熟悉vivado和fpga开发流程:使用Vivado硬件 ...

  3. linux fpga 开发板,香蕉派BPI-F2S ,四核Linux工业级应用的开源硬件开发板,FPGA教学套装...

    香蕉派BPI-F2S 是 香蕉派团队 and 凌阳科技首次合作开发的一款工业级应用的开发板, 使用SP7021芯片设计.具有高性能,低功耗的特点; 内嵌 Linux Embed 系统,适合于语音图像处 ...

  4. FPGA开发全攻略—— 调试

    原文链接: FPGA开发全攻略连载之十三:FPGA实战开发技巧(12) 5.6 大规模设计的调试经验 在大规模设计的调试应该按照和设计理念相反的顺序,从底层测试,主要依靠ChipScope Pro 工 ...

  5. 全志A40i+Logos FPGA开发板(4核ARM Cortex-A7)硬件说明书(下)

    前 言 本文档主要介绍板卡硬件接口资源以及设计注意事项等内容,测试板卡为创龙科技旗下的全志A40i+Logos FPGA开发板. 核心板的ARM端和FPGA端的IO电平标准一般为3.3V,上拉电源一般 ...

  6. i.MX6ULL Linux阿尔法开发板硬件与调试

    文章目录 1. 硬件 1.1 驱动与开发软件 1.2 拨码开关 2. 调试与测试 2.1 登录开发板 2.2 输入控制 2.2.1 查看按键所对应的输入事件 2.2.2 查看按键触发事件打印信息 2. ...

  7. VHDL编写多功能数字钟,spartan3 FPGA开发板硬件实现-学习笔记

    VHDL编写多功能数字钟,spartan3 FPGA开发板硬件实现-学习笔记 多功能数字钟硬件测试视频: https://www.bilibili.com/video/av62501230 1.数字钟 ...

  8. FPGA的设计艺术(8)最佳的FPGA开发实践之严格遵循过程

    文章目录 前言 如何花费更少的时间去调试? 为什么使用过程? 需要多少过程? 最小的过程 明确需求 数字设计方案 逻辑设计 功能仿真 板上验证 版本控制 编码指南:简短的技术组合,可最大程度地减少错误 ...

  9. 【FPGA-F3】阿里云FAAS平台,极大简化FPGA开发部署流程

    摘要: 阿里FPGA云服务器平台FaaS(FPGA as a Service)在云端提供统一硬件平台与中间件,可大大降低加速器的开发与部署成本.普惠开发者 FPGA (现场可编程门阵列)由于其硬件并行 ...

最新文章

  1. cmd批处理命令大全1
  2. R语言-时间序列-arima模型-forecast、tseries包
  3. 20211108 微分跟踪器
  4. Flink 学习(一)
  5. Ceres Solver安装
  6. Activity之间的数据传递—实现Parcelable接口
  7. 三星s8刷机包android11版本,三星GALAXY S8(G9500)最新安卓8.0固件rom刷机包
  8. python 显著性检验_Python SciPy 统计显著性检验(Statistical Significance Tests)
  9. python从excel中读取数据然后随机选一个_从Python读取Excel复选框
  10. 3Dmax有哪些方法设置添加VR材质
  11. 统计学期末重点讲解(医学)
  12. 基于银河麒麟 V10 系统安装和卸载 DM8 数据库
  13. 如何简单又好看地美化你的Ubuntu界面
  14. python Excel表序号(leetcode)
  15. MTK平台替换签名key方法
  16. NUL与NULL的区别
  17. IT男如何把妹自如?看这个就知道了
  18. 找不到该项目,请确认该项目的位置
  19. 大面积卫片,无人机正射影像DOM修饰及无缝拼接快捷工具——PS
  20. bobo-browse

热门文章

  1. 2021年春季学期-信号与系统-第三次作业参考答案-第十一道题
  2. 灵动微电子逐飞 智能车支持计划汇总
  3. 清华大学教评中心 <jpxzx2019@mail.tsinghua.edu.cn> 12月24日9:00-11:10试讲评审材料(庞观和朱峰老师)
  4. npm install 报错 汇总_R包安装报错的日常
  5. python安装方法32位_Python-3.9.0 安装教程【64位/32位】
  6. java正则表达式及api_JAVA常用API:正则表达式regular expression
  7. JavaScript 的使用简单总结
  8. 软件项目管理 用户测试,1对软件研发过程中用户需求研发设计项目测试交付实施测试等流程监督管理.doc...
  9. i基准指令集 mips_mips addiu
  10. php substr 去掉前n位_用PHP是如何做图片防盗链的