逻辑设计方法学【4】 --复位信号设计方法
在为ASIC选择复位策略前必须考虑许多方面的问题。对于复位,我们都只到有同步复位和异步复位,那么在实际设计的时候,就需要知道该选择哪种复位方式,还有所有的触发器是否都需要接收复位信号。
复位最基本的目的是使SoC进入一个能进行稳定操作的确定状态,这样可以避免SoC在上电后进入随机状态而死机。在verilog中,有四种逻辑状态:0,1,x,z。但是在进行IC设计的时候,会有十几种逻辑状态。所以添加复位信号十分有必要。一旦SoC生产出来,是否需要对SoC使用复位就由系统、SoC的使用环境以及SoC的自身的设计方式来决定。好的设计指南会在系统没有明确要求的情况下为SoC中的每一个触发器都提供复位信号。在某些情况下,当流水线的寄存器在高速应用中使用时,应该去掉某些寄存器的复位信号以使设计达到更高性能。
设计可以选择异步复位或同步复位,或者同时使用两者。两种复位方式各都有各自的优点和缺点。在实际设计中没有完全确定的复位方法,我们必须根据实际设计,选择最合适的复位方法。
同步复位与异步复位
图1用verilog描述了什么是同步复位以及异步复位
图 1 同步复位和异步复位
1 用同步复位进行设计
同步复位的复位信号只有在时钟的有效沿到来时才能对寄存器进行复位。由于复位树具有高扇出,复位相对于时钟周期可能是一个“迟到的信号”。即使复位信号经过了复位缓冲树的缓冲,也要尽可能减少其到达本地逻辑前穿过的逻辑数量。
图2表示了带有同步复位的可加载触发器的RTL代码,图3位对应的硬件实现。
图 2 同步复位可加载触发器的RTL代码
图 3 带同步复位的可加载触发器
使用同步复位会出现的一个问题是综合工具无法分辨复位信号和其他的数据信号。对于同步复位,综合工具可能产生图4所示的电路结构
图 4 同步复位可加载触发器的另一种实现方式
图4所示的电路在功能上与图3中的完全一致,区别仅仅在于复位与门在多路器之外。当“rst_n”信号为低的时候,多路选择器的两个输入端强制为0,如果load是未知状态(x),当处于仿真情况下,触发器就会停在未知状态(x),而不会复位;但如果处于实际工作情况下,触发器会复位到0状态。
1.1 使用同步复位的优点
- 同步复位一般能确保电路是100%复位的
- 同步复位会综合为更小的触发器(没有控制信号的触发器),特别是该复位信号被触发器的输入逻辑门控时
- 同步复位确保复位只发生在有效时钟沿,时钟可以作为过滤掉复位毛刺的手段
- 在一些设计中,复位必须由一组内部条件产生。推荐在这样的设计中使用同步复位信号,这样可以将时钟之间的复位毛刺过滤掉。
1.2 同步复位信号的缺点
- 复位信号如果较时钟短的话,那么必须使用一个脉冲展宽器,以保证复位信号能出现在时钟有效沿处。在进行多时钟设计时,这是必须要考虑的一个重要问题(高时钟域过渡到低时钟域),可以使用一个小计数器来保证具有制定周期数的复位脉冲宽度。
- 如果复位由SoC的组合逻辑产生,或者复位信号必须经过多级组合逻辑,就需要考虑延迟以及毛刺的问题。
- 就其本质而言,同步复位需要时钟以复位电路。在处于节省功耗的目的而使用门控时钟的时候,就可能出现问题。在复位信号发出时,时钟可能关闭,在这种情况下只能使用异步复位。
2 使用异步复位进行设计
2.1 异步复位的优点
- 使用异步复位的最大好处在于只要生产方提供的库中有带有异步复位的触发器,就能保证数据路径上是干净的。对于数据路径时序已经很紧的设计,无法承担由于加入同步复位带来的额外单元门和额外线路延迟。而使用异步复位,设计人员就能保证没有任何复位信号加载数据路径上(见图5)
- 异步复位最明显的优势是电路不管有没有时钟都能复位。综合工具能自动地推断出异步复位而不必加入任何综合参数。
2.2 异步复位的缺点
- 异步复位最大的问题是不管产生或撤销复位信号,它们都是一个异步的过程。产生复位信号不存在问题,但是撤销时就出现了问题。如果异步复位在触发器时钟有效沿附近释放,触发器的输出就会进入亚稳态,因此SoC的复位状态会丢失,即达不到复位的目的。
- 异步复位的另一个问题与源头有关,即由班级或系统复位所产生的噪声或毛刺引发的伪复位。需要设计毛刺过滤器来消除复位电路上毛刺的影响。如果毛刺真是一个在系统中至关重要的问题,那么久应该采用同步复位。
- 对于同步和异步复位,复位树都应该是时间可控的,以确保复位能在一个时钟周期内释放。必须在设计版图后分析复位树的时序以确保满足时序要求。解决这个问题的一种方法是使用分布式复位同步触发器。
3 异步复位的移除
- 违背复位恢复时间。复位恢复时间指复位撤销后和时钟再一次置高之间的时间。违背复位恢复时间会使寄存器数据输出端出现数据完整性或亚稳态问题。
- 复位移除会在不同时序元件的不同时钟周期内发生。当复位移除与时钟上升沿异步时,传播延迟会导致某些寄存器或触发器提前退出复位状态。
4 分布式复位同步触发器
5 过滤复位毛刺
参考文献
[1] Mohit Arora.硬件架构的艺术.机械工业出版社. 32-42