Tesi Robotica Analisi, progettazione e implementazione... | Page 90

i i “LP_Tesi” — 2013/10/17 — 18:27 — page 90 — #90 i 90 i 4. VERILOG E BLUESPEC SYSTEMVERILOG che vanno in input al contatore verranno messi tutti a 0. Successivamente dopo #3 cicli di clock il segnale di reset passa a 1 in modo da resettare il circuito e impostare il valore del contatore a 0, prima di questo momento nessun valore è stato assegnato al contatore, al ciclo di clock successivo (#1) il reset viene riposizionato a 0 permettendo il normale incremento del modulo. Finalmente possiamo compilare il tutto, ammettendo che il modulo contatore di Alg:4.2 risieda nel file counter.v e che il test bench risieda nel file tb.v, basterà utilizzare icarus verilog nel seguente modo: 1 iverilog counter.v tb.v -o count producendo così un file eseguibile di nome count, il risultato dell’esecuzione è mostrato in Alg:4.4. Come si può vedere al primo ciclo di clock tutti i registri di input sono messi a 0, mentre il contatore presenta il valore x, tale valore indica che il registro non è stato inizializzato e che quindi una volta messo su hardware mostrerà un valore casuale compreso nel range di valori possibili. Dopo 3 cicli di clock il reset viene attivato e successivamente disattivato permettendo al contatore di inizializzarsi, da questo punto in poi sarà compito del clock far scattare l’incremento, questo a condizione che il flag di enable sia attivo, infatti guardando meglio il risultato, Algoritmo 4.4 Output del test bench 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 clock=0, clock=1, clock=0, clock=1, clock=0, clock=1, clock=0, clock=1, clock=0, clock=1, clock=0, clock=1, clock=0, clock=1, clock=0, clock=1, reset=0, reset=0, reset=0, reset=1, reset=0, reset=0, reset=0, reset=0, reset=0, reset=0, reset=0, reset=0, reset=1, reset=1, reset=1, reset=1, enable=0, enable=0, enable=0, enable=0, enable=0, enable=1, enable=1, enable=0, enable=0, enable=1, enable=1, enable=1, enable=1, enable=1, enable=1, enable=1, count= count= count= count= count= count= count= count= count= count= count= count= count= count= count= count= x x x 0 0 1 1 1 1 2 2 3 0 0 0 0 i i i i