位置:51电子网 » 技术资料 » 其它综合

关于时钟的讨论---3

发布时间:2008/5/28 0:00:00 访问次数:457

  多时钟系统


  许多系统要求在同一个pld内采用多时钟。最常见的例子是两个异步微处理器器之间的接口,或微处理器和异步通信通道的接口。由于两个时钟信号之间要求一定的建立和保持时间,所以,上述应用引进了附加的定时约束条件。它们也会要求将某些异步信号同步化。


  图11 给出一个多时钟系统的实例。clk_a用以钟控reg_a,clk_b用于钟控reg_b,由于reg_a驱动着进入reg_b的组合逻辑,故clk_a的上升沿相对于clk_b的上升沿有建立时间和保持时间的要求。由于reg_b不驱动馈到reg_a的逻辑,clk_b的上升沿相对于clk_a没有建立时间的要求。此外,由于时钟的下降沿不影响触发器的状态,所以clk_a和clk_b的下降沿之间没有时间上的要求。, 如图4,2.ii所示,电路中有两个独立的时钟,可是,在它们之间的建立时间和保持时间的要求是不能保证的。在这种情况下,必须将电路同步化。图12 给出reg_a的值(如何在使用前)同clk_b同步化。新的触发器reg_c由glk_b触控,保证reg_g的输出符合reg_b的建立时间。然而,这个方法使输出延时了一个时钟周期。

图ll 多时钟系统
(定时波形示出clk_a的上升沿相对于clk_b的上升沿有建立时间和保持时间的约束条件)

 

图12 具有同步寄存器输出的多时钟系统
(如果clk_a和clk_b是相互独立的,则reg—a的输出必须在它馈送到1reg_b之前,用reg_c同步化)

 

  在许多应用中只将异步信号同步化还是不够的,当系统中有两个或两个以上非同源时钟的时候,数据的建立和保持时间很难得到保证,我们将面临复杂的时间问题。最好的方法是将所有非同源时钟同步化。使用pld内部的锁项环(pll或dll)是一个效果很好的方法,但不是所有pld都带有pll、dll,而且带有pll功能的芯片大多价格昂贵,所以除非有特殊要求,一般场合可以不使用带pll的pld。 这时我们需要使用带使能端的d触发器,并引入一个高频时钟。

 

图13 不同源时钟

  如图13所示,系统有两个不同源时钟,一个为3mhz,一个为5mhz,不同的触发器使用不同的时钟。为了系统稳定,我们引入一个20mhz时钟,将3m和5m时钟同步化,如图15所示。 20m的高频时钟将作为系统时钟,输入到所有触发器的的时钟端。3m_en 和5m_en将控制所有触发器的使能端。即原来接3m时钟的触发器,接20m时钟,同时3m_en 将控制该触发器使能 ,原接5m时钟的触发器,也接20m时钟,同时5m_en 将控制该触发器使能。 这样我们就可以将任何非同源时钟同步化。


图13 同步化任意非同源时钟

(一个dff和后面非门,与门构成时钟上升沿检测电路)

  另外,异步信号输入总是无法满足数据的建立保持时间,容易使系统进入亚稳态,所以也建议设计者把所有异步输入都先经过双触发器进行同步化,详情可参阅这篇文章:are your pld metastable?。

  小结:稳定可靠的时钟是系统稳定可靠的重要条件,我们不能够将任何可能含有毛刺的输出作为时钟信号,并且尽可能只使用一个全局时钟,对多时钟系统要注意同步异步信号和非同源时钟。



  多时钟系统


  许多系统要求在同一个pld内采用多时钟。最常见的例子是两个异步微处理器器之间的接口,或微处理器和异步通信通道的接口。由于两个时钟信号之间要求一定的建立和保持时间,所以,上述应用引进了附加的定时约束条件。它们也会要求将某些异步信号同步化。


  图11 给出一个多时钟系统的实例。clk_a用以钟控reg_a,clk_b用于钟控reg_b,由于reg_a驱动着进入reg_b的组合逻辑,故clk_a的上升沿相对于clk_b的上升沿有建立时间和保持时间的要求。由于reg_b不驱动馈到reg_a的逻辑,clk_b的上升沿相对于clk_a没有建立时间的要求。此外,由于时钟的下降沿不影响触发器的状态,所以clk_a和clk_b的下降沿之间没有时间上的要求。, 如图4,2.ii所示,电路中有两个独立的时钟,可是,在它们之间的建立时间和保持时间的要求是不能保证的。在这种情况下,必须将电路同步化。图12 给出reg_a的值(如何在使用前)同clk_b同步化。新的触发器reg_c由glk_b触控,保证reg_g的输出符合reg_b的建立时间。然而,这个方法使输出延时了一个时钟周期。

图ll 多时钟系统
(定时波形示出clk_a的上升沿相对于clk_b的上升沿有建立时间和保持时间的约束条件)

 

图12 具有同步寄存器输出的多时钟系统
(如果clk_a和clk_b是相互独立的,则reg—a的输出必须在它馈送到1reg_b之前,用reg_c同步化)

 

  在许多应用中只将异步信号同步化还是不够的,当系统中有两个或两个以上非同源时钟的时候,数据的建立和保持时间很难得到保证,我们将面临复杂的时间问题。最好的方法是将所有非同源时钟同步化。使用pld内部的锁项环(pll或dll)是一个效果很好的方法,但不是所有pld都带有pll、dll,而且带有pll功能的芯片大多价格昂贵,所以除非有特殊要求,一般场合可以不使用带pll的pld。 这时我们需要使用带使能端的d触发器,并引入一个高频时钟。

 

图13 不同源时钟

  如图13所示,系统有两个不同源时钟,一个为3mhz,一个为5mhz,不同的触发器使用不同的时钟。为了系统稳定,我们引入一个20mhz时钟,将3m和5m时钟同步化,如图15所示。 20m的高频时钟将作为系统时钟,输入到所有触发器的的时钟端。3m_en 和5m_en将控制所有触发器的使能端。即原来接3m时钟的触发器,接20m时钟,同时3m_en 将控制该触发器使能 ,原接5m时钟的触发器,也接20m时钟,同时5m_en 将控制该触发器使能。 这样我们就可以将任何非同源时钟同步化。


图13 同步化任意非同源时钟

(一个dff和后面非门,与门构成时钟上升沿检测电路)

  另外,异步信号输入总是无法满足数据的建立保持时间,容易使系统进入亚稳态,所以也建议设计者把所有异步输入都先经过双触发器进行同步化,详情可参阅这篇文章:are your pld metastable?。

  小结:稳定可靠的时钟是系统稳定可靠的重要条件,我们不能够将任何可能含有毛刺的输出作为时钟信号,并且尽可能只使用一个全局时钟,对多时钟系统要注意同步异步信号和非同源时钟。



相关IC型号
版权所有:51dzw.COM
深圳服务热线:13751165337  13692101218
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!