Sviluppo di strumenti per l`analisi e la manipolazione di

Politecnico di Milano
BAnMaT:un framework per l’analisi e
la manipolazione di bitstream
orientato alla riconfigurabilità parziale
Relatore:
Correlatore:
Prof. Fabrizio FERRANDI
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
2
Obiettivi
• Configurazione parziale
• Evitare le sintesi da VHDL
• Modifiche mirate
• Possibilità di effettuare configurazione dinamica
• Di bitstream
• Di dispositivo in cascata
3
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
4
Organizzazione della memoria
di configurazione
• Unità base: frame
•Indirizzamento
• Colonna: composta da più frame
Major Address
Colonna CLB = 48 frame
5
Bitstream
• File binario contenente la configurazione della
FPGA
• Composto da
• Comandi di configurazione
• Dati di configurazione
• Struttura
6
Bitstream Analysis Manipulation Tool
Funzionalità dello strumento:
• Funzionalità all’utente
• Funzionalità interne
• Implementazione: analisi del file mediante
funzione di parsing
7
Flusso di esecuzione del parser
8
Calcolo funzioni 1/2
• Permettono di localizzare un componente nel
bitstream
• Esempio: caso CLB
9
Calcolo funzioni 2/2
Esempio: caso BRAM
Mja
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
10
Fasi del lavoro
•Funzionalità aggiunte
• Lettura frame BRAM
• Scrittura frame BRAM
• Lettura colonne BRAM
• Lettura intera BRAM
• Scrittura colonna BRAM
• Debugging
11
Lettura frame/colonna
• Lettura frame
• 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)
12
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
13
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
14
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
15
Fine Presentazione
16