目录
在实际的工程中选择复位策略之前必须考虑许多设计方面的问题,如使用同步复位或者异步复位或者异步复位同步释放(Asynchronous Reset Synchronous Release或者Synchronized Asynchronous Reset),以及是否每一个触发器都需要进行复位。复位的基本目的是使器件进入到可以稳定工作的确定状态,这避免了器件在上电后进入到随机状态导致跑飞了。在实际设计过程中,设计者必须选择最适合于设计本身的复位方式。
1. 同步复位
同步复位就是指复位信号只有在时钟上升沿到来时,才能有效。同步复位代码:
module sync_rst (
input i_clk,
input i_rst_n,
input i_din,
output reg o_dout
);
always @ (posedge i_clk)
begin
if (!i_rst_n)
o_dout <= 0;
else
o_dout <= i_din;
end
endmodule
综合后RTL级代码:
2. 异步复位
异步复位是指无论时钟沿是否到来,只要复位信号有效,就对系统进行复位。异步复位代码:
module async_rst (
input