微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 模拟电路设计 > 发射应用中多个高速复用DAC的同步

发射应用中多个高速复用DAC的同步

时间:06-23 来源:互联网 点击:

在很多发射应用中必须产生多路相对相位准确已知的模拟输出。在正交调制器中(图1),I和Q通道必须具有明确的相位关系来实现镜频抑制。图1中,DAC1和DAC2的延迟必须匹配。使用数字波束成形技术的发射器需要准确地控制大量DAC之间的相对相位。



图1. 使用多路复用DAC的I/Q发射器中的DAC和第一上变频级


使用具有多路输入的DAC (MUX-DAC)如MAX19692,或具有数据时钟输出的内插DAC时,输入数据速率为DAC刷新速率的1/N,DAC在一个或两个数据时钟跳变沿锁存数据。MAX19692中N = 4,输入数据速率为DAC刷新速率的1/4。DAC输出一个由输入时钟经数字分频得到的数据时钟(DATACLK)。DAC上电时,数字时钟分频器可在N个状态的任意一个启动。如果使用多个DAC,不同DAC的时钟分频器会在不同的状态启动,所以DAC会在不同的时间锁存数据。除非这种情况被发现并校正,否则不同的DAC输出数据时相互之间可能会有一个或更多个时钟周期的延迟。如果每个DAC的时钟分频器可以复位,那么这种情况可以避免,但是仍然会存在一些问题。如果其中一个时钟分频器发生错误,DAC会变得永久异相,除非执行一些错误状态检测方法。为了保证系统的可靠性,必须检测相位错误状态并改正。如果DAC工作于非常高速的状态下,那么复位信号与输入时钟的同步也可能是个难题。


图2所示是MAX19692的时钟(CLKP,CLKN)和数据时钟(DATACLKP,DATACLKN)接口的简化框图。初始时钟由一个两位计数器四分频后用于锁存数字DAC输入。该计数器可能在四个状态中的任意一个启动(图3)。如果使用两个多路复用DAC,这两个DAC可能会在不同的状态启动。这可能导致DAC1的锁存与DAC2的锁存之间存在-1、0、1或2个时钟周期的延迟。


MAX19692的数据时钟输出再由数据输入锁存时钟进行2分频或4分频。然后数据在双倍数据率(DDR)模式下在时钟的两个跳变沿进行锁存,或者在四倍数据率(QDR)模式下在时钟的每90°相位处进行锁存。如果多个DAC的数据时钟延迟相匹配,或数据时钟相互之间反相,那么锁存时钟相匹配。




图2. MAX19692内部时钟接口框图



图3. MAX19692锁存时钟(四种可能的状态)


DAC的同步问题有两个方面:

DAC的锁存时钟之间的相对相位必须被检测。
DAC之间的相对相位必须被调整直到DAC被合适地定相。
检测DAC之间的相位误差可以通过检测两个DAC之间的数据时钟输出的相位误差来实现。相位检测器可以像一个异或门一样简单,也可以像相频检测器一样复杂。


可以通过操作一个或更多个DAC的时钟来实现两个DAC之间的相位调整,直到DAC数据时钟输出的相对相位为零。另外一种方法可以测量数据时钟之间的DAC延迟周期数和相应的延迟数据。下面的段落讲述了I/Q配置中的这两种方法。


通过“吞”脉冲实现DAC相位调整


如果DAC使用方波(比如ECL)时钟,两个DAC之间的同步可以用图4所示的简单的高速逻辑电路来实现。为了简单明了,该原理图中的逻辑配置只能实现单端功能。但是实际应用中会使用差分逻辑如ECL来实现高速和低噪声性能。



图4. 实现DAC同步的简单的高速逻辑电路


MUX-DAC1时钟路径上与门(G1)的插入允许对MUX-DAC1的时钟进行操作。MUX-DAC2的时钟路径上插入与门(G2)用于延迟匹配。异或门(G3)起相位检测的作用。当DATACLK1和DATACLK2的输出不同时G3输出“1”。如果G3out = “1”,应该 “吞掉”MUX-DAC1的时钟脉冲,将DATACLK1的边沿移位一个CLK时钟周期。G3输出的上升沿(G3out)由FF1和G4组成的上升沿检测器(PED)来检测。如果检测到上升沿,PED输出“0”,持续一个时钟周期。在SPB应用于G1之前,FF2将这个信号重新定时,从而使MUX-DAC1的一个时钟脉冲被抑制。这就使DATACLK1延迟一个CLK时钟周期。经过若干个时钟周期后,DATACLK1的延迟与DATACLK2一致,如图5所示。使用这种方法时,触发器要在时钟的下降沿进行状态更新,以消除DAC时钟信号的毛刺,两个MUX-DAC的输入时序要相同。布线时要考虑延迟以确保满足两个触发器的建立和保持时间的要求,且在时钟为低时将SPB信号的脉冲应用于G1。否则,时钟信号可能会产生毛刺。同时建议使用无噪声电源为时钟同步电路供电,将抖动的引入减到最小。




图5. 所示逻辑电路操作的时序图


通过输入数据移位实现DAC相位调整

可以利用Xilinx? FPGA中先进的数字时钟管理程序(DCM)来检测两个MUX-DAC的数据时钟之间的相位差异(图6)。DCM1生成一个与DATACLK1和DATACLK2相同频率的时钟。以时钟周期的1/256为间距对DCLK1的延迟进行动态调整。触发器DFF1和DFF2在每个时钟周期对DATACLK1和DATACLK2进行一次采样。如果DFF1在DATACLK1为低时采样DATACLK1,DFF1会输出固定的“0”。如果DFF1在DATACLK1为高时采样DATACLK1,DFF1会输出固定的“1”。所以DFF3和DFF4可在任意时钟相位定时,与DCLK1的延迟设置无关。通过将DCLK1的延迟进行分级,使用DCM1的动态延迟调整功能以及读取DFF3和DFF4的输出,我们可以得到基于DATACLK1和DATACLK2上升沿的延迟设置。根据延迟设置,我们可以计算出为了保持MUX-DAC1和MUX-DAC2输入数据的同相,MUX-DAC1的输入数据需要延迟的DAC时钟周期数。FPGA中4 x 4桶形移位器的实现可使数据等待时间以一个DAC时钟周期为增量进行改变(参见图6)。

MAX19692有四个并行数据端口A、B、C和D。输入DAC的数据序列是An、Bn、 Cn、Dn、An+1、Bn+1、Cn+1、Dn+1、An+2等。12位4 x 4柱形移位器(图6)允许输入MUX-DAC1的数据延迟-1、0、1或2个CLK周期。因此可以进行数据等待时间的调整直到两个DAC的输出数据同相。这样的话,两个DAC的数据时钟可能相距几个整数时钟(CLK)周期且不再改变。由于DAC的建立和保持时间以数据时钟为基准,所以两个DAC的数据时序必须不同。可以通过驱动DAC的FPGA中的多个DCM来实现。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top