全球最实用的IT互联网信息网站!

AI人工智能P2P分享&下载搜索网页发布信息网站地图

当前位置:诺佳网 > 电子/半导体 > 可编程逻辑 >

在Vivado中使用逻辑分析仪ILA的过程

时间:2023-06-29 16:08

人气:

作者:admin

标签:   逻辑  使用  分析  Vivado   

导读:FPGA综合出来的电路都在芯片内部,基本上是没法用示波器或者逻辑分析仪器去测量信号的,所以xilinx等厂家就发明了内置的逻辑分析仪。...

FPGA综合出来的电路都在芯片内部,基本上是没法用示波器或者逻辑分析仪器去测量信号的,所以xilinx等厂家就发明了内置的逻辑分析仪。

在vivado中叫 ILA(Integrated Logic Analyzer),之前在ISE中是叫ChipScope。基本原理就是用fpga内部的门电路去搭建一个逻辑分析仪,综合成一个ILA的core核伸出许多probe去探测信号线。

下面逐步讲解在线debug的过程,主要侧重ILA中clock domain的正确使用。

第一大部分 添加被测信号线

通常有两种方式 :

1、在代码中添加这么一句 ( MARK_DEBUG="TRUE" ) 。不管是reg还是wire型的,接口信号或者内部变量,都可以添加。

图片

2、在Setup Debug过程中,直接添加Netlist

图片

我一般是,常用信号都加DEBUG标识,临时测量的就手动加net,需要的就加,不要的就删。

第二大部分 生成ILA模块

1、完成综合之后,Open Synth Design,点里面的Set Up Debug

图片

2、按需要选一个

图片

3、进去之后,就可以添加/删除被测net。如果提示没有参考时钟,右键选择一个合适的即可

图片

4、选择FIFO深度。这个深度可以选很大,每个被测信号都会得到这么大的一个FIFO,所以逻辑分析仪非常占用bram资源!合理设置触发条件,FIFO就不用选太大的。

图片

5、我这里再跳回上一步选时钟域的部分,结合上面的FIFO来说明选取clock domain的重要性。

时钟域的选择会影响两大方面:生成几个ILA核,以及能探测多少时间。

1) 选了3个时钟就一定会生成3个ILA核,毕竟给D触发器的clk不一样嘛;

2) FIFO的参考时钟不同,直接决定FIFO多久会被存满;

比如我这个设计中有3个时钟进来 50mhz 20mhz 以及8mhz转400khz给IIC用。如果IIC的参考50mhz,那scl sda的FIFO瞬间就存满了,触发后FIFO的任务完成了,但是我们连一个信号跳变都看不到。如果参考400khz的,那从起始条件到8bit数据到停止条件都能抓到了。

FIFO存数据是参考信号时钟的,有一拍clk才会存1bit数据。

选择合适的clock domain非常重要,因为最终影响到资源的占用。ILA核的个数,FIFO的个数(经常会出现要抓500个甚至1000个信号。为什么这么多!比如你32位的地址,32位的总线,还读写分开,还有好几个,慢慢就聚集多了,fpga本来功能就是采用并行总线提高速度的原理)。

比如下面这个设置,铁定会生成3个ILA核,分3个波形界面显示。其实如果资源确实够用的话,建议按照大功能分开,这样能显示在不同界面上,然后各自设置触发条件。

图片

图片

第三大部分 信号波形

1、连上jtag,open目标板,然后烧写bit和ltx文件。

图片

2、设置触发条件。这里就跟示波器是一样的用法了,可以run也可以trig。

图片

3、右键有很多功能:short显示名 设置颜色 进制转换 分组 等等,可以琢磨一下。

图片

4、举例子

下面被测的信号是20mhz的clk,但是显示的波形却不是均匀方波!为什么?因为是用50mhz的时钟采的,就是这样的,没有错。所以再说一遍,clock domain的选择非常重要。

图片

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信