使用在线路线逻辑分析仪ILA调试模块的小技巧
在CSDN这个BLOG中我详细给出了如何在VIVADO中插入在线逻辑分析仪进行信号获取。这里再记录一下自己用的一个小技巧: 实例化一个统一的多款口大位宽的ILA,在多处使用。
我们在一个模块内插入ILA要测试的端口数和位宽都不一样,根据每个需求做生成一个ILA显然工作量有点大,也生成了那么多ILA只用一次调试完就丢弃的化,项目文件也就比较乱了。我们可以先实例化一个多个端口,比方说16个端口,在模块中最大的寄存器是64BIT,我们就实例化一个16个端口,每个端口都是64位的ILA,如下图
实际使用时候我们可以做一层包装:
module ila_64x16 (
input clk,
input [63:0] in0,in1,in2,in3,in4,in5,in6,in7,in8,in9,in10,in11,in12,in13,in14,in15
);XIL_ILA_64x16 XIL_ILA_64x16_i(.clk_0(clk),.probe0_0(in0),.probe1_0(in1),.probe2_0(in2),.probe3_0(in3),.probe4_0(in4),.probe5_0(in5),.probe6_0(in6),.probe7_0(in7),.probe8_0(in8),.probe9_0(in9),.probe10_0(in10),.probe11_0(in11),.probe12_0(in12),.probe13_0(in13),.probe14_0(in14),.probe15_0(in15) );
endmodule
这样目的是为了以后自己可以根据不同平台来修改这些ILA代码,当然也可以直接修改这个模块来DISABLE这些ILA的实现。
我在使用的时候只要是用到不大于16个端口每个端口位数不大于64的,都可以实例化这个ILA来实现。如下:
module sdrpi_gpsdo_ether_socket_eeprom (input clk_125m, rst,// clk_40m,
input clk_125m_eth,rst_eth,// iic eeprom
input scl_i,
output scl_o,scl_t,
input sda_i,
output sda_o,sda_t,// gpsdo interface
output dac_nsyc,dac_clk,dac_din,
output gps_pl_led,
input pps_in ,
input gpsdo_model ,//phy interfaceoutput [7:0] phy_tx_dout ,output phy_tx_err,output phy_tx_en,input phy_tx_clk,output phy_gtx_clk,phy_reset_n,input [7:0] phy_rx_din,input phy_rx_dv ,phy_rx_clk, // sokect interface
input [7:0] socket0_pl2net_d,
input socket0_pl2net_wr,
output socket0_pl2net_full,output [7:0] socket0_net2pl_d,
output socket0_net2pl_wr,input [7:0] socket1_pl2net_d,
input socket1_pl2net_wr,
output socket1_pl2net_full,output [7:0] socket1_net2pl_d,
output socket1_net2pl_wr,// eeprom interfaceoutput eeprom_idle ,input wr_req,input [7:0] wr_addr,input [63:0] wr_u64,output wr_done ,// eeprom interface input rd_req,input [7:0] rd_addr,output [63:0] rd_u64,output rd_done ,output do_halt ); ila_64x16 ila_64x16 (
.clk( clk_125m_eth ),.in0( my_rcv_port_a ),
.in1( socket0_net2pl_wr ),
.in2( socket0_net2pl_d ),
.in3( a_rcv_src_ip ),.in4( my_rcv_port_b ),
.in5( socket1_net2pl_wr ),
.in6( socket1_net2pl_d ),
.in7( b_rcv_src_ip ),.in8( 123 ) ,
.in9( ) ,
.in10( ) ,
.in11( ) ,
.in12( ) ,
.in13( ),
.in14( )
);
这里我们看到1位的和8位的数据都直接接在了ILA的接口,这是VERILOG语法语义所允许的,高位直接补0;另外一些没有用到接口直接空置了,或者都没有写出来(比如in15就没有写出),(或者如in8端口在空置的端口写上每次编译不同的数字ID,好在ILA中确保调试的是对应的编译结果)。
下图是ILA分析仪结果,
这里不便就是在16进制显示时候多了若干0以补齐64位,可以设置成signed 或者unsigned的显示方式就好了。另外设置采集触发时候要可以设置成UNSIGNED 的表示,对1位的触发条件就根据需要写0或者1就行.
这样有了这一个通用的模块,就可以多出来例化调用了,非常方便。
在进行设计的时候要把自己考虑在内,自己的感受自己的工作量,因为毕竟自己不是一个机器人。有了这样一模块就可以不必写多个ILA模块,让自己更多精力放在要解决的问题上,少做无用功进度就快了,用更多时间来琢磨优化和规范设计,总结思路。
使用在线路线逻辑分析仪ILA调试模块的小技巧相关推荐
- 【软件开发底层知识修炼】十八 快速学习GDB调试五 使用GDB进行调试的一些小技巧
上一篇文章学习了如何使用GDB进行函数调用栈的查看:[软件开发底层知识修炼]十六 快速学习GDB调试四 使用GDB进行函数调用栈的查看 本篇文章是GDB调试快速学习系列的最后一篇.将综合前几篇文章做一 ...
- 如何在 SAP UI5 应用中集成第三方库 :一个在移动设备上查看 Web 应用打印调试信息的小技巧
这是 Jerry 2021 年的第 43 篇文章,也是汪子熙公众号总共第 320 篇原创文章. 做 Web 开发的程序员,无论使用 SAP UI5,还是 Angular,React,Vue,每天都离不 ...
- OD调试中的小技巧--一点点总结,大佬请绕行
一.找到OEP 这个本来没那么复杂,主要是之前实在是没有接触过,粘一下大佬的内容,最最基本的是单步调试法,其他的都是再这个基础上进行丰富的.内容复制如下 ======================= ...
- Windows Mobile中使用WinCE驱动调试助手的小技巧
驱动调试助手是针对Windows CE做的,在Windows Mobile中使用会有一些问题,最主要的就是其菜单栏被Windows Mobile系统的任务栏给遮住了,导致相应的功能无法正常使用,如下图 ...
- chrome调试js的小技巧
原文链接:http://www.cnblogs.com/liyunhua/p/4621937.html $ $_命令返回最近一次表达式执行的结果,功能跟按向上的方向键再回车是一样的,但它可以做为一个变 ...
- 在地址栏调试js(小技巧)
还真才学到 javascript:eval('debugger;Myfunction()') javascript:alert(eval('debugger;Myfunction()')) 转载于:h ...
- JS调试的一些小技巧
1:在js或者jsp中加上debugger;页面刷新可以进断点 2:在google浏览器中可以先给js打上断点,浏览器右侧的call stack可以跟踪调用方法的js
- scrapy没有运行结果_关于Scrapy爬虫项目运行和调试的小技巧(下篇)
前几天给大家分享了关于Scrapy爬虫项目运行和调试的小技巧上篇,没来得及上车的小伙伴可以戳超链接看一下.今天小编继续沿着上篇的思路往下延伸,给大家分享更为实用的Scrapy项目调试技巧. 三.设置网 ...
- Vivado下的集成逻辑分析仪ILA 入门
刚刚开始学习Zynq 7000的时候,看到别人问ILA的问题时,说是集成逻辑分析仪,我觉得这是一个好东西,我一定要学会它. 我是买了黑金的AX7010, 后来换成AC7010,开始学习Zynq 700 ...
最新文章
- Python,OpenCV中的K均值聚类——K-Means Cluster
- 配置telnet和SSH
- Java基础之Hibernate
- charles 代理手机连不上网_Charles设置代理后,手机无法上网
- Quartz作业调度框架及时间表达式的含义和语法
- Cortex-M3复位序列
- php访问对象的成员,如何使用PHP从JSON访问另一个对象内的类的成员
- Intouch高级报警(报警筛选)
- java实验指导书 王立新,java实验指导书
- 2017网络安全方向学习总览(转载供本人查阅而已)
- 微信网页调试8.0.19换掉X5内核,改用xweb,所以x5调试方式已经不能用了,现在有了解决方案
- [redis]Redis ZSet排序问题(排名实现按时间顺序排布)
- 3秒测试:组建一个网络,需要几个硬件设备搞定?
- ios打包ipa 命令安装ipa到iphone
- 非关系型数据库NoSQL的崛起
- python中mainloop添加背景_Python实例讲解 tkinter canvas (设置背景图片及文字)
- 重复的事情用心做!感悟
- SAP 同公司不同工厂间的库存调拨
- 程序员为什么要写技术博客?都在哪些平台呢?
- win10计算机删除用户密码,win10系统彻底清除电脑上存储的用户名和密码的步骤...
热门文章
- linux添加源ip路由命令,linux添加ip、路由相关命令
- MySQL安装配置教程(超详细图文教程)
- 转载如何让网站顺利通过W3C验证
- 给定两个均不超过9的正整数a和n,要求编写程序求a+aa+aaa++⋯+aa⋯a(n个a)之和。
- centos设置BOOTPROTO none和dhcp有什么区别
- 使用Python制作跳舞小熊的动态二维
- Shell入门(六)之Shell pipe(管道)
- 化学专业大二转码的抉择之路!
- XGBoost算法模型
- springboot+java二手手机回收平台系统