注意:
1)PLL的复位应该使用FPGA原始输入的异步复位reset_n
2)复位信号的IO约束——看你的复位是同步复位还是异步复位,通常复位都会做成异步,这时候应该是false path的,如果同步,从管教输入的复位需要设最大输入延时。
3)对异步信号进行同步化(异步复位,同步释放),尽管reset_n已经进行了上述同步化处理,时序约束的时候还是要使用set_false_path命令将其进行切割,而从同步寄存器输出的复位rst_n现在可以使用TimeQuest进行准确地Recovery和Removal分析。
同步复位和异步复位
(2014-03-24 17:45:07)
复位电路是每个数字逻辑电路中最重要的组成部分之-。复位电路的工作时的有两个方面:第一一是仿真的时候使电路进入初始状态或者其他预知状态:第二是对于综合实现的真实电路,通过复位使电路进入初始状态或者其他预知状态。-般来说,逻辑电路的任何一个寄存器、存储器结构和其他逻辑单元都必须要附加复位逻辑电路,以保证电路能够从错误状态中恢复,可靠地工作。
常用的复位信号为低电平有效信号,在应用时外部引脚接上拉电阻,这样能增加复位电路的抗干扰性能。
一、同步复位电路建模
所谓同步复位是指当复位信号发生变化时,并不立即生效,只有当有效时钟沿采样到己变化的复位信号后,才对所有寄存器复位。同步复位的应用要点如下。
• 指定同步复位时, always 的敏感表中仅有时钟沿信号,仅仅当时钟沿采到同步复位的有效电平时,才会在时钟沿到达时刻进行复位操作。如果目标器件或可用库中的触发器本身包含同步复位端口,则在实现同步复位电路时可以直接调用同步复位端。然而很多目标器件(如 PLD) 和 ASIC 库的触发器本身并不
包含同步复位端口,这样复位信号与输入信号组成某种组合逻辑(比如复位低电平有效,只需复位与输入信号两者相与即可),然后将其输入到寄存器的输入端。为了提高复位电路的优先级,一般在电路描述时使用带有优先级的if...else 结构,复位电路在第一个 if 下描述,其他电路在 else 或 else...if 分支中描述。
同步复位的优点如下:
• 同步复位利于基于周期机制的仿真器进行仿真;
• 使用同步复位可以设计 100% 的同步时序电路,有利于时序分析,其综合结果的频率往往较高;
• 同步复位仅在时钟的有效沿生效,可以有效地避免因复位电路毛刺造成的亚稳态和错误.同步复位在进行复位和释放复位信号时,都是仅当时钟沿采到复位信号电平变化时才进行相关操作,如果复位信号树的组合逻辑出现了某种毛刺,此时时钟沿采样到毛刺的概率非常低,这样通过时钟沿采样,可以十分有
效地过滤复位电路组合逻辑产生的毛刺,增强了电路稳定性.
同步复位的缺点如下:
• 很多目标器件(如 FPGA 和 CPLD) 和 ASIC 库的触发器本身并不包含同步复位端口,使用同步复位会增加更多逻辑资源;
同步复位的最大问题在于必须保证复位信号的有效时间足够长,这样才能保证所有触发器都能有效地复位。由于同步复位仅当时钟沿采样到复位信号时才会进行复位操作,所以其信号的持续时间起码要大于设计的最长时钟周期,以保证所有时钟的有效沿都能采样到同步复位信号。事实上,仅仅保证同步复位
信号的持续时间大于最慢的时钟周期还是不够的,设计中还要考虑到同步复位信号树通过所有相关组合逻辑路径时的延时,以及由于时钟布线产生的偏斜( skew)。这样,只有同步复位大于时钟最大周期,加上同步信号穿过的组合逻辑路径延时,再加上时钟偏斜时,才能保证同步复位可靠、彻底。如图 4-5所示,假设同步复位逻辑树组合逻辑的延时为 t 1. 复位信号传播路径的最大延时为 12 ,最慢时钟的周期为 Period max ,时钟的 skew 为 clk2 - clkl ,则同步复位的周期 TsynJst 应该满足如下公式。
Tsyn rst > Period max + (clk2-clkl) + tl + t2;
二、异步复位电路建模
所谓异步复位是指当复位信号有效沿到达时,无论时钟沿是否有效,都会立即对目标(如寄存器、 RAM 等)复位。异步复位的应用要点如下。
• 指定异步复位时,只需在 always 的敏感表中加入复位信号的有效沿即可,当复位信号有效沿到达时,无论时钟沿是否有效,复位都会立即发挥其功能。
大多数目标器件时口 FPGA 和 CPLD) 和 ASIC 库的触发器都包含异步复位端口,异步复位会被直接接到触发器的异步复位端口。
异步复位的优点如下 :
• 由于多数目标器件时口 FPGA 和 CPLD) 和 ASIC 库的触发器都包含异步复位端口,异步复位会节约逻辑资源;
• 异步复位设计简单;
• 对于大多数 FPGA ,都有专用的全局异步复位/置位资(GSR, Global Set Reset ),使用 GSR 资源,异步复位到达所有寄存器的偏斜 (skew) 最小。
异步复位的缺点如下:
• 异步复位的作用和释放与时钟沿没有直接关系,异步复位生效时问题并不明显;但是当释放异步复位时,如果异步复位信号释放时间和时钟的有效沿到达时间几乎一致,则容易造成触发器输出为亚稳态,形成逻辑错误;
• 如果异步复位逻辑树的组合逻辑产生了毛刺,则毛刺的有效沿会使触发器误复位,造成逻辑错误。
三、推荐的复位电路设计方式
推荐的复位电路设计方式是异步复位、同步释放。这种方式,可以有效地继承异步复位设计简单的优势,并克服异步复位的上述风险与缺陷。在 FPGA 和 CPLD等可编程逻辑器件设计中,使用异步复位、同步释放可以节约器件资源,并获得稳定可靠的复位效果。
异步复位、同步释放电路建模。异步复位、同步释放的具体设计方法很多,关键是如何保证同步地释放复位信号。本例的设计方法是在复位信号释放时,用系绕时钟采样,然后将复位信号送到寄存器的异步复位端
always @ (posedge clk)
reset reg <= rst
always @ (posedge clk or 口 egedge reset reg)
if (!reset reg)
begin
end
else
begin
end
上例使用时钟将外部输入的异步复位信号寄存器---个节拍后,再送到触发器异步复位端口的设计方法的另-个好处在于,做 STA (静态时序分析)分析时,时序工具会自动检查同步后的异步复位信号和时钟的到达( Recovery) /撤销(Removal) 时间关系,如果因布线造成的 skew 导致该到达/撤销时间不能满足,STA 工具会 L报该路径,帮助设计者进一一步分析问题,如图 4-7 所示。