Если есть возможность задавать начальное состояние регистров, можно сделать счетчик, что-нибудь типа:
Код:
module resetgen(input clk, input resetkey, output nRESET);

reg [7:0] resetctr = 0;
assign nRESET = &resetctr;
always @(posedge clk) begin
    if (resetkey) 
        resetctr <= 0;
    else if (~nRESET) 
        resetctr <= resetctr + 1'b1; 
end
endmodule
Во FLEX-ах задавать начальное значение было нельзя, хотя может быть начальное нулевое состояние было гарантировано, не уверен. Во всех Циклонах уже можно.