BAnMaT:un framework per l’analisi e la manipolazione di bitstream orientato alla riconfigurabilità parziale Relatore: Prof. Fabrizio FERRANDI Correlatore: Ing. Marco D. SANTAMBROGIO Tesi di Laurea di: Dario Deori Anno Accademico 2004/2005
Sommario Obiettivi La riconfigurabilità parziale Memoria di configurazione BAnMaT Lavoro svolto Conclusioni
Obiettivi Configurazione parziale Modifiche mirate Evitare le sintesi da VHDL Modifiche mirate Possibilità di effettuare configurazione dinamica Di bitstream Di dispositivo in cascata
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
Organizzazione della memoria di configurazione Unità base: frame Colonna: composta da più frame Indirizzamento Colonna CLB = 48 frame Major Address
Bitstream File binario contenente la configurazione della FPGA Composto da Comandi di configurazione Dati di configurazione Struttura
Bitstream Analysis Manipulation Tool Funzionalità dello strumento: Funzionalità all’utente Funzionalità interne Implementazione: analisi del file mediante funzione di parsing
Flusso di esecuzione del parser
Calcolo funzioni 1/2 Permettono di localizzare un componente nel bitstream Esempio: caso CLB
Calcolo funzioni 2/2 Esempio: caso BRAM Mja Mna fm_bit_idx Fm_st_wd If ( RAM_Col<Chip_Rams / 2 ) Then 2 x (Chip_Rams / 2 – 1 - RAM -Col) Else 2 x (RAM_Col - Chip_Rams / 2 ) + 1 Mna 1 x floor(((ram_bit / 64) % 64) / 32)+ 2 x floor(((ram_bit / 64) % 32) / 16)+ 4 x floor(((ram_bit / 64) % 16) / 8)+ 8 x floor(((ram_bit / 64) % 8) / 4)+ 16 x floor(((ram_bit / 64) % 4) / 2)+ 32 x floor(((ram_bit / 64) % 2) / 1) Equivalent to Mna= div64 [0..5] where div64[5..0]= floor(ram_bit / 64) fm_bit_idx 18+ 72 x RAM_Row+Bit_pos Fm_st_wd FL x MNA + RW x FL Fm_wd Floor(Fm_bit_idx / 32) Fm_st_wd_idx 31+32xfm_wd – fm_bit_idx
Fasi del lavoro Funzionalità aggiunte Lettura frame BRAM Scrittura frame BRAM Lettura colonne BRAM Lettura intera BRAM Scrittura colonna BRAM Debugging
Lettura frame/colonna Calcolo di MJA e MNA Estrazione del frame voluto Lettura colonna Calcolo del MJA Lettura di 64 frame consecutivi (da MNA=0 a MNA=63)
Lettura Intera BRAM La lettura viene effettuata come per la singola colonna e iterata per il numero di colonne presenti sul dispositivo Valutazione qualitativa tramite visione complessiva dei dati presenti
Scrittura di una colonna BRAM e Debugging Riconfigurazione porzione software Comportamento ciclico di lettura e scrittura su ogni frame della colonna Approccio di riconfigurabilità basata su moduli Controllo della posizione di scrittura
Conclusioni Possibili applicazioni Approccio difference based alla riconfigurazione parziale Correzione di componenti logici mal configurati Analisi struttura bitstream Individuazione errori Approccio module based alla riconfigurazione parziale Inserimento di nuovi dati in BRAM Lettura dei dati in tempo reale dai blocchi BRAM
Fine Presentazione