只要最初级的逻辑电路才运用单一的时钟。大大都与数据传输相关的运用都有与生俱来的应战,即跨过多个时钟域的数据移动,例如磁盘控制器、CDROM/DVD 控制器、调制解调器、网卡以及网络处理器等。当信号从一个时钟域传送到另一个时钟域时,呈现在新时钟域的信号是异步信号。
在现代 IC、ASIC 以及 FPGA 规划中,许多软件程序能够协助工程师树立几百万门的电路,但这些程序都无法处理信号同步问题。规划者需求了解牢靠的规划技巧,以削减电路在跨时钟域通讯时的毛病危险。
根底
从事多时钟规划的榜首步是要了解信号安稳性问题。当一个信号跨过某个时钟域时,对新时钟域的电路来说它便是一个异步信号。接纳该信号的电路需求对其进行同步。同步能够避免榜首级存储单元(触发器)的亚稳态在新的时钟域里传达延伸。
亚稳态是指触发器无法在某个规则时刻段内抵达一个可承认的状况。当一个触发器进入亚稳态时,既无法猜测该单元的输出电平,也无法猜测何时输出才干安稳在某个正确的电平上。在这个安稳期间,触发器输出一些中心级电平,或许或许处于振动状况,而且这种无用的输出电平能够沿信号通道上的各个触发器级联式传达下去。
对任何一种触发器,在时钟触发沿前后的一个小时刻窗口内,输入信号有必要安稳。这一时刻窗口是多种要素的函数,包含触发器规划、完结技能、运转环境以及无缓冲输出上的负载等。输入信号峻峭的边缘能够将此窗口减至最小。跟着时钟频率的升高,会呈现更多有问题的时刻窗口,而跟着数据频率的提高,这种窗口的射中概率则会添加。
FPGA 制作商和 IC 晶片厂用“MTBF”来标识合格的触发器,而且确认它们的特性。“MTBF”(均匀无毛病时刻)用核算办法描绘了一个触发器的亚稳态特性,即确认某个触发器呈现毛病的概率。在核算 MTBF 时,制作商部分根据输入信号改动导致触发器不安稳期间的时刻窗口长度。别的,MTBF 的核算还运用了输入信号的频率以及驱动触发器的时钟频率。
在一个 ASIC 或 FPGA 库中,每种触发器都有时序要求,以协助你确认简略出问题的窗口。“树立时刻”(Setup time)是指在时钟沿到来之前,触发器输入信号有必要坚持安稳的时刻。“坚持时刻”(Hold time)则是指在时钟沿之后,信号有必要坚持安稳的时刻。这些目标一般比较保存,以应对电源电压、作业温度、信号质量以及制作工艺等各种或许的差异。假如一个规划满意了这些时序要求,则触发器呈现过错的或许性能够忽略不计。
现代 IC 与 FPGA 规划中运用的归纳东西能够保证规划能满意每个数字电路触发器对树立与坚持时刻的要求。但是,异步信号却给软件提出了难题。对新的时钟域来说,从其它时钟域传来的信号是异步的。大大都归纳东西在断定异步信号是否满意触发器时序要求时遇到了费事。由于它们不能确认触发器处于非稳态的时刻,所以它们也就不能确认从一个触发器经过组合逻辑抵达下一个触发器的总推迟时刻。所以,最好的办法是运用一些电路来减轻异步信号的影响。
信号同步
信号同步的意图是避免新时钟域中榜首级触发器的亚稳态信号对下级逻辑形成影响。简略的同步器由两个触发器串联而成,中心没有其它组合电路。这种规划能够保证后边的触发器取得前一个触发器输出时,前一个触发器已退出了亚稳态,而且输出已安稳。规划中要注意将两个触发器放得尽或许近,以保证两者间有最小的时滞(clock skew)。
IC 制作厂供给同步单元,协助完结信号同步作业。这些单元一般包含一个有十分高增益的触发器,它比一般触发器耗电更高,也比较大。这种触发器降低了对输入信号树立-坚持时刻的要求,而且当输入信号导致亚稳态时,它能够避免呈现振动。另一种同步器单元包含两个触发器,省去了将两个独自触发器接近放置的作业,也避免规划人员误在两个触发器间参加任何其它的组合逻辑。
为了使同步作业能正常进行,从某个时钟域传来的信号应先经过原时钟域上的一个触发器,然后不经过两个时钟域间的任何组合逻辑,直接进入同步器的榜首个触发器中(图 1)。这一要求十分重要,由于同步器的榜首级触发器对组合逻辑所发生的毛刺十分灵敏。假如一个满意长的信号毛刺正好满意树立-坚持时刻的要求,则同步器的榜首级触发器会将其放行,给新时钟域的后续逻辑送出一个虚伪的信号。
图1,在一个全同步器电路中,从某个时钟域传来的信号应先经过原时钟域上的一个触发器,然后不经过原触发器和同步器的榜首个触发器两个时钟域间的任何组合逻辑,直接进入同步器的榜首个触发器中。
一个经同步后的信号在两个时钟沿今后就成为新时钟域中的有用信号。信号的推迟是新时钟域中的一到两个时钟周期。一种大略的预算办法是同步器电路在新时钟域中形成两个时钟周期的推迟,规划者需求考虑同步推迟将对跨时钟域的信号时序形成的影响。
同步器有许多种规划办法,由于一种同步器不能满意一切运用的
需求。同步器的类型根本上有三种:电平、边缘检测和脉冲(表 1)。尽管还存在着其它类型的同步器,但这三种类型的同步器能够处理规划者遇到的大都运用问题。在电平同步器中,跨时钟域的信号在新时钟域中要坚持高电平或低电平两个时钟周期以上。这种电路的要求是,在再次成为有用信号前,信号需求先变成无效状况。每一次信号有用时,接纳逻辑都会把它看作一个单个事情,而不论信号的有用状况坚持了多久。这种电路是一切同步器电路的中心。
表 1
边缘检测同步器在电平同步器的输出端添加了一个触发器(图 2)。新增触发器的输出经反相后和电平同步器的输出进行与操作。这一电路会检测同步器输入的上升沿,发生一个与时钟周期等宽、高电平有用的脉冲。假如将与门的两个输入端交流运用,就能够构成一个检测输入信号下降沿的同步器。将与门改为与非门能够构建一个发生低电平有用脉冲的电路。
图2,边缘检测同步器在电平同步器的输出端添加了一个触发器。
当一个脉冲进入更快的时钟域中时,边缘检测同步器能够作业得很好。这一电路会发生一个脉冲,用来指示输入信号上升或下降沿。这种同步器有一个约束,即输入脉冲的宽度有必要大于同步时钟周期与榜首个同步触发器所需保
持时刻之和。最稳妥的脉冲宽度是同步器时钟周期的两倍。假如输入是一个单时钟宽度脉冲进入一个较慢的时钟域,则这种同步器没有效果,在这种情况下,就要选用脉冲同步器。
脉冲同步器的输入信号是一个单时钟宽度脉冲,它触发原时钟域中的一个翻转电路(图 3)。每逢翻转电路接纳到一个脉冲时,它就会在高、低电平间进行转化,然后经过电平同步器抵达异或门的一个输入端,而另一个信号经一个时钟周期的推迟进入异或门的另一端,翻转电路每转化一次状况,这个同步器的输出端就发生一个单时钟宽度的脉冲。
图3,脉冲同步器的输入信号是一个单时钟宽度脉冲,它触发原时钟域中的一个翻转电路
脉冲同步器的根本功能是从某个时钟域取出一个单时钟宽度脉冲,然后在新的时钟域中树立另一个单时钟宽度的脉冲。脉冲同步器也有一个约束,即输入脉冲之间的最小距离有必要等于两个同步器时钟周期。假如输入脉冲彼此过近,则新时钟域中的输出脉冲也严密相邻,结果是输出脉冲宽度比一个时钟周期宽。当输入脉冲时钟周期大于两个同步器时钟周期时,这个问题愈加严峻。这种情况下,假如输入脉冲相邻太近,则同步器就不能检测到每个脉冲。