Politecnico di Milano Sviluppo di strumenti per l'analisi e la manipolazione di bitstream per la riconfigurabilità parziale Relatore: Correlatore: Prof. Fabrizio FERRANDI Ing. Marco D. SANTAMBROGIO Tesi di Laurea di: Giorgio Galvalisi Carmine Galeone Anno Accademico 2004/2005 Sommario • Introduzione alle FPGA • La riconfigurabilità parziale • BAnMaT • Lavoro svolto • Conclusioni 2 Field Programmable Gate Arrays • Dispositivi programmabili dall’utente • Schema semplificato di una FPGA Xilinx • CLB • IOB • Interconnessione 4 Slice in un CLB 2 Celle Logiche per Slice 3 Memoria di configurazione • Unità base: frame (largo un bit, lungo tutta la FPGA) • Colonna: composta da più frame Major Address Colonna CLB = 48 frame 4 Bitstream • File binario contenente la configurazione della FPGA • Composto da • Comandi di configurazione • Dati di configurazione • Struttura 5 Riconfigurazione Parziale • La FPGA viene riconfigurata solo in parte • Riduzione dei tempi di riconfigurazione • Possibilità di realizzare sistemi complessi attraverso divisione in moduli • Due approcci • Module based • Difference based 6 Bitstream Analysis Manipulation Tool Funzionalità dello strumento: • Analisi passiva • Analisi attiva • Implementazione originale: analisi del file mediante funzione di parsing 7 Il parser: flusso di esecuzione 8 Fasi del lavoro • Modifiche al programma • Gestione errori • Funzionalità aggiunte • Calcolo funzioni • Lettura frame • Lettura colonne CLB • Lettura LUT • Scrittura LUT 9 Calcolo funzioni • Permettono di localizzare un componente nel bitstream • Esempio: caso CLB 10 Lettura frame/colonna • Lettura frame • Calcolo di MJA e MNA • Estrazione del frame voluto • Lettura colonna • Calcolo del MJA • Lettura di 48 frame consecutivi (da MNA=0 a MNA=47) 11 Lettura LUT (1/2) • Look-Up Table: implementa funzione combinatoria ad n ingressi 12 Lettura LUT (2/2) • 16 frame da leggere • Per ciascun frame • Calcolo della posizione del frame • Lettura del frame • Estrazione della parola contenente il bit • Lettura del bit 13 Scrittura LUT Per ciascun frame • Calcolo della posizione del frame • Lettura del frame • Estrazione della parola contenente il bit • Lettura del bit originale e sostituzione del nuovo bit 14 Conclusioni • Possibili applicazioni • Approccio difference based alla riconfigurazione parziale • Analisi struttura bitstream • Individuazione errori • Correzione di componenti logici mal configurati • Lavori futuri • Lettura di frame/colonne IOB e RAM • Lettura e modifica di blocchi SRAM 15 Fine Presentazione 16