Beschrijving
Odrachten
Resultaten
Reflectie
Werkwijze
Bewijsstukken
Bronvermelding
Logboek
Opmerkingen


Elektronica 3 - Lab programmeren digitale systemen

Module 1A: Videotiming

Samenvatting

De bedoeling van deze module, is het schrijven en simuleren van een code die later gebruikt kan worden een VGA-scherm aan te sturen. Hierbij wordt rekening gehouden met de onzichtbare pixels van het scherm, verticale en horizontale synchronisatie, enz…

Opgave

Code VideoTimingGen

Gegeven

- VideoTimingGen.vhd
- Constants_pack.vhd

De volledige code voor VideoTimingGen.vhd kan je hier vinden.

Zoals je hieronder kan zien is de Reset_n actief laag. Zolang hcount_sig en vcount_sig niet gelijk aan of groter dan het totale aantal horizontale en verticale pixels zijn blijven ze optellen en anders worden ze terug op hun startwaarde gezet.

a

           

 

 


Volgende afbeeldingen laten zien dat Hsync en Vsync slechts 1 worden indien hcount_sig en vcount_sig groter zijn dan H_sync en V_sync.

a

a

Volgende code laat zien wanneer er juist iets op het scherm kan verschijnen, zoals je kan zien is dit tussen de grenzen ‘H_sync + H_bp’ en ‘H_sync + H_bp + H_active’ waarbij H_active het gedeelte is waar de pixels kunnen werken. Hetzelfde geldt voor de verticale lijnen op het scherm.

a

De code hieronder zorgt ervoor dat het scherm iets weergeeft vanaf de waarde dat dit toegelaten is.

a

Video_on wordt alleen 1 indien zowel video_on_H en video_on_V 1 zijn. De signalen hcount_sig en vcount_sig worden hier omgezet van unsigned naar std_logic_vector.

a

Code Constants_pack

Hieronder kan je alle waarden vinden die ook in VideoTimingGen.vhd gebruikt worden.

a



 

 

 

 

 

 

 

 

 

 

Simulatie

a

a

Alle signalen werken en geven de juiste output zoals je hierboven kan zien.
Aangezien V_bp + V_sync = 31, wordt video_on_v op dat moment 1.

aaa

Video_on kan alleen 1 worden indien zowel video_on_h en video_on_v 1 zijn zoals hierboven het geval is. Ook start_video wordt 1 omdat zowel video_on_h = H_bp + H_sync als video_on_v = V_bp + V_sync.

Reflectie


Ik vond het een redelijk grote uitdaging omdat ik het wel interessant vind om eens te zien hoe je een code moet schrijven om eventueel later een scherm mee aan te sturen.
Tijdsbesteding: 2 uur
Punten: 8/10

Bronnen

http://www.blackboard.ha.be