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

i i “LP_Tesi” — 2011/9/9 — 21:20 — page 60 — #60 i 4.1. PACKAGE STRUCT i 60 ciò che non deve essere sintetizzato. Il codice è scritto in modo che a finire effettivamente “stampato” sull’FPGA ci siano solo moduli che appartengono al progetto principale, cosa importante dato che Tb e Loader contengono system call di BSV per la gestione di lettura e scrittura dei file. File che ovviamente non possono essere presenti nell’architettura in cui si andrà ad eseguire la sintesi. 4.1 Package Struct Prima di poter iniziare a descrivere l’implementazione è necessario chiarire il contenuto del package Struct. Al suo interno sono contenute molte informazioni utili, come: definizione di tipo, dichiarazione di valori, path dei file, strutture dati... Modificando i valori delle variabili è possibile definire alcuni parametri riguardanti le dimensioni delle memorie RAM e le dimensioni del disegno finale su FPGA. In Alg:4.8 si può notare un tipico assegnamento corretto. I primi due valori modificabili riguardano le dimensioni delle immagini trattate [riga 1-2], in width deve essere assegnata la dimensioni larghezza, in height quelle di altezza. Successivamente [riga 3-6] vengono definiti tipi di dato le cui dimensioni dipendono dai valori precedentemente scelti. Sia width = x, con x > 0 e sia heigh = y, con y > 0, vengono definiti i tipi:  BitC   BitR BitF    BitHF ⇐ Bit#(a) con a = ⇐ Bit#(b) con b = ⇐ Bit#(c) con c = ⇐ Bit#(d) con d = lg2 (x) lg2 (y) lg2 (x ∗ x) lg2 (x ∗ y) I Registri vengono definiti così di conseguenza [riga 13-16]. Altre variabili importanti da settare riguardano l’aspetto della profondità di parallelizzazione [riga 8]. Il numero scelto deciderà quanti moduli Processor verranno istanziati nel modulo Top. A questo punto bisogna stare attenti però, quanti più processor istanziamo tanta più memoria RAM e spazio dell’FPGA verranno occupati. Prima di decidere questo numero bisogna occuparsi di trovare il limite massimo supportato dall’FPGA che si ha a disposizione. i i i i