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

i i “MF_Tesi” — 2011/9/12 — 11:39 — page 80 — #80 i 6.3. SINTESI LOGICA 6.3 i 80 Sintesi logica La sintesi logica è il processo di traduzione di una descrizione di un circuito digitale di alto livello, ad esempio descritta in RTL, nell’implementazione fisica del progetto in termini di porte logiche e di una successiva ottimizzazione del circuito affinché utilizzi il minimo numero di porte ed inoltre la superficie di occupazione del dispositivo fisico (ad esempio un FPGA) sia minima. La sintesi logica trova le sue radici nel trattamento di equazioni logiche. Le prime tecniche di semplificazione comprendono le mappe di Karnaugh che semplificano l’equazione logica data in funzione di come vengono raggruppate le entry nella mappa. Un successivo passo avanti è stato fatto con l’algoritmo di QuineMcCluskey che può essere implementato su computer. L’evoluzione dai circuiti logici a componenti programmabili, come PLA e FPGA, ha reso sempre più forte la necessità di ottimizzare la minimizzazione fisica del circuito, in modo da occupare meno area possibile. 6.4 Sintesi dell’algoritmo su FPGA Come detto nelle sezioni precedenti per poter passare dalla descrizione RTL ad un circuito deve avvenire la fase di sintesi logica di questa descrizione, e per creare questa descrizione si utilizzano linguaggi HDL come Verilog e VHDL. Questi linguaggi sono però di basso livello, il ché riduce la produttività in quanto si allungano i tempi di scrittura del codice. Nel nostro caso, infatti la descrizione RTL non è stata realizzata direttamente tramite linguaggi HDL di basso livello come Verilog o VHDL, ma tramite l’ausilio di Bluespec SystemVerilog. Nel capitolo precedente sono stati illustrati i vantaggi di utilizzare un linguaggio di alto livello come BSV per la realizzazione di un progetto hardware. Il progetto dell’algoritmo si compone dei seguenti files: Progetto.bspec contiene diverse impostazioni più l’elenc