Title: BAnMaT:un framework per l
1BAnMaTun framework per lanalisi 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
2Sommario
- Obiettivi
- La riconfigurabilità parziale
- Memoria di configurazione
- BAnMaT
- Lavoro svolto
- Conclusioni
3Obiettivi
- Configurazione parziale
- Evitare le sintesi da VHDL
- Modifiche mirate
- Possibilità di effettuare configurazione dinamica
- Di bitstream
- Di dispositivo in cascata
4Riconfigurazione 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
5Organizzazione della memoria di configurazione
- Unità base frame
- Colonna composta da più frame
Colonna CLB 48 frame
Major Address
6Bitstream
- File binario contenente la configurazione della
FPGA - Composto da
- Comandi di configurazione
- Dati di configurazione
- Struttura
7Bitstream Analysis Manipulation Tool
- Funzionalità dello strumento
- Funzionalità allutente
- Funzionalità interne
- Implementazione analisi del file mediante
funzione di parsing
8Flusso di esecuzione del parser
9Calcolo funzioni 1/2
- Permettono di localizzare un componente nel
bitstream - Esempio caso CLB
10Calcolo funzioni 2/2
Mja If ( RAM_ColltChip_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 div645..0 floor(ram_bit / 64)
fm_bit_idx 18 72 x RAM_RowBit_pos
Fm_st_wd FL x MNA RW x FL
Fm_wd Floor(Fm_bit_idx / 32)
Fm_st_wd_idx 3132xfm_wd fm_bit_idx
11Fasi del lavoro
- Funzionalità aggiunte
- Lettura frame BRAM
- Scrittura frame BRAM
- Lettura colonne BRAM
- Lettura intera BRAM
- Scrittura colonna BRAM
- Debugging
12Lettura frame/colonna
- Lettura frame
- Calcolo di MJA e MNA
- Estrazione del frame voluto
- Lettura colonna
- Calcolo del MJA
- Lettura di 64 frame consecutivi
- (da MNA0 a MNA63)
13Lettura 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
14Scrittura 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
15Conclusioni
- 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
16Fine Presentazione