首页 > 代码库 > FPGA 复位电路设计

FPGA 复位电路设计

复位电路不论对FPGA还是对ASIC都是十分重要的,因为差的复位电路有可能引发不可重复的故障。

1 完全异步复位将引发的问题

  完全异步复位在确立和释放时都是异步的,它可能使系统进入准稳态。

  


2 完全同步复位


3 异步确立和同步释放的电路将比完全同步或者异步的电路提供更可靠地复位。

代码如下

module reset(

input clk, rst_n,

output reg asy_rst

);

reg r1;

always@(posedge clk or negedge rst_n)

if(!rst_n)begin

  r1<=0;

  asy_rst<=0;

end

else begin 

  r1<=1;

  asy_rst<=r1;

end

endmodule

4 不同类型的复位应该在多个always中实现,例如下降沿复位和上升沿复位应该分开,也有可能双边复位,电平复位等。

5 内部逻辑电路的冒险也可能引发系统复位。

6 对于不同的时钟域应该使用分开的复位同步器。