Divizor cu 16: Diferență între versiuni
Sari la navigare
Sari la căutare
Fără descriere a modificării |
Fără descriere a modificării |
||
| Linia 11: | Linia 11: | ||
output reg clk_div8, | output reg clk_div8, | ||
output reg clk_div16 | output reg clk_div16 | ||
); | ); | ||
always @(posedge clk) | |||
clk_div2 <= ~clk_div2; | // Initialize on reset | ||
always @(posedge clk or posedge reset) begin | |||
if (reset) | |||
clk_div2 <= 1'b0; | |||
else | |||
clk_div2 <= ~clk_div2; | |||
end | |||
always @(posedge clk_div2) | always @(posedge clk_div2 or posedge reset) begin | ||
clk_div4 <= ~clk_div4; | if (reset) | ||
clk_div4 <= 1'b0; | |||
else | |||
clk_div4 <= ~clk_div4; | |||
end | |||
always @(posedge clk_div4) | always @(posedge clk_div4 or posedge reset) begin | ||
clk_div8 <= ~clk_div8; | if (reset) | ||
clk_div8 <= 1'b0; | |||
else | |||
clk_div8 <= ~clk_div8; | |||
end | |||
always @(posedge clk_div8) | always @(posedge clk_div8 or posedge reset) begin | ||
clk_div16 <= ~clk_div16; | if (reset) | ||
clk_div16 <= 1'b0; | |||
else | |||
clk_div16 <= ~clk_div16; | |||
end | |||
endmodule | endmodule | ||
Versiunea de la data 9 februarie 2026 22:32
/*
Un exemplu de divizor cu 16 care folosește metoda flip-flop-urilor în cascadă
*/
module clock_divider(
input clk,
input reset,
output reg clk_div2,
output reg clk_div4,
output reg clk_div8,
output reg clk_div16
);
// Initialize on reset
always @(posedge clk or posedge reset) begin
if (reset)
clk_div2 <= 1'b0;
else
clk_div2 <= ~clk_div2;
end
always @(posedge clk_div2 or posedge reset) begin
if (reset)
clk_div4 <= 1'b0;
else
clk_div4 <= ~clk_div4;
end
always @(posedge clk_div4 or posedge reset) begin
if (reset)
clk_div8 <= 1'b0;
else
clk_div8 <= ~clk_div8;
end
always @(posedge clk_div8 or posedge reset) begin
if (reset)
clk_div16 <= 1'b0;
else
clk_div16 <= ~clk_div16;
end
endmodule
