COMP541 Video Monitors Montek Singh Feb 6, 2019
VGA Displays
How Do Monitors Work? Origin is TV, so let’s look at that LCDs work on different principle, but all signaling still derived from TV of 1940s Relies on your brain to do two things Integrate over space Integrate over time
Many Still Images Video (and movies) are a series of stills If stills go fast enough your brain interprets as moving imagery 50-60 Hz or more to not see flicker “1 Hz” means once per second In fact, even if the scene does not change… … a single “still” image is displayed repeatedly over time Why? Phosphor persistence varies
Cathode Ray Tube (CRT) From wikipedia: http://en.wikipedia.org/wiki/Cathode_ray_tube
Deflection Coils
Simple Scanning TV Electron beam scans across Turned off when Scanning back to the left (horizontal retrace ----) Scanning to the top (vertical retrace ____)
Scanning: Interlaced vs. Progressive (Some) TVs use interlacing Every other scan line is swept per field Two fields per frame (30Hz) Way to make movement less disturbing Computers use progressive scan Whole frame refreshed at once 60Hz or more, 72Hz looks better Similar notation used for HD i = interlaced (1080i) p = progressive (1080p) which better?
Color Three colors of phosphor three beams, one each for the three phosphors Black: all beams off White: all beams on Mask (or aperture grill) ensures beams hit only correct color phosphor.
What about LCD? How do LCD monitors work? internals are very different no beams, tubes made up of tiny LCD cells However, external signaling is the same! for compatibility Same goes for micro-mirror projectors tiny mirrors (one/pixel) that allow light through or send it out of the way possible to change pixels selectively
VGA Signaling Timing signals Color values: R, G, B horizontal sync (hsync) & vertical sync (vsync) Color values: R, G, B total 8 bits for Nexys 3 (rrrgggbb), 12 bits for Nexys 4 (rrrrggggbbbb) Nexys 4 digital to analog converter
VGA Timing You supply two pulses hsync and vsync allow the monitor to lock onto timing One vsync per frame One hsync per scan line hsync does not stop during vsync pulse Image from dell.com
Horizontal Timing Terms hsync pulse Back porch (left side of display) Active Video Video should be blanked (not sent) at other times Front porch (right side)
Horizontal Timing 640 Horizontal Dots Horiz. Sync Polarity NEG This diagram shows video as a digital signal. It’s not – video is an analog level. 640 Horizontal Dots Horiz. Sync Polarity NEG Scanline time (A) 31.77 us Sync pulse length (B) 3.77 us Back porch (C) 1.89 us Active video (D) 25.17 us Front porch (E) 0.94 us us = microsecond Image from http://www.epanorama.net/documents/pc/vga_timing.html
Vertical Timing (note ms, not us) Vert. Sync Polarity NEG Vertical Frequency 60Hz Total frame time (O) 16.68 ms Sync length (P) 0.06 ms Back porch (Q) 1.02 ms Active video (R) 15.25 ms Front porch (S) 0.35 ms
Timing as Pixels Easiest to derive all timing from single-pixel timing How “long” is a pixel? Active video / number of pixels 25.17 us / 640 = 39.32ns Conveniently close to 25 MHz – just use that Actual VESA spec is 25.175 MHz
The overall picture (Picture from http://www.pyroelectro.com)
Standards 640 x 480 (sometimes x 60Hz) is “VGA” I will give you spec sheets in lab 800x600 at 60 Hz (40 MHz exactly) or 800x600 at 72 Hz (50 MHz exactly) Note that some standards have vsync and hsync positive true, some negative true choose correct polarity determine by experimentation!
Color Depth Voltage of each of RGB determines color Nexys 4: 4-bit for red, green and blue All on for white Nexys 4
Lab (VGA Displays) Notes: Make Verilog module to generate hsync, vsync, horizontal count, vertical count, and signal to indicate active video Use higher-level module to drive RGB using counts gated by active Just do something simple (stripes, checkerboard, diagonals) Try to produce the pattern given on the website Later we will use memory addressed by counts to make a terminal Notes: Be careful about the “Sync Polarity” A “1” means a downward going pulse sync signal is normally high, but goes low during the pulse A “0” means an upward going pulse Use my self-checking text bench! simulates my VGA driver … … and compares your outputs with mine flags any mismatches
What do you need for VGA? Think first Sketch out a design Need counter(s)? Will you need a state machine? Sketch out a design Block diagram Test individually in lab Keep in mind Verilog has all these operators (and more; see Verilog ref.) ==, <, >, <=, >=
VGA Links VGA Timing Interesting Recommended: http://tinyvga.com/vga-timing http://www.epanorama.net/documents/pc/vga_timing.html Interesting http://www.howstuffworks.com/tv.htm http://computer.howstuffworks.com/monitor.htm http://www.howstuffworks.com/lcd.htm http://plc.cwru.edu/