ZYNQ实验 FIFO读写实验(如何平衡跨时钟域的读写)

文章讲述了在ZYNQ平台上,通过AXI-streamFIFO和AXI4-streamDataFIFO实现PS与PL间的数据转发,探讨了PS端写入速率慢导致的输入输出速率不匹配问题,以及如何通过调整FIFO大小和修改输出速率来解决。最终强调了在高速应用中使用DMA的重要性及异步数据传输中的速率理解和设计策略。

一、实验介绍

基本原理参考文章:ZYNQ实验—IQ调制实现SSB PART1,本实验将实现参考文章中的PS-PL间的数据转发功能。实验中PS端的数据存在DDR中,PS端通过AXI-stream FIFO将数据转变为流模式输出。

实验使用AXI-stream FIFO和AXI4-stream Data FIFO两个IP核希望实现以下功能:

  • AXI接口转换为AXI Stream接口
  • AXI Stream 流的异步读写

二、实验设置

实验框图

FIFO写入时钟200MHz,读出时钟50MHz,FIFO大小4096*32bits,实验中DDR循环输出实验数据,利用示波器观察输出波形分析结果。
注意:这里的写入时钟只是FIFO的写入时钟并不等于PS通过AXI写入FIFO的时钟速率
在这里插入图片描述

测试数据

Matlab测试数据生成

fs_au  = 1024E4;      % 实验中以1024个数据为一包数据,因此fs_au为1024的整数倍时,在ZYNQ端输出为整周期数据
t = 0:1/fs_au:0.002;  % 生成序列,步进为1/fs_au

% 生成正弦信号
f = 1E5;              % 正弦信号频率为100kHz
x = sin(2*pi*f*t);
y_hilbert=fi(hilbert(x), 1, 16); %定点化数据

y_real=real(y_hilbert);
y_imag=imag(y_hilbert);

% 绘制正弦信号
plot(t, y_real);
xlabel
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

伊丽莎白鹅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值