ev10aq190a采集电路图_解读ADC采样芯片(EV10AQ190A)的工作模式(单通道模式)

本文详细解读ADC采样芯片EV10AQ190A的单通道模式,阐述其内部4个核的时钟关系,时序图及采样过程。通过4个核的同步采样,实现高频率的采样率。文章还探讨了数据同步环节,展示了同步时钟和数据寄存器的同步策略。
摘要由CSDN通过智能技术生成

有了上两篇博文的铺垫,双通道模式以及四通道模式,单通道模式也就很容易理解了,并且我已经想好了下一篇博文要写什么了。

直接看框架图吧:

d24d1b2777299a3ad8360dbcd5afae50.png

直接说重点,任意一个输入端口输入的模拟信号同时进入ADC芯片的四个核(也可以理解为4个通道),这四个核的时钟输入是由内部时钟电路(Clock Circuit)产生的,这四个时钟之间是什么关系呢?

首先这四个时钟频率一致,都是1.25GHz。

其次,假设以ADC A这个核的时钟为坐标系(称之为标准时钟),那么由上图易知,ADC B的时钟输入为偏移了180°的时钟,同理,ADC C的输入时钟偏移了90°,ADC D的输入时钟偏移了270°。

其时序图如下:

a4bd5347d6e2dd9c63074cb91fa5730b.png

我们分解开来看:

模拟输入XAI:

b8b80aa3bbfed852e8633adf6f91c784.png

基准时钟CLK:

38af88b9423ed1b85d7afc7de6014a6f.png

将上面的基准时钟2分频,然后各种相位偏移得到如下内部采样时钟:

03eb1b683ca635da1ca26c19d76146a8.png

可以将上面的内部时钟由上到下编号为clk_a、clk_c、clk_b、clk_d,每个时钟的上升沿到达时,都会对输入模拟数据进行一次采样,这样就相当于采样时钟的最高频率为5GHz,多么充分地应用了4个核的优势呀!

由完整的时序图还可以看出clk_a的第一个时钟上升沿到达时,核A(ADC A)采样的数据为N,clk_c的第一个时钟上升沿到达时,采样的数据为N+1,adc_b的第一个时钟上升沿到达时,采样的数据为N+2,adc_d的第一个时钟上升沿到达时,采样的数据为N+3,后面依次循环。

从下面这张图上也能看出上面的采样数据关系:

72fd8e862c7d03b36f780c59c2d76d0f.png

A0...A9就是ADC A采样得到的数据;(N)

B0...B9就是ADC B采样得到的数据;(N+2)

C0...C9就是ADC C采样得到的数据;(N+1)

D0...D9就是ADC D采样得到的数据;(N+3)

恰好第一个时钟时钟上升沿到达时,4个核采样四个数据。

同样,下面就进入了数据同步环节:

95bf92ee802495c9a15d5e6d690f6967.png

同步时钟仍然是基准时钟的4分频,也就是说同步时钟的频率是基准时钟CLK的1/4。

ADR的第一个时钟上升沿到达时,同步数据N,之后是同步数据N+1,再之后同步数据N+2,然后是N+3,ADR、BDR、CDR、以及DDR四个同步时钟理论上是一致的,时钟上升沿以及下降沿同时有效。

程序的部分思路如下:

module adc(...); //由于这是一个不完整的程序,所以省略了输入输出;

wire syn_clk; //数据同步时钟,这个时钟一般是由fpga中的IP核产生

wire [9:0] ad_data_a,ad_data_b,ad_data_c,ad_data_d; //adc采样得到的数据,对于四通道模式而言,此为A端口输入模拟信号,采样得到的数据

reg [9:0] ad_data1,ad_data2,ad_data3,ad_data4,ad_data5,ad_data6,ad_data7,ad_data8; //假设该寄存器变量用于存放adc采样得到的数据

//数据同步

//同步时钟上升沿

always@(posedge syn_clk) //同步时钟上升沿到来时,同步一个数据

begin

ad_data1 <= ad_data_a; //核A采样得到的数据

end

always@(posedge syn_clk) //同步第二个数据

begin

ad_data3 <= ad_data_b; //核B采样得到的数据

end

always@(posedge syn_clk) //同步第三个数据

begin

ad_data2 <= ad_data_c; //核C采样得到的数据

end

always@(posedge syn_clk) //同步第四个数据

begin

ad_data4 <= ad_data_d; //核D采样得到的数据

end

//同步时钟下降沿

always@(negedge syn_clk) //同步时钟下降沿沿到来时,同步第五个数据

begin

ad_data5 <= ad_data_a; //核A采样得到的数据

end

always@(negedge syn_clk) //同步第七个数据

begin

ad_data7 <= ad_data_b; //核B采样得到的数据

end

always@(negedge syn_clk) //同步第六个数据

begin

ad_data6 <= ad_data_c; //核C采样得到的数据

end

always@(negedge syn_clk) //同步第八个数据

begin

ad_data8 <= ad_data_d; //核D采样得到的数据

end

endmodule

本文同步分享在 博客“李锐博恩”(CSDN)。

如有侵权,请联系 support@oschina.cn 删除。

本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值