非同步重设的同步和分配:设计挑战与解决之道
|
非同步(Asynchronous)重设传统上用于超大型积体电路(VLSI)设计,以便在上电后将同步(synchronous)电路带到已知状态。非同步重设释放操作必须与同步逻辑时脉讯号协调,才能消除由于重设和时脉之间可能竞争引起的同步故障。缺乏这种协调会在上电时导致间歇性故障。当考虑大型多时脉域设计时,这一问题还会加剧。除了同步化问题外,将非同步重设分配至数百万个触发器颇具挑战,它要求类似于时脉树合成(CTS)的技术,而且需要类似的区域和路由资源。 本文阐述了非同步重设的要求和挑战,特别是同步和分配问题;同时讨论了重设同步和分配传统方案的缺点,并提出更快、更简单的时序收敛以及更可靠的重设同步和分配解决方案。 非同步重设挑战 为了使逻辑处于已知状态,数位VLSI设计中通常包含重设功能。重设主要用于控制逻辑,而且可以从资料路径逻辑中消除,从而缩小逻辑区域。重设可以与时脉讯号同步或非同步。 同步重设需要有效时脉,会引起某些与时脉週期相关的延迟,并可能影响资料路径的时序。另一方面,同步重设是确定性的,不会产生亚稳态。 非同步重设则不需要有效时脉使触发器处于已知状态,它具有比同步重设更低的延迟,而且可以利用不影响资料路径时序的特殊触发器输入接脚。但是,非同步重设也有其缺点: 它们可能在触发器中引起亚稳态,导致非确定性行为。 为了实现可测试设计(DFT),必须可以直接存取非同步重设。 非同步重设可能导致抗辐射(rad-hard)应用的可靠性问题,易于受到单事件瞬态(SET)现象的影响。 本文关注与非同步重设相关的问题和解决方案,而非着墨于重设类型的优劣。本文提出的一些技术同时适用于非同步和同步重设。 非同步重设被广泛应用于数位设计,典型的非同步重设驱动器是外接埠,具体取决于电源状态(RC电路、看门狗元件)、手动重设按钮和外部主元件(如微处理器)等。 在许多情况下,非同步重设可以被同步重设替换,但有些情况下,非同步重设功能是必备的。例如当上电时缺少主动时脉(时脉不稳定,或者为降低功耗设置闸控)的同步设计,则需要其外部介面处于某种已知状态。另一个例子是低功耗设计,必须在上电过程中使功耗最小化,也没有主动时脉。 使用非同步重设并不简单。儘管在重设断言期间可以忽略时脉和重设之间的相对时序,但重设释放必须与时脉同步。为了避免重设释放边缘同步,可能导致亚稳态。图1显示主动式高电位非同步重设。重设断言(a)在确定性有限时间(传播延迟,TR-pd)内影响触发器输出Q,且无论时脉讯号CLK为何。在重设释放(b)期间,RST埠相对于时脉埠CLK必须满足设置和保持时序条件。违反RST埠的设置和保持条件(也称为重设恢復和移除时序)可能会导致触发器变为亚稳态,导致设计因为切换到未知状态而失败。请注意,这种情况类似于触发器资料埠D的设置和保持条件相抵触。 图1:主动式高电位非同步重设断言和释放:(a)非同步重设断言;(b)违反时序的非同步重设释放(来源:vSync Circuits) 此外,对于大型设计,由于设计(线长不等、负载不均、IR降)和製程(缓衝和走线)变异,重设和时脉分配网路内部的偏移(skew)可能十分显着。重设和时脉讯号到达之间的关係可能因不同触发器而异。在这种情况下,设计的不同部份可能会在不同的时脉週期内离开重设模式,从而违反所需功能。图2的例子显示RESET的释放边缘在不同的时脉週期到达触发器Q0和Q1,导致Q0/Q1由其重设状态的非现时(non-current)中释放。 图2:大型设计的重设和时脉偏移(来源:vSync Circuits) 为了避免上述问题,非同步重设释放必须与目标时脉同步。透过在重设分配网路的根源採用特殊重设同步器,以执行典型的重设同步。图3显示一系列这种同步器示例。 图3:非同步重设同步器:(a)、(b)「后缘」同步器;(c)、(d)「基于vdd」的同步器;(e)重设同步器操作;(f)重设释放时序路径(来源:vSync Circuits) |







