Ho iniziato da poco ad interessarmi per hobby alle logiche programmabili, così ho preso una schedina DE0-nano per fare le prime prove.
Finora tutto bene, ma oggi mi è successa una cosa strana: solitamente utilizzo il clock da 50MHz disponibile nella schedina per i miei circuiti, ma mi sono chiesto se si potesse sfruttare il delay nel codice verilog per creare un clock autonomo.
Ho creato un file del genere:
- Code: Select all
module Clock(clk);
output clk;
reg clk;
always
begin
clk = 0;
#1000000;
clk = 1;
#1000000;
end
endmodule
Collego l'uscita clk in ingresso ad un contatore a 32 bit ed utilizzo gli 8 bit più significativi per pilotare gli 8 led disponibili sulla schedina.
Purtroppo quando provo a compilare il progetto su Quartus II (versione 13.0) la compilazione va a buon fine ma dal report non utilizza neanche una LE ed infatti trasferendo il risultato sulla schedina non succede nulla.
Se sostituisco il modulo Clock con un PLL pilotato dai soliti 50MHz ovviamente funziona tutto.
Ho provato a cambiare i valori di delay passando da 10 a 1000000 per vari step ma senza cambiamenti.
Cosa sbaglio? Bisogna forse eliminare qualche opzione di compilazione che ottimizza troppo?
Grazie per l'attenzione.
Saluti.