Title: Realizzazione di un componente per un sistema dedicato: integrazione del componente RC6 a 128 bit in EDK
1Realizzazione di un componente per un sistema
dedicato integrazione del componente RC6 a 128
bit in EDK
- Relatore Prof. Fabrizio Ferrandi
- Correlatore Ing. Marco Domenico Santambrogio
- Davide Murrai
- Matricola n. 654356
A.A. 2003/2004
2Sommario
- Obiettivi
- Introduzione strumenti, dispositivi, algoritmo
- Architettura
- Struttura del sistema
- Estensione al DMA.
- Integrazione del componente rc6_encoder
- Piattaforma hardware implementazione del
componente - Piattaforma software luso del driver.
- Test Effettuati
- Conclusioni.
3Obiettivi
- Creazione di un IP Core che implementi
lalgoritmo di crittazione RC6 - Partizionamento della specifica iniziale in HW e
SW - Interfacciamento tra HW e SW allinterno dellIP
Core - Integrazione del componente in un sistema
dedicato - Test HW e SW.
4Introduzione strumenti e dispositivi
- EDK (Embedded Development Kit) permette la
realizzazione di architetture per sistemi
dedicati a partire da una descrizione HW dei vari
componenti. - Utilizza XPS (Xilinx Platform Studio).
- Dispositivo riprogrammabile FPGA (Field
Programmable Gate Array).
Architettura
Componenti Xilinx
Componenti creati dallutente
5Introduzione algoritmo RC6
- Blocchi da 128 bit, suddivisi in 4 registri da 32
bit - Chiave di crittazione variabile (in genere 128
bit) - Composto da due sottoalgoritmi
- Key Schedule
- Crypt.
- Parametrico rispetto a
- w
- r
- b
Dimensione registri della parola da crittare
(fissata a 32 bit)
Numero cicli di crittazione da eseguire
Dimensione chiave di crittazione.
6Architettura
BRAM Controller
uartlite
ILMB
mdm
MB
OPB
BRAM
gpio
DLMB
BRAM Controller
rc6_encoder
7Estensione al DMA (Direct Memory Access)
- Scopo crittazione di grandi moli di dati in
sequenza senza coinvolgere il processore. - Attuazione utilizzo del componente
opb_central_dma. - Problemi riscontrati
- mancato trasferimento dei dati tra la memoria e
lrc6_encoder - anche in caso di corretto funzionamento
dellopb_centarl_dma non si otterrebbe comunque
un incremento delle prestazioni - possibile miglioramento delle prestazioni tramite
luso delle net di interrupt dellopb_central_dma,
che però sono ancora completamente in fase di
sviluppo.
8Piattaforma HW struttura del componente
Operazioni algoritmo RC6
rc6_encoder_core
rc6_encoder
Interfaccia con il BUS
PSelect
BUS OPB
9Piattaforma HW utilizzo dei registri
Chiave di crittazione (dimensione variabile)
Key Schedule
Parola da crittare (in 4 registri da 32 bit)
Crypt
Registri di comando del componente
10Piattaforma SW definizione del driver
Applicazione utente system.c
Software
rc6_encoder.c
DRIVER
rc6_encoder.h
Makefile
Componente rc6_encoder
Hardware
11Piattaforma SW funzioni del driver
- write_regs
- userkey
- risultati
- start
- fine
Scrive la parola da crittare allinterno del
componente
Invio valori al componente
Scrive la chiave di crittazione allinterno del
componente
Ottiene i valori finali della crittazione dal
componente
Prelievo valori dal componente
Invia il comando di avvio crittazione al
componente (al termine della quale è sollevato
un interrupt)
Controllo
Riporta basso il segnale di interrupt per una
nuova crittazione
12Implementazione IP Core
Piattaforma SW
Piattaforma HW
Invio parola e chiave
1
Key Schedule
2
Avvio algoritmo
Avvio crittazione
3
Crypt
Interrupt
Risultati
4
13Test effettuati
- Test sul componente
- controllo funzionamento dellrc6_encoder
- controllo funzioni del driver.
- Impiego della console di debug
- particolare caso di test
- visualizzazione degli effetti dopo lesecuzione
di ogni singola istruzione.
14Test sul componente
Test allinterno del codice C
uartlite
2F
19
4E
52
Utilizzo funzioni del driver
52
4E
19
2F
15Impiego della console di debug
Run XMD
Run Debugger
1
3
4
5
Comando mbconnect mdm
Target Selection
GDB
2
6
Modulo di debug HW
7. Avvio software
Strumenti di XPS
16Conclusioni e sviluppi futuri
- Conclusioni
- corretto funzionamento del componente
- corretta integrazione allinterno
dellarchitettura - temporizzazioni
- minimo periodo 20.7 ns (massima frequenza 48
MHz) - tempo impiegato per una crittazione con chiave da
128 bit circa 23 microsecondi. - Occupazione del componente 58 della FPGA.
- Sviluppo futuro
- miglioramento delle prestazioni tramite luso del
DMA.
17