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
Scarica

Diapositiva 1 - Università degli Studi di Trieste