1
0
mirror of https://github.com/Gehstock/Mist_FPGA.git synced 2026-01-25 03:25:52 +00:00
2019-06-04 17:43:34 +02:00

60 lines
982 B
Verilog

module RESET_DE(
CLK, // 50MHz
SYS_RESET_N,
RESET_N, // 50MHz/32/65536
RESET_AHEAD_N // 提前恢复,可以接 FLASH_RESET_N
);
input CLK;
input SYS_RESET_N;
output RESET_N;
output RESET_AHEAD_N;
wire RESET_N;
wire RESET_AHEAD_N;
reg [5:0] CLK_CNT;
reg [16:0] RESET_COUNT;
wire RESET_COUNT_CLK;
wire RESET_DE_N;
wire RESET_AHEAD_DE_N;
assign RESET_COUNT_CLK = CLK_CNT[5];
assign RESET_DE_N = RESET_COUNT[16]!=1'b0;
assign RESET_N = SYS_RESET_N && RESET_DE_N;
assign RESET_AHEAD_DE_N = RESET_COUNT[16:15]!=2'b00;
assign RESET_AHEAD_N = SYS_RESET_N && RESET_AHEAD_DE_N;
`ifdef SIMULATE
initial
begin
CLK_CNT = 6'b0;
end
`endif
// 50MHz/32 = 1.5625MHz
always @ (posedge CLK)
CLK_CNT <= CLK_CNT+1;
// 50MHz/32/65536 = 23.84HZ
always @ (posedge RESET_COUNT_CLK or negedge SYS_RESET_N)
begin
if(~SYS_RESET_N)
begin
RESET_COUNT <= 17'h00000;
end
else
begin
if(RESET_COUNT!=17'h10000)
RESET_COUNT <= RESET_COUNT+1;
end
end
endmodule