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,安装方 ...
随机推荐
- Ubuntu 14 下,命令行终端显示短路径
Ubuntu的终端命令行默认是长路径,即把路径深度全部显示出来,操作起来不是很方便,下面介绍命令行显示短路径的操作: $ vi ~/.bashrc 找到PS1= 的行,将\w(小写)改成\W(大写 ...
- mybatis入门基础----动态SQL
原文:http://www.cnblogs.com/selene/p/4613035.html 阅读目录 一:动态SQL 二:SQL片段 三:foreach 回到顶部 一:动态SQL 1.1.定义 m ...
- React脚手架
所谓脚手架,是指一套基础的开发环境,你只需要简单的配置或者无需配置,就可以直接开发自己的业务代码,而无需劳神在搭建环境上. 比较出名的就是facebook自己出的的脚手架:create-react-a ...
- iOS:使用集成的支付宝SDK的支付流程
基本步骤: 1.先与支付宝签约,获得商户的ID(partner)和账号ID(seller),这一部分主要是又公司负责: 2.下载相应的公钥私钥文件,用来给签名进行加密: 3.下载支付宝集成的SDK,网 ...
- 【Hadoop】Hadoop RPC框架线程模型
1.线程模型 2.参考资料: 源码级强力分析hadoop的RPC机制:http://weixiaolu.iteye.com/blog/1504898Hadoop RPC框架:http://blog.c ...
- vue2 router-link to
<template> <div> <nv-header></nv-header> <div class="artlist"&g ...
- 可伸缩Web架构与分布式系统(2)
开源软件近年来已变为构建一些大型网站的基础组件.并且伴随着网站的成长,围绕着它们架构的最佳实践和指导准则已经显露.这篇文章旨在涉及一些在设计大型网站时需要考虑的关键问题和一些为达到这些目标所使用的组件 ...
- B11:解释器模式 Iterpreter
给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子. UML: 示例代码: abstract class Expression { abstract pub ...
- 游戏AI的综合设计
原地址:http://www.cnblogs.com/cocoaleaves/archive/2009/03/23/1419346.html 学校的MSTC要出杂志,第一期做游戏专题,我写了一下AI, ...
- 设计模式学习笔记--备忘录(Mamento)模式
写在模式学习之前 什么是设计模式:在我们进行程序设计时,逐渐形成了一些典型问题和问题的解决方式,这就是软件模式:每个模式描写叙述了一个在我们程序设计中常常发生的问题,以及该问题的解决方式:当我们碰到模 ...