Вот так это делается, без всяких там DDR-триггеров. И постоянная скважность. А уж на плисе или на рассыпухе... Вопрос открытый.
Код
module div25 (clk, out);
input clk;
output out;
reg [2:0] cntr;
reg mux_reg;
reg neg_reg, pos_reg;
always @(posedge clk)
if (cntr[2])
cntr <= 3'h0;
else
cntr <= cntr + 1'b1;
always @(posedge clk)
mux_reg <= cntr[1];
always @(negedge clk)
neg_reg <= (cntr == 3'h3);
always @(posedge clk)
pos_reg <= (cntr == 3'h0);
assign out = mux_reg ? neg_reg : pos_reg;
endmodule
Если дрожание пофигу, то просто делитель на пять (счетчик от 0 до 4), и дальше на "ИЛИ" для значений счетчика 0 и 3 (или 4 и 2, или 3 и 1)