设计来自《FPGA设计实战演练(高级技巧篇)》
取同步复位和异步复位的优势,避其短处。设计了一种同步化异步复位电路,给出同步复位和异步复位的优缺点,并给出原理图和verilog代码。
1.同步复位
优点:易于时序分析和仿真
缺点:要求复位信号的脉冲宽度满足一定要求,以保证复位的时钟沿复位信号是有效的,比异步复位慢
2.异步复位
优点:逻辑资源上带有异步复位端口,资源得以充分利用。相应速度快
缺点:对噪声敏感,存在亚稳态问题,
3.异步复位同步化
异步复位直接连接到寄存器CLR端口上,使得复位立即生效。当复位撤出时,一个逻辑“1”从同步器被时钟输出用来同步地释放后续寄存器的复位,所以在这种结构中,设计的异步复位被同步的撤除,
module reset(
input clock,
input reset_n,
input data_a,
input data_b,
output out_a,
output out_b
);
reg reg1,reg2;
reg reg3,reg4;
wire rst_n;
assign out_a = reg1;
assign out_b = reg2;
assign rst_n = reg4;
always@(posedge clock or negedge reset_n)
begin
if(!reset_n)
begin
reg3 <= 1'b0;
reg4 <= 1'b0;
end
else
begin
reg3 <= 1'b1;
reg4 <= reg3;
end
end
always@(posedge clock or negedge rst_n)
begin
if(rst_n)
begin
reg1 <= 1'b0;
reg2 <= 1'b0;
end
else
begin
reg1 <= data_a;
reg2 <= data_b;
end
end
endmodule