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 12: | Linia 12: | ||
output reg clk_div16 | output reg clk_div16 | ||
); | ); | ||
always @(posedge clk) | always @(posedge clk). // la fiecare front pozitiv de tact... | ||
clk_div2 <= ~clk_div2; | clk_div2 <= ~clk_div2; // semnalul clk_div2 trece în low la fiecare al doilea tact = divizare cu 2 | ||
always @(posedge clk_div2) | always @(posedge clk_div2) // etc, pe baza logicii de mai sus | ||
clk_div4 <= ~clk_div4; | clk_div4 <= ~clk_div4; | ||
Versiunea de la data 26 ianuarie 2020 20:06
/*
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
);
always @(posedge clk). // la fiecare front pozitiv de tact...
clk_div2 <= ~clk_div2; // semnalul clk_div2 trece în low la fiecare al doilea tact = divizare cu 2
always @(posedge clk_div2) // etc, pe baza logicii de mai sus
clk_div4 <= ~clk_div4;
always @(posedge clk_div4)
clk_div8 <= ~clk_div8;
always @(posedge clk_div8)
clk_div16 <= ~clk_div16;
endmodule
