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