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

i i “MF_Tesi” — 2011/9/12 — 11:39 — page 72 — #72 i 5.5. COSTRUTTI PRINCIPALI i 72 Action: eseguono delle azioni senza ritornare niente; Value: ritornano un certo valore a seguito di una elaborazione; ActionValue: eseguono azioni e ritornano valori. Ogni metodo viene eseguito nel ciclo di clock in cui viene chiamato. Il programma esposto è molto semplice, la regola greet stampa a schermo: il valore di x prima e dopo l’incremento, il valore di y prima e dopo l’incremento, e la stringa “Hello World!”. Adesso scriviamo il testbench per provare il modulo appena creato: package Tb; (* synthesize *) module mkTb (Empty); 5 Hello_Ifc test <- mkHello; 10 rule greet; $display ("Value of x:",test.valueX()); $display ("----------------"); endrule endmodule: mkTb endpackage: Tb Il testbench non fa altro che istanziare una variabile di nome test di tipo Hello_Ifc e chiamare il metodo valueX del modulo appena istanziato. In output avremo quindi la stampa a schermo di questo nuovo modulo più quella del modulo Hello. Dopo 3 cicli di clock avremo quindi il seguente output. Value before-x:0 Value after-x:0 Value before-y:0 Value after-y:1 Hello World! Value of x:0 -------------Value before-x:1 Value after-x:1 Value before-y:0 i i i i