Tesi Robotica Analisi, progettazione e implementazione... | Page 93
i
i
“LP_Tesi” — 2013/10/17 — 18:27 — page 93 — #93
i
4.2. BLUESPEC
i
93
Per la fase di debug durante lo sviluppo è consigliato l’utilizzo di bluesim data la
più alta velocità di simulazione, una volta che si pensa che il progetto raggiunga
gli obbiettivi preposti è consigliabile eseguire una simulazione in Verilog prima
della sintesi per verificare l’effettiva validità dei risultati.
4.2.1
Costrutti principali
Essendo un linguaggio di alto livello molto simile al C++ i costrutti base risultano molto familiari. Possiamo utilizzare così come per il Verilog: if, if else,
for, ecc. Ciò che lo rende invece più simile a linguaggi di descrizione hardware
sono i costrutti: rule e module. In Alg:4.5 viene mostrato il consueto “Hello
Algoritmo 4.5 Hello World!
1
2
3
4
package Hello;
interface Hello_Ifc;
method Reg#(2) valueX;
endinterface : Hello_Ifc
5
6
7
8
(∗ synthesize ∗)
module mkHello (Hello_Ifc);
Reg#(Bit#(2)) x = mkReg(0);
9
10
11
12
13
14
15
16
17
18
19
rule greet ;
$display ("Value before−x:",x);
x<=x+1;
$display ("Value after−x:",x);
Bit#(2) y=0;
$display ("Value before−y:",y);
y=y+1;
$display ("Value after−y:",y);
$display ("Hello World!");
endrule
20
21
22
23
24
25
method Bit#(2) valueX()
return x;
endmethod
endmodule: mkHello
endpackage: Hello
i
i
i
i