170 likes | 315 Views
Realizzazione 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. Sommario. Obiettivi;
E N D
Realizzazione 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
Sommario • Obiettivi; • Introduzione: strumenti, dispositivi, algoritmo; • Architettura: • Struttura del sistema; • Estensione al DMA. • Integrazione del componente rc6_encoder: • Piattaforma hardware: implementazione del componente; • Piattaforma software: l’uso del driver. • Test Effettuati; • Conclusioni. Davide Murrai
Obiettivi • Creazione di un IP Core che implementi l’algoritmo di crittazione RC6; • Partizionamento della specifica iniziale in HW e SW; • Interfacciamento tra HW e SW all’interno dell’IP Core; • Integrazione del componente in un sistema dedicato; • Test HW e SW. Davide Murrai
Introduzione – 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 dall’utente Davide Murrai
Introduzione – 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. Davide Murrai
Architettura BRAM Controller uartlite ILMB mdm MB OPB BRAM gpio DLMB BRAM Controller rc6_encoder Davide Murrai
Estensione 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 l’rc6_encoder; • anche in caso di corretto funzionamento dell’opb_centarl_dma non si otterrebbe comunque un incremento delle prestazioni; • possibile miglioramento delle prestazioni tramite l’uso delle net di interrupt dell’opb_central_dma, che però sono ancora completamente in fase di sviluppo. Davide Murrai
Piattaforma HW: struttura del componente Operazioni algoritmo RC6 rc6_encoder_core rc6_encoder Interfaccia con il BUS PSelect BUS OPB Davide Murrai
Piattaforma 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 Davide Murrai
Piattaforma SW: definizione del driver Applicazione utente:system.c Software rc6_encoder.c DRIVER rc6_encoder.h Makefile Componente: rc6_encoder Hardware Davide Murrai
Piattaforma SW: funzioni del driver • write_regs • userkey • risultati • start • fine Scrive la parola da crittare all’interno del componente Invio valori al componente Scrive la chiave di crittazione all’interno 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 Davide Murrai
Implementazione IP Core Piattaforma SW Piattaforma HW Invio parola e chiave 1 Key Schedule 2 Avvio algoritmo Avvio crittazione 3 Crypt Interrupt Risultati 4 Davide Murrai
Test effettuati • Test sul componente: • controllo funzionamento dell’rc6_encoder; • controllo funzioni del driver. • Impiego della console di debug: • particolare caso di test; • visualizzazione degli effetti dopo l’esecuzione di ogni singola istruzione. Davide Murrai
Test sul componente Test all’interno del codice C uartlite 2F 19 4E 52 Utilizzo funzioni del driver 52 4E 19 2F Davide Murrai
Impiego 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 Davide Murrai
Conclusioni e sviluppi futuri • Conclusioni: • corretto funzionamento del componente; • corretta integrazione all’interno dell’architettura; • 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 l’uso del DMA. Davide Murrai
Fine presentazione Davide Murrai