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