UNIVERSITÀ DEGLI STUDI DI TRIESTE Facoltà di Ingegneria Dipartimento di Elettrotecnica, Elettronica ed Informatica REALIZZAZIONE DI UN SISTEMA EMBEDDED CON ACCELERAZIONE HARDWARE 2D SU FPGA Candidato: Relatore: Matteo GEROMIN Prof. Stefano MARSI Correlatore: Ing. Matteo VIT Anno Accademico 2007-2008 Sommario • Stato dell’arte: – Frame Buffer – Acceleratori Grafici – Sistemi Embedded • • • • • Hardware e Software Progetto preesistente Progetto realizzato Confronto fra i due sistemi Sviluppi futuri 2 Frame Buffer • Immagine composta da tanti pixel • Memorizzati in sequenza nel frame buffer • Profondità colore : 1bpp, 2bpp, 4bpp, 8bpp, 16bpp, 24bpp, 32bpp 3 Acceleratori grafici • Meno carico al processore di sistema • Accelerazione 2D e 3D • Per il bidimensionale: – BITblt e sprite – Riempimento aree – Linee e poligoni – Cerchi ed archi – Caratteri • Uscita video VGA o DVI 4 Sistemi Embedded • Sistemi a microprocessore dedicati • Hardware: progettato ad hoc • Software: dimensioni molto variabili 5 Obiettivi • Settore: controlli industriali • Realizzazione prototipo: testare vantaggi dell’accelerazione grafica 2D in sistemi Embedded 6 Descrizione Hardware XILINX • • • • • • • • ML403 Virtex-4 FX Evaluation Platform Virtex4-FX (XC4VFX12) PowerPC 405 64MB DDR-SDRAM 1MB ZBT SRAM VGA DAC Expansion Headers RS-232 Serial Port 7 FPGA e HDL 1/2 • Field Programmable Gate Array Circuiti logici programmabili 1. CLB Configurable Logic Block 2. 3. 4. 5. Interconnections I/O Blocks Memory blocks Other functions blocks (DCM, DSP, Multiplier) 8 FPGA e HDL 2/2 • Hardware Description Language – VHDL, Verilog, SystemC • Similitudini con linguaggi di programmazione: – If..Then..Else, For, While, Case…. • Differenze con i linguaggi di programmazione: – – – – Organizzazione a moduli Interazione tramite “fili” e registri Esecuzione parallela delle istruzioni Vari livelli di astrazione: Behavioural, Structural, RTL • Sintesi e simulazione 9 PowerPC 405 • • • • Hard IP 32 bit RISC (Reduced Instruction Set Computer) Architettura Harvard Processor Local Bus 10 Software utilizzato • Ambiente di sviluppo e sintesi – EDK (Embedded Development Kit) – ISE (Integrated Software Environment) • Simulazione – ModelSim-XE & ISE-simulator • Debug on-chip – ChipScope 11 Progetto Preesistente • MicroBlaze: – – – – Soft-ip PLB or OPB Harvard Customizable Block RAM • 2D Graphic Engine • Display Controller – 2MB frame buffer – 640x480 – 32 bpp 12 2D Graphic Engine 1/5 Interfaccia Bus OPB: • gestione comunicazioni da e verso il bus OPB • gestione registri • organizzazione dati e comandi 13 2D Graphic Engine 2/5 Decoder • immagazzina e distribuisce i comandi • monitorizza e comanda i moduli di accelerazione 14 2D Graphic Engine 3/5 Moduli funzioni accelerate • illuminazione pixel • disegno rettangoli • disegno linee (Bresenham) • visualizzazione caratteri (maschere) • elaborano colore e posizione dei pixel 15 2D Graphic Engine 4/5 Arbiter • memorizza temporaneamente i pixel elaborati • invia in successione i pixel al frame buffer 16 2D Graphic Engine 5/5 Display Controller • gestione comunicazioni con la ZBT SRAM (frame buffer) • gestione accessi in memoria • generazione sincronismi • lettura pixel ed invio a display 17 Nuovo Progetto • OpenCores (www.OpenCores.org) • Bus Wishbone 18 BUS Wishbone Architettura di comunicazione dati sincrona e parallela. 8bit, 16bit, 32bit, 64 bit Point to Point Shared Bus Crossbar Swich Read, Write, RMW Accesso in burst grazie a terminazione avanzata del ciclo Protocollo di HandShake (stb, cyc, ack) 19 Wishbone Conmax Arbiter Gestione degli accessi: – Bus 32bit – 8 Master, 16 Slave – Indirizzamento Slave con ultimo nibble (4bit) del bus indirizzi – Fino a 4 livelli di priorità impostabili su registri – Round-Robin nel caso di priorità uguale 20 VGA/LCD Controller Generazione sincronismi e lettura pixel da Frame Buffer • Interfaccia Slave per modifica impostazioni • Interfaccia Master per accesso a Frame Buffer • Profondità di colore: • 32bpp • 24bpp • 16bpp • 8bpp scala di grigi • 8bpp lookup table 21 ZBT SRAM Controller • Interfaccia Slave per accesso alla memoria ZBT SRAM • Accesso singolo in lettura o scrittura (non ottimizzato) • Accesso in BURST indirizzi consecutivi 22 Modifiche per l’implementazione • Modulo acceleratore: creazione master e slave supporto 16bpp (RGB 565) • Indirizzamento slave tramite il terzo Nibble più significativo di indirizzo • Creazione delle maschere caratteri • Generazione delle frequenze: problema del clock skew 23 Caratteristiche dei sistemi Nuovo Preesistente Processore PowerPC405 MicroBlaze F processore 200Mhz 28.57Mhz F sistema 100Mhz 28.57Mhz Pixel Clock 25Mhz 28.57Mhz Risoluzione 640x480 640x480 Accesso diretto FB SI NO Funz. acc. Line, blit, pix, char Line, blit, pix 24 Analisi delle prestazioni 1/2 Definitivo Preesistente medio (us) minimo (us) medio (us) massimo (us) 640x480 30026 - 48359 - 320x480 15012 - 24221 - 320x240 7524 - 12148 - 160x120 1881 681,84 3058 4447 100x100 979,71 357,04 1597 2321 100x50 489,75 180,29 810,98 1175 50x50 244,72 91,04 417,07 603,41 10x10 9,95 4,24 19,67 25,05 25 Analisi delle prestazioni 2/2 26 Conclusioni 27 Conclusioni Sviluppi futuri: – Ottimizzazione accessi al Frame Buffer – FPGA più performante – Supporto risoluzioni e profondità colore multiple – Separazione acceleratore e processore (PCI) – Standardizzazione registri e funzioni – Driver e sistema operativo (Linux) 28