ASIC 复位信号设计方法
复位的目的是使SOC进入确定的状态,分为同步复位和异步复位,应该选择适合于设计的复位方式。
一.同步复位 //只有时钟有效沿到来时,才能复位触发器状态。
带有同步复位和置数端的触发器RTL代码
module syn_load_ff( input clk,input in,input rst_n,input load,output out);
[email protected](posedge clk)
if(!rst_n)
out<=1'b0; //sync reset
else if(load)
out<=in;
else
out<=out;
endmodule
综合后电路:
同步复位的优点: 复位信号只发生在时钟有效沿,可以过滤掉复位毛刺,对于复位由内部逻辑产生的模块,推荐使用同步复位。
缺点:1.并不是所有的ASIC库都带有内置的同步复位 2 同步复位需要脉冲展宽,使得复位信号在时钟有效沿处可靠
3.对于时钟门控电路,同步复位无效
二.异步复位// 异步复位触发器在设计时加入了一个复位引脚
module asyn_load_ff(input clk, input rst_n, input load, input in, output out);
[email protected](posedge clk or negedge rst_n)
if(!rst_n)
out<=1'b0;// sync reset
else if(load)
out<=in;// sync
else
out<=out;
endmodule
综合后电路
异步复位优点: 只要器件库中提供带有异步复位的触发器,就不会对数据路径引入额外的逻辑。对于数据路径时序非常紧的设计,不能引入同步复位逻辑的延时,采用异步复位。
异步复位缺点:异步复位信号是一个异步信号,如果触发器的复位信号在时钟有效沿附近释放,触发器会进入亚稳态,SOC复位状态会丢失。 异步复位对毛刺噪声信号敏感,需要消除复位电路上毛刺的影响。