DSP与FPGA之间EMIF接口之DSP参数配置下板测试问题总结

FPGA这部分很简单的一个参数配置模块,本来以为一两次测试就能搞定确认,结果用了一天的时间才成功,中间出了好多奇葩问题,这里总结一下,希望有所借鉴,下次能长点记性。

现象一:配置参数模块输出一千多个寄存器数据,我想要一次性全部抓取查看,一千多个数据不想用手动ila IP核去生成一千多个太麻烦。于是用了mark_debug的方式,结果编译速度极慢还一直报错

原因:无论是mark_debug方式还是生成ila IP核手动的方式都最多大概256个信号的限制,或者后期我来确认下上限值,所以我没办法一次性全部抓取查看。

解决办法:将mark_debug改成16个寄存器就不报错了,这种方法编译极慢,所以后面又改成了手动ila IP的方式,一次读取48个寄存器查看

现象二:首先DSP通过EMIF接口向我FPGA发送配置参数,结果我的ila波形显示输入数据一直为初始化默认数据不变,而不是DSP发送给FPGA的真实数据。

原因:DSP初始化后只发送一次配置参数所以抓不到真实数据。

解决办法:要求DSP人员将配置参数数据1ms为周期循环发送,这样我就可以正常读取配置参数数据了。

现象三:配置参数数据的最后一个时校验和取反数据,我的校验和验证失败,校验信号报错一直拉高,我闷闷的找自己的原因,以为是自己哪个环节算错了

原因:偶然跟DSP人员沟通,发现DSP那边给的校验和取反数据是不对的,没按照协议规定指定地址累加和

解决办法:DSP人员修改后不再报err错了

现象四:EMIF接口进来的数据为DSP真实发送数据,但我的模块内部数据依然是初始化配置数据不变

原因:FPGA配置参数模块代码的复位信号用反了,导致一直在复位状态里,参数无法传递。

解决办法:将外部传递的复位信号取反用~符号

现象五:内部数据也传递进来,但抓取的数据发现有的不正确,有的正确

原因:ila 抓取48个寄存器太多,导致输出异常波形数据

解决办法:将ila 波形数据抓取改成16个寄存器后,输出波形数据恢复正常

至此测试完毕。中间还有些小细节不再赘诉。

相关推荐
Saniffer_SH7 小时前
NAND技术(二):从 Channel、Die/LUN、P/E Cycle 到 LDPC,一次讲透 NAND 里那些最容易误解的概念
人工智能·驱动开发·嵌入式硬件·测试工具·fpga开发·计算机外设·压力测试
千寻xun7 小时前
二、实战篇-NVME SSD控制之ZYNQ实现(四)
fpga开发·nvme·nvme ssd
ALINX技术博客8 小时前
【黑金云课堂】FPGA技术教程Linux开发:系统进阶-PS DMA
linux·fpga开发
喵喵苗11 小时前
FPGA Verilog 入门避坑:寄存器与锁存器的本质区别 & 为什么时序逻辑缺 else 不会生成锁存器
fpga开发
Thinker36112 小时前
笔记本外接创新5.1声卡实战:M.2转PCIe软排线方案 vs 雷电扩展卡方案对比
fpga开发·声卡·笔记本外接pcie·显卡坞
传感器与混合集成电路16 小时前
136通道采集模块SPI接口设计:协议结构、时序要求与多模块级联扩展方案
fpga开发
I'm a winner1 天前
基于Xilinx FPGA的LVDS高速串行通信系统(四)--数据测试【文末源码】
fpga开发
ALINX技术博客1 天前
AMD MoP 封装策略解读 | HBM 大热,为何 AMD Versal 系列反选 LPDDR5X?
fpga开发·fpga·amd·versal
zlinear数据采集卡2 天前
从万用表的6步调零到硅片级微秒自校准:硬核拆解LHAMP188的宽压轨到轨与零漂移实战
arm开发·stm32·单片机·嵌入式硬件·fpga开发
Rambo.xia2 天前
AXI-Stream反压与背靠背传输——TREADY反压丢帧、TDEST路由错误、反压死锁,流式数据一反压就出事
fpga开发