REALIZZAZIONE DI UN SISTEMA EMBEDDED CON ACCELERAZIONE HARDWARE 2D SU FPGA

Preview:

DESCRIPTION

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. - PowerPoint PPT Presentation

Citation preview

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

8

FPGA e HDL 1/2

• Field Programmable Gate Array

Circuiti logici programmabili

1. CLB Configurable Logic Block

2. Interconnections

3. I/O Blocks

4. Memory blocks

5. Other functions blocks

(DCM, DSP, Multiplier)

9

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

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

modifica impostazioni• Interfaccia Master per

accesso a Frame Buffer• Profondità di colore:

• 32bpp• 24bpp• 16bpp• 8bpp scala di grigi• 8bpp lookup table

22

ZBT SRAM Controller• Interfaccia Slave per accesso alla memoria ZBT

SRAM• Accesso singolo in lettura o scrittura (non

ottimizzato)• Accesso in BURST indirizzi consecutivi

23

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

24

Caratteristiche dei sistemiNuovo 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

25

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

26

Analisi delle prestazioni 2/2

27

Conclusioni

28

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)

Recommended