ADC之LVDS接收数据并转换

一、知识点:

1、在FPGA设计过程,尤其是算法实现时hi,有时往往需要选取某个变量的动态范围地址,而verilog中常规的向量标识方法a[MSB:LSB]往往会发生错误,在此可借用a[BASE :- WIDTH]的方式实现。
a[BASE+:(/-:)WIDTH]

BASE:基地址
WIDTH:数据宽度,固定。

2、ADC选用EV10AQ190,10bit,选用单通道模式,

传输接口:40对LVDS差分线,每个通道10对;

传输顺序:每个通道10对线中把同一时刻的第n位数据拼起来表示当前通道的10Bit数据。其实就是把ADC数据按照并行的方式传输过来(图1)。

LVDS传输时钟ADR=clk/4(图2),如果外部选用2.5GHz时钟,LVDS传输时钟=625MHz,我们选用1.2G时钟,LVDS传输时钟=300MHz,LVDS的数据速率=2ADR=600MHz,速率太快,我们系统选用的时钟肯定不能这么高,根据后面信道化要求,选用150MHz作为系统时钟,此时涉及到LVDS数据的接收和转换。实际上我们需要把600MHz速率的并行的数据转换成150MHz并行的数据。

                                                            图 1

 

3、LVDS传输需要的模块

串转并 流程

 A 差分转单端IBUFDS

B 数据对齐 延时 IDELAYE2

C 串转并 ISERDESE2

4、LVDS串并转换并行线路数量和时钟关系

一般在确定某一个方时钟后,根据其中一方的数据位数,确定另一方的位数和时钟。

  串行时钟\f1 串行数据位数 并行时钟\f2 并行数据位数\with2
  300MHz   150 4
  450MHz 12 150 6

f1*2=f2*with2,为了减少系统时钟的数量,串行或并行时钟也会根据系统中现有的时钟确定。

比如本项目中ADC数据速率是2.4GHz,在V71中将ADC数据进行16路信道化处理,此时送入信道化的数据速率是2.4G/16=150MHz,另外由于ADC通过LVDS传输时的随路时钟是300MHz,所以300*2/150=4,串行转换为并行后采用4根并行线。

二、ADC数据处理代码

代码解析,

module Serdes4chan
 #(parame
  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

朝阳群众&热心市民

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

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

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

打赏作者

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

抵扣说明:

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

余额充值