VGA Port CSE 678.

Slides:



Advertisements
Similar presentations
1 COMP541 Video Monitors Montek Singh Oct 1, 2014.
Advertisements

Arbitrary Waveform Discussion 5.5 Example 34.
Ring Counter Discussion D5.3 Example 32. Ring Counter if rising_edge(CLK) then for i in 0 to 2 loop s(i)
VHDL revision 15a1 VHDL revision. VHDL revision 15a2 Q1 A clocked 4-to-2-bit encoder circuit (with synchronous reset) has the following interfaces: RESET:
Logic Design Fundamentals - 3 Discussion D3.2. Logic Design Fundamentals - 3 Basic Gates Basic Combinational Circuits Basic Sequential Circuits.
RS-232 Port Discussion D7.1. Loop feedback RS-232 voltage levels: +5.5 V (logic 0) -5.5 V (logic 1)
Display Technology  Images stolen from various locations on the web...
modules--perform I/O “housekeeping” functions use in project: example VHDL package—UP3pack.vhd modules must be “visible” in your path or included.
Display of Objects on Screen. COUNTERS b A horizontal counter represents the horizontal position of the monitor’s electron beam. b A vertical counter.
Counters Discussion D5.3 Example 33. Counters 3-Bit, Divide-by-8 Counter 3-Bit Behavioral Counter in Verilog Modulo-5 Counter An N-Bit Counter.
7-Segment Display DIO1 Board. Digilab2 – DIO1 Boards Four 7-segment displays A0A1A2A3.
Lab 2 4-Bit Adder Digilent Spartan 3 Board Lecture L2.3.
Division Lecture L6.3. Division
Digilab 7-Segment Displays Lab 4. selyInstruction name “000”true if b = a false otherwise = “001”true if b /= a false otherwise “010”true if b < a.
Screen Display Module M15.2 Sections 9.5, 13.1, 13.2.
VGA Port Discussion D9.1. Raster Scan Displays Electron beam CRT.
Division Discussion D11.3. Division
Sequential Multiplication Lecture L6.4. Multiplication 13 x = 8Fh 1101 x
Shift Registers Discussion D5.2 Example Bit Shift Register qs(3) qs(2) qs(1) qs(0) if rising_edge(CLK) then for i in 0 to 2 loop s(i) := s(i+1);
PS/2 Mouse/Keyboard Port Discussion D7.2. PS/2 Port.
Introduction to VGA Wei Miao Yuxuan Zhou 1. 2 VGA VGA = Video Graphics Array Introduced by IBM in 1987, still using today All points addressable Transmitting.
4-bit Shift Register. 2-bit Register Serial-in-serial-out Shift Register.
ECE 448: Lab 6 VGA Display (mini chess game). Video Graphic Array (VGA) Resolution: 640x480 Display: 16 colors (4 bits), 256 colors (8 bits) Refresh Rate:
EE4OI4 Engineering Design UP1core Library Functions.
George Mason University ECE 448 – FPGA and ASIC Design with VHDL VGA Display Part 1 VGA Synchronization ECE 448 Lecture 9.
Introduction to VGA 數位電路實驗 TA: 吳柏辰 Author: Trumen.
COMP541 Video Monitors Montek Singh Oct 2, 2015.
ENG241 Digital Design Week #8 Registers and Counters.
ECE FPGA Microprocessor Design Erik Lee, Edward Jones, Emily Kan.
2/1 A Look at Monitors Roll call Video: monitors Step-by-step lecture.
ECE 448: Lab 4 VGA Display. Bouncing Ball.. Organization and Grading.
ECE 448: Lab 5 VGA Display. Breaking-Bricks..
Figure 10.1 Color CRT and Phosphor Dots on Face of Display.
2/10/07DSD,USIT,GGSIPU1 BCD adder KB3B2B1B0CD3D2D1D
 Seattle Pacific University EE Logic System DesignCounters-1 Shift Registers DQ clk DQ DQ ShiftIn Q3Q3 Q2Q2 DQ Q1Q1 Q0Q0 A shift register shifts.
CRT Display Technology
10/19 Monitors CRT monitors: Flat-panel displays Electron guns
Week 9 Monitors and output to the screen. Monitors, also known as Visual display units (V.D.Us) Desktop computers contain a Cathode Ray Tube (C.R.T.)
INF H131 Clock and Reset Unit (CRU) module library ieee; use ieee.std_logic_1164.all; entity cru is port ( arst : in std_logic; -- Asynch. reset.
Prime Numbers Lecture L6.1 Sieve of Eratosthenes.
Table 5.1 The UP3core Functions. UP3core NameDescription LCD_Display Displays ASCII Characters and Hex Data on the UP3’s LCD Panel Deboune Pushbutton Debounce.
TFT-LCD Display + Camera
1 COMP541 Video Monitors Montek Singh Mar 11, 2016.
Registers and Counters Discussion D8.1. Logic Design Fundamentals - 3 Registers Counters Shift Registers.
Implementation of Pong over VGA on the Nexys 4 FPGA
COMP541 Video Monitors Montek Singh Oct 7, 2016.
COMP541 Video Monitors Montek Singh Sep 15, 2017.
VGA Display Part 1 VGA Synchronization
Lecture L5.1 Mealy and Moore Machines
COMP541 Video Monitors Montek Singh Feb 20, 2015.
Revision Name __________ Student number______
Part IV: VHDL CODING.
ECE 4110–5110 Digital System Design
Microprocessor and Assembly Language
Figure 9.1 Color CRT and Phosphor Dots on Face of Display.
1. Encode binary value using PCM
Computer Graphics Raster Scan Display System, Rasterization, Refresh Rate, Video Basics and Scan Conversion.
VGA INTERFACE Ly Le Department of Electrical Engineering
IMDL Summer 2002 Matthew Chernosky July 11, 2002
مدار های ترکیبی دیکدر لامپ های هفت قسمتی یکی از دیکدر هایی که اغلب به کار برده می شود،دیکدر 4 به 7 برای تبدیل کد bcd به کد هفت بیتی برای لامپ های seven.
Software Environment ISE 5.x Interaction with simple LCDs
Introduction to VGA Digital Circuit Lab TA: Po-Chen Wu.
A Greatest Common Divisor (GCD) Processor
Fibonacci Sequence Lecture L4.1 Lab 3.
COMP541 Video Monitors Montek Singh Feb 6, 2019.
Figure 8.1. The general form of a sequential circuit.
Fast, Asynchronous SRAM
VGA Display: VGA Synchronization & Pixel Generation
Four Bit Adder Sum A Cin B Cout 10/9/2007 DSD,USIT,GGSIPU.
디 지 털 시 스 템 설 계 UP2 Kit를 이용한 카운터 설계
Presentation transcript:

VGA Port CSE 678

Raster Scan Displays Electron beam CRT

Raster Scan Characters 14 9

T 54 H 48 Character E 45 generator Character line 1 Row (40 words or select 80 bytes) 1 1 1 1 1 0 0 0 Video Shift register signal Character line 2 (40 words or 80 bytes) even addresses odd addresses

Attribute Byte 7 6 5 4 3 2 1 0 BL R G B I R G B Blinking bit 7 6 5 4 3 2 1 0 BL R G B I R G B Blinking bit Foreground 0 = not blinking 1 = foreground Intensity bit blinking 0 = normal intensity 1 = high intensity Background

Back porch Back porch Front porch

Horizontal Timing 144 784 Pixel clock = 25 MHz Pixel time = 0.04 ms Horizontal video = 640 pixels x 0.04 ms = 25.60 ms Back porch, BP = 16 pixels x 0.04 ms = 0.64 ms Front porch, FP = 16 pixels x 0.04 ms = 0.64 ms Sync pulse, SP = 128 pixels x 0.04 ms = 5.12.ms Horizontal Scan Lines = SP + BP + HV + FP = 128 + 16 + 640 + 16 = 800 pixels x 0.04 ms = 32 ms 1/60 Hz = 16.67 ms / 32 ms = 521 horizontal scan lines per frame

Vertical Timing 31 511 Pixel clock = 25 MHz Horizontal scan time = 32 ms Vertical video = 480 pixels x 32 ms = 15.360 ms Back porch, BP = 29 pixels x 32 ms = 0.928 ms Front porch, FP = 10 pixels x 32 ms = 0.320 ms Sync pulse, SP = 2 pixels x 32 ms = 0.064 ms Horizontal Scan Lines = SP + BP + VV + FP = 2 + 29 + 480 + 10 = 521 pixels x 32 ms = 16.672 ms 1/60 Hz = 16.67 ms

VGA Controller entity vgaController is Port ( mclk, clr : in std_logic; hs : out std_logic; vs : out std_logic; red : out std_logic; grn : out std_logic; blu : out std_logic); end vgaController;

VGA Controller architecture Behavioral of vgaController is constant hpixels: std_logic_vector(9 downto 0) := "1100100000"; --Value of pixels in a horizontal line = 800 constant vlines: std_logic_vector(9 downto 0) := "1000001001"; --Number of horizontal lines in the display = 521 constant hbp: std_logic_vector(9 downto 0) := "0010010000"; --Horizontal back porch = 144 (128+16) constant hfp: std_logic_vector(9 downto 0) := "1100010000"; --Horizontal front porch = 784 (128+16+640) constant vbp: std_logic_vector(9 downto 0) := "0000011111"; --Vertical back porch = 31 (2+29) constant vfp: std_logic_vector(9 downto 0) := "0111111111"; --Vertical front porch = 511 (2+29+480) signal hc, vc: std_logic_vector(9 downto 0); --These are the Horizontal and Vertical counters

VGA Controller signal clkdiv : std_logic; --Clock divider signal vidon : std_logic; --Tells whether or not its ok to display data signal vsenable: std_logic; --Enable for the Vertical counter begin --This cuts the 50Mhz clock in half process(mclk, clr) if clr = '1' then clkdiv <= '0'; elsif(mclk = '1' and mclk'EVENT) then clkdiv <= not clkdiv; end if; end process;

VGA Controller --Runs the horizontal counter process(clkdiv) begin if clr = '1' then hc <= "0000000000"; elsif(clkdiv = '1' and clkdiv'EVENT) then if hc = hpixels then --If the counter has reached the end of pixel count hc <= "0000000000"; --reset the counter vsenable <= '1'; --Enable the vertical counter to increment else hc <= hc + 1; --Increment the horizontal counter vsenable <= '0'; --Leave the vsenable off end if; end process; hs <= '0' when hc(9 downto 7) = "000" else '1'; --Horizontal Sync Pulse is low when hc is 0 - 127

VGA Controller --Runs the vertical counter process(clkdiv) begin if clr = '1' then vc <= "0000000000"; elsif(clkdiv = '1' and clkdiv'EVENT and vsenable = '1') then --Increment when enabled if vc = vlines then --Reset when the number of lines is reached else vc <= vc + 1; --Increment the vertical counter end if; end process; vs <= '0' when vc(9 downto 1) = "000000000" else '1'; --Vertical Sync Pulse is low when vc is 0 or 1

VGA Controller red <= '1' when (hc = "1010101100" and vidon ='1') else '0'; --Red pixel on at a horizontal count = 684 = 144 + 540 grn <= '1' when (hc = "0100000100" and vidon ='1') else '0'; --Green pixel on at a horizontal count = 260 = 144 + 116 blu <= '1' when (vc = "0100100001" and vidon ='1') else '0'; --Blue pixel on at a vertical count = 289 = 31 + 258 vidon <= '1' when (((hc < hfp) and (hc > hbp)) and ((vc < vfp) and (vc > vbp))) else '0'; --Enable video out when within the porches end Behavioral;