Tesi Robotica Un coprocessore per Stereo-Matching: Profiling ... | Page 71

i i “MF_Tesi” — 2011/9/12 — 11:39 — page 71 — #71 i 5.5. COSTRUTTI PRINCIPALI 1 i 71 package Hello; interface Hello_Ifc; method Reg#(2) valueX; endinterface: Hello_Ifc 6 (* synthesize *) module mkHello (Hello_Ifc); Reg#(Bit#(2)) x = mkReg(0); 11 rule greet; $display ("Value before-x:",x); x<=x+1; $display ("Value after-x:",x); 16 Bit#(2) y=0; $display ("Value before-y:",y); y=y+1; $display ("Value after-y:",y); 21 $display ("Hello World!"); endrule 26 method Bit#(2) valueX() return x; endmethod endmodule: mkHello endpackage: Hello In ogni file viene definito un package (Hello) e al suo interno bisogna definire almeno un modulo (mkHello) che implementi l’interfaccia dichiarata (Hello_Ifc), nello stesso package inoltre possiamo avere tanti moduli quanti sono necessari. In ogni modulo è possibile definire molti costrutti, i più importanti sono le regole (rule) e i metodi (method). Le rule vengono eseguite a ogni ciclo di clock, in questo caso avremo che la stringa “Hello World!” verrà stampata ad ogni ciclo di clock. I method devono essere implementati a seconda dell’interfaccia, così come accadrebbe in un normale linguaggio di programmazione ad oggetti e possono essere di tre Tipi: i i i i