从pad进的复位需要时钟打一拍吗
时间:10-02
整理:3721RD
点击:
从pad进来的复位,需要用时钟去打一拍,再做异步复位同步释放的操作吗?
always@(posedge clk)
begin
rst_reg <= rst;//rst 是从pad进的复位
end
always @(posedge clk or negedge rst_reg)
begin
if(rst_reg==1'b0)
begin
rst_1 <= 1'b0;
rst_2 <= 1'b0;
end
else
begin
rst_1 <= 1'b1;
rst_2 <= rst_1;
end
end
always@(posedge clk)
begin
rst_reg <= rst;//rst 是从pad进的复位
end
always @(posedge clk or negedge rst_reg)
begin
if(rst_reg==1'b0)
begin
rst_1 <= 1'b0;
rst_2 <= 1'b0;
end
else
begin
rst_1 <= 1'b1;
rst_2 <= rst_1;
end
end
这个问题,我很纠结;
你不做这些操作,可能没有问题;
你做了这些操作,理论上是有用;
为什么不用呢?
当然需要
不然recovery(恢复时间)和removal(移除时间)不满足,会产生亚稳态的传递
有弊有利,PAD进来的复位信号做debounce可以滤毛刺,不过降低了复位的时效性。个人建议是,一般不需要,特别是有些复位信号跟特定信号有时序匹配的,用寄存器抓了反而有问题。比如Jtag的复位来自PAD,不用寄存器抓也没问题。
你指的需要是第二步(异步复位,同步释放),那第一步呢
!
