Tesi Robotica Un co-processore per Stereo-Matching: Architettura | Page 55

i i “LP_Tesi” — 2011/9/9 — 21:20 — page 55 — #55 i i 55 Algoritmo 4.1 Breve discussione di ciò che fa il modulo 1 Modulo connettivo per 1 BRAM (ram) e 1 FIFOF (fin). Carica una RAM con un contenuto predeterminato (letto da file) in modo da poter far eseguire il programma, verrà rimosso in fase di sintesi. 2 2|--------------+ |restart _____|_____ | | ________ 0|---------| BRAM |-------| fin |-----|1 start |_________| read -------- get | |writeOnMemory _____|_____ | | | File | |_________| 3 4 5 6 7 8 9 10 11 12 13 14 15 16 N.B.: Sono necessari 2 cicli di clock per leggere da una RAM importando questa classe si hanno a disposizione valori importanti come per esempio lunghezza e altezza dell’immagine. Se non venissero caricati ogni volta dal package Struct, queste informazioni dovrebbero essere scritte a mano, e nel caso di una piccola modifica si perderebbe molto tempo ad aggiornarli tutti. Ecco un esempio estratto da Processor.bsv: Algoritmo 4.2 Classi importate 1 2 3 4 import import import import Raster::*; Scoring::*; Disparity::*; Struct::*; Interfaccia da implementare Ogni modulo, tranne il testbench (tb.bsv), necessita di una interfaccia per essere istanziato, questo unito al fatto che la sintassi di BSV è molto simile a quella i i i i