Нет, весь диапазон (нечетные тоже)!
А неужели нельзя написать это на верилоге в поведенческом смысле, т.е. не на уровне логических вентилей, а только с помощтю логических операторов?
Извиняюсь сразу, если глупость спрашиваю)
Скважность должна быть постоянно равной 2!
Благодаря нашему гуру-админу Максу удалось реализовать в коде Verilog делитель входной частоты с четными коэффициентами деления!
Исходные данные:
входы
en - (разрешение на счет) если 1, то счет идет, если 0, то нет
clk - входная частота
n[3..0] - шина коэффициентов деления частоты
reset - сброс (активный низкий уровень)
выходы
q[5..0] - выход самого счетчика
clkout - выходная (поделенная) частота clkout=clk\n
Вот код:
module count (q, clkout, en, clk, reset, n);
output q;
reg [5:0] q;
output clkout;
input en, clk, reset;
input [3:0] n;
reg [3:0] K;
reg clkout;
always @ (posedge clk or negedge reset)
begin
if (!reset)
begin
q=6'b000000;
end
else if (en)
q=q+1;
end
always @ (posedge clk or negedge reset)
begin
if (!reset) begin
K = 0;
clkout= 0;
end
else
begin
if (K==(n-1))
begin
K = 1'b0;
end
else
begin
K = K + 1'b1;
end
end
if (K>=(n>>1))
begin
clkout = 1;
end
else
begin
clkout = 0;
end
end
endmodule
Когда значение n нечетное, то выходная частота clkout меньше на 1 импульс clk! Т.е. если n=7, то на выходе получается тоже самое, что и при n=8...
Кто может помочь в исправлении этого, буду очень признателеен!)
Еще раз спасибо Максиму!!!