欢迎光临散文网 会员登陆 & 注册

xilinx FPGA 使用JESD204B与JESD204C协议

2022-12-16 15:58 作者:Zz嘻嘻zZ  | 我要投稿

以下内容与代码均为原创,仅发布于bilibili,禁止转载

工具

  • vivado 2021.2

  • vscode及cmake Verilog 等插件

  • 黑金ZU19EG开发板

  • ADRV9009 demo板

开发环境
  • ubuntu虚拟机+petalinux2021.2 (请给虚拟机分配32G以上内存,否则可能会闪退)


给虚拟机分配了48G内存
  • 相关IP核licience文件可在xilinx官网免费申请得到  https:///xilinx.entitlenow.com/AcrossUser/main.gsp?product=&tab=&req_hash=&

在此处选择所需的licience即可生成
生成的JESD204licience

文档

  • ug576-ultrascale-gth-transceivers.pdf

  • ug974-vivado-ultrascale-libraries.pdf

  • pg198-jesd204-phy.pdf

  • pg242-jesd204c.pdf

  • JESD204B-Survival-Guide.pdf

  • JESD204B-01.pdf

  • adrv9008-1-w-9008-2-w-9009-w-hardware-reference-manual-ug-1295.pdf

  • 黑金ZU19EG开发板原理图

    以上文档均为开源,在百度上都能找到

准备相关资料

  1. 先在xilinx官网上下载到上述提到个各个文档

修改ADRV9009驱动

  • 本设计的主要目的是调通JESD接口,故关于AD9009的控制部分可使用ADI提供的例程。在ADI的github上可以找到AD9009的linux驱动,但该驱动同时依赖了ADI自己的JESD模块,故我们在此使用ADI的裸机代码进行修改。在github中查找analogdevicesinc选择no-os然后下载该库

  • 在下载到的目录no-Os-master/projects/adrv9009/src下执行README中的指令,之后将adrv9009这个文件夹复制走。

  • 在复制走的adrv9009文件夹下创建CMakeLists.txt和文件夹src/ad9009,将所有代码放入sec/ad9009中,在src下创建main文件,删除原有的headless.c。在main下调用tailse_setup

CMakeLists.txt

main.cpp 

  • 修改devices/adi_hal/no-os-hal.c文件,将里面的spi控制函数替换为在linux下使用的spi控制函数,将gpio_adrv_sysref_req函数中的gpio操作也换为在linux下控制ad9528的函数,也删除原有内容,之后再做修改

README
  • 之后在VScode中尝试编译工程,根据提示修改相应的代码,直到编译通过

  • 修改后的代码已上传

    

其余部分有时间慢慢更新

修改AD9528驱动


关于Xilinx GTH


创建FPGA工程


创建JESD_PHY linux驱动


创建JESD204C IP linux驱动


关于JESD FRAMER DEFRAMER


编译LINUX


测试


xilinx FPGA 使用JESD204B与JESD204C协议的评论 (共 条)

分享到微博请遵守国家法律