1 / 17

Relatore: Prof. Fabrizio Ferrandi Correlatore: Ing. Marco Domenico Santambrogio Davide Murrai

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;

keaira
Télécharger la présentation

Relatore: Prof. Fabrizio Ferrandi Correlatore: Ing. Marco Domenico Santambrogio Davide Murrai

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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

  2. 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

  3. 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

  4. 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

  5. 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

  6. Architettura BRAM Controller uartlite ILMB mdm MB OPB BRAM gpio DLMB BRAM Controller rc6_encoder Davide Murrai

  7. 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

  8. Piattaforma HW: struttura del componente Operazioni algoritmo RC6 rc6_encoder_core rc6_encoder Interfaccia con il BUS PSelect BUS OPB Davide Murrai

  9. 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

  10. Piattaforma SW: definizione del driver Applicazione utente:system.c Software rc6_encoder.c DRIVER rc6_encoder.h Makefile Componente: rc6_encoder Hardware Davide Murrai

  11. 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

  12. 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

  13. 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

  14. Test sul componente Test all’interno del codice C uartlite 2F 19 4E 52 Utilizzo funzioni del driver 52 4E 19 2F Davide Murrai

  15. 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

  16. 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

  17. Fine presentazione Davide Murrai

More Related