Tesi Robotica Analisi, progettazione e implementazione... | Page 87

i i “LP_Tesi” — 2013/10/17 — 18:27 — page 87 — #87 i 4.1. VERILOG i 87 mente esistono molti modi per compilare Verilog e simularlo, alcuni di questi sono open-source ma non molto efficienti e di certo non professionali, ad esempio può essere citato tra i tanti icarus-verilog, facile da usare e leggero, si comporta esattamente come un compilatore C, basta eseguire da terminale il seguente comando: 1 iverilog sorgente1.v sorgente2.v ... sorgenten.v -o nome_eseguibile per ottenere un file eseguibile pronto ad essere invocato. Ovviamente questa non è la fine della storia, infatti le mere simulazioni con stampe di controllo a schermo possono risultare inutili nel caso in cui si vogliano osservare molti segnali prodotti dai fili e dai registri presenti nel codice, a questo scopo, come nel caso dei debugger software, esistono vari wave viewer che permettono di visualizzare i segnali prodotti nella simulazione, un ottimo programma open-source è GTKWave, di qui a poco verrà utilizzato per un esempio un po’ più complesso. 4.1.1 Caso d’uso Senza addentrarsi troppo nei dettagli del linguaggio viene presentato ora un esempio di come è fatto un modulo contatore a 4 bit (Alg:4.2). Algoritmo 4.2 Contatore 4bit in Verilog 1 2 3 4 5 module counter (clk,rst ,enable,count); input clk , rst , enable; wire clk , rst , enable; output [3:0] count; reg [3:0] count; 6 7 8 9 10 11 12 13 14 always @ (posedge clk or posedge rst) begin if ( rst ) count <= 0; else if (enable) count <= count + 1; end endmodule i i i i