复位策略

在IC系统中,复位的目的是为了将芯片强制到一个已知的状态。同步复位与异步复位都能达到这个目的。两者的区别在于:同步复位需要时钟有效沿到达时才能起作用,而异步复位不需要。

在同步复位方式,复位信号与数据进行组合操作,作为寄存器的D端输入,如下图所示
在这里插入图片描述
实现同步复位寄存器的代码如下

module reg_syn(q1,d,clk,rst_n);
ouput q1;
input d,clk,rst_n;
reg q1;
always @(posedge clk)
if(!rst_n) q1<=1'b0;
else q1<= d;
endmodule

同步复位的优点:

  • 在采用基于周期的仿真器的场合(利用开发算法时),采用同步复位要比采用异步复位简单许多。
  • 寄存器可以过滤掉复位上的毛刺。

同步复位的缺点:

  • 需要时钟,在某些场合这会带来不便。例如,设计中包含三台总线,总线上接着许多寄存器。当上电后,晶振还未起振,或者锁相环还未稳定,这时候没有时钟,所以复位还没有起作用,则总线上就可能发生冲突,产生短路。只有增加上电复位电路才能解决这个问题。
  • 采用同步复位,复位称为路径中组合逻辑的一部分。由于复位的负载比较大(设计中寄存器数目较多),因此会使复位树的延迟比较大,从而导致路径上的延迟较大。

说明: 上电复位电路包括一个门限比较电路,当电平超过某一电平时,会给出复位信号。
实现异步复位寄存器的代码如下:

module asynv_resetFF(q,d,clk,rst_n);
output q;
input d,clk,rst_n;
reg q;
always @(posedge clk or negedge rst_n)
if(!rst_n) q <= 1'b0;
else q <= d;
endmodule

异步复位的优点:

  • 无需时钟
  • 复位延时不会影响路径延时

异步复位的缺点:

  • 复位上的毛刺不能由它复位的寄存器过滤,必须采用其他的方法来消除
  • 复位的无效沿与时钟之间存在时序要求(recovery/removal)

如果能将同步复位与异步复位的优点结合起来,则显然是最佳的方案。下图给出了一种方案,即有效沿异步、无效沿同步的方式。
在这里插入图片描述
在上图所示方案中,复位信号由同步器生成。复位同步器由两个寄存器组成。外部的异步复位信号(来自PAD)接到同步器的异步复位端。第一个寄存器的数据端接高电平(针对低电平有效的复位信号);第二个寄存器的数据端接到第一个及寻求的Q端。透同步器的输出(即第二个寄存器的输出)作为生成的复位信号,经过复位树接到各个寄存器上。

该电路的原理是:当复位信号有效时(低电平),两个同步器都为低,因此同步器的输出立即变低,而不管此时是否存在时钟。而当复位信号变高后,经过时钟跳变沿后,才能将高电平锁存到同步器的输出,也就是说,同步器的输出的无效沿与时钟是同步的。这样,就避免了recovery/removal问题。

复位同步器的波形如下图所示
在这里插入图片描述
实现复位同步器的RTL代码如下

module async_resetFFstyle2(rst_n,clk,asyncrst_n);
output rst_n;
input clk,asyncrst_n;
reg rst_n,rff1;
always @(posedge clk or negedge asyncrst_n)
if(!asyncrst_n) {rst_n,rff1} <= 2'b0;
else {rst_n,rff1} <= {rff1,1'b1};
endmodule

在上述方式中,复位信号的毛刺仍然无法消除。为了去掉毛刺,通常先将由PAD得到的复位信号送到去毛刺电路。下面给出一种实现方法。

//filtering glitch of reset
always @(posedge clk_i)
	{glbl_rst_dly3,glbl_rst_dly2,glbl_rst_dly1} <= {glbl_rst_dly2,glbl_rst_dly1,rst_n_hw};
always @(posedge clk_i)
	glbl_rst_n_noglitch <= glbl_rst_dly3|glbl_rst_dly2|glbl_rst_dly1;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值