FPGA与AD9371的数据交互

AD9371属于零中频架构,接收侧直接通过本振下边到零频(基带);

接收器带宽(并非射频前端的模拟带宽):7.5MHz 至 100MHz;

带宽的定义:从数据接口侧,能完整的解析或者解调频谱的范围;

ORX 属于观察通道,用于TX发射的相关指标校正,PA线性度的调整(DPD);

AD9371接收侧有4个Lane是204B的接口,两个Lane用于RX,两个Lane用于ORX;

AD9371发送侧则是4个Lane用于TX;

时钟是只需要提供一路device clock 即可;经device clock就能够产生采样时钟等;

时钟芯片给AD9371提供 sysref 和 device clock;

时钟芯片同时给AD9371和FPGA提供SYSREF;

根据AD9371的数据手册和典型应用,可以明确两点:AD9371内部包含处理SYSREF信号的电路,但它通常被设计为接收外部SYSREF,而不是作为主要来源向FPGA提供。

在实际系统设计中,由专用时钟芯片(如AD9528)同时向FPGA和AD9371提供SYSREF信号,才是确保JESD204B链路稳定工作的标准且推荐做法

AD9371的软件设置

设置采样率和通道使能:

设置校准方案:

204B接口使能方案:

RX通道:

TX通道:

ORX通道:

FPGA Block Design IP设置:

ORX和TX :F=2;

RX:F=4;

2个Lnae给RX ,2个Lane给ORX;

RX的线速率计算:(M*122.88*16/0.8)/L = 4915.2Mbps,M=4;L=2;

ORX的线速率计算:(M*122.88*16/0.8)/L = 2457.6Mbps,M=2;L=2;

链路时钟为122.88M;

TX侧需要一个时钟周期送进入两个采样点,所以TX侧时钟为61.44Mhz;

如果要把数据恢复到122.88M,可以增加一个FIFO进行时钟域变换,由61.44M变为122.88M;

RX和ORX为122.88M;

BD:

字符对齐:

复位:

此处的tx_sync 由ad9371送进来,

由高速接口给AD9371,因为接收serdes方需要提供sync,所以ad9371会输出tx_sync给到FPGA的204b的 TX端;

输出 rx_sync 和orx_sync 给到ad9371:

利用 IBUFDS,OBUFDS进行差分信号与单端信号转换;

通过顶层给出到ad9371,或者由ad9371给进来:

Jesd204b phy IP 的配置:4.9152G对应参考时钟输出122.88M;

由于ad9371中204b接口orx配置为2457.6M,对应时钟频率应该是61.44M,此部分就需要去初始化单独的线速率,因为IP只能配置整体4个Lane的线速率,配置ORX就只能在软件侧通过AXI接口去配置ORX的两个Lane;

RX部分的Framer映射Lane0 和 Lane1;

FramerADC_Xbar = 0xB1;指图16从Rx 通过sample crossbar 映射到framer ADC;

高速接口的映射 serializerLaneCrossbar = 0x08;对应图16右侧的映射

ORX部分的Frame映射:(ORX线速率为RX的一半)

FramerADC_Xbar = 0xB1;

serializerLaneCrossbar = 0x40;映射到Lane2和Lane3;

因为xilinx的jesd204b的接收IP 是低字节先输出,那么AD9371是ADCX15:8先出来,就需要进行高低字节转换,而jesd204b 接口位宽64位,正好是{Q2,I2,Q1,I1}, 122.88M,两个通道的4个ADC数据;

对于ORX观测通道是在122.88M时钟下输出64位,每个时钟输出两个采样点,

{Q1(n+1),I1(n+1),Q1(n),I1(n)},因为orx只有2个ADC,所以输出数据应该是每隔一个122.88M时钟输出两个采样点。但是ADI为了方便ORX和RX通道相同的线速率,直接将ORX的采样数据进行2倍过采样输出,也就是变成了122.88M*2输出给用户端;需要设置ORX通道的framer的时候进行设置。

映射关系:

相关推荐
狂奔蜗牛(bradley)1 天前
拒绝SOEM黑盒!死磕EtherCAT主站:ARM+FPGA架构、DC同步与状态机修复等,50+篇实战开发文档全公开
arm开发·fpga开发·架构
XMAIPC_Robot1 天前
CODESYS 实时控制 + RK182X 大模型算力扩展|RK3576 工业边缘控制器设计
人工智能·fpga开发·机器人·rk3588+fpga
女神下凡1 天前
芯参谋(31):SPI NOR Flash 电路设计指南
arm开发·单片机·嵌入式硬件·fpga开发·设计规范
学习FPGA的电气小兴兴1 天前
基于FPGA的CORDIC旋转模式实现sin和cos运算_采用EGo1板卡上板验证【FPGA数字信号处理第5讲】
fpga开发·信号处理·数字信号处理·verilog·cordic·ego1·fpga设计入门与提高
博览鸿蒙7 天前
FPGA开发使用的语言
fpga开发·fpga
明德扬7 天前
机器人多摄像头如何做FPGA多路视频聚合?
学习·fpga开发·fpga
JoYER_cc8 天前
FPGA 调试实录:LED 闪烁程序从踩坑到仿真验证的完整经验总结
fpga开发
ktd0078 天前
复旦微开发环境搭建流程备忘录
fpga开发
ERROR:998 天前
陈工,试试Agent开发FPGA
fpga开发
威嵌神州8 天前
复旦微 FMQL100TAI 开发 8 问:仿真器、系统、接口高频问题解答
人工智能·嵌入式硬件·fpga开发