设计应用

多时钟系统下跨时钟域同步电路的设计

赵  旸,梁步阁,杨德贵,赵党军

(中南大学 航空航天学院,湖南 长沙410083)


    摘  要: 针对当前SOC内部时钟越来越复杂、接口越来越多以及亚稳态、漏信号等常见的各种问题,分析了以往的优化方法的优缺点,然后从电路的角度出发,提出了一种新的SOC跨时钟域同步电路设计的方法。这种方法电路简单,可靠性高,通过仿真实验和实测实验验证,能够在多时钟系统中适应最小输入脉宽、不漏信号、避免误触发和多触发,且很好地解决了亚稳态等问题。

    关键词: 多时钟系统;跨时钟域;同步电路;信号

    中图分类号: TN911

    文献标识码: A

    DOI:10.16157/j.issn.0258-7998.172787


    中文引用格式: 赵旸,梁步阁,杨德贵,等. 多时钟系统下跨时钟域同步电路的设计[J].电子技术应用,2018,44(2):6-9.

    英文引用格式: Zhao Yang,Liang Buge,Yang Degui,et al. The design of synchronization circuit for crossing the clock domain in multi clock system[J]. Application of Electronic Technique,2018,44(2):6-9.

0 引言

    随着时间的推移,集成电路行业发展至今,已有类似如Intel这样先进的foundry,提出迈入10 nm制程的规划。高集成度的推行,也使芯片规模越来越大,功能越来越复杂,设计难度越来越高[1]。SOC的内部时钟的复杂化,导致跨时钟域的接口越来越多。针对这些异步信号的处理,国外的先驱们提出了很多建设性意见。但一般用到器件较多,考虑到成本因素,小规模IC将无法承受,并且如果输入脉冲高电平宽度低于最快时钟周期的话,一般无法适用。因此要想很好地解决这个问题,要处理好4个方面工作:一是如何简化电路;二是如何适应最小输入脉宽的问题;三是解决好亚稳态问题;四是要提高设计可靠性[2]

1 处理跨时钟域信号的常用方法

    实际使用时,往往会出现信号在频率不用的时钟域传递的情况,对于这种情况,一般用两种方法处理:结绳法、伴随有效控制信号法。当信号从一个时钟域进入另一个时钟域的时候,往往出现亚稳态问题[4]。亚稳态是指触发器无法在某个规定时间段内达到一个可确认的状态。当一个触发器进入亚稳态时,既无法预测该单元的输出电平,也无法预测何时输出才能稳定在某个正确的电平上。信号同步的目的是防止上一级亚稳态对下一级产生不良影响,采用信号同步的方法就要设计信号同步器。信号同步器主要有3种:电平同步器、边沿检测同步器、脉冲同步器[7-8]。但是这些常用方法本身存在缺点和不适应性。在解决实际问题中,需要根据具体情况,来设计具体的方案。

2 跨时钟域同步电路接口方法组成及工作原理

    整个电路包括两个时钟域以及一个复位电路。时钟域1包含一个带有异步复位端的同步触发器。此触发器带有异步复位端R和同步时钟端CK,低电平产生复位,时钟上升沿开始锁存数据输入端D的状态。输出端有正相Q、反相/Q两种数据输出。时钟域2由两个同样的触发器组成,跟前面的一样由异步复位端R和同步时钟端CK,数据输入端D组成。输出端为正相Q、反相/Q两种,复位电路由一个与门组成,接收DFF3的反向/Q输出的数据,电路连接关系如图1所示。

wdz2-t1.gif

3 跨时钟域同步电路的工作特征

    在设计方案中,最大限度地保障了不漏信号。同时,时钟域1的输入脉冲信号宽度(高电平宽度)可以低于时钟域1的时钟单周期宽,电路正常工作,并且设计中脉冲宽度不再受限于时钟域1的时钟频率。第三,数据锁存器的数据输出端Q输出的脉冲信号宽度为时钟域2的时钟单周期宽,从而避免了误触发和多触发。

    这种方法适用于输入信号类型为脉冲或电平,最终得到的结果为脉冲。如图2所示。

wdz2-t2.gif

    如图3所示,当clock1快于clock2时,图中Data_in1表示第一个输入脉冲,此脉冲由Data_in输入,脉冲宽度小于clock1的四分之一,同时,脉冲宽度小于系统最快时钟(clock1最快)的四分之一。Data_in1的上升沿到来的瞬间,Q1输出高电平“1”;Data_in1的上升沿之后,第一个clock2的上升沿到来瞬间,Q2输出高电平“1”;第二个clock2的上升沿到来瞬间,Data_out输出高电平“1”,与此同时,nRST生成复位信号,复位DFF1、DFF2,使Q1、Q2输出低;第三个clock2的上升沿到来瞬间,由于Q1、Q2早已变成低电平“0”,此时,“0”传递到Data_out,形成了一个clock2的周期宽度的脉冲Data_out1。

wdz2-t3.gif

    如图4所示,若clock2快于clock1时,图中Data_in1表示第一个输入脉冲,此脉冲由Data_in输入,脉冲宽度小于clock1的四分之一,同时,脉冲宽度小于系统最快时钟(clock2最快)的四分之一。 

wdz2-t4.gif

    如图5所示,当clock2等于clock1时,图中Data_in1表示第一个输入脉冲,此脉冲由Data_in输入,脉冲宽度小于clock1的四分之一,同时,脉冲宽度小于系统最快时钟(clock2等于clock1)的四分之一。 

wdz2-t5.gif

4 仿真实验分析

    根据以上分析,通过Modelsim仿真分析得出以下时域图像可以验证上述特征,如图6~图8所示,快时钟为10 Hz,慢时钟为3.3 Hz,当时钟相等时为5 Hz。从仿真图像来看,亚稳态问题以及信号宽度受限于时钟宽度问题可以良好的解决。

wdz2-t6.gif

wdz2-t7.gif

wdz2-t8.gif

5 应用与实测

    下方是基于和舰科技180 nm Pflash生产工艺设计实例。方案基于Faraday 0.18 ?滋m GII Library Standard Cell,图中灰色部分为模拟IP。下图中SAR_ADC的输出接口中,有一个脉冲信号的宽度等于系统时钟周期的一半。采用一般的手段,无法捕获这个脉冲,采用上文所述的电路则便高效地解决了这个问题。具体实现运行代码如下:

assign ADC_fine_rst = ADC_fine_sys || rst ;

    %生成复位信号ADC_fine_rst,高有效,为使ADC_fine_sys和rst高电平产生复位,所以采用“逻辑或”运算。

    always @(posedge drdy_dig or posedge ADC_fine_rst )

    if (ADC_fine_rst)

     ADC_fine <= 1'b0;

    else

     ADC_fine <= 1'b1;

    %对应图1中的DFF1,drdy_dig为原始窄脉冲信号,若直接用系统时钟clk_system采样,将无法锁存。因此,此处drdy_dig接ADC_fine_reg的clk端。drdy_dig为ADC的IP电路输出信号,同步逻辑输出,有效压制毛刺,避免误触发。

always @(posedge clk_system or posedge ADC_fine_sys )

    if (ADC_fine_sys)

      ADC_fine_ff <= 1'b0;

    else

    begin 

    if (rst)

      ADC_fine_ff <= 1'b0;

    else

      ADC_fine_ff <= ADC_fine;

    end

    %对应图1中的DFF2,此处rst的同步复位逻辑没有决定性意义,可以去除。

always @(posedge clk_system or posedge rst )

    if (rst)

      ADC_fine_sys <= 1'b0;

    else

      ADC_fine_sys <= ADC_fine_ff;

    %对应图1中的DFF3,由原始drdy_dig信号,生成了ADC_fine_sys信号,从而实现跨时钟对接。

    最后生成如图9所示的GDSII视图。按照生成GDSII视图制作如图10所示测试电路板。

wdz2-t9.gif

wdz2-t10.gif

    经过MPW shuttle以及full MASK,采用天水华天的SOP20封装工艺,并设计板级测试系统,专项测试SAR_ADC结果如表1所示。ADC性能符合spec,排除测试环境的影响,信号捕获成功率等于100%,接口电路方案成功。

wdz2-b1.gif

6 结论 

    从整体来看,该方法结构简单。其输入脉冲信号宽度可以低于本身的时钟单周期宽,使得设计中脉冲宽度不再受限于时钟频率;同时,时钟域1中输入脉冲信号宽度可以低于系统最快时钟单周期宽,进一步提高了采集的稳定性和适应性。时钟域2输出脉冲信号宽度为时钟域2的时钟单周期宽,从而避免了误触发,电路经过两级同步,这样很好地解决了亚稳态问题。总的来讲提高了采集的稳定性和适应性。

    但是,这种处理方法对输入信号也有要求:输入毛刺宽度应小于DFF1(如图3)的最小时钟辨识度,否则将产生误触发。因此,这种方法的输入信号一般是SOC同步电路的输出信号,如输入为片外信号,一般要增加前置数字滤波电路。

参考文献

[1] LING L,JIANG J.Exploit dynamic voltage and frequency scaling for SoC test scheduling under thermal constraints[C]//Proc of the 23rd Asian Test Symp.Piscataway,NJ:IEEE,2014:182-185.

[2] Ketul Sutaria,Jyothi Velamala,Yu Cao.Multi-level reliability simulation for IC design[C].China xian,IEEE Beijing Section,2012,12.

[3] MILLICAN S K,SALUJA K K.Fornulating optimal test scheduling problem with dynamic voltage and frequency scaling[C]//Proc of the 22th Asian Test Symp,Piscataway,NJ:IEEE,2013:165-170.

[4] 蒲石.异步多时钟域系统的同步设计研究[D].西安:西安电子科技大学,2007.

[5] 邵翠萍,史森茂,吴龙胜.SoC中跨时钟域的信号同步设计[J].现代电子技术,2012(8):157-159.

[6] 曹军.安全SOC芯片中eMMC主接口的设计与实现[D].沈阳:辽宁大学,2014.

[7] 罗莉,何鸿君,徐炜遐,等.面向SOC芯片的跨时钟域设计和验证[J].计算机科学,2011(38):279-281.

多时钟系统 跨时钟域 同步电路 信号