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