异步复位同步释放,最好要结合PLL的输出locked信号。
module rst(
input locked,
input clk,
input ext_rst_n,
output reg rst_n
);
reg rst_reg0, rst_reg1;
wire rst_n_combine;
assign rst_n_combine = ext_rst_n & locked;
always@(posedge clk, rst_n_combine)begin
if(rst_n_combine == 1'b0)begin
rst_reg0 <= 1'b0;
rst_reg1 <= 1'b0;
end
else begin
rst_reg0 <= 1'b1;
rst_reg1 <= rst_reg0;
end
end
assign rst_n <= rst_reg1;
endmodule