divide by 3
module divide_by_3 (
clk_in ,
reset ,
clk_out
);
input clk_in;
input reset;
output clk_out;
reg [1:0] pos_cnt;
reg [1:0] neg_cnt;
//-------------Code Start-----------------
// Posedge counter
always @ (posedge clk_in)
if (reset) begin
pos_cnt ‹= 0;
end else begin
pos_cnt ‹= (pos_cnt == 2) ? 0 : pos_cnt + 1;
end
// Neg edge counter
always @ (negedge clk_in)
if (reset) begin
neg_cnt ‹= 0;
end else begin
neg_cnt ‹= (neg_cnt == 2) ? 0 : neg_cnt + 1;
end
assign clk_out = ((pos_cnt != 2) && (neg_cnt != 2));
endmodule
++++++++++++++++++++++++++++++++++++++++++++++
Мужики, помогите нарисовать схему делителя частоты на 3 по этому коду на ВЕРИЛОГЕ!
Я так понял, что там есть 2 счетчика - один по положительному фронту CLK другой по отрицательному фронту. дальше к выходам каждого счетчика подключены компараторы на 2, выходы которых идут на вход сброса счеткиков.
дальше не понял как нарисовать часть схемы :
assign clk_out = ((pos_cnt != 2) && (neg_cnt != 2));
|