当前位置:   article > 正文

zedboard+ad9361 FPGA PL部分解读_ad9361vivado设计

ad9361vivado设计

因最近公司需要,借此机会和大家一起学习AD9361

制作不易,记得三连哦,给我动力,持续更新!

工程文件下载:纯硬件SPI配置AD9361   提取码:g9jy

-----------------------------------------------------

本文将对ADI官方提供的测试程序,zedboard+ad9361中PL部分进行解读(蓝色背景表示数据传输状态):

目录:

本文将对ADI官方提供的测试程序,zedboard+ad9361中PL部分进行解读:

一、vivado版本和芯片型号

二、从ad9361接收数据

1.1 ad9361

1.2 fifo 

 1.3 ila

1.4 pack

1.5 dma

1.6 interconnect 

三、发送数据到ad9361

四、发送/接收全过程缩减总结


一、vivado版本和芯片型号

vivado2015.4.2

zedboard+ad9361

二、从ad9361接收数据

1.1 ad9361

从ad9361接收数据:

全部都是从片外直接接到ad9361上面,然后接到ad9361输出引脚

 输出位四个16位的数据,i0,q0,i1,q1,以及他们各自的enable和valid(enable是控制信号,valid表示当前位有没有效)

小tips:在bd图中,左边对应输入,右边对应输出 

1.2 fifo 

ad9361中输出的数据,下一步传输到fifo输入端口

显然这个fifo不是一个标准的fifo,而是一个定制对的fifo:

输入时钟din_clk:是由ad9361模块输出,具体来说是由ad9361外部的差分时钟产生

输出时钟dout_clk:是由zynq产生的时钟,是一个贯穿整个模块的时钟

 由此可以看出来,这个异步fifo是用来解决数据跨时钟域问题的

 1.3 ila

数据经过fifo,把数据时钟同步到本地时钟后,然后下一步到达ila:

ila(Integrated logic analyzer):在线逻辑分析仪

可以用vivado在线逻辑分析仪进行数据分析

1.4 pack

数据经过fifo,把数据时钟同步到本地时钟后,同时下一步到达pack:

此模块功能为:将4路16位数据进行打包,打包成一路64位数据(因为要存到存储器中,所以要进行打包)

一般存储器存储位宽为:32位,64位,128位........

1.5 dma

数据经过打包之后,以fifo形式,64位数据进入dma:

 此模块功能为:将fifo形式的数据转化成AXI总线控制的形式,此时输出的master(谁发起控制谁是master)

1.6 interconnect 

数据经过AXI总线到达interconnect:

 axi总线经过interconnect转化一下协议,然后传送到PS里面

三、发送数据到ad9361

此过程实际上就上一个接收数据的逆向传输过程,具体不做介绍。

四、发送/接收全过程缩减总结

从AD9361接收数据:
axi_ad9361  -> ad9361的处理接口 
util_adc9361_adc_fifo -> 时钟源转化
util_cpack_v1_0[4路16BIT转成64BIT的FIFO接口] ->  
axi_ad9361_dac_dma -> [FIFO接口转成AXI总线]
axi_hp2_interconnect ->     [必备的]
S_AXI_HP2 : high speed port2 in PS .通过此通道可以直接(读)写DDR存储器。


发送数据给AD9361:
S_AXI_HP1 : high speed port1 in PS . -> 通过此通道可以直接读(写)DDR存储器。
axi_hp1_interconnect -> AXI总线协议转换[必备的]
axi_ad9361_dac_dma -> AXI总线转成FIFO接口,有axi_lite接口控制。
util_ad9361_dac_upack -> 64位数据总线转成4个16位数据。
axi_da9361 -> ad9361的处理接口

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/793345
推荐阅读
相关标签
  

闽ICP备14008679号