65
VGA KONTROLER U FPGA TEHNOLOGIJI Specijalistički rad Kandidat: Mentor: Saša Knežević, 47/10 Prof. dr Radovan Stojanović Podgorica, jul 2011. UNIVERZITET CRNE GORE ELEKTROTEHNIČKI FAKULTET

VGA KONTROLER U FPGA TEHNOLOGIJI¡a Knežević - VGA... · obtained from FPGA chip outputs are driven to the VGA connector and used for displaying text and graphical data. Realization

  • Upload
    others

  • View
    13

  • Download
    0

Embed Size (px)

Citation preview

Page 1: VGA KONTROLER U FPGA TEHNOLOGIJI¡a Knežević - VGA... · obtained from FPGA chip outputs are driven to the VGA connector and used for displaying text and graphical data. Realization

VGA KONTROLER U FPGA TEHNOLOGIJI

Specijalistički rad

Kandidat: Mentor:

Saša Knežević, 47/10 Prof. dr Radovan Stojanović

Podgorica, jul 2011.

UNIVERZITET CRNE GORE

ELEKTROTEHNIČKI FAKULTET

Page 2: VGA KONTROLER U FPGA TEHNOLOGIJI¡a Knežević - VGA... · obtained from FPGA chip outputs are driven to the VGA connector and used for displaying text and graphical data. Realization

UNIVERZITET CRNE GORE

ELEKTROTEHNIČKI FAKULTET

Broj: Podgorica, 2011. godine

Kandidat : Saša Knežević

Broj indeksa : 47/10

Naziv rada:

VGA KONTROLER U FPGA TEHNOLOGIJI

Datum izdavanja rada: Datum predaje rada:

Mentor: Kandidat:

Prof. dr Radovan Stojanović Saša Knežević

Page 3: VGA KONTROLER U FPGA TEHNOLOGIJI¡a Knežević - VGA... · obtained from FPGA chip outputs are driven to the VGA connector and used for displaying text and graphical data. Realization

IZJAVA O SAMOSTALNOM RADU

Ovim izjavljujem da sam specijalistički rad uradio samostalno uz pomoć konsultacija sa

mentorom i navedene literature.

Kandidat:

Saša Knežević

Specijalistički rad je odbranjen dana ___. ___. 2011. godine pred Komisijom u sastavu:

1. (Predsjednik)

2. (Mentor)

3. (Član)

sa ocjenom _____ ( )

Page 4: VGA KONTROLER U FPGA TEHNOLOGIJI¡a Knežević - VGA... · obtained from FPGA chip outputs are driven to the VGA connector and used for displaying text and graphical data. Realization

Sažetak:

Rad opisuje simulaciju, sintezu i implementaciju digitalnog sistema za generisanje video signala pomoću

alata za automatizovano projektovanje zasnovanog na VHDL-u i FPGA implementacione platforme. Signali

dobijeni na izlazima FPGA čipa su dovedeni do VGA konektora i iskorišćeni za prikazivanje tekstualnih i

grafičkih podataka. Predstavljena je realizacija VGA Kontrolera koji prenosi signale do VGA konektora

monitora i koji se sa ostalim dizajniranim digitalnim kolima koristi za prikazivanje slike, teksta i animacije.

Ovaj dizajn ostvaruje zahtjev prikazivanja video slike sa rezolucijom 800 x 600 piksela i osam boja. Dati su

rezultati eksperimentalnog testiranja realizovanih rješenja, kao i pregled utrošenih logičkih resursa za

njihovu hardversku realizaciju.

Abstract:

The paper describes the simulation, synthesis and implementation of digital system for generating

video signals using automated design tool based on VHDL and FPGA implementation platform. The signals

obtained from FPGA chip outputs are driven to the VGA connector and used for displaying text and

graphical data. Realization of a VGA Controller which transmits signals to the VGA connector of the

monitor and which is used with other designed digital circuits to display image, text and animation is

presented. This design achieves a request in displaying video image with a resolution of 800 x 600 pixels

and eight colors. The results of experimental testing of implemented solutions, and an overview of logical

resources spent for their hardware realization are given.

Page 5: VGA KONTROLER U FPGA TEHNOLOGIJI¡a Knežević - VGA... · obtained from FPGA chip outputs are driven to the VGA connector and used for displaying text and graphical data. Realization

Sadržaj

1 Uvod .................................................................................................................................................... 1

2 VGA...................................................................................................................................................... 2

2.1 Tehnologija Video Prikaza ............................................................................................................... 2

2.2 Osvježavanje ekrana ....................................................................................................................... 3

2.3 VGA sinhronizacija .......................................................................................................................... 5

2.4 VGA Kontroler ................................................................................................................................ 7

3 FPGA tehnologija.................................................................................................................................. 9

3.1 Uvod u FPGA................................................................................................................................... 9

3.2 SRAM FPGA tehnologija .................................................................................................................. 9

3.3 Cyclone FPGA familija ................................................................................................................... 16

4 Predloženo rješenje............................................................................................................................ 18

4.1 Hardver iskorišćen za realizaciju predloženog rješenja .................................................................. 18

4.2 Arhitektura predloženog rješenja .................................................................................................. 22

4.2.1 Realizacija VGA Kontrolera .................................................................................................... 22

4.2.2 Prikazivanje boja na ekranu ................................................................................................... 25

4.2.3 Skladištenje i prikazivanje slika .............................................................................................. 27

4.2.4 Realizacija ROM memorije za karaktere ................................................................................. 31

4.2.5 Prikazivanje teksta na ekranu ................................................................................................. 36

4.2.6 Karakter Generator ................................................................................................................ 39

4.2.7 Prikazivanje animacije i upravljanje objektom prikazanim na ekranu...................................... 41

4.2.8 Istovremeno prikazivanje animacije i teksta ........................................................................... 47

4.2.9 Pregled utrošenih resursa za realizaciju u FPGA tehnologiji .................................................... 48

5 Rezultati testiranja predloženog rješenja ............................................................................................ 50

6 Zaključak ............................................................................................................................................ 54

7 Prilog ................................................................................................................................................. 55

8 Literatura ........................................................................................................................................... 56

Page 6: VGA KONTROLER U FPGA TEHNOLOGIJI¡a Knežević - VGA... · obtained from FPGA chip outputs are driven to the VGA connector and used for displaying text and graphical data. Realization

Popis slika

Slika 2.1 CRT i fosforne tačke na površini ekrana ........................................................................................ 2

Slika 2.2 Raspored 640 x 480 piksela na ekranu .......................................................................................... 3

Slika 2.3 Tajming signala za vertikalnu sinhronizaciju za 640 x 480 na 60Hz ................................................ 4

Slika 2.4 Tajming signala za horizontalnu sinhronizaciju za 640 x 480 na 60Hz ............................................ 4

Slika 2.5 Tajming linije piksela .................................................................................................................... 5

Slika 2.6 Tajming jednog frejma.................................................................................................................. 5

Slika 2.7 Dijelovi ekrana kod rezolucije 640 x 480 piksela ............................................................................ 6

Slika 2.8 Raspored dijelova ekrana za različite rezolucije i frekvencije osvježavanja .................................... 7

Slika 2.9 Arhitektura VGA Kontrolera .......................................................................................................... 8

Slika 3.1 Fizički izgled FPGA čipova ............................................................................................................. 9

Slika 3.2 Ilustracija tipične FPGA arhitekture ............................................................................................ 10

Slika 3.3 SRAM-bazirana programabilna ćelija .......................................................................................... 10

Slika 3.4 MUX-bazirani logički blok ........................................................................................................... 11

Slika 3.5 LUT bazirana na transmisionim kapijama .................................................................................... 12

Slika 3.6 Pojednostavljeni izgled Xilinx LC ................................................................................................. 12

Slika 3.7 Slice koji sadrži dvije logičke ćelije .............................................................................................. 13

Slika 3.8 CLB koji sadrži četiri slice-a (broj slice-a zavisi od FPGA familije) .................................................. 14

Slika 3.9 Pogled na čip sa kolonama ugrađenih RAM blokova ................................................................... 14

Slika 3.10 Pogled na čip sa ugrađenim jezgrom van glavnog fabrikata....................................................... 15

Slika 3.11 Pogled na čip koji pokazuje grupe pinova opšte namjene......................................................... 16

Slika 3.12 LE Alterine Cyclone serije ......................................................................................................... 17

Slika 4.1 Izgled UP3-1C6 ploče .................................................................................................................. 19

Slika 4.2 Komponente UP3-1C6 ploče ....................................................................................................... 20

Slika 4.3 VGA Port UP3-1C6 ploče ............................................................................................................. 21

Slika 4.4 VGA kabl .................................................................................................................................... 22

Slika 4.5 Push Button prekidači ................................................................................................................ 22

Slika 4.6 Quartus II simbol VGA_Contoller-a ............................................................................................. 23

Slika 4.7 Simulacioni dijagram rada VGA_Controller-a .............................................................................. 24

Slika 4.8 Simulacioni dijagram rada VGA_Controller-a na intervalu 15ms ................................................. 25

Slika 4.9 Quartus II simbol RGB_Input-a ................................................................................................... 25

Slika 4.10 Quartus II simulacija rada RGB_ Input-a .................................................................................... 26

Slika 4.11 Blok dijagram fajl projekta VGA_RGB_Input.............................................................................. 26

Slika 4.12 Sačuvana crno-bijela slika ......................................................................................................... 27

Slika 4.13 Quartus II simbol Image_Storage-a ........................................................................................... 27

Slika 4.14 Quartus II simulacija rada Stored_Image-a................................................................................ 29

Slika 4.15 Blok dijagram fajl projekta Display_Image_Storage................................................................... 30

Slika 4.16 Quartus II simulacija rada Display_Image_Storage-a ................................................................. 30

Slika 4.17 MIF fajl karakteri.mif ................................................................................................................ 32

Page 7: VGA KONTROLER U FPGA TEHNOLOGIJI¡a Knežević - VGA... · obtained from FPGA chip outputs are driven to the VGA connector and used for displaying text and graphical data. Realization

Slika 4.18 Quartus II simbol ROM memorije za karaktere ......................................................................... 32

Slika 4.19 Quartus II simbol komponente lpm_rom .................................................................................. 33

Slika 4.20 Pristupanje fontu karaktera pomoću ROM-a ............................................................................. 35

Slika 4.21 Quartus II simulacija rada modula Character_ROM_Memory ................................................... 36

Slika 4.22 Quartus II simbol bloka Char_Pos_And_Addr1 .......................................................................... 37

Slika 4.23 Quartus II simulacioni dijagram rada bloka Char_Pos_And_Addr1 ............................................ 38

Slika 4.24 Blok dijagram projekta Character_Display ................................................................................ 39

Slika 4.25 Quartus II simbol String_Input-a ............................................................................................... 39

Slika 4.26 Quartus II simulacioni dijagram rada String_Input-a ................................................................. 40

Slika 4.27 Quartus II simulacioni dijagram rada String_Input-a - slanje adresa sa ulaza kola ...................... 41

Slika 4.28 Blok dijagram Character_Generator-a ...................................................................................... 41

Slika 4.29 Quartus II simbol bloka Wall_Racket_And_Ball ......................................................................... 42

Slika 4.30 Quartus II simulacioni dijagram rada bloka Wall_Racket_And_Ball ........................................... 45

Slika 4.31 Blok dijagram projekta VGA_Animation .................................................................................... 46

Slika 4.32 Quartus II simulacija projekta VGA_Animation ......................................................................... 46

Slika 4.33 Blok dijagram projekta VGA_Anim_And_Char_Disp .................................................................. 47

Slika 4.34 Quartus II simulacija rada projekta VGA_Anim_And_Char_Disp ................................................ 48

Slika 4.35 Pregled logičkih resursa za realizaciju osnovnih kola iz rada ...................................................... 48

Slika 4.36 Pregled logičkih resursa za realizaciju kola većeg stepena integracije ........................................ 49

Slika 5.1 Eksperimentalna oprema i testiranje projekta VGA_RGB_Input .................................................. 51

Slika 5.2 Rezultat testiranja projekta Display_Image_Storage ................................................................... 51

Slika 5.3 a) Testiranje projekta Character_Display pomoću UP3-1C6 ploče i VGA monitora; b) Rezultat

testiranja Character_Display-a .................................................................................................................. 52

Slika 5.4 Testiranje projekta Character_Generator ................................................................................... 52

Slika 5.5 Prikaz eksperimentalne opreme i testiranje projekta VGA_Animation ........................................ 53

Slika 5.6 Rezultati testiranja projekta VGA_Anim_And_Char_Disp ............................................................ 53

Page 8: VGA KONTROLER U FPGA TEHNOLOGIJI¡a Knežević - VGA... · obtained from FPGA chip outputs are driven to the VGA connector and used for displaying text and graphical data. Realization

Popis tabela

Tabela 2.1 Tro-bitne kombinacije boja na izlazu VGA Kontrolera ................................................................ 8

Tabela 3.1 Karakteristike čipova iz FPGA familije Cyclone ......................................................................... 17

Tabela 4.1 Karakteristike Cyclone EP1C6Q240 uređaja ............................................................................. 20

Tabela 4.2 Konfiguracija VGA Porta .......................................................................................................... 21

Tabela 4.3 Portovi komponente lpm_rom ................................................................................................ 33

Tabela 4.4 Parametri komponente lpm_rom ............................................................................................ 33

Tabela 4.5 Adrese simbola u font ROM-u ................................................................................................. 36

Tabela 5.1 Dodjela FPGA pinova za VGA_Controller................................................................................. 50

Tabela 5.2 FPGA pinovi za tastere ............................................................................................................ 50

Page 9: VGA KONTROLER U FPGA TEHNOLOGIJI¡a Knežević - VGA... · obtained from FPGA chip outputs are driven to the VGA connector and used for displaying text and graphical data. Realization

Popis skraćenica

ASIC Application-Specific Integrated Circuit

CLB Configurable Logic Block

CRT Cathode Ray Tube

DSP Digital Signal Processing

FPGA Field Programmable Gate Array

HBP Horizontal Back Porch

HDL Hardware Description Language

HFP Horizontal Front Porch

IDE Integrated Drive Electronics

IP Intelectual Property

JTAG Joint Test Action Group

LAB Logic Array Block

LC Logic Cell

LCD Liquid Crystal Display

LE Logic Element

LED Light-Emitting Diode

LPM Library of Parametrized Modules

LUT Look-Up Table

MUX Multiplexer

PC Personal Computer

RGB Red, Green, and Blue

SRAM Static Random Access Memory

TTL Transistor-Transistor Logic

USB Universal Serial Bus

VBP Vertical Back Porch

VFP Vertical Front Porch

VGA Video Graphics Array

VHDL Very High Speed Integrated Circuits Hardware Description Language

Page 10: VGA KONTROLER U FPGA TEHNOLOGIJI¡a Knežević - VGA... · obtained from FPGA chip outputs are driven to the VGA connector and used for displaying text and graphical data. Realization

Saša Knežević VGA KONTROLER U FPGA TEHNOLOGIJI

1

1 Uvod

Cilj rada je predstavljanje upotrebe FPGA (Field Programmable Gate Array) tehnologije u realizaciji

digitalnih kola za generisanje video slike. U tu svrhu, drugo poglavlje rada daje osnovne informacije o video

prikazu i načinu na koji se on realizuje. Treće poglavlje rada je uvod u FPGA tehnologiju i opisuje

arhitekturu FPGA kola.

Na početku četvrtog poglavlja je opisan hardver koji je iskorišćen u praktičnom radu, a u nastavku

poglavlja su predstavljena realizovana rješenja. Dio rada koji je posvećen opisu izvršenog istraživanja

počinje predstavljanjem realizacije VGA (Video Graphics Array) Kontrolera koji ima ulogu generisanja

aktivnih video signala. Rad prezentuje mogućnosti upotrebe VGA Kontrolera, počev od prikazivanja boja i

teksta do prikazivanja animacije i upravljanja kretanjem objekta prikazanog na VGA monitoru. Opisana je

realizacija ROM memorije za karaktere. U radu su data konkretna rješenja realizacije kola za prikazivanje

slike, generisanje teksta i prikazivanje animiranog objekta. Rad sadrži blok dijagrame predloženih rješenja i

njihove simulacione dijagrame.

Peto poglavlje rada prezentuje rezultate testiranja pomoću Alterinog UP3 Edukacionog Kompleta. Date

su fotografije eksperimentalne opreme i rezultata testiranja realizovanih rješenja.

Sa zaključkom su predstavljene mogućnosti proširenja rada, a na kraju je dat pregled literature.

Elektronska verzija rada je zajedno sa kreiranim izvornim kodovima, fotografijama i video snimcima

eksperimentalne verifikacije, data na CD-u koji je dio rada.

Page 11: VGA KONTROLER U FPGA TEHNOLOGIJI¡a Knežević - VGA... · obtained from FPGA chip outputs are driven to the VGA connector and used for displaying text and graphical data. Realization

Saša Knežević VGA KONTROLER U FPGA TEHNOLOGIJI

2

2 VGA

VGA je analogni video standard koji se uglavnom koristi kod personalnih računara. VGA se odnosi na

sistem za prikazivanje slike koji je uveden od strane IBM-a 1987. godine sa rezolucijom 640 x 480 piksela u

grafičkom modu i rezolucijom 720 x 400 piksela u tekstualnom modu. Do danas su uvedene mnoge revizije

ovog standarda.

Da bi se razumjelo kako je moguće generisati video sliku pomoću FPGA razvojne ploče, neophodno je

prvo razumjeti različite komponente VGA video signala. VGA video signal sadrži 5 aktivnih signala. Dva

signala, signal za horizontalnu i signal za vertikalnu sinhronizaciju, koriste se za sinhronizaciju video signala

i oni su kompatibilni sa TTL (Transistor-Transistor Logic) logičkim nivoima. Tri analogna signala sa 0.7-1.0V

peak-to-peak nivoima se koriste za kontrolu boje. Signali boje su: signal crvene, zelene i plave boje. Oni se

često kolektivno nazivaju RGB (Red, Green, and Blue) signali. Promjenom analognih nivoa tri RGB signala

proizvode se sve ostale boje.

2.1 Tehnologija Video Prikaza

Prirodu video signala je diktirala prva tehnologija koja se koristila za prikaz video slike. Iako su LCD

(Liquid Crystal Display) monitori sada u uobičajenoj upotrebi, glavna komponenta u ranim VGA

računarskim monitorima je bila katodna cijev prikazana na Slici 2.1. Ekran je matrica elemenata slike koji

su poznati kao pikseli. Svaki piksel može da ima svoju boju i osvjetljenost. U cilju stvaranja iluzije kretanja,

određeni broj frejmova se prikazuje svake sekunde.

Slika 2.1 CRT i fosforne tačke na površini ekrana

Page 12: VGA KONTROLER U FPGA TEHNOLOGIJI¡a Knežević - VGA... · obtained from FPGA chip outputs are driven to the VGA connector and used for displaying text and graphical data. Realization

Saša Knežević VGA KONTROLER U FPGA TEHNOLOGIJI

3

Da bi se generisala slika, elektronski snop mora da skenira ekran u nizu horizontalnih linija. Sistem za

skretanje koristi magnetna ili elektrostatička polja da skrene elektronski snop na odgovarajući položaj na

površini CRT-a (Cathode Ray Tube). RGB informacija u video signalu se koristi za kontrolu snage snopa

elektrona. Svjetlost se generiše kada video signal uključi snop, a snop udari kolornu fosfornu tačku ili liniju

na površini CRT-a. Površina kolornog CRT-a sadrži niz redova sa tri različita fosfora. Po jedan tip fosfora se

koristi za svaku od osnovnih boja: crvenu, zelenu i plavu.

U standardnom VGA formatu, ekran sadrži 640 x 480 elemenata slike ili piksela. Video signal mora da

pređe cijeli ekran 60 puta u sekundi da bi se obezbjedilo kretanje na slici i da bi se smanjilo treperenje.

Ovaj period se naziva osvježavanje. Ljudsko oko može da otkrije treperenja na frekvenciji osvježavanja

manjoj od 30Hz. Da bi se smanjilo treperenje zbog interferencije sa fluorescentnim izvorima osvjetljenja,

ponekad se kod monitora koriste frekvencije osvježavanja veće od 60Hz, npr. oko 70Hz.

Boja svakog piksela je određena vrijednošću RGB signala kada snop prelazi preko piksela. Kod rezolucije

640 x 480 piksela , sa frekvencijom osvježavanja od 60Hz, to je vrijeme od oko 40ns po pikselu. Takt od 25

MHz koji se koristi za rad monitora ima periodu od 40ns. Neznatno veći takt će proizvesti veću stopu

osvježavanja.

2.2 Osvježavanje ekrana

Kao i bilo koji video format, VGA video je sastavljen od frejmova. Svaki frejm se sastoji od niza

horizontalnih linija, a svaka linija se sastoji od niza piksela. Linije u svakom kadru se emituju od vrha do

dna , a pikseli u svakom redu se prenose sa lijeva na desno.

Proces osvježavanja ekrana rezolucije 640 x 480 piksela koji se vidi na Slici 2.2 počinje u gornjem lijevom

uglu ekrana i oslikava jedan piksel u jednom trenutku sa lijeva na desno. Na kraju prvog reda, red se

uvećava za jedan i adresa kolone se resetuje na adresu prve kolone. Svaki red se oslikava dok se ne prikažu

svi pikseli iz reda. Kada se cio ekran oslikao, proces osvježavanja počinje ponovo.

Slika 2.2 Raspored 640 x 480 piksela na ekranu

Page 13: VGA KONTROLER U FPGA TEHNOLOGIJI¡a Knežević - VGA... · obtained from FPGA chip outputs are driven to the VGA connector and used for displaying text and graphical data. Realization

Saša Knežević VGA KONTROLER U FPGA TEHNOLOGIJI

4

Video signal oslikava ili osvježava sliku koristeći sledeći proces. Signal vertikalne sinhronizacije signala, kao što je prikazano na slici (Slika 2.3) signalizira monitoru da počne prikazivanje nove slike ili frejma, a monitor počinje prikazivanje u gornjem lijevom uglu sa pikselom 0,0. Signal horizontalne sinhronizacije signala, kao što je prikazano na slici (Slika 2.4), signalizira monitoru da osvježi još jedan red od 640 piksela. Nakon što je 480 redova piksela osvježeno sa 480 signala horizontalne sinhronizacije, signal vertikalne sinhronizacije resetuje monitor na gornji lijevi ugao i proces se nastavlja. Tokom vremena kada se podaci ne prikazuju i snop se vraća u krajnju lijevu kolonu da pokrene još jedno horizontalno skeniranje, RGB signali treba da budu postavljena na crnu boju (sve nule).

Slika 2.3 Tajming signala za vertikalnu sinhronizaciju za 640 x 480 na 60Hz

Slika 2.4 Tajming signala za horizontalnu sinhronizaciju za 640 x 480 na 60Hz

Mnogi VGA monitori će se isključiti ako dva sinhronizaciona signala nemaju tačne vrijednosti. Većina PC

(Personal Computer) monitora imaju LED (Light-Emitting Diode) koja je zelene boje kada detektuju validne

signale za sinhronizaciju i žute boje u suprotnom. Kod grafičkih PC kartica, dodjeljene lokacije video

memorije se koriste za skladištenje vrijednosti boja svakog piksela na ekranu. Da bi se proizveo RGB signal,

video memorija se čita dok snop skenira preko ekrana. Aktuelne generacije FPGA čipova daju mogućnost

razvoja elektronskih kola koja zahtjevaju upotrebu memorije.

Page 14: VGA KONTROLER U FPGA TEHNOLOGIJI¡a Knežević - VGA... · obtained from FPGA chip outputs are driven to the VGA connector and used for displaying text and graphical data. Realization

Saša Knežević VGA KONTROLER U FPGA TEHNOLOGIJI

5

2.3 VGA sinhronizacija

Signal horizontalne sinhronizacije se koristi za definisanje kraja svakog reda piksela i ovaj signal

kontroliše horizontalnu poziciju aktivnog piksela. Signal vertikalne sinhronizacije se koristi za definisanje

kraja svakog frejma. Frekvencija signala za vertikalnu sinhronizaciju može biti nazvana frekvencijom

osvježavanja, tj. brojem iscrtavanja ekrana u sekundi.

Svaka linija ekrana počinje aktivnim regionom u kome se prenose RGB vrijednosti za svaki piksel u redu.

Nakon aktivnog regiona slijedi zatamnjeni region u kome pikseli imaju crnu boju. U sredini intervala

zatamnjenja, prenosi se impuls za horizontalnu sinhronizaciju. Interval zatamnjenja prije impulsa

horizontalne sinhronizacije je poznat kao "prednji prilaz", a interval zatamnjenja nakon impulsa je poznat

kao "zadnji prilaz" impulsu. Na Slici 2.5 se može vidjeti da se signal iz kanala za zelenu boju šalje samo u

toku trajanja aktivnog regiona linije piksela.

Slika 2.5 Tajming linije piksela

Frejmovi su izgrađeni od linija na isti način kao što su linije izgrađene od piksela. Jedan frejm sadrži sve

linije koje će zapravo biti prikazane na ekranu, zatim jedan broj crnih linija koje čine "prednji prilaz", sledeći

dolazi impuls za vertikalnu sinhronizaciju koji traje nekoliko redova, a zatim još crnih linija da bi se

formirao "zadnji prilaz". Podjela frejma je prikazana na Slici 2.6.

Slika 2.6 Tajming jednog frejma

Page 15: VGA KONTROLER U FPGA TEHNOLOGIJI¡a Knežević - VGA... · obtained from FPGA chip outputs are driven to the VGA connector and used for displaying text and graphical data. Realization

Saša Knežević VGA KONTROLER U FPGA TEHNOLOGIJI

6

Na slici (Slika 2.7) su ilustrovani dijelovi ekrana kod rezolucije 640 x 480 piksela. Vidljivi dio ekrana je

prikazan kao obojena oblast i on ima dimenzije 640 x 480 piksela. Crne i sive ivice označavaju dijelove

ekrana koji nisu vidljivi, ali su neophodni za sinhronizaciju. Sa ovim oblastima, ukupna širina ekrana je 800

piksela, a ukupna visina je 524 piksela. Ispod je kratak opis svakog dijela ekrana.

• Aktivni video ( Active video). Vidljivi dio ekrana u toku čijeg skeniranja je video izlaz aktivan.

Njegove dimenzije su 640 x 480 piksela.

• Prednji prilaz (Front porch). Kada snop dostigne kraj vidljivog dijela ekrana, video izlaz je izgašen.

Dva prednja prilaza impulsima su na Slici 2.7 označeni kao VFP (Vertical Front Porch) u slučaju

vertikalne sinhronizacije i HFP (Horizontal Front Porch) u slučaju horizontalne sinhronizacije.

• Impuls za sinhronizaciju (Sync pulse). U slučaju horizontalne sinhronizacije (HSYNC), proces

iscrtavanja ekrana se vraća na nultu kolonu, a ako je u pitanju impuls vertikalne sinhronizacije

(VSYNC), proces iscrtavanja se vraća na nulti red i nultu kolonu.

• Zadnji prilaz (Back porch). Ovo je dio ekrana koji se koristi prije nego što počne aktivni video

region. Ove oblasti su na Slici 2.7 označene kao VBP (Vertical Back Porch) i HBP (Horizontal Back

Porch).

Slika 2.7 Dijelovi ekrana kod rezolucije 640 x 480 piksela

Svaki proizvođač u priručniku za svoj monitor daje različit spisak rasporeda dijelova ekrana. Srećom,

vrijednosti date na Slici 2.8 nisu posebno kritične i ne moraju se koristiti njihove tačne vrijednosti i to je

samo jedan od mogućih načina podjele ekrana. Slika 2.8 daje podatke o tome koliko piksela obuhvataju

oblasti horizontalne i vertikalne podjele ekrana. Kod CRT monitora, dužine prednjeg i zadnjeg prilaza

kontrolišu položaj slike na ekranu. Ako se slika pojavi pomjerena desno ili lijevo, gore ili dolje, treba

pokušati podesiti vrijednosti prednjeg i zadnjeg prilaza za odgovarajući smjer (ili koristiti podešavanja

pozicije slike na monitoru, što vrši istu radnju). LCD monitori će uglavnom automatski centrirati aktivni

video region.

Page 16: VGA KONTROLER U FPGA TEHNOLOGIJI¡a Knežević - VGA... · obtained from FPGA chip outputs are driven to the VGA connector and used for displaying text and graphical data. Realization

Saša Knežević VGA KONTROLER U FPGA TEHNOLOGIJI

7

Slika 2.8 Raspored dijelova ekrana za različite rezolucije i frekvencije osvježavanja

2.4 VGA Kontroler

VGA Kontroler je kolo koje ima funkciju da generiše RGB signale i signale za horizontalnu i vertikalnu

sinhronizaciju VGA signala. VGA Kontroler generiše 5 aktivnih VGA signala koji su potrebni za rad

monitora. Arhitektura VGA Kontrolera je prikazana na Slici 2.9. Arhitektura VGA Kontrolera sadrži

sinhronizaciono kolo i RGB kolo. Signali koje VGA Kontroler generiše se preko D/A konvertora dovode do

VGA monitora. VGA Kontroler je odgovoran za horizontalnu i vertikalnu sinhronizaciju što obezbjeđuje

stabilnu i jasnu sliku. U ovom radu, VGA Kontroler je realizovan u FPGA tehnologiji.

Page 17: VGA KONTROLER U FPGA TEHNOLOGIJI¡a Knežević - VGA... · obtained from FPGA chip outputs are driven to the VGA connector and used for displaying text and graphical data. Realization

Saša Knežević VGA KONTROLER U FPGA TEHNOLOGIJI

8

Slika 2.9 Arhitektura VGA Kontrolera

Sinhronizaciono kolo VGA Kontrolera na svom izlazu generiše signale za sinhronizaciju koji su

neophodni za pravilan rad VGA monitora. H_Sinh je signal za horizontalnu sinhronizaciju, a V_Sinh se

koristi za vertikalnu sinhronizaciju. Sinhronizaciono kolo generiše signale koristeći svoje unutrašnje brojače

čiji su izlazi Piksel_X i Piksel_Y. Vrijednosti Piksel_X i Piksel_Y određuju lokaciju trenutno prikazivanog

piksela. Sinhronizaciono kolo određuje rezoluciju piksela na ekranu, jer njegovi interni brojači koriste

vremenske konstante za podjelu ekrana, poput konstanti prikazanih na Slici 2.8. Ovo kolo proizvodi i signal

Video_Akt koji daje podatak o tome da li je u toku obrada aktivnog, tj. vidljivog dijela ekrana kada se

aktiviraju RGB signali.

RGB kolo određuje boju piksela na ekranu i na svom izlazu generiše signale za crvenu, zelenu i plavu

boju koji su 1-bitni signali. Kombinacijom ova tri izlazna signala određuje se boja svakog piksela na ekranu.

RGB kolo dobija podatke od sinhronizacionog kola, a na svojim RGB ulazima dobija podatke od spoljašnjih

kola sa kojima se kombinovano koristi u dizajnu. Kombinovanjem signala za osnovne boje, na ekranu se

mogu dobiti ostale boje. Pošto opisani VGA Kontroler ima tri 1-bitna izlazna RGB signala, na njegovom

izlazu se može dobiti 23 , tj. osam boja. U Tabeli 2.1 su prikazane tro-bitne kombinacije boja.

Crvena (R) Zelena (G) Plava (B) Rezultujuća boja

0 0 0 Crna

0 0 1 Plava

0 1 0 Zelena

0 1 1 Cijan

1 0 0 Crvena

1 0 1 Magenta

1 1 0 Žuta

1 1 1 Bijela

Tabela 2.1 Tro-bitne kombinacije boja na izlazu VGA Kontrolera

Page 18: VGA KONTROLER U FPGA TEHNOLOGIJI¡a Knežević - VGA... · obtained from FPGA chip outputs are driven to the VGA connector and used for displaying text and graphical data. Realization

Saša Knežević VGA KONTROLER U FPGA TEHNOLOGIJI

9

3 FPGA tehnologija

3.1 Uvod u FPGA

FPGA (Field Programmable Gate Array) kola su digitalna integrisana kola koja sadrže konfigurabilne

(programabilne) logičke blokove sa konfigurabilnim interkonekcijma između ovih blokova. Projektanti

mogu konfigurisati (programirati) ovakve uređaje da izvrše ogroman broj različitih zadataka.

FPGA tehnologija ima veoma značajno mjesto u dizajniranju digitalnih kola zbog činjenice da FPGA

kombinuje najbolje osobine ASIC (Application-Specific Integrated Circuit) kola i procesorski baziranih

sistema. U zavisnosti od toga kako se koriste, neka FPGA kola mogu biti programirana jedan put, dok druga

mogu biti reprogramirana iznova.

Slika 3.1 Fizički izgled FPGA čipova

“Field programmable" dio naziva FPGA se odnosi na činjenicu da se programiranje odvija "na terenu",

za razliku od uređaja čija je interna funkcionalnost definisana od strane proizvođača. To može da znači da

su FPGA kola konfigurisana u laboratoriji, ili se može odnositi i na mijenjanje funkcija uređaja

ugrađenog u elektronski sistem koji je već prenešen u upotrebu.

FPGA kola se dijele na dvije osnovne grupe, a to su Antifuse FPGA kola i SRAM (Static Random Access

Memory) FPGA kola. Actel, Quicklogic, Cypress i Xilinx su najpoznatiji proizvođači Antifuse FPGA kola, dok

su Altera i Xilinx vodeći u proizvodnji SRAM FPGA kola. Prva FPGA familija koju je uveo Xilinx je bila familija

XC2000 iz 1985. godine.

3.2 SRAM FPGA tehnologija

SRAM je trenutno dominantna FPGA tehnologija. Xilinx SRAM FPGA kola imaju strukturu koja se zasniva

na nizovima, što znači da je svaki čip sastavljen od dvo-dimenzionog niza logičkih blokova koji mogu da se

povezuju preko horizontalnih i vertikalnih kanala za konekciju. Ilustracija tipične FPGA arhitekture je

prikazana na Slici 3.2.

Page 19: VGA KONTROLER U FPGA TEHNOLOGIJI¡a Knežević - VGA... · obtained from FPGA chip outputs are driven to the VGA connector and used for displaying text and graphical data. Realization

Saša Knežević VGA KONTROLER U FPGA TEHNOLOGIJI

10

Slika 3.2 Ilustracija tipične FPGA arhitekture

SRAM ili Statički RAM je tip poluprovodničke memorije. Kvalifikacija "Statički" u vezi sa SRAM-om znači

da kada je vrijednost ubačena u ćelije SRAM-a, ona ostaje nepromjenjena, osim ako je namjerno

promjenjena ili dok se napajanje ne ukloni iz sistema. Simbol za programabilniu ćeliju na bazi SRAM je

prikazan na Slici 3.3.

Slika 3.3 SRAM-bazirana programabilna ćelija

SRAM ćelija se sastoji od multitranzistorskog SRAM memorijskog elementa za skladištenje čiji izlaz

pokreće dodatni kontrolni tranzistor. U zavisnosti od sadržaja memorijskog elementa (logička ’0’ ili logička

’1’), kontrolni tranzistor će biti ili isključen ili uključen.

Karakteristike SRAM tehnologije programiranja su da nove ideje za dizajn mogu biti brzo sprovedene i testirane, a standardi razvoja i protokoli mogu biti primjenjeni relativno lako. Štaviše, kada je sistem prvi put uključen, FPGA kolo u početku može biti programirano da obavlja jednu funkciju, kao što je samotestiranje, a onda može biti reprogramirano da izvrši svoj glavni zadatak.

Page 20: VGA KONTROLER U FPGA TEHNOLOGIJI¡a Knežević - VGA... · obtained from FPGA chip outputs are driven to the VGA connector and used for displaying text and graphical data. Realization

Saša Knežević VGA KONTROLER U FPGA TEHNOLOGIJI

11

Logički blokovi

Postoje dvije osnovne vrste programabilnih logičkih blokova koji se koriste za formiranje FPGA arhitekture: MUX (Multiplexer) i LUT ( Look-Up Table) .

Kao primjer pristupa zasnovanog na MUX-u, treba posmatrati jedan od načina na koji 3-ulazna funkcija y=(a & b)|c, može biti implementirana pomoću bloka koji sadrži samo multipleksere (Slika 3.4).

Slika 3.4 MUX-bazirani logički blok

Osnovni koncept koji stoji iza LUT je relativno jednostavan. Grupa ulaznih signala se koristi kao indeks (pokazivač) na look-up tabelu. Sadržaj ove tabele se uređuje tako da ćelija na koju pokazuje svaka ulazna kombinacija sadrži željenu vrijednost. Na primjer, pretpostavimo da je potrebno implementirati 3-ulaznu funkciju: y=(a & b)|c.

To se može postići dovođenjem odgovarajućih vrijednosti do 3-ulazne LUT. Za potrebe navedenog primjera, pretpostavlja se da je LUT formirana od SRAM ćelija. Najčešće korišćena tehnika, da bi se izabrala željena SRAM ćelija, je da se koriste kaskade prenosnih kapija kao što je prikazano na Slici 3.5. Ako je prenosna kapija aktivna, ona prenosi signal na svom ulazu do svog izlaza. Ako je kapija deaktivirana, njen izlaz je električno odvojen od žice koja je napaja.

Page 21: VGA KONTROLER U FPGA TEHNOLOGIJI¡a Knežević - VGA... · obtained from FPGA chip outputs are driven to the VGA connector and used for displaying text and graphical data. Realization

Saša Knežević VGA KONTROLER U FPGA TEHNOLOGIJI

12

Slika 3.5 LUT bazirana na transmisionim kapijama

Logičke Ćelije / Logički Elementi

Svaki proizvođač FPGA kola ima svoje nazive za proizvode. Na primjer, gradivni blok u modernom FPGA kolu kod Xilinx-a se zove LC (Logic Cell) ili logička ćelija, a kod Altere LE (Logic Element) ili logički element. Pored ostalog, LC obuhvata 4-ulaznu LUT (koja takođe može da djeluje kao 16 x 1 RAM ili 16-bitni shift registar), multiplekser i registar (Slika 3.6).

Slika 3.6 Pojednostavljeni izgled Xilinx LC

Ilustracija na Slici 3.6 je grubo uprošćavanje, ali ona zadovoljava potrebe ilustracije arhitekture. Registar se može konfigurisati da radi kao flip-flop, kao što je prikazano na Slici 3.6, ili kao latch. Polaritet takta (aktiviranje na rastućoj ivici ili na opadajućoj ivici) može biti konfigurisan, kao i polaritet clock enable i

Page 22: VGA KONTROLER U FPGA TEHNOLOGIJI¡a Knežević - VGA... · obtained from FPGA chip outputs are driven to the VGA connector and used for displaying text and graphical data. Realization

Saša Knežević VGA KONTROLER U FPGA TEHNOLOGIJI

13

set/reset signala (active high ili active-low). Pored LUT, MUX-a i registra, LC takođe sadrži i druge elemente, uključujući i posebnu brzu prenosnu logiku za upotrebu u aritmetičkim operacijama.

Postoji nekoliko razlika između Xilinx LC i Altera LE, ali ukupni koncepti su veoma slični.

Slice

Sledeći korak u hijerarhiji je ono što Xilinx naziva slice (Altera i drugi proizvođači imaju svoja ekvivalentna imena).

Slika 3.7 Slice koji sadrži dvije logičke ćelije

Na Slici 3.7, interne veze su izostavljene da bi prikaz bio pojednostavljen. Treba napomenuti, da iako LUT, MUX i registar svake logičke ćelije imaju svoje ulaze i izlaze podataka, slice ima jedan clock, clock enable, i set/reset signal zajednički za obje logičke ćelije.

CLB i LAB

Krećući se još jedan nivo nagore po hijerarhiji, dolazimo na ono što Xilinx naziva CLB (Configurable Logic Block) i što Altera naziva LAB (Logic Array Block). Neka Xilinx FPGA kola imaji dva slice-a u svakoj CLB, dok druga imaju četiri.

Page 23: VGA KONTROLER U FPGA TEHNOLOGIJI¡a Knežević - VGA... · obtained from FPGA chip outputs are driven to the VGA connector and used for displaying text and graphical data. Realization

Saša Knežević VGA KONTROLER U FPGA TEHNOLOGIJI

14

Slika 3.8 CLB koji sadrži četiri slice-a (broj slice-a zavisi od FPGA familije)

Postoji brza veza između LC-a u slice-u, a zatim malo sporije povezivanje između slice-a u CLB, a zatim se CLB povezuju između sebe. Ideja je da se postigne optimalan kompromis između lakoće povezivanja elemenata zajedno, bez pretjeranog izlaganja kašnjenju zbog interkonekcija.

Ugrađeni RAM

Mnoge aplikacije zahtjevaju korišćenje memorije, tako da sada FPGA kola obuhvataju relativno velike komade ugrađenog RAM-a pod nazivom e-RAM ili blok RAM. U zavisnosti od arhitekture komponente, ovi blokovi mogu biti raspoređeni po periferiji čipa, rasuti po površini čipa u relativnoj izolaciji, ili organizovani u kolonama, kao što je prikazano na Slici 3.9.

Slika 3.9 Pogled na čip sa kolonama ugrađenih RAM blokova

Page 24: VGA KONTROLER U FPGA TEHNOLOGIJI¡a Knežević - VGA... · obtained from FPGA chip outputs are driven to the VGA connector and used for displaying text and graphical data. Realization

Saša Knežević VGA KONTROLER U FPGA TEHNOLOGIJI

15

Ugradjena procesorska jezgra

Činjenica je da većina dizajnerskih realizacija koristi mikroprocesore u jednom ili drugom obliku. Do nedavno, oni su se javljali kao diskretni uređaji na štampanoj ploči. U poslednje vrijeme, postala su dostupna FPGA kola koja sadrže jedan ili više ugrađenih mikroprocesora, koji se obično nazivaju mikroprocesorska jezgra. U ovom slučaju, često ima smisla da se premjeste svi zadaci koje je obavljao spoljašnji mikroprocesor u unutrašnje jezgro. Ovo pruža niz prednosti, jedna je da se smanjuje cijena posjedovanja dva uređaja, a ovo eliminiše veliki broj padova i pinova na ploči, i čini ploču manjom i lakšom. Na Slici 3.10, prikazan je čip sa ugrađenim procesorskim jezgrom van glavnog FPGA fabrikata.

Slika 3.10 Pogled na čip sa ugrađenim jezgrom van glavnog fabrikata

U/I pinovi opšte namjene

Današnja FPGA kola mogu da imaju hiljadu i više pinova koji su poređani kao niz oko osnove kola. Slično tome, kada je u pitanju silikonski čip u kolu, flip-chip strategija pakovanja omogućuje da napajanje, masa, clock, i U/I pinovi budu raspoređeni preko površine čipa. Čisto za svrhu ilustracije, stvari postaju jednostavnije ako se pretpostavi da su sve veze sa čipom ostvarene u vidu prstena oko ivice naprave, kao što su zaista bili mnogo godina. U/I signali opšte namjene se mogu podijeliti u nekoliko grupa, kao na Slici 3.11, gdje je prikazano osam grupa signala.

Page 25: VGA KONTROLER U FPGA TEHNOLOGIJI¡a Knežević - VGA... · obtained from FPGA chip outputs are driven to the VGA connector and used for displaying text and graphical data. Realization

Saša Knežević VGA KONTROLER U FPGA TEHNOLOGIJI

16

Slika 3.11 Pogled na čip koji pokazuje grupe pinova opšte namjene

3.3 Cyclone FPGA familija

Cyclone FPGA familija je bazirana na all-layer-copper, 1.5V, 130nm, SRAM procesu. Ovi jeftini uređaji

obezbjeđuju visok obim aplikacino fokusiranih funkcija kao što su ugrađena memorija, spoljni memorijski

interfejs, kao i kola za upravljanje taktom. Najmanja jedinica u Cyclone arhitekturi je logički element (LE)

koji je prikazan na Slici 3.12.

LE sadrži look-up tabelu (LUT) koja može realizovati bilo koju funkciju sa četiri promjenljive,

programabilni registar za pamćenje, carry chain konekciju sa carry select opcijom i register chain

konekciju.

LE ima sposobnost da ostvari sve vrste interkonekcije: lokalnu, rednu, vezu u koloni, vezu u registarski

niz, vezu između LUT-a i direktnu vezu. Izlaz za povezivanje LUT-a u niz se koristi za povezivanje LUT-a u

istom LAB-u, u cilju realizacije funkcije sa više ulaza, a izlaz za povezivanje registara služi za spajanje

registara iz zajedničke LAB. LAB je napravljen od 10 LE-a, LE carry nizova, LAB kontrolnih signala, lokalnih

interkonekcija, LUT nizova i linija za konekciju registarskih nizova.

Ugrađena Cyclone memorija se sastoji od banaka (kolona) M4K blokova, a svaki blok sadrži ukupno

4608 RAM bita. Memorijski blokovi (M4K), su prave memorije sa dualnim portom, što znači da mogu da

se čitaju i pišu na različitim adresama istovremeno.

Page 26: VGA KONTROLER U FPGA TEHNOLOGIJI¡a Knežević - VGA... · obtained from FPGA chip outputs are driven to the VGA connector and used for displaying text and graphical data. Realization

Saša Knežević VGA KONTROLER U FPGA TEHNOLOGIJI

17

Slika 3.12 LE Alterine Cyclone serije

Simbol EP1C3 EP1C4 EP1C6 EPC12 EP1C20

Broj LE 2910 4000 5980 12060 20060

M4K RAM Blokovi (4 Kbits +Parnost) 13 17 20 52 64

Ugrađena Memorija(kbit) 59 77 90 234 288

PLL 1 2 2 2 2

Broj I/O pinova 104 301 185 249 301

Tabela 3.1 Karakteristike čipova iz FPGA familije Cyclone

Page 27: VGA KONTROLER U FPGA TEHNOLOGIJI¡a Knežević - VGA... · obtained from FPGA chip outputs are driven to the VGA connector and used for displaying text and graphical data. Realization

Saša Knežević VGA KONTROLER U FPGA TEHNOLOGIJI

18

4 Predloženo rješenje

Cilj istraživanja je realizacija VGA Kontrolera u FPGA tehnologiji. Ovaj dio rada prezentuje hardver i

softver koji su iskorišćeni u toku istraživanja. Za realizaciju datih rješenja je korišćen VHDL (Very High Speed

Integrated Circuits Hardware Description Language) koji je programski jezik za opis elektronskog hardvera.

Svi izvorni kodovi su napisani u VHDL-u. Za dizajniranje kola je upotrebljeno Alterino razvojno okruženje

Quartus II, zajedno sa UP3-1C6 Edukacionim Kompletom. Quartus II je poslužio za kreiranje, kompajliranje

i simulaciju projekata, kao i za programiranje.

4.1 Hardver iskorišćen za realizaciju predloženog rješenja

Opšti opis Edukacionog Kompleta UP3-1C6

UP3-1C6 Education Kit je odličan edukacioni komplet i jeftino rješenje za pravljenje prototipova i brzo

razvijanje proizvoda, uključujući i hardver i softver. Ploča raspolaže moćnim Altera Cyclone FPGA čipom

EP1C6Q240. Ploča inženjerima omogućuje dizajn, projektovanje i testiranje IP (Intelectual Property) core-

ova ili dizajn bilo kog hardvera korišćenjem HDL (Hardware Description Language)-a, kao što su VHDL ili

Verilog. Cijelo okruženje pomaže da se na kompletu brzo implementira bilo koji procesor, kao i svi real

time operativni sistemi. Ploča obezbjeđuje industrijske standarde interkonekcije, memorijski podsistem,

više clock-ova za dizajn sistema, JTAG (Joint Test Action Group) Konfiguraciju, ekspanziona zaglavlja za

veću fleksibilnost i dodatne mogućnosti korisničkog interfejsa. Dalje, ploča može da se koristi za DSP

(Digital Signal Processing) aplikacije, povezivanjem direktno na DSP procesorom ili realizacijom DSP

funkcija unutar FPGA. Na Slici 4.1 je prikazan izgled UP3-1C6 ploče.

Page 28: VGA KONTROLER U FPGA TEHNOLOGIJI¡a Knežević - VGA... · obtained from FPGA chip outputs are driven to the VGA connector and used for displaying text and graphical data. Realization

Saša Knežević VGA KONTROLER U FPGA TEHNOLOGIJI

19

Slika 4.1 Izgled UP3-1C6 ploče

Neke od karakteristika UP3-1C6 ploče su:

• Alterin EP1C6Q240 čip i EPCS1 uređaj za konfiguraciju,

• podrška za IP dizajn,

• USB (Universal Serial Bus) 1.1,

• RS 232 Port,

• Paralelni Port (IEEE 1284),

• PS/2 Port,

• VGA port,

• IDE (Integrated Drive Electronics),

• 2Kbytes, I2C PROM (mogućnost proširenja),

• SRAM, 128KB,

• FLASH, 2MB,

• SDRAM, 8MB,

• obezbjeđuje više clock-ova kao što su CPU clock, USB clock, PCI clock i IOAPIC clock,

• mogućnost JTAG i Active Serial download-a,

• 5V Santa Cruz long Expansion Card Header sa 74 I/O,

• jedan 4-bitni switch blok,

• četiri push button switch-a,

Page 29: VGA KONTROLER U FPGA TEHNOLOGIJI¡a Knežević - VGA... · obtained from FPGA chip outputs are driven to the VGA connector and used for displaying text and graphical data. Realization

Saša Knežević VGA KONTROLER U FPGA TEHNOLOGIJI

20

• četiri LED,

• jedan 16 X 2 karaktera LCD Modul,

• I2C Real Time Clock.

Slika 4.2 Komponente UP3-1C6 ploče

U Tabeli 4.1 su prikazane karakteristike čipa EP1C6Q240.

Logički Elementi 5980

RAM Blokovi 20

Ukupno RAM Bita 92160

Broj PLL Kola 2

Maksimum Korisničkih U/I 185

Tabela 4.1 Karakteristike Cyclone EP1C6Q240 uređaja

FPGA koristi ćelije SRAM-a za čuvanje konfiguracionih podataka. Pošto je SRAM nestalna memorija,

prilikom uključenja uređaja podaci se moraju ponovo upisati u Cyclone FPGA. UP3-1C6 ploča podržava dva načina konfiguracije: Active Serial i JTAG. Kod Active Serial moda Quartus II softver automatski generiše .pof fajlove, a kod JTAG moda .sof fajlove koji se mogu download-ovati preko Byte-Blaster II ili USB Blaster Kabla.

Page 30: VGA KONTROLER U FPGA TEHNOLOGIJI¡a Knežević - VGA... · obtained from FPGA chip outputs are driven to the VGA connector and used for displaying text and graphical data. Realization

Saša Knežević VGA KONTROLER U FPGA TEHNOLOGIJI

21

VGA Port

UP3-1C6 posjeduje standardni VGA port ( Slika 4.3) koji se povezuje sa VGA konektorom monitora (Slika 4.4). VGA konektor je 15-pinski konektor, ali samo 5 signala su aktivni signali, a to su H_sync, V_sync i tri signala za kontrolu boje.

H_sync i V_sync su TTL signali, tako da je logička jedinica predstavljena sa 5V, a logička nula je

predstavljena sa 0V . Ova dva signala se koriste za horizontalnu i vertikalnu sinhronizaciju. RGB signali su:

signal crvene, signal zelene i signal plave boje. RGB signali su analogni signali. Maksimalni napon koji se

može koristiti je 0.7V peak-to-peak i to rezultira punim intenzitetetom boje.

Broj VGA Pina VGA Interfejs Broj FPGA Pina

1 Red 228

2 Green 122

3 Blue 170

4 NC ---

5 NC ---

6 GND ---

7 GND ---

8 GND ---

9 NC ---

10 GND ---

11 GND ---

12 NC ---

13 H_sync 227

14 V_sync 226

15 NC ---

Tabela 4.2 Konfiguracija VGA Porta

Slika 4.3 VGA Port UP3-1C6 ploče

Page 31: VGA KONTROLER U FPGA TEHNOLOGIJI¡a Knežević - VGA... · obtained from FPGA chip outputs are driven to the VGA connector and used for displaying text and graphical data. Realization

Saša Knežević VGA KONTROLER U FPGA TEHNOLOGIJI

22

Push Button prekidači

SW4, SW5, SW6 i SW7 su Push Button prekidači koji se koriste za stimulus dizajna u Cyclone uređaju.

4.2 Arhitektura predloženog rješenja

4.2.1 Realizacija VGA Kontrolera

VGA Kontroler ima dvije funkcije, a to su sinhronizacija VGA video signala i generisanje RGB signala.

Izlazni signali ovog kola su aktivni VGA signali i oni upravljaju radom VGA monitora. U ovom radu, VGA

Kontroler je realizovan u FPGA tehnologiji.

Slika 4.5 Push Button prekidači

Slika 4.4 VGA kabl

Page 32: VGA KONTROLER U FPGA TEHNOLOGIJI¡a Knežević - VGA... · obtained from FPGA chip outputs are driven to the VGA connector and used for displaying text and graphical data. Realization

Saša Knežević VGA KONTROLER U FPGA TEHNOLOGIJI

23

VGA_Controller

Na Slici 4.6 je prikazan simbol entiteta VGA_Controller. VGA_Controller generiše 5 aktivnih VGA signala.

Slika 4.6 Quartus II simbol VGA_Contoller-a

Ispod je prikazana deklaracija entiteta VGA_Controller.

ENTITY VGA_Controller IS PORT ( clock, red, green, blue : IN STD_LOGIC; red_out, green_out, blue_out, horiz_sync_out, vert_sync_out : OUT STD_LOGIC; video_on_out : OUT STD_LOGIC; pixel_row, pixel_column: OUT STD_LOGIC_VECTOR(9 DOWNTO 0)); END VGA_Controller;

VGA_Controller je realizovan pomoću brojača koji broje piksele na ekranu i on koristi sledeće konstante

za podjelu ekrana:

CONSTANT H_pixels_across: Natural := 800; CONSTANT H_sync_low: Natural := 824; CONSTANT H_sync_high: Natural := 896; CONSTANT H_end_count: Natural := 1024; CONSTANT V_pixels_down: Natural := 600; CONSTANT V_sync_low: Natural := 601; CONSTANT V_sync_high: Natural := 603; CONSTANT V_end_count: Natural := 625;

VGA_Controller je realizovan za rezoluciju 800 x 600 piksela. Prilikom realizacije nisu uzete tačne

vrijednosti konstanti koje definišu granice različitih regiona horizontalne i vertikalne podjele ekrana koje su

navedene na Slici 2.8, jer to nije neophodno. Iskorišćene konstante se mogu promijeniti, ako je potrebna

drugačija rezolucija. Konstante H_pixels_across i V_pixels_down služe za odabir željene rezolucije piksela

na ekranu, a H_end_count i V_end_count se koriste za definisanje krajeva horizontalne i vertikalne podjele

ekrana. Ostale konstante služe za formiranje prednjih i zadnjih prilaza impulsima za sinhronizaciju.

Page 33: VGA KONTROLER U FPGA TEHNOLOGIJI¡a Knežević - VGA... · obtained from FPGA chip outputs are driven to the VGA connector and used for displaying text and graphical data. Realization

Saša Knežević VGA KONTROLER U FPGA TEHNOLOGIJI

24

VGA_Controller generiše signale za horizontalnu i vertikalnu sinhronizaciju, horiz_sync_out i

vert_sync_out, koristeći 10-bitne brojače. Unutrašnji signal nazvan H_count je iskorišćen za brojanje

piksela u jednom horizontalnom redu, a unutrašnji signal V_Count broji redove piksela od vrha prema dnu

ekrana. Vrijednosti ovih brojača se mijenjaju brzinom ulaznog clock-a. Generisanje signala horiz_sync_out i

vert_sync_out se vrši između oblasti koje su u drugom poglavlju rada nazvane “prednji prilaz” i “zadnji

prilaz”.

Izlazni signali pixel_column i pixel_row su jednaki unutrašnjim signalima H_Count i V_Count. Signale

pixel_column i pixel_row koriste ostali moduli koji obavljaju svoje funkcije u kombinaciji sa

VGA_Controller-om, a pri tome koriste ove signale kao svoje ulaze. Signali pixel_column i pixel_row se

mogu koristiti za određivanje pozicije trenutno osvjetljavanog piksela, a mogu se upotrebiti i za sve ostale

radnje za čiju realizaciju su potrebni brojači.

Signali red_out, green_out i blue_out su RGB signali koji se zajedno sa signalima horiz_sync_out i

vert_sync_out dovode direktno do VGA konektora monitora. U toku skeniranja aktivnog dijela ekrana

signal video_on_out je postavljen na vrijednost ’1’ i tada se signali sa ulaza VGA_Controller-a, red, green i

blue prosljeđuju na izlaze entiteta, a to su red_out, green_out i blue_out. Signal video_on_out ima

vrijednost ’0’ u toku prelaska na početak linije piksela ili početak ekrana i tada su RGB signali isključeni, a

pikseli se ne prikazuju.

Simulacioni dijagrami rada VGA_Controller-a

Na Slikama 4.7 i 4.8 su prikazani Quartus II simulacioni dijagrami rada VGA_Controller-a. Simulacija na

Slici 4.7 je izvršena na intervalu od 1ms, a simulacija na Slici 4.8 pokazuje generisanje jednog signala za

vertikalnu sinhronizaciju nakon što je izbrojano 600 redova piksela. Obje simulacije potvrđuju da su izlazni

kanali za boje aktivni samo onda ako su prethodno bili stimulisani ulazi za RGB signale.

Slika 4.7 Simulacioni dijagram rada VGA_Controller-a

Page 34: VGA KONTROLER U FPGA TEHNOLOGIJI¡a Knežević - VGA... · obtained from FPGA chip outputs are driven to the VGA connector and used for displaying text and graphical data. Realization

Saša Knežević VGA KONTROLER U FPGA TEHNOLOGIJI

25

Slika 4.8 Simulacioni dijagram rada VGA_Controller-a na intervalu 15ms

4.2.2 Prikazivanje boja na ekranu

Da bi VGA_Controller ostvario funkciju prikazivanja RGB signala na ekranu, njegovi RGB ulazi moraju biti

stimulisani iz nekog spoljašnjeg izvora. VGA_Controller ima tri izlazna RGB signala, tako da se na monitoru

koji on pokreće može dobiti ukupno osam boja.

Kolo za stimulisanje VGA Kontrolera

Na Slici 4.9 je prikazan simbol entiteta RGB_Input koji generiše signale za pobuđivanje VGA_Controller-a.

Slika 4.9 Quartus II simbol RGB_Input-a

RGB_Input koristi svoj unutrašnji brojač da sa svakom promjenom ulaznog clock-a postavi nove

vrijednosti na svoje RGB izlaze. RGB_input je realizovan tako da svaki novi clock prouzrokuje promjenu

stanja izlaznih RGB signala i prikazivanje nove boje na ekranu. Entitet RGB_Input omogućuje prikazivanje

crvene, zelene i plave boje. Ovaj blok je aktivan samo u periodu dok je signal video_on na ulazu bloka

jednak ’1’.

Na Slici 4.10 je prikazana Quartus II simulacija RGB_Input-a. Na simulaciji se može vidjeti način na koji

se smjenjuju boje na izlazima RGB_ Input-a.

Page 35: VGA KONTROLER U FPGA TEHNOLOGIJI¡a Knežević - VGA... · obtained from FPGA chip outputs are driven to the VGA connector and used for displaying text and graphical data. Realization

Saša Knežević VGA KONTROLER U FPGA TEHNOLOGIJI

26

Slika 4.10 Quartus II simulacija rada RGB_ Input-a

Aktiviranje VGA Kontrolera

Na Slici 4.11 je prikazan blok dijagram fajl projekta VGA_RGB_Input, koji objedinjuje funkcije

VGA_Controller-a i RGB_Input-a. Da bi se boje na ekranu smjenjivale frekvencijom od 1Hz, ulazni clock od

48MHz je pomoću djelitelja frekvencije podijeljen vrijednošću 48000000. Parametar za podjelu frekvencije

je deklarisan kao generic, tako da se umjesto frekvencije od 1Hz može izabrati neka druga frekvencija.

Slika 4.11 Blok dijagram fajl projekta VGA_RGB_Input

Page 36: VGA KONTROLER U FPGA TEHNOLOGIJI¡a Knežević - VGA... · obtained from FPGA chip outputs are driven to the VGA connector and used for displaying text and graphical data. Realization

Saša Knežević VGA KONTROLER U FPGA TEHNOLOGIJI

27

4.2.3 Skladištenje i prikazivanje slika

VGA Kontroler se može koristiti za prikazivanje slika na ekranu. Slika koja je odabrana za prikazivanje se

prethodno treba sačuvati u obliku koji omogućuje da se aktiviraju RGB ulazi VGA_Controller-a, a to je

matrica nula i jedinica. Za čuvanje slika se može koristiti memorija koja je ugrađena u FPGA kolo, ali za

dizajn koji zahtjeva skladištenje malog broja podataka su dovoljni nizovi. U radu je iskorišćena Slika 4.12.

Slika 4.12 Sačuvana crno-bijela slika

Memorisanje slike

Entitet Image_Storage ima funkciju skladištenja slike koja se može prikazati na ekranu. Na Slici 4.13,

prikazan je simbol entiteta Image_Storage.

Slika 4.13 Quartus II simbol Image_Storage-a

Za memorisanje jedne crno-bijele slike može se koristiti dvo-dimenzioni niz čije dimezije odgovaraju

dimenzijama slike. Redovi niza predstavljaju redove slike, a elementi redova niza predstavljaju piksele slike.

Za sliku dimenzija 64 x 64 piksela niz je deklarisan na sledeći način:

TYPE rom_type IS ARRAY (0 TO 63) OF STD_LOGIC_VECTOR(0 TO 63);

Da bi se sačuvala slika deklarisana je konstanta tipa rom_type, a konstanta je nazvana Stored_Image.

Slika je prethodno pomoću Matlab-a konvertovana u dvo-dimenzioni niz nula i jedinica. Kreiran je fajl

image_2_binary.m koji učitava sliku, konvertuje sliku i upisuje podatke dobijene konverzijom u tekstualni

fajl. Za otvaranje dobijenog tekstualnog fajla je preporučljivo koristiti WordPad.

Page 37: VGA KONTROLER U FPGA TEHNOLOGIJI¡a Knežević - VGA... · obtained from FPGA chip outputs are driven to the VGA connector and used for displaying text and graphical data. Realization

Saša Knežević VGA KONTROLER U FPGA TEHNOLOGIJI

28

CONSTANT Stored_Image : rom_type := ( "1111111111111111111111111111111111111111111111111111111111111111", "1111111111111111111111111111111111111111111111111111111111111111", "1111111111111111111111111111111111111111111111111111111111111111", "1111111111111111111111111111111111111111111111111111111111111111", "1111111111111111111111111111111111111111111100000011111111111111", "1111111111111111111111111111111111111111000000000000111111111111", "1111111111111111111111111111111111111100000000000000000111111111", "1111111111111111111111111111111111111000000000000000000011111111", "1111111111111111111111111111111111100000000000000000000000111111", "1111111111111111111111111111111110000000000000000000000000011111", "1111111111111111111111111111110000000000000000000000000000011111", "1111111111111111111111111111000000000000000000011111000000001111", "1111111111111111111111111110000000000000000111111111010000000111", "1111111111111111111111111000000000000000001111111111111100000011", "1111111111111111111111100000000000000000011111111111111111000011", "1111111111111111111110000000000000000001111111111111111111110011", "1111111111111111111000000000000000000011111111111111111111111111", "1111111111111111110000000000000000001111111111111111111111111111", "1111111111111110000000000000000000111111111111111111111111111111", "1111111111111000000000000000001011111111111111111111111111111111", "1111111111100000000000000000111111111111111111111111111111111111", "1111111110000000000000000001111111111111111111111111111111111111", "1111111100000000000000000111111111111111111111111111111111111111", "1111110000000000000001111111111111010111111111111111111111111111", "1111100000000000000011111011010011000011111111111111111111111111", "1111100000000000001110000000000000000000001111111111111111111111", "1111100000000000001110000000100000000000000111111111111111111111", "1111000000000000111000000011111111111110000101111111111111111111", "1111000000000001111000000011111111111111100000111111111111111111", "1110000000000011000000111111101111101111110100001111111111111111", "1110000000000111000001111011100111001111111111000011111111111111", "1110000000001110000001110000000000000111111111100001111111111111", "1110000000011110000000000000000000000110111111111000111111111111", "1110000001111100000000000000000000000000111111111000111111111111", "1110000011110000000000000000000000000000111101111100111111111111", "1110001111110000000000000000000000000000010001111111111111111111", "1111111111110000000000000000000000000000000011111111111111111111", "1111111111100000000000000001100000000000000011111111111111111111", "1111111111000000000000000001100000000000000001001111111111111111", "1111111111000001100000000000100000001000000000001111111111111111", "1111111111000111110000000000000000011100000000001111111111111111", "1111111110001111110000000000000000011111000000001111111111111111", "1111111110001111110000000000000000011111100000000001111111111111", "1111111100011111110000000000000000011111110000000001111111111111", "1111111100011111110000000000000000111111110000000001111111111111", "1111111000111111110000000000000000111111110000000111111111111111", "1111111001111111110000000000000000111111100000011111111111111111", "1111110011111111110000000000000001111111000000111111111111111111", "1111110011111111111000000000000001111110000000111111111111111111", "1111110000001111111100000000000011111100000001111111111111111111", "1111110000000011111110000000000111111000000001111111111111111111", "1111111000000001111011000000000111100000001111111111111111111111", "1111111111011000000001111111111000000000011111111111111111111111", "1111111111111100000000110000100000000000011111111111111111111111", "1111111111111111000000000000000000000000011111111111111111111111", "1111111111111111000000000000000000000110011111111111111111111111", "1111111111111111110000000000001100000111111111111111111111111111", "1111111111111111111100011000001111000111111111111111111111111111", "1111111111111111111101011100011111100111111111111111111111111111", "1111111111111111111101011100011111110111111111111111111111111111", "1111111111111111111111111110011111111111111111111111111111111111", "1111111111111111111111111111111111111111111111111111111111111111", "1111111111111111111111111111111111111111111111111111111111111111",

"1111111111111111111111111111111111111111111111111111111111111111" );

Page 38: VGA KONTROLER U FPGA TEHNOLOGIJI¡a Knežević - VGA... · obtained from FPGA chip outputs are driven to the VGA connector and used for displaying text and graphical data. Realization

Saša Knežević VGA KONTROLER U FPGA TEHNOLOGIJI

29

Svaki bit konstante Stored_Image predstavlja po jedan piksel slike. Pošto je slika dimenzija 64 x 64

piksela za pristupanje redovima i kolonama slike su potrebni 6-bitni signali i oni se koriste za pristupanje

pikselima. Signali za adresiranje piksela su dobijeni iz ulaznih signala entiteta Image_Storage, a to su

pixel_row i pixel_column.

Izlazni signal entiteta Stored_Image je storage_bit i on je tipa STD_LOGIC. Signal storage_bit prenosi

svaki bit iz konstante Stored_Image do bloka za prikazivanje piksela na ekranu, tj. do VGA_Controller-a.

Na Slici 4.14 je prikazana Quartus II simulacija Stored_Image-a. Simulacija prikazuje slanje 25-og reda

slike koja je sačuvana u Stored_Image-u. Za slanje jednog reda iz slike potrebne su 64 promjene signala koji

broji kolone piksela na ekranu.

Slika 4.14 Quartus II simulacija rada Stored_Image-a

Učitavanje i prikazivanje slike

Projekat Display_Image_Storage je napravljen da bi se sačuvana slika prikazala na ekranu. Na Slici 4.15

je prikazan blok dijagram fajl projekta Display_Image_Storage koji povezuje entitete VGA_Controller i

Image_Storage. Na Slici 4.15 se vidi da je povezivanje ostvareno tako da je za prikazivanje slike iskorišćena

žuta boja, a simulacioni dijagram na Slici 4.16 to potvrđuje.

Page 39: VGA KONTROLER U FPGA TEHNOLOGIJI¡a Knežević - VGA... · obtained from FPGA chip outputs are driven to the VGA connector and used for displaying text and graphical data. Realization

Saša Knežević VGA KONTROLER U FPGA TEHNOLOGIJI

30

Slika 4.15 Blok dijagram fajl projekta Display_Image_Storage

Na simulacionom dijagramu na Slici 4.16 se može vidjeti da je blue_out izlaz VGA_Controller-a

neaktivan u toku trajanja cijelog frejma, za razliku od red_out i green_out koji su, da bi se na ekranu dobila

žuta boja, aktivirani u toku cijelog aktivnog dijela frejma.

Slika 4.16 Quartus II simulacija rada Display_Image_Storage-a

Sačuvana slika malih dimenzija se veoma lako na ekranu može prikazati u većim dimenzijama. To se

može postići tako što se jedan isti element slike iz Image_Storage-a šalje u toku prikazivanja više redova i

kolona piksela na ekranu. Na ovaj način se štede memorijski resursi, a dobija se prikaz slike u većim

dimenzijama od onih u kojima je sačuvana.

Page 40: VGA KONTROLER U FPGA TEHNOLOGIJI¡a Knežević - VGA... · obtained from FPGA chip outputs are driven to the VGA connector and used for displaying text and graphical data. Realization

Saša Knežević VGA KONTROLER U FPGA TEHNOLOGIJI

31

4.2.4 Realizacija ROM memorije za karaktere

Prikazivanje teksta na ekranu je jedna od mogućnosti koju treba da podrži svaki VGA Kontroler. Kod

pristupa koji je realizovan u ovom radu, karakteri su posmatrani kao blokovi piksela i napravljene su šeme

piksela koje obrazuju font koji se koristi za prikazivanje karaktera. Odabrano je da se font sastoji od šema

koje su dimenzija 8 x 8 piksela. U radu VGA Kontrolera se može koristiti memorija za skladištenje podataka

koje treba prikazati na ekranu. Šeme karaktera su sačuvane u RAM memoriji implementiranoj unutar

FPGA čipa. Šema svakog karaktera zahtjeva 8 x 8 bita memorije. Font se sastoji od ukupno 64 karaktera, što

znači da je za skladištenje fonta u memoriji potrebno 4096 bita RAM memorije. Za inicijalizaciju sadržaja

RAM-a tokom download-a iskorišćen je fajl za inicijalizaciju memorije, *. mif, i može se reći da je na ovaj

način napravljena font ROM memorija.

ROM memorija za karaktere

Prilikom realizacije memorije za karaktere, prvo je kreiran fajl karakteri.mif. Mif fajl može biti kreiran

pomoću tekstualnog editora u Quartus-u ili drugih editora (npr. Notepad). Prilikom pravljenja fajla, u

zapisu se može koristiti bilo koja brojna osnova: decimalna, binarna, heksadecimalna i oktalna. Na Slici

4.17 je prikazan dio fajla karakteri.mif koji je iskorišćen u ovom radu. Depth je broj adresa (memorijskih

riječi) u RAM-u, a Width dužina magistrale podataka (broj bita po memorijskoj riječi). Memorijske adrese

su u mif fajlu poređane ispod riječi Begin, lijevo od ’ : ’ , a desno od memorijskih adresa su poređane

memorijske riječi.

Mif fajl se u Quartus-u može napraviti i izborom opcije File | New | Other Files | Memory Initialization

File.

Page 41: VGA KONTROLER U FPGA TEHNOLOGIJI¡a Knežević - VGA... · obtained from FPGA chip outputs are driven to the VGA connector and used for displaying text and graphical data. Realization

Saša Knežević VGA KONTROLER U FPGA TEHNOLOGIJI

32

Slika 4.17 MIF fajl karakteri.mif

Entitet Character_ROM_Memory ima funkciju učitavanja podataka iz ROM memorije karaktera i slanja

podataka o izgledu karaktera koje treba prikazati prema VGA_Controller-u. Font ROM sadrži podatke o

fontu karaktera, a VGA_Controller te podatke čita i vrši prenos RGB signala prema monitoru. Na Slici 4.18

je prikazan simbol entiteta Character_ROM_Memory.

Slika 4.18 Quartus II simbol ROM memorije za karaktere

Entitet Character_ROM_Memory je realizovan pomoću komponente lpm_rom iz biblioteke lpm čiji

simbol je prikazan na Slici 4.19. LPM (Library of Parametrized Modules) sadrži 25 funkcija, među kojima je i

lpm_rom (Parametrized Read-Only Memory) koja može biti korišćena kao sinhrona i asinhrona read-only

memorija.

Page 42: VGA KONTROLER U FPGA TEHNOLOGIJI¡a Knežević - VGA... · obtained from FPGA chip outputs are driven to the VGA connector and used for displaying text and graphical data. Realization

Saša Knežević VGA KONTROLER U FPGA TEHNOLOGIJI

33

Slika 4.19 Quartus II simbol komponente lpm_rom

U tabeli 4.3 je dat opis portova komponente lpm_rom, a u tabeli 4.4 je dat opis parametara ove

komponente.

Ime porta Tip Potreban Opis

address[] Input Da Adresni ulaz u memoriju. Ovaj port je širine LPM_WIDTHAD.

inclock Input Ne Clock za ulazne registre. Port address[] je sinhron (registered) kada je port inclock povezan, i asinhron (unregistered) kada je port inclock nepovezan.

outclock Input Ne Clock za izlazne registre. Odziv adresiranog sadržaja memorije q[] je sinhron kada je port outclock povezan, i asinhron kada nije povezan.

memenab Input Ne Memory enable ulaz. Visok nivo = izlaz za podatke na q[]. Nizak nivo = visoko-impedansni izlazi.

q[] Output Da Izlaz memorije. Ovaj port je širine LPM_WIDTH.

Tabela 4.3 Portovi komponente lpm_rom

Ime parametra Potreban Vrijednost Opis

LPM_ADDRESS_CONTROL Ne "REGISTERED" "UNREGISTERED"

Kontroliše da li je port address[] registrovan. Podrazumjevana vrijednost je "REGISTERED’’.

LPM_FILE Da ’’ <ime fajla>’’ Ime MIF ili HEX fajla koji sadrži podatke za inicijalizaciju ROM-a.

LPM_NUMWORDS Ne Integer > 0 Generalno, ova vrijednost bi trebala biti (ali nije potrebno da bude) jednaka 2LPM_WIDTH-1<LPM_NUMWORDS≤2LPM_WIDTH. Podrazumjevana vrijednost je 2LPM_WIDTH.

LPM_OUTDATA Ne "REGISTERED" "UNREGISTERED"

Kontroliše da li je port q[] registrovan. Podrazumjevana vrijednost je "REGISTERED’’.

LPM_WIDTH Da Integer > 0 Širina porta q[].

LPM_WIDTHAD Da Integer > 0 Širina porta address[]. LPM_WIDTHAD bi trebao da bude (ali nije potrebno) jednak log2(LPM_NUMWORDS).

Tabela 4.4 Parametri komponente lpm_rom

Page 43: VGA KONTROLER U FPGA TEHNOLOGIJI¡a Knežević - VGA... · obtained from FPGA chip outputs are driven to the VGA connector and used for displaying text and graphical data. Realization

Saša Knežević VGA KONTROLER U FPGA TEHNOLOGIJI

34

Deklaracija entiteta Character_ROM_Memory je obavljena na sledeci način:

ENTITY Character_ROM_Memory IS PORT( clock : IN STD_LOGIC; character_address : IN STD_LOGIC_VECTOR(5 DOWNTO 0); symbol_row, symbol_column : IN STD_LOGIC_VECTOR(2 DOWNTO 0); rom_memory_output : OUT STD_LOGIC); END Character_ROM_Memory ;

Svako slovo, broj ili znak je slika na ekranu koja se dobija iz fonta čiji su elementi dimenzija 8 x 8 bita i

koji su smješteni u font ROM memoriji. U fajlu karakteri.mif svaki simbol je predstavljen kao osam

osmobitnih memorijskih riječi. Izgled svakog piksela koji treba prikazati na ekranu se direktno mapira u

memorijsku riječ, a svaka memorijska riječ ima svoju 9-bitnu memorijsku adresu.

Signal character_address predstavlja šest najviših bita iz 9-bitne memorijske adrese koji su zajednički za

adrese svih osam memorijskih riječi koje obrazuju jedan karakter. Ovaj signal služi za identifikaciju

karaktera.

Signal symbol_column se koristi za izbor bita s lijeva na desno u svakoj memorijskoj riječi u toku

prikazivanja jednog istog reda piksela na ekranu, tj. koristi se za identifikaciju kolone u šemi za karakter.

Vrijednost signala symbol_column se koristi prilikom izbora i upisivanja bita iz memorijske riječi u

rom_memory_output.

Signal symbol_row omogućuje biranje memorijskih lokacija koje pripadaju jednom istom karakteru iz

font ROM-a, tj. za identifikaciju reda u šemi karaktera. Ova vrijednost se mijenja kada se iscrtavanje ekrana

premješta u naredni red.

Izlazni signal ROM memorije je rom_memory_output i on se dovodi do bloka za generisanje RGB signala

tako da ’0’ iz šeme za karaktere na ekranu ima drugačiju predstavu od ’1’, tj. dodjeljuje joj se drugačija

boja.

Pristupanje ROM memoriji za karaktere

Za pristupanje podacima o izgledu karaktera koji treba prikazati na ekranu monitora

Character_ROM_Memory koristi princip zasnovan na dobijanju početne adrese karaktera u memoriji i

formiranju adresa memorijskih riječi konkatenacijom signala character_address i symbol_row . Ova dva

signala zajedno formiraju 9-bitnu memorijsku adresu riječi u memoriji . Na Slici 4.20 je prikazan način

pristupanja fontu karaktera pomoću ROM-a.

Page 44: VGA KONTROLER U FPGA TEHNOLOGIJI¡a Knežević - VGA... · obtained from FPGA chip outputs are driven to the VGA connector and used for displaying text and graphical data. Realization

Saša Knežević VGA KONTROLER U FPGA TEHNOLOGIJI

35

Slika 4.20 Pristupanje fontu karaktera pomoću ROM-a

Karakter "A" će se generisati na ekranu korišćenjem sledećih osam memorijskih riječi koje su smještene

u ROM-u za karaktere:

ADRESE PODACI O FONTU 000001000: 00011000; 000001001: 00111100; 000001010: 01100110; 000001011: 01111110; 000001100: 01100110; 000001101: 01100110; 000001110: 01100110; 000001111: 00000000;

Sekvenca "000001" je zajednička za svih osam memorijskih riječi koje su dio šeme koja predstavlja

karakter "A", a tri najniža bita iz adrese imaju vrijednosti između "000" i "111" i oni identifikuju red u šemi.

Simulacioni dijagram rada ROM memorije

Quartus II simulacija (Slika 4.21) prikazuje slanje memorijskih riječi koje formiraju šemu za karakter "A".

Početna adresa u memoriji za karakter "A" je o“01“ i ta vrijednost je postavljena na character_address

ulaz ROM memorije, a na izlazu je dobijeno osam memorijskih riječi koje obrazuju karakter "A". Da bi se

poslala jedna memorijska riječ potrebno je 8 ciklusa ulaznog clock-a.

Page 45: VGA KONTROLER U FPGA TEHNOLOGIJI¡a Knežević - VGA... · obtained from FPGA chip outputs are driven to the VGA connector and used for displaying text and graphical data. Realization

Saša Knežević VGA KONTROLER U FPGA TEHNOLOGIJI

36

Slika 4.21 Quartus II simulacija rada modula Character_ROM_Memory

Font i adrese karaktera

Font je napravljen od velikih slova, brojeva, znakova interpunkcije i još nekih simbola i prilikom

kompajliranja i programiranja se smješta u memoriju. Tabela 4.6 prikazuje sve simbole koji se mogu

generisati. Pored simbola su date početne adrese karaktera u oktalnoj formi, a radi se o šest najviših bita iz

adrese koji služe za identifikaciju karaktera. Na primjer, početna adresa karaktera "P" je 20.

Simbol Adresa Simbol Adresa Simbol Adresa Simbol Adresa

@ 00 P 20 Razmak 40 0 60

A 01 Q 21 ! 41 1 61

B 01 R 22 ’’ 42 2 62

C 03 S 23 # 43 3 63

D 04 T 24 $ 44 4 64

E 05 U 25 % 45 5 65

F 06 V 26 & 46 6 66

G 07 W 27 ’ 47 7 67

H 10 X 30 ( 50 8 70

I 11 Y 31 ) 51 9 71

J 12 Z 32 * 52 = 72

K 13 [ 33 + 53 ? 73

L 14 ↓ 34 , 54 : 74

M 15 ] 35 - 55 ¶ 75

N 16 ↑ 36 . 56 trougao 76

O 17 ← 37 / 57 kvadrat 77

Tabela 4.5 Adrese simbola u font ROM-u

4.2.5 Prikazivanje teksta na ekranu

VGA Kontroler se često koristi za prikazivanje teksta. Za prikazivanje teksta na ekranu je potrebno

povezati VGA Kontroler sa ROM memorijom za karaktere. Pored toga je potrebno realizovati kolo koje

određuje pozicije ispisivanja karaktera na ekranu i koje ROM memoriji upućuje adresu karaktera koji VGA

Kontroler treba da prikaže.

Page 46: VGA KONTROLER U FPGA TEHNOLOGIJI¡a Knežević - VGA... · obtained from FPGA chip outputs are driven to the VGA connector and used for displaying text and graphical data. Realization

Saša Knežević VGA KONTROLER U FPGA TEHNOLOGIJI

37

Određivanje pozicija karaktera na ekranu

Pošto se ekran stalno osvježava, a slika se formira dok se snop pomijera preko ekrana, da bi se izabrao

karakter koji će biti prikazan na ekranu potrebno je koristiti druge blokove ili čak RAM memoriju unutar

FPGA čipa.

Entitet Char_Pos_And_Addr1 ima ulogu u prikazivanju stalnih tekstualnih natpisa na ekranu. Entitet

Char_Pos_And_Addr1 čuva pozicije karaktera na ekranu i njihove početne adrese u font ROM memoriji.

Ovaj blok na osnovu trenutnih koordinata piksela određuje na kojim pozicijama na ekranu će biti ispisani

karakteri. Na slici 4.22 je prikazan simbol entiteta Char_Pos_And_Addr1.

Slika 4.22 Quartus II simbol bloka Char_Pos_And_Addr1

Ispod je navedena deklaracija entiteta Char_Pos_And_Addr1.

ENTITY Char_Pos_And_Addr1 IS PORT( clock : IN STD_LOGIC; pixel_row,pixel_column : IN STD_LOGIC_VECTOR(9 DOWNTO 0); address_output : OUT STD_LOGIC_VECTOR(5 DOWNTO 0); symbol_row,symbol_column : OUT STD_LOGIC_VECTOR(2 DOWNTO 0)); END Char_Pos_And_Addr1;

Ovo kolo pamti pozicije karaktera na ekranu i prosljeđuje adrese karaktera prema font ROM-u. Ulazi

kola su brojači redova i kolona piksela, pixel_row i pixel_column. Ovaj blok omogućuje da se karakteri

ispisuju na ekranu u 12 redova i 40 kolona. Da bi se odredilo koji red i koja kolona na ekranu se trenutno

iscrtavaju koristi se šest najviših bita signala pixel_row i pixel_column. U cilju proširenja površine za

ispisivanje karaktera na ekranu, može se jednostavno izvršiti modifikacija ovog bloka.

Izlazni signal address_output predstavlja adresu karaktera koji treba prikazati i ovaj signal se dovodi do

character_address ulaza bloka Character_ROM_Memory.

Ovaj blok prosljeđuje tri najniža bita koji pripadaju signalima pixel_row i pixel_column ka bloku

Character_ROM_Memory koji ih koristi za biranje memorijskih lokacija iz font ROM-a i za izbor bita koji

se prosljeđuju iz memorijskih riječi prema VGA_Controller-u. Ovu funkciju blok obavlja preko svojih izlaza

symbol_row i symbol_column.

Da bi simboli koji se prikazuju na ekranu bili veći, svaki bit iz fonta, tj. iz memorijskih riječi se pridružuje

bloku od 2 x 2 piksela tako da jedan karakter zahtjeva 16 x 16 piksela. To je postignuto tako što je šest

najviših bita iz signala pixel_row iskorišćeno pri određivanju pozicije karaktera, jer se vrijednost ove

sekvence od šest bita uvećava za jedan nakon što je prikazano šesnaest redova na ekranu. Kada se

Page 47: VGA KONTROLER U FPGA TEHNOLOGIJI¡a Knežević - VGA... · obtained from FPGA chip outputs are driven to the VGA connector and used for displaying text and graphical data. Realization

Saša Knežević VGA KONTROLER U FPGA TEHNOLOGIJI

38

prikazivanje pomijeri u drugu oblast veličine 16 x 16 piksela odabira se druga memorijska lokacija kako bi

se mogao prikazati drugi karakter. Na ovaj način, na primjer, kod rezolucije 800 x 600 piksela i sa

maksimalnim iskorišćenjem površine ekrana pri prikazu, može se prikazati maksimalno 50 x 37 karaktera.

Prikazan je simulacioni dijagram rada bloka za slanje memorijske adrese (Slika 4.23). Početna adresa u

memoriji za jedan karakter se šalje u toku 16 ciklusa promjene signala za brojanje kolona piksela i tako se

memorisana šema jednog karaktera dimenzija 8 x 8 bita reprezentuje blokom piksela veličine 16 x 16.

Slika 4.23 Quartus II simulacioni dijagram rada bloka Char_Pos_And_Addr1

Prikazivanje karaktera

Blokovi VGA_Controller, Char_Pos_And_Addr1 i Character_ROM_Memory su sastavni dijelovi

projekta nazvanog Character_Display koji objedinjuje funkcije ova tri bloka. Blok dijagram projekta

Character_Display je prikazan na Slici 4.24. Ovaj projekat ima funkciju prikaza stalnih natpisa na ekranu.

VGA_Controller pristupa podacima font ROM-a koji je realizovan u vidu bloka Character_ROM_Memory, a

blok Char_Pos_And_Addr1 šalje memorijske adrese sa kojih treba pročitati memorijske riječi. Rad svakog

bloka se odvija u zavisnosti od koordinata trenutno prikazivanog piksela.

Page 48: VGA KONTROLER U FPGA TEHNOLOGIJI¡a Knežević - VGA... · obtained from FPGA chip outputs are driven to the VGA connector and used for displaying text and graphical data. Realization

Saša Knežević VGA KONTROLER U FPGA TEHNOLOGIJI

39

Slika 4.24 Blok dijagram projekta Character_Display

4.2.6 Karakter Generator

Character_Generator je kolo koje ima funkciju prikazivanja karaktera koji se unose preko tastature

računara i karaktera čije se adrese dobijaju od nekog spoljašnjeg kola. Za realizaciju Character_Generator-a

je dizajnirano kolo String_Input (Slika 4.25) koje pruža dvije mogućnosti za unos karaktera. String_Input

ima generički parametar koji je tipa String i zahvaljujući tome omogućuje unos teksta sa tastature

računara. String_Input ima address_input ulaz preko koga od nekog drugog kola može da dobija adrese

karaktera koje treba prikazati. Kolo je dizajnirano tako da za oba načina unosa karaktera omogućuje

prikazivanje po 40 karaktera raspoređenih u dva reda, što znači da istovremeno može prikazati 80

karaktera.

Slika 4.25 Quartus II simbol String_Input-a

Page 49: VGA KONTROLER U FPGA TEHNOLOGIJI¡a Knežević - VGA... · obtained from FPGA chip outputs are driven to the VGA connector and used for displaying text and graphical data. Realization

Saša Knežević VGA KONTROLER U FPGA TEHNOLOGIJI

40

Kolo String_Input preko svog address_output izlaza prenosi adrese karaktera, tj. 6 bita koji služe za

identifikaciju karaktera, do ROM memorije. Ulazi kola su pixel_row i pixel_column, a kolo ih koristi da na

ekranu rasporedi karaktere na osnovu pozicija prikazivanih piksela. Izlazni signal input_length predstavlja

dužinu unešenog stringa.

Da bi se unešeni string pretvorio u niz početnih memorijskih adresa karaktera napisana je funkcija

String_To_Address. Argument ove funkcije je tipa String, a povratni tip podatka je Std_Logic_Vector.

FUNCTION String_To_Address (s : STRING) RETURN STD_LOGIC_VECTOR IS ......... END FUNCTION;

Funkcija String_To_Address formira niz od 40 adresa. Ako unešeni string sadrži više od 40 karaktera

funkcija uzima prvih 40 karaktera, a ako string sadrži manje od 40 karaktera vrši se dopunjavanje

sekvencama koje odgovaraju početnoj adresi karaktera ‘ ‘.

String_Input razdvaja sekvencu početnih adresa karaktera koju vraća funkcija na 40 pojedinačnih adresa

i šalje ih preko porta address_output. Jedna adresa se šalje u toku jednog ciklusa ulaznog clock-a i

karakteri se raspoređuju u 2 reda po 20 karaktera. Simulacija na Slici 4.26 prikazuje prenos 20 adresa

karaktera iz stringa koji je generic parametar.

Slika 4.26 Quartus II simulacioni dijagram rada String_Input-a

Ulaz address_input je port koji je uveden da bi se kolo Character_Generator-a moglo povezati sa nekim

drugim kolom. Kolo preko ovog ulaza može da dobije 40 adresa karaktera, a svaka adresa se uzima sa

uzlaznom ivicom clock-a. Dobijene adrese se prosljeđuju na port address_output, ali tako da se karakteri

raspoređuju u dva reda i prikazuju na definisanim pozicijama na ekranu. Simulacija (Slika 4.27) pokazuje

prenos prvih 20 oktalnih adresa sa ulaza kola prema izlazu kola. Adrese se prenose samo u toku

prikazivanja određenih redova i kolona piksela, a 20 karaktera se prikazuje u jednom redu na ekranu.

Page 50: VGA KONTROLER U FPGA TEHNOLOGIJI¡a Knežević - VGA... · obtained from FPGA chip outputs are driven to the VGA connector and used for displaying text and graphical data. Realization

Saša Knežević VGA KONTROLER U FPGA TEHNOLOGIJI

41

Slika 4.27 Quartus II simulacioni dijagram rada String_Input-a - slanje adresa sa ulaza kola

Slika 4.28 Blok dijagram Character_Generator-a

4.2.7 Prikazivanje animacije i upravljanje objektom prikazanim na ekranu

U prethodnim dijelovima rada su predstavljeni načini upotrebe VGA Kontrolera za prikazivanje teksta.

VGA Kontroler se može koristiti za realizaciju znatno složenijih zadataka, kao što su prikazivanje pokretnih

objekata i kontrolisanje kretanja objekata prikazanih na ekranu. Ovaj rad sadrži realizaciju takvih

zadataka koji VGA Kontroleru daju još veću ulogu. Ostvarena je realizacija prikaza kretanja i korisniku je

omogućeno da kontroliše pokrete objekta prikazanog na ekranu pomoću tastera na UP3 ploči.

Page 51: VGA KONTROLER U FPGA TEHNOLOGIJI¡a Knežević - VGA... · obtained from FPGA chip outputs are driven to the VGA connector and used for displaying text and graphical data. Realization

Saša Knežević VGA KONTROLER U FPGA TEHNOLOGIJI

42

Realizacija animiranog objekta i upravljanje objektom

Slika 4.29 Quartus II simbol bloka Wall_Racket_And_Ball

Da bi se realizovala arhitektura koja ima funkciju prikazivanja objekta u pokretu i upravljanja objektom,

realizovan je projekat Wall_Racket_And_Ball. Entitet Wall_Racket_And_Ball ima funkciju prikazivanja zida,

reketa i lopte na ekranu. Ovaj blok od VGA_Controller-a dobija signal vertikalne sinhronizacije vert_sync,

zatim signal video_on koji ima vrijednost ‘1’ u toku obrade aktivnog dijela ekrana i signale pixel_row i

pixel_column pomoću kojih dobija koordinate trenutno prikazivanih piksela. Zid je realizovan kao uspravna

crvena linija na ekranu. Reket je realizovan kao objekat plave boje koji se može pomijerati dolje ili gore i to

u zavisnosti od vrijednosti signala pbtn0 i pbtn1. Signali pbtn0 i pbtn1 su iskorišćeni za provjeru stanja

tastera sw4 i sw5 na UP3 ploči. Lopta je realizovana kao zeleni objekat koji se na ekranu kreće

horizontalno. Granica kretanja lopte može biti zid, a može biti i reket ukoliko je pritiskom tastera

postavljen na putanju lopte. Ispod je prikazana deklaracija opisanog entiteta.

ENTITY Wall_Racket_And_Ball IS PORT ( clock :IN STD_LOGIC; pbtn0 :IN STD_LOGIC; pbtn1 :IN STD_LOGIC; vert_sync :IN STD_LOGIC; video_on :IN STD_LOGIC; pixel_row, pixel_column : IN STD_LOGIC_VECTOR(9 DOWNTO 0); red_out, green_out, blue_out : OUT STD_LOGIC ); END Wall_Racket_And_Ball; Wall_Racket_And_Ball na svom izlazu daje RGB signale koji se dovode na RGB ulaze VGA_Controller -a.

Za prikazivanje zida su iskorišćene dvije INTEGER konstante Wall_X_Left i Wall_X_Right koje definišu

poziciju lijeve i desne ivice zida na ekranu. Da bi se promijenila pozicija zida, potrebno je promijeniti ove

dvije konstante.

CONSTANT Wall_X_Left : INTEGER :=700 ; CONSTANT Wall_X_Right : INTEGER :=720 ;

Reket je dizajniran tako da se može pomijerati gore i dolje. Horizontalne ivice reketa su konstantne, a

vertikalne ivice imaju promjenljivu poziciju.

Page 52: VGA KONTROLER U FPGA TEHNOLOGIJI¡a Knežević - VGA... · obtained from FPGA chip outputs are driven to the VGA connector and used for displaying text and graphical data. Realization

Saša Knežević VGA KONTROLER U FPGA TEHNOLOGIJI

43

Za realizaciju reketa u entitetu Wall_Racket_And_Ball, iskorišćen je PROCESS koji se izvršava sa svakom

promjenom signala pbtn0 i pbtn1, što znači da se reket pomijera pritiskom tastera na ploči i to ako je signal

vertikalne sinhronizacije vert_sync jednak '1'.

PROCESS ( Racket_Y_Temp_Pos,Racket_Y_Down,Racket_Y_Up,vert_sync,pbtn0,pbtn1) BEGIN Racket_Y_Next_Pos <= Racket_Y_Temp_Pos ; IF vert_sync = '1' THEN IF pbtn0 = '0' AND (Racket_Y_Up < Racket_Y_Size) THEN -- Pomijeranje reketa dolje Racket_Y_Next_Pos <= Racket_Y_Temp_Pos + Racket_Movement; ELSIF pbtn1 = '0' AND (Racket_Y_Up > Racket_Y_Size) THEN -- Pomijeranje reketa gore Racket_Y_Next_Pos <= Racket_Y_Temp_Pos - Racket_Movement ; END IF; END IF; END PROCESS ;

Konstanta Racket_Y_Size određuje dužinu reketa. Racket_Y_Up i Racket_Y_ Down su signali koji

predstavljaju gornju i donju granicu reketa. Pošto je položaj reketa promjenljiv, uveden je signal

Racket_Y_Temp_Pos koji čuva trenutnu poziciju reketa. Kada su tasteri na UP3 ploči pritisnuti oni daju

nizak naponski nivo koji odgovara logičkoj ‘0’. Kada je signal pbtn0 jednak '0', reket se pomijera dolje, a

kada je signal pbtn1 jednak '0', reket se prikazuje u gornjem dijelu ekrana. Za definisanje pomjeraja reketa

prilikom pritiska tastera iskorišćena je konstanta Racket_Movement.

Dizajn lopte je složeniji od dizajna reketa, jer logika lopte zahtjeva realizaciju prikaza objekta u stalnom

pokretu, kao i prikaz promjene smjera i odbijanja od objekte. Da bi se realizovao prikaz objekta koji se

konstantno kreće potrebno je koristiti signale koji čuvaju trenutne x i y koordinate centra pokretnog

objekta. Lopta je dizajnirana tako da se kreće horizontalno i da mjenja svoj smjer prilikom udara o zid ili o

reket. U okviru arhitekture enititeta Wall_Racket_And_Ball kreirana su dva procesa za prikazivanje lopte na

ekranu: Ball_Activation i Ball_Moving.

Ball_Activation: PROCESS (X_Position_Of_Ball, Y_Position_Of_Ball) BEGIN -- Ball_Active ='1' kada se lopta prikazuje IF ('0' & X_Position_Of_Ball <= pixel_column + Size_Of_Ball) AND (X_Position_Of_Ball + Size_Of_Ball >= '0' & pixel_column) AND ('0' & Y_Position_Of_Ball <= v_count+ Size_Of_Ball) AND (Y_Position_Of_Ball + Size_Of_Ball >= '0' & pixel_row) THEN Ball_Active <= '1'; ELSE Ball_Active <= '0'; END IF; END PROCESS Ball_Activation;

Ball_Activation je PROCESS koji postavlja signal Ball_Active na vrijednost '1' kada je u toku iscrtavanja ekrana potrebno prikazati loptu. Size_Of_Ball je signal koji je odgovoran za veličinu lopte. Prikazivanje

Page 53: VGA KONTROLER U FPGA TEHNOLOGIJI¡a Knežević - VGA... · obtained from FPGA chip outputs are driven to the VGA connector and used for displaying text and graphical data. Realization

Saša Knežević VGA KONTROLER U FPGA TEHNOLOGIJI

44

lopte se vrši u zavisnosti od koordinata trenutno prikazivanog piksela, veličine lopte i signala X_Position_Of_Ball i Y_Position_Of_Ball koji čuvaju trenutne koordinate centra lopte. Ball_Moving: PROCESS BEGIN -- Lopta se pomijera jednom u toku svake Vertikalne Sinhronizacije WAIT UNTIL vert_sync'EVENT AND vert_sync = '1'; -- Lopta se odbija od zid ili od reket -- Lopta se kreće u lijevo IF ('0' & X_Position_Of_Ball) >= Barrier_For_Ball - Size_Of_Ball THEN X_Movement_Of_Ball <= N_Speed_Of_Ball; END IF; -- Lopta se kreće u desno IF X_Position_Of_Ball <= Size_Of_Ball THEN X_Movement_Of_Ball <= P_Speed_Of_Ball; END IF; -- Računanje nove X-pozicije lopte X_Position_Of_Ball <= X_Position_Of_Ball + X_Movement_Of_Ball ; END PROCESS Ball_Moving;

Ball_Moving je PROCESS koji pomijera loptu jednom u toku svake vertikalne sinhronizacije i kontroliše

odbijanja lopte od postavljene barijere. Ovaj proces računa novu horizontalnu poziciju lopte tako što

određuje vrijednost signala X_Position_Of_Ball, a ova vrijednost se računa sa svakom vertikalnom

sinhronizacijom. Računanje u toku svake vertikalne sinhronizacije se vrši da bi se na ekranu ostvario prikaz

kretanja. Signal X_Movement_Of_Ball, na osnovu konstantnih vrijednosti P_Speed_Of_Ball i

N_Speed_Of_Ball, usmjerava loptu na lijevu ili desnu stranu. Kada se lopta kreće u desno koristi se

vrijednost P_Speed_Of_Ball, koja predstavlja pozitivnu brzinu lopte, a kada se kreće u lijevo koristi se

vrijednost N_Speed_Of_Ball, koja je negativna brzina lopte. Lopta može promijeniti smjer nakon odbijanja

od lijeve ivice ekrana, od zida, ili od reketa. Lopta se kreće u lijevo nakon udara u barijeru (zid ili reket), a

Barrier_For_Ball je signal koji određuje granicu do koje će se lopta kretati, tj. barijeru do koje se lopta kreće

prije odbijanja. Kada se lopta kreće u desno vrši se provjera na kojem mjestu je postavljena barijera.

Ukoliko reket promaši loptu, lopta nastavlja da se kreće do zida i odbija se. Lopta je dizajnirana tako da se

besprekidno kreće i odbija od postavljene barijere.

U kodu datom ispod se može vidjeti da je granica za kretanje lopte vrijednost koja odgovara lijevoj ivici

reketa, ako je reket podignut, odnosno lijevoj ivici zida, ako je reket spušten.

IF (Racket_Y_Up < 5) THEN Barrier_For_Ball<= CONV_STD_LOGIC_VECTOR(Racket_X_Left,10); ELSE Barrier_For_Ball<= CONV_STD_LOGIC_VECTOR(Wall_X_Left,10); END IF;

Page 54: VGA KONTROLER U FPGA TEHNOLOGIJI¡a Knežević - VGA... · obtained from FPGA chip outputs are driven to the VGA connector and used for displaying text and graphical data. Realization

Saša Knežević VGA KONTROLER U FPGA TEHNOLOGIJI

45

Simulacioni dijagram entiteta Wall_Racket_And_Ball

Na Slici 4.30 je prikazana Quartus II simulacija entiteta Wall_Racket_And_Ball. Simulacija pokazuje da

je zid crvene boje, jer se 710. kolona piksela na ekranu nalazi između ivica zida. Ako se prikazuje 50. red

piksela na ekranu, a prethodno je pritisnut taster za pomijeranje reketa prema dolje, kanal za plavu boju

reketa je neaktivan jer se tada reket ne prikazuje u 50. redu piksela. Reket se prikazuje u 50. redu piksela

ako je signal pbtn1 prethodno postavljen na ’0’, jer je tada reket u gornjem dijelu ekrana. Kanal za zelenu

boju je aktivan u toku prikazivanja lopte.

Slika 4.30 Quartus II simulacioni dijagram rada bloka Wall_Racket_And_Ball

Povezivanje sa VGA Kontrolerom i prikazivanje objekata na ekranu

Projekat VGA_Animation (Slika 4.31) povezuje VGA_Controller koji je sinhronizaciono i RGB kolo sa

kolom Wall_Racket_And_Ball.

Page 55: VGA KONTROLER U FPGA TEHNOLOGIJI¡a Knežević - VGA... · obtained from FPGA chip outputs are driven to the VGA connector and used for displaying text and graphical data. Realization

Saša Knežević VGA KONTROLER U FPGA TEHNOLOGIJI

46

Slika 4.31 Blok dijagram projekta VGA_Animation

Slika 4.32 Quartus II simulacija projekta VGA_Animation

Simulacija (Slika 4.32) pokazuje da, ako se pritiskaju tasteri na UP3 ploči, postoje promjene signala

blue_out, jer dolazi do promjene položaja reketa. Signal green_out se koristi za prikazivanje lopte. Lopta

se pomijera jednom u toku jednog signala za vertikalnu sinhronizaciju. Kanal za crvenu boju, tj. signal

red_out je najduže aktivan, jer se koristi za prikazivanje zida čiji se dijelovi nalaze u svim redovima

aktivnog dijela ekrana.

Page 56: VGA KONTROLER U FPGA TEHNOLOGIJI¡a Knežević - VGA... · obtained from FPGA chip outputs are driven to the VGA connector and used for displaying text and graphical data. Realization

Saša Knežević VGA KONTROLER U FPGA TEHNOLOGIJI

47

4.2.8 Istovremeno prikazivanje animacije i teksta

Slika 4.33 Blok dijagram projekta VGA_Anim_And_Char_Disp

Projekat VGA_Animation je proširen dijelom za prikazivanje teksta, što znači da su animacija,

upravljanje objektom i prikazivanje teksta ostvareni istovremeno. Napravljen je projekat

VGA_Anim_And_Char_Disp (Slika 4.33 ) koji objedinjuje entitete VGA_Controller, Wall_Racket_And_Ball,

Character_ROM_Memory i Char_Pos_And_Addr2.

Entitet Char_Pos_And_Addr2 ima funkciju konstantnog tekstualnog ispisa na ekranu. Ovaj entitet

prema bloku font ROM memorije, tj. bloku Character_ROM_Memory šalje memorijske adrese karaktera

koji su iskorišćeni za ispis riječi “VGA KONTROLER”, a pored toga određuje pozicije karaktera na ekranu.

Izlaz ROM memorije stimuliše kanal za crvenu boju VGA_Controller-a.

Char_Pos_And_Addr2 je iskorišćen i za prikazivanje zida na ekranu, i upotrebljen je poslednji simbol iz

fajla karakteri.mif koji ima oblik kvadrata. Ovo je urađeno zbog toga što ulazu VGA_Controller-a za crvenu

boju ne mogu biti istovremeno dodjeljena dva različita izvora koja ga pobuđuju, a to važi za sve RGB ulaze

VGA_Controller-a. Jednostavno, ovo znači da jednom signalu ne mogu biti istovremeno dodjeljene dvije

različite vrijednosti.

Page 57: VGA KONTROLER U FPGA TEHNOLOGIJI¡a Knežević - VGA... · obtained from FPGA chip outputs are driven to the VGA connector and used for displaying text and graphical data. Realization

Saša Knežević VGA KONTROLER U FPGA TEHNOLOGIJI

48

Data je Quartus II simulacija rada projekta VGA_Anim_And_Char_Disp ( Slika 4.34).

Slika 4.34 Quartus II simulacija rada projekta VGA_Anim_And_Char_Disp

4.2.9 Pregled utrošenih resursa za realizaciju u FPGA tehnologiji

Dat je pregled iskorišćenih resursa upotrebljenog EP1C6Q240C8 FPGA čipa koji posjeduje ukupno 5980

Logičkih Elemenata.

Slika 4.35 Pregled logičkih resursa za realizaciju osnovnih kola iz rada

0 100 200 300 400 500

LogičkiElementi

Wall_Racket_And_Ball

String_Input

Char_Pos_And_Addr2

Char_Pos_And_Addr1

Character_ROM_Memory

Image_Storage

RGB_Input

VGA_Controller

Page 58: VGA KONTROLER U FPGA TEHNOLOGIJI¡a Knežević - VGA... · obtained from FPGA chip outputs are driven to the VGA connector and used for displaying text and graphical data. Realization

Saša Knežević VGA KONTROLER U FPGA TEHNOLOGIJI

49

Slika 4.36 Pregled logičkih resursa za realizaciju kola većeg stepena integracije

Za realizaciju ROM memorije za karaktere je iskorišćeno 4096 bita, što predstavlja 4% ukupnih

memorijskih resursa EP1C6Q240C8 FPGA čipa.

0 100 200 300 400 500 600

LogičkiElementi

VGA_Anim_And_Char_Disp

VGA_Animation

Character_Generator

Character_Display

Display_Image_Storage

VGA_RGB_Input

Page 59: VGA KONTROLER U FPGA TEHNOLOGIJI¡a Knežević - VGA... · obtained from FPGA chip outputs are driven to the VGA connector and used for displaying text and graphical data. Realization

Saša Knežević VGA KONTROLER U FPGA TEHNOLOGIJI

50

5 Rezultati testiranja predloženog rješenja

Realizovana rješenja koja su opisana u prethodnom poglavlju su eksperimentalno testirana pomoću

UP3-1C6 ploče i VGA monitora. Ovo poglavlje sadrži uputstva za testiranje i rezultate obavljenih testiranja.

Pri upotrebi VGA_Controller-a, potrebno je izvršiti dodjelu odgovarajućih pinova čipa EP1C6Q240C8 na

UP3 ploči. Potrebni pinovi su povezani sa VGA konektorom na UP3 ploči i ne mogu se mijenjati. Način na

koji treba ostvariti vezu sa pinovima je prikazan u Tabeli 5.1.

Signal VGA_Controller-a Redni broj FPGA pina

clock 29

red_out 228

green_out 122

blue_out 170

vert_sync_out 226

horiz_sync_out 227

Tabela 5.1 Dodjela FPGA pinova za VGA_Controller

Da bi se tasteri na UP3 ploči povezali sa dizajnom, neophodno je ostvariti dodjelu pinova koja je

navedena u Tabeli 5.2.

Rezultati eksperimentalne verifikacije dizajniranih kola su dati na slikama.

Taster Broj FPGA pina

sw4 48

sw5 49

sw6 57

sw7 62

Tabela 5.2 FPGA pinovi za tastere

Page 60: VGA KONTROLER U FPGA TEHNOLOGIJI¡a Knežević - VGA... · obtained from FPGA chip outputs are driven to the VGA connector and used for displaying text and graphical data. Realization

Saša Knežević VGA KONTROLER U FPGA TEHNOLOGIJI

51

Slika 5.1 Eksperimentalna oprema i testiranje projekta VGA_RGB_Input

Slika 5.2 Rezultat testiranja projekta Display_Image_Storage

Page 61: VGA KONTROLER U FPGA TEHNOLOGIJI¡a Knežević - VGA... · obtained from FPGA chip outputs are driven to the VGA connector and used for displaying text and graphical data. Realization

Saša Knežević VGA KONTROLER U FPGA TEHNOLOGIJI

52

Slika 5.3 a) Testiranje projekta Character_Display pomoću UP3-1C6 ploče i VGA monitora; b) Rezultat testiranja Character_Display-a

Slika 5.4 Testiranje projekta Character_Generator

Page 62: VGA KONTROLER U FPGA TEHNOLOGIJI¡a Knežević - VGA... · obtained from FPGA chip outputs are driven to the VGA connector and used for displaying text and graphical data. Realization

Saša Knežević VGA KONTROLER U FPGA TEHNOLOGIJI

53

Slika 5.5 Prikaz eksperimentalne opreme i testiranje projekta VGA_Animation

Slika 5.6 Rezultati testiranja projekta VGA_Anim_And_Char_Disp

Page 63: VGA KONTROLER U FPGA TEHNOLOGIJI¡a Knežević - VGA... · obtained from FPGA chip outputs are driven to the VGA connector and used for displaying text and graphical data. Realization

Saša Knežević VGA KONTROLER U FPGA TEHNOLOGIJI

54

6 Zaključak

Istraživanje koje je obavljeno u okviru ovog rada je bilo veoma interesantno i donijelo je mnogo novih

ideja. Prvi cilj rada je bila realizacija VGA Kontrolera. Njegova realizacija je omogućila postavljanje novih

zadataka kao što su prikazivanje slika, teksta i animacija. Memorijski resursi FPGA čipa su omogućili

realizaciju ROM memorije za karaktere koja je iskorišćena u svim kolima dizajniranim za prikazivanje

teksta. Najveći poduhvat u segmentu prikazivanja teksta je realizacija Karakter Generator-a. Projekat

VGA_Animation je ostvario ciljeve prikazivanja animiranih objekata i upravljanja kretanjem objekata.

FPGA tehnologija je sasvim pogodna za realizaciju digitalnih kola za prikazivanje video slike. Upotreba

FPGA čipa sa većim brojem pinova za RGB signale omogućuje prikaz mnogo velikog broja boja na ekranu,

kao i njihovih različitih nijansi.

Sva data rješenja su dizajnirana u VHDL-u koji zajedno sa FPGA implementacionom platformom daje

odlične mogućnosti dizajniranja i implementacije digitalnih kola. Testiranje dizajniranih kola je obavljeno u

Laboratoriji za primijenjenu elektroniku na Elektrotehničkom fakultetu u Podgorici.

Postoje mnoge mogućnosti za proširenje ovog rada. U radu je objašnjeno na koji način se može

promijeniti rezolucija piksela na ekranu. Budući rad treba da obuhvati prikazivanje mnogo složenijih

objekata, jer memorijski resursi to omogućuju. Nastavak rada treba da donese i ostvarivanje složenije

interakcije između prikazanih objekata. Jedna od mogućnosti u daljem radu je povezivanje tastature sa

PS/2 Portom na UP3-1C6 ploči, što se može iskoristiti za upravljanje kretanjem objekata prikazanih na

ekranu pomoću tastature. Unapređenje rada može da ide u pravcu kreiranja prave video igre.

Uz male dodatke i izmjene, predstavljeni dizajn se može implementirati na nekoj drugoj razvojnoj ploči,

kao što je DE2-70. Upotrebom Audio izlaza i povezivanjem sa zvučnikom, ovo bi omogućilo proširenje

dizajna uvođenjem zvukova. Audio ulaz omogućuje vizuelizaciju signala na VGA monitoru. Podaci koje

treba prikazati na VGA monitoru bi se mogli dobijati preko Ethernet Port-a ili preko Video ulaza sa kojeg se

mogu preuzimati podaci od video kamere.

Page 64: VGA KONTROLER U FPGA TEHNOLOGIJI¡a Knežević - VGA... · obtained from FPGA chip outputs are driven to the VGA connector and used for displaying text and graphical data. Realization

Saša Knežević VGA KONTROLER U FPGA TEHNOLOGIJI

55

7 Prilog

Prilog radu je CD koji sadrži:

• Elektronsku verziju rada

• Fotografije i video snimke eksperimentalne verifikacije

• Izvorne kodove

Page 65: VGA KONTROLER U FPGA TEHNOLOGIJI¡a Knežević - VGA... · obtained from FPGA chip outputs are driven to the VGA connector and used for displaying text and graphical data. Realization

Saša Knežević VGA KONTROLER U FPGA TEHNOLOGIJI

56

8 Literatura

[1] http://en.wikipedia.org/wiki/Video_Graphics_Array

[2] http://www-mtl.mit.edu/Courses/6.111/labkit/vga.shtml

[3] Clive "Max" Maxfield, “FPGAs: Instant Access”, Newnes, 2008.

[4] Radovan D. Stojanovic, “Automatizovano Projektovanje Digitalnih Sistema (VHDL i FPGA)”,

TEMPUS CD-40017-2005 Edition, 2008.

[5] System Level Solutions,” UP3-1C6 Education Kit- Reference Manual,Cyclone Edition”, System Level

Solutions Inc., 2004-2005.

[6] Weng Fook Lee,”VHDL Coding and Logic Synthesis with Synopsys”, Academic Press,2000.

[7] James O. Hablen, Tyson S. Hall, Michael D Furman, "Rapid Prototyping of Digital Systems- SOPC

Edition", Springer Science and Business Media, LLC, 2008.

[8] Altera, ”LPM Quick Reference Guide”, Altera Corporation,1996.

[9] Pong P. Chu, “FPGA prototyping by VHDL examples: Xilinx Spartan-3 Version”, John Wiley & Sons,

Inc.,2008.

[10]Volnei A. Pedroni,”Circuit design with VHDL”, Massachusetts Institute of Technology,2004.

[11] http://www.altera.com/