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