Xilinx LVDS使用(以DAC AD9736展开)

博客地址:Xilinx LVDS使用(以DAC AD9736展开) | Infinite journey (infinite-zh.com)

Xilinx的vivado设计套件中,对于lvds的使用可以选择两种方式,一是使用原语,例如IDDR ODDR这类进行双边沿数据传输的原语,也有IBUFDS等差分转单端的原语,这些原语为LVDS的不同方式提供解决方案。

而我更多的是去使用selectIO这个IP核来实现lvds的传输。

一、LVDS介绍

LVDS(Low-Voltage Differential Signaling)低电压差分信号,这种传输技术可以达到155Mbps以上。

在FPGA上一般可以配置专门的bank作为lvds的用途。而其由于电压幅度(Ex: LVDS 2.5V)低于一般的(CMOS 3.3V),因此可以达到更高得到传输速度。

对于Xilinx FPGA的LVDS25接口,其最高速度可达600Mbsps。

二、AD9736

AD9736是ADI的一块14bit 1200MSPS的DAC。其功能框图如下

从功能框图中可以看到,AD9736为了匹配高速做好同步,芯片会给出一个时钟DATACLK_OUT,此外它还具有SPI控制的内部寄存器等。

在设计上,DATACLK_OUT给FPGA,FPGA给出数据与DATACLK_IN,而DAC_CLK则由pll锁相环芯片来产生,一般的FPGA的时钟输出没有pll锁相环来的干净,稳定。

通过阅读数据手册,可以知道通过寄存器的配置,可以配置AD9736为2x模式或者1x模式。具体如下图所示

在2x模式下,其内部会有一个插值滤波器,在两个数据间进行插值,从而使数据时钟可以只要300MHz即可。

此外数据手册也给出了编程的方案,如下图所示

根据上图,可以看出,其为DDR的传输模式,且为OPPOSITE_EDGE模式。

此外还有一种SAME_EDGE模式,如下图所示,

由于DDR的一个时钟会给出两个数据,可以从他给出的是时序图看出,他有两个数据D1 D2组合然后发送给DB输出,这会在后续SelectIO配置中看出来。

三、SelectIO配置

如上图所示,Interface Template采用Custom;

Data Bus Direction由于是DAC所以是output输出模式;

Data Rate采用DDR模式,此外SDR即为Single Data Rate,比较好的区分,就是看他传输时一个时钟会发送几个数据。DDR一个时钟会给出两个数据,而SDR只给一个。

External Data Width根据DAC是几位的配置成几位,此外selectIO可以通过Serialization Factor进行并转串,进一步提高数据吞吐量。

IO Signaling 则是差分以及LVDS 25

最后的Output DDR Data Alignment则为Opposite Edge。这个的选择前面已经讲过。

第二页如上图配置,其中Clock Signaling同样是差分 LVDS25电平标准

Clocking Options采用的是外部时钟,因为AD9736有一个DATACLK_OUT,我们将这个时钟输出作为该IP核的时钟,而右边DDR Clk Buffer则是选择相应的原语,将该时钟转化为时钟域的时钟

Clock Forwarding中选择Clock Forwarding,此时该IP核会输出一个差分时钟,这个差分始终与数据同步,供给AD9736的DATA_CLK_IN。

第三页则是一些时钟与数据的延迟,为了更好的做同步,这里没有配置。

当配置完整个selectIO,会发现他的数据输入有28位,而不是14位(DAC的位数),这是因为DDR是双边沿,所以他的数据是其位数的两倍。

四、仿真

计算可得结果符合预期。

五、实物

由于本篇为后续总结,所以实物展示就无了。

附、参考文献

1、【电路】LVDS 差分接口 - KevinChase - 博客园 (cnblogs.com)

2、AD9736 | 标准高速数模转换器 | 亚德诺(ADI)半导体 (analog.com)

3、xilinx IDDR原语时序图_u011600372的博客-CSDN博客

  • 5
    点赞
  • 93
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Xilinx LVDS ADC是指在Xilinx FPGA使用LVDS(Low-Voltage Differential Signaling)接口来接收ADC(Analog-to-Digital Converter)产生的数据。LVDS是一种高速差分信号传输技术,具有较低的功耗和抗干扰能力,适用于高速数据传输。LVDS接口可以通过FPGA的SelectIO资源进行配置,支持各种IO接口标准,并且可以达到几百兆甚至上千兆的接口速率。 在Xilinx FPGA中,可以使用多种资源来处理LVDS ADC的数据。例如,ISERDES(Input Serializer)、IDELAY(Input Delay)、OSERDES(Output Serializer)、ODDR(Output DDR)等资源都可用于LVDS ADC数据的接收和处理。这些资源可以在FPGA的IOB(Input Output Block)中找到,并且可以根据具体的需求进行配置和使用使用LVDS接口接收高速ADC产生的数据可以提供方便,并且可以通过配置FPGA的相关资源来实现。具体的器件使用方法可以参考Xilinx FPGA的手册。 在项目中使用LVDS接口时,可以根据具体的需求选择适合的资源进行配置和使用,以实现数据的高速传输和处理。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [LVDS高速ADC接口, xilinx fpga实现](https://blog.csdn.net/u010161493/article/details/76732970)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [基于FPGA设计的低成本四通道 1GSPS 示波器设计资料源文件(包含硬件+软件+文档)完整资料.zip](https://download.csdn.net/download/tianqiquan/88253962)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值