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: Matteo GEROMIN Relatore: Prof. Stefano MARSI Correlatore: Ing. Matteo VIT Anno Accademico 2007-2008
28
Embed
UNIVERSITÀ DEGLI STUDI DI TRIESTE Facoltà di Ingegneria Dipartimento di Elettrotecnica, Elettronica ed Informatica REALIZZAZIONE DI UN SISTEMA EMBEDDED.
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
UNIVERSITÀ DEGLI STUDI DI TRIESTE
Facoltà di IngegneriaDipartimento di Elettrotecnica, Elettronica ed Informatica
REALIZZAZIONE DI UN SISTEMA EMBEDDED CON ACCELERAZIONE
HARDWARE 2D SU FPGA
Candidato:
Matteo GEROMIN
Relatore:
Prof. Stefano MARSI
Correlatore:
Ing. Matteo VIT
Anno Accademico 2007-2008
2
Sommario• Stato dell’arte:
– Frame Buffer– Acceleratori Grafici
– Sistemi Embedded
• Hardware e Software
• Progetto preesistente
• Progetto realizzato
• Confronto fra i due sistemi
• Sviluppi futuri
3
Frame Buffer• Immagine composta da tanti pixel• Memorizzati in sequenza nel frame buffer• Profondità colore : 1bpp, 2bpp, 4bpp, 8bpp, 16bpp, 24bpp,
32bpp
4
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
5
Sistemi Embedded• Sistemi a microprocessore dedicati
• Hardware: progettato ad hoc
• Software: dimensioni molto variabili
6
Obiettivi• Settore: controlli industriali
• Realizzazione prototipo: testare vantaggi dell’accelerazione grafica 2D in sistemi Embedded
7
Descrizione HardwareXILINX
• 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
• 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
10
PowerPC 405• Hard IP• 32 bit RISC (Reduced Instruction Set Computer)• Architettura Harvard• Processor Local Bus
11
Software utilizzato
• Ambiente di sviluppo e sintesi– EDK (Embedded Development Kit)– ISE (Integrated Software Environment)
• Simulazione– ModelSim-XE & ISE-simulator
• Debug on-chip– ChipScope
12
Progetto Preesistente• MicroBlaze:
– Soft-ip– PLB or OPB– Harvard– Customizable
• 2D Graphic Engine• Display Controller
– 2MB frame buffer– 640x480– 32 bpp
Block RAM
13
2D Graphic Engine 1/5
Interfaccia Bus OPB:
• gestione comunicazioni da e verso il bus OPB
• gestione registri
• organizzazione dati e comandi
14
2D Graphic Engine 2/5
Decoder
• immagazzina e distribuisce i comandi
• monitorizza e comanda i moduli di accelerazione
15
2D Graphic Engine 3/5
Moduli funzioni accelerate
• illuminazione pixel
• disegno rettangoli
• disegno linee (Bresenham)
• visualizzazione caratteri (maschere)
• elaborano colore e posizione dei pixel
16
2D Graphic Engine 4/5
Arbiter
• memorizza temporaneamente i pixel elaborati
• invia in successione i pixel al frame buffer
17
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
18
Nuovo Progetto
• OpenCores (www.OpenCores.org)• Bus Wishbone
19
BUS WishboneArchitettura di comunicazione dati sincrona e parallela.8bit, 16bit, 32bit, 64 bit
Point to PointShared BusCrossbar Swich
Read, Write, RMW
Accesso in burst grazie a terminazione avanzata del ciclo
Protocollo di HandShake (stb, cyc, ack)
20
Wishbone Conmax ArbiterGestione 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
21
VGA/LCD Controller
Generazione sincronismi e
lettura pixel da Frame Buffer• Interfaccia Slave per