type
Post
status
Published
date
Jul 6, 2024
slug
summary
tags
调试记录
category
FPGA
icon
password
上次编辑时间
Nov 13, 2024 12:50 PM
AI summary
这篇文章记录了关于PCIe和DVB-S调试仿真的过程。文章介绍了工程的总体结构和数据处理流程,以及遇到的一些问题和解决方案。其中包括文件格式问题、FIFO输出信号异常、数据反序等。通过修改模块和调整连接,最终成功输出数据并进行图形绘制。
工程的总体结构如上所示,数据通过XDMA的M_AXIS_H2C接口写入数据。由于写入数据的位宽为128bit,工程中信号处理部分的输入位宽为8bit,因此加入AXISDataWidthConverter模块将位宽从16BYTE转为1BYTE,并写入FIFO,使用AXIGPIO模块读取FIFO的almost full信号,如果FIFO被写满,almost full被拉高,就停止写入数据。读取DVB-S生成的QPSK信号时,由于经过了升余弦滚降滤波和调制,信号的位宽已经较大,为了降低复杂度选择将调制信号高位补零至128bit后经M_AXIS_C2H接口输出到Host主机。

写入文件的格式问题

在Win系统中,

7.6号测试

H2C端的FIFO输出的M_AXIS_tvalid信号一直为低电平,导致无输出的数据

在BD文件中本来是使用H2C端的FIFO输出的M_AXIS_tvalid信号作为信号处理模块的使能信号使用
 
后面直接使用Constant模块给DVBS提供使能信号后顺利输出数据,可以写入到主机的文件中
 

7.7

输出的16个BYTE数据是反序的,FPGA中输出总线的低位数据读取到TXT文件后会变到高位去,目前还不确实是 BIT反序还是BYTE反序
 
将DVBS中的模块修改为:
notion image
PolarityChange模块将输入的0和1转化为10000001和10001111,然后通过AXISmerge模块将PolarityChange0的输出放到128bit的低八位,PolarityChange1的输出放到128bit的[23:16]处。
notion image
输出结果如上,可以看到读取数据的时候是按BYTE读取,然后低位的数据放到TXT文件的一行的前面,高位在后面。
 
加上升余弦滚降滤波和调制后,时序崩了
notion image
notion image
可以发现问题出在乘法器上,将流水线设置成IP推荐的等级即可
notion image

7.9

顺利读取到数据,但是画出的图和vivado仿真的图差距有点大

7.10

reserve模块功能正常
notion image
 
经过检查发现如果直接写入和读取数据,不经过信号处理的话,主机读取数据并不会把输入的128bit的低位放到txt文件的一行的前面,推测可能是因为fifo的wrcnt和rdcnt连接不对
notion image
尝试删掉LSB2MSB模块,不需要反序输入,再将靠近H2C的fifo的rdcnt连接到axigpiord,靠近C2H的fifo的wrcnt连接到axigpiowr、
经过测试,输出的数据全为0
 
发现两个fifo都只有wrcnt的引脚上有信号,因此尝试将靠近H2C的fifo的wrcnt连接到axigpiowr,靠近C2H的fifo的wrcnt连接到axigpiord
notion image
仍然需要添加BYTE反转的模块
初步成功
notion image