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.1 延时单元的FPGA实现
图7为延时单元电路,采用FPGA内部的LUT4作延时。由于FPGA内部布线延时与LUT4延时相比不可忽略,因此需要对LUT4作相对布局约束,必要时还要作布线约束。
|