直接看框架图吧:
直接说重点,任意一个输入端口输入的模拟信号同时进入ADC芯片的四个核(也可以理解为4个通道),这四个核的时钟输入是由内部时钟电路(Clock Circuit)产生的,这四个时钟之间是什么关系呢?
首先这四个时钟频率一致,都是1.25GHz。
其次,假设以ADC A这个核的时钟为坐标系(称之为标准时钟),那么由上图易知,ADC B的时钟输入为偏移了180°的时钟,同理,ADC C的输入时钟偏移了90°,ADC D的输入时钟偏移了270°。
其时序图如下:
我们分解开来看:
模拟输入XAI:
基准时钟CLK:
将上面的基准时钟2分频,然后各种相位偏移得到如下内部采样时钟:
可以将上面的内部时钟由上到下编号为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,后面依次循环。
从下面这张图上也能看出上面的采样数据关系:
A0...A9就是ADC A采样得到的数据;(N)
B0...B9就是ADC B采样得到的数据;(N+2)
C0...C9就是ADC C采样得到的数据;(N+1)
D0...D9就是ADC D采样得到的数据;(N+3)
恰好第一个时钟时钟上升沿到达时,4个核采样四个数据。
同样,下面就进入了数据同步环节:
同步时钟仍然是基准时钟的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采样得到的数据
审核编辑:刘清
全部0条评论
快来发表一下你的评论吧 !