基于FPGA的自适应同步器电路设计详解

时间:2025-11-03  作者:Diven  阅读:0

在许多高速数据采集系统中,数据正确锁存是设计者必须要面对的问题。特别是在内部时钟与外部时钟采用同一个时钟源的基于FPGA的高速数据采集系统中,由于走线延时、器件延时、FPGA输入管脚延时,导致FPGA输入数据与FPGA内部时钟的相对相位关系不确定;在时钟频率可变的情况下,相对相位关系还会随频率变化。在FPGA内部一般采用D触发器实现对输入数据的采样。为了避免亚稳态 ,D触发器要求输入数据相对时钟沿满足一定的建立、保持时间,即输入数据与FPGA内部时钟要满足一定的相位关系。由于输入数据与采样时钟相对相位的不确定性,就有可能不满足FPGA内部D触发器的建立、保持时间,出现亚稳态。针对上述情况,本文给出在FPGA中可以自适应地选择时钟上升沿或下降沿采样的自适应同步器电路设计。该电路能够检测锁存时钟上升沿与输入数据跳变的相位关系,由检测结果选择上升沿采样或下降沿采样,使数据变化避开时钟沿的亚稳态窗 ,降低出现亚稳态的概率。

基于FPGA的自适应同步器电路设计详解

1 某雷达数据采集系统简介

图1所示为某雷达系统数据采集原理图,该雷达系统有两种带宽,要求两种采样频率,采样时钟由FPGA产生。设计采用了ECL输出电平标准的ADC,FPGA输入输出采用LVTTL标准。FPGA输出时钟以及ADC数据送入FPGA均需要采用电平转换芯片。这样,FPGA输出时钟的上升沿到相应FPGA输入管脚上升沿之间(图1中C点到D点)有8~9ns的延时。相同的延时,不同的采样频率,输入数据与采样时钟的相对相位不同;而且由于FPGA内部布线延时的不确定性,采样时钟与输入数据的相对相位会随着每次重新布局布线而改变,这两种情况都可能导致不满足D触发器的建立、保持时间,导致采样失效。

如图2所示,在FPGA内部若采用上升沿锁存数据,对于115MHz采样频率可以保证正确采样,对于85MHz的采样频率,有可能出现采样失效;反之,若采用下降沿锁存数据,115MHz的采样频率可能出现采样失效。

解决上述问题的难点在于预测输入数据与采样时钟的相位关系,从而选择合适的采样时钟沿。采用图1所示的采样方案,经常出现某采样频率采样失效的情况,如115MHz采样频率采样正常,而85MHz采样频率采样失效。自适应同步器可以预测采样时钟与输入数据的相位关系,自适应地选择上升沿或下降沿采样,降低出现亚稳态的概率。

2 自适应同步器原理

自适应同步器能够预测采样时钟上升沿与输入数据的相位关系。如果相位关系不能满足D触发器的建立、保持时间,则自适应同步器能自适应地对数据或者时钟作延时调整,直到满足建立、保持时间。

根据同步器延时调整对象不同,同步器可以分为时钟延时同步器和数据延时同步器。下面给出两种同步器的实现原理。

2.1 时钟延时同步器

图3所示为时钟延时同步器,冲突检测电路检测输入数据与时钟沿的相位关系,根据检测结果由状态机自适应选择时钟是否延时。图3中时钟延时单元可实现时间为T的延时,延时单元若为一非门,该电路就是一个简单的时钟上升沿采样或者下降沿采样的自适应选择电路。

该电路具有相对简单、容易实现的特点。但是由于时钟延时只有两种选择,不可能实现相位的精确匹配,很难适应一些超高速电路的需求。该电路一般选取数据总线中的某一位做相位匹配,因此要求数据总线上各位数据延时尽可能相等。

2.2 数据延时同步器

图4所示电路为数据延时同步器,输入数据经过若干级延时单元的延时,冲突检测电路检测时钟上升沿与各级延时数据的相位关系,由状态机选择较为理想的延时数据。

数据延时同步器可以实现对数据的精确延时,实现对超高速数据或DDR数据的锁存。但是,由于大量延时单元的使用,增加了FPGA设计的复杂度,实现较为困难。

3 自适应同步器在采样系统中的应用

图5所示电路为自适应同步器在图1所示的某雷达采样系统中的应用。图5中采样时钟、D触发器组与图1中相同,只是图5中D触发器组的时钟改为同步时钟,BUFG为Xilinx FPGA内部的全局时钟缓冲。自适应同步器检测同步时钟与数据最低位data[0]的相对相位,自适应地选择采样时钟,达到同步输入数据的目的。由于数据总线只选取其中一位data[0],因此要求总线上各位数据延时尽可能相等。

4 自适应同步器的FPGA实现

数据延时同步器实现较为复杂,尤其对于位数较多的数据总线,需要占用很多资源,状态机也较复杂。但其实现原理与时钟延时同步器基本相同,本文只给出时钟延时同步器的实现。图6所示电路为自适应同步器,其中del为延时单元,延时时间计为T_del;me_p为data上升沿与时钟上升沿的冲突检测模块,me_n为data下降沿与时钟上升沿的冲突检测模块;fsm为有限状态机。当data跳变发生在时钟上升沿[-T_del,T_del]时间之内时,电路输出sel有效。

4.2 突检测单元me_p,me_n的实现

图8为冲突检测单元me_p的原理图。该电路可以实现两路输入信号上升沿的相位检测,如果输入信号r1上升沿较r2的上升沿提前,则g1输出为‘1’,g2为‘0’;否则g1输出为‘0’,g2为‘1’。在FPGA实现时,采用基于四输入查找表(LUT4)的设计,对于布局布线要尽可能保持对称性,需要加入布局约束、甚至布线约束。图9为经Synplify综合后的原理图。

冲突检测单元me_n可以实现输入信号r1下降沿与输入信号r2上升沿的相位检测,原理同me_p。对于me_n的实现,只要在配置FPGA查找表(LUT)时,将图9中I0单元(LUT4_7FFF)改为“LUT4_DFFF”即可。

4.3 状态机的实现

图10为自适应同步器状态机,输入为conflICt,输出为sel。状态机共8个状态,状态为S0、S1、S2、S3时,输出为‘0’,选择图(5)所示‘sam_clk’;否则输出为‘1’,选择‘sam_clk’的反向时钟‘~sam_clk’;中间态S0、S1、S2以及S4、S5、S6可以有效防止状态机振荡。图10中′x′表示任意状态。

上述自适应同步器已经过图1所示的雷达采样系统的验证。采样频率在20MHz到140MHz范围内变化时,未出现采样失效。

4.1 延时单元的FPGA实现

图7为延时单元电路,采用FPGA内部的LUT4作延时。由于FPGA内部布线延时与LUT4延时相比不可忽略,因此需要对LUT4作相对布局约束,必要时还要作布线约束。

猜您喜欢

电子元件中,贴片二极管作为重要的半导体器件,应用于电路中的整流、限压以及保护等功能。正确判断贴片二极管的正负极对于电路的正常工作非常重要。本文将为大家详细介绍如...
2025-03-29 07:00:02

三极管(BJT)是重要的电子元件,应用于各种电子电路中。主要作用是放大和开关信号。作为半导体器件,三极管可以将微弱的输入信号放大成更强的输出信号,这一特性使得在...
2008-10-23 00:00:00

螺尾销轴是重要的机械连接元件,应用于各类机械设备中。主要作用是固定和连接两个或多个部件,确保设备的稳定性和安全性。通过螺尾设计,销轴可以在安装时提供更好的抓握力...
2009-05-10 00:00:00


闭门器是常用于建筑物门口的装置,主要用于控制门的关闭速度和力度,确保门在关闭时安全、平稳。根据不同的功能和结构,闭门器可以分为几种主要类型。按安装方式分,闭门器...
2012-02-12 00:00:00

离心管配件在科研和工业领域中是重要的配件。在生物医学研究中,离心管配件用于样品的分离和纯化,帮助科学家提取DNA、RNA以及蛋白质等生物大分子。在化学实验室中,...
2008-06-26 00:00:00

QFN(QuadFlatNo-lead)封装是一种广泛应用于现代电子产品中的封装形式,尤其是在小型化和高性能方面,QFN封装表现出色。QFN11_2X2MM是Q...
2025-02-24 16:37:07

贴片电阻上的1206标识并非指阻值,而是指的封装尺寸。1206表示该电阻的长度为1.2毫米,宽度为0.6毫米。要确定贴片电阻的阻值,需要查看其表面的数字标识或色...
2024-11-29 10:25:38

电阻器作为基础且关键的元件,承担着调节电流、分压和限流等重要功能。VISHAY(威世)作为全球知名的电子元器件制造商,其铝壳电阻以优良的性能和稳定的品质广受市场...
2019-01-09 18:45:30

现代电子设备中,电容器是不可少的元件。传统电容器和超级电容器是两种常见类型。有着不同的特性和应用。本文将探讨这两者之间的区别。基本定义传统电容器是储能设备。能存...
2025-03-19 19:00:34