Block Diagram. dw*3 pixin (RGB) pixin_vsync pixin_hsync pixin_val pixin_rdy. clk_a. clk_b. h_s, h_bp, h_fp, h_disp, h_line

Similar documents
VID_OVERLAY. Digital Video Overlay Module Rev Key Design Features. Block Diagram. Applications. Pin-out Description

Block Diagram. 16/24/32 etc. pixin pixin_sof pixin_val. Supports 300 MHz+ operation on basic FPGA devices 2 Memory Read/Write Arbiter SYSTEM SIGNALS

Block Diagram. pixin. pixin_field. pixin_vsync. pixin_hsync. pixin_val. pixin_rdy. pixels_per_line. lines_per_field. pixels_per_line [11:0]

Block Diagram. deint_mode. line_width. log2_line_width. field_polarity. mem_start_addr0. mem_start_addr1. mem_burst_size.

Block Diagram. RGB or YCbCr. pixin_vsync. pixin_hsync. pixin_val. pixin_rdy. clk

Massachusetts Institute of Technology Department of Electrical Engineering and Computer Science Introductory Digital Systems Laboratory

Design and Implementation of an AHB VGA Peripheral

Massachusetts Institute of Technology Department of Electrical Engineering and Computer Science Introductory Digital Systems Laboratory

FPGA Laboratory Assignment 4. Due Date: 06/11/2012

Design and Implementation of SOC VGA Controller Using Spartan-3E FPGA

VGA Port. Chapter 5. Pin 5 Pin 10. Pin 1. Pin 6. Pin 11. Pin 15. DB15 VGA Connector (front view) DB15 Connector. Red (R12) Green (T12) Blue (R11)

Lab # 9 VGA Controller

Spartan-II Development System

7inch Resistive Touch LCD User Manual

Lab 3: VGA Bouncing Ball I

LogiCORE IP Video Timing Controller v3.0

Section 4. Display Connector

Digital Blocks Semiconductor IP

Single Channel LVDS Tx

Digital Blocks Semiconductor IP

Design and implementation (in VHDL) of a VGA Display and Light Sensor to run on the Nexys4DDR board Report and Signoff due Week 6 (October 4)

1:2 MIPI DSI Display Interface Bandwidth Reducer IP User Guide

LogiCORE IP Spartan-6 FPGA Triple-Rate SDI v1.0

TSIU03: Lab 3 - VGA. Petter Källström, Mario Garrido. September 10, 2018

A CONTROL MECHANISM TO THE ANYWHERE PIXEL ROUTER

EECS150 - Digital Design Lecture 12 - Video Interfacing. Recap and Outline

4.3inch 480x272 Touch LCD (B) User Manual

Digilent Nexys-3 Cellular RAM Controller Reference Design Overview

Modeling Latches and Flip-flops

Design of VGA and Implementing On FPGA

Digital Blocks Semiconductor IP

Spartan-II Development System

Digital Blocks Semiconductor IP

Lecture 14: Computer Peripherals

Lancelot. VGA video controller for the Altera Nios II processor. V4.0. December 16th, 2005

T1 Deframer. LogiCORE Facts. Features. Applications. General Description. Core Specifics

PROCESSOR BASED TIMING SIGNAL GENERATOR FOR RADAR AND SENSOR APPLICATIONS

LogiCORE IP Video Timing Controller v3.0

2.6 Reset Design Strategy

Different Display Configurations on the i.mx31 WinCE PDK

Polar Decoder PD-MS 1.1

Modeling Latches and Flip-flops

LogiCORE IP AXI Video Direct Memory Access v5.01.a

VGA 8-bit VGA Controller

GENERAL RULES FOR EE314 PROJECTS

EEM Digital Systems II

VGA Controller. Leif Andersen, Daniel Blakemore, Jon Parker University of Utah December 19, VGA Controller Components

Design of VGA Controller using VHDL for LCD Display using FPGA

Level and edge-sensitive behaviour

LogiCORE IP CIC Compiler v2.0

XC Clocked Input and Output

Section 14 Parallel Peripheral Interface (PPI)

Lab 6: Video Game PONG

Testing Results for a Video Poker System on a Chip

Radar Signal Processing Final Report Spring Semester 2017

The World Leader in High Performance Signal Processing Solutions. Section 15. Parallel Peripheral Interface (PPI)

EE178 Lecture Module 4. Eric Crabill SJSU / Xilinx Fall 2005

ECE 448 Lecture 10. VGA Display Part 1 VGA Synchronization

AD9884A Evaluation Kit Documentation

C6845 CRT Controller Megafunction

An FPGA Based Solution for Testing Legacy Video Displays

Video. Updated fir31.filtered on website Fall 2008 Lecture 12

Implementing SMPTE SDI Interfaces with Artix-7 FPGA GTP Transceivers Author: John Snow

CAD for VLSI Design - I Lecture 38. V. Kamakoti and Shankar Balachandran

T-COR-11 FPGA IP CORE FOR TRACKING OBJECTS IN VIDEO STREAM IMAGES Programmer manual

EECS150 - Digital Design Lecture 10 - Interfacing. Recap and Topics

CORIOmax Resolution Editor Programming Guide 2015/03/04

VIDEO 2D SCALER. User Guide. 10/2014 Capital Microelectronics, Inc. China

DT3162. Ideal Applications Machine Vision Medical Imaging/Diagnostics Scientific Imaging

Pivoting Object Tracking System

An Efficient SOC approach to Design CRT controller on CPLD s

LFSRs as Functional Blocks in Wireless Applications Author: Stephen Lim and Andy Miller

Rec. ITU-R BT RECOMMENDATION ITU-R BT * WIDE-SCREEN SIGNALLING FOR BROADCASTING

Parallel Peripheral Interface (PPI)

Laboratory Exercise 7

Memory Interfaces Data Capture Using Direct Clocking Technique Author: Maria George

EE178 Spring 2018 Lecture Module 5. Eric Crabill

Week 5 Dr. David Ward Hybrid Embedded Systems

Laboratory 4. Figure 1: Serdes Transceiver

ECE532 Digital System Design Title: Stereoscopic Depth Detection Using Two Cameras. Final Design Report

Design and analysis of microcontroller system using AMBA- Lite bus

AN-ENG-001. Using the AVR32 SoC for real-time video applications. Written by Matteo Vit, Approved by Andrea Marson, VERSION: 1.0.0

SP2 Multi-Function DVI Converter

HDL & High Level Synthesize (EEET 2035) Laboratory II Sequential Circuits with VHDL: DFF, Counter, TFF and Timer

DVB-S Modulator IP Core Specifcatoon

Traffic Light Controller

VHDL Design and Implementation of FPGA Based Logic Analyzer: Work in Progress

VGA Configuration Algorithm using VHDL

MIPI D-PHY Bandwidth Matrix Table User Guide. UG110 Version 1.0, June 2015

LogiCORE IP Spartan-6 FPGA Triple-Rate SDI v1.0

EITF35: Introduction to Structured VLSI Design

OL_H264MCLD Multi-Channel HDTV H.264/AVC Limited Baseline Video Decoder V1.0. General Description. Applications. Features

CHAPTER 6 DESIGN OF HIGH SPEED COUNTER USING PIPELINING

SDI Audio IP Cores User Guide

CHANGED BY A First Release. ZHANG YAN FANG

Video and Image Processing Suite User Guide

SDI Audio IP Cores User Guide

Generates a selectable interrupt pulse at the entry and exit of the horizontal and vertical blanking intervals

EECS150 - Digital Design Lecture 13 - Project Description, Part 3 of? Project Overview

Lab #5: Design Example: Keypad Scanner and Encoder - Part 1 (120 pts)

Transcription:

Key Design Features Block Diagram Synthesizable, technology independent IP Core for FPGA, ASIC and SoC reset underflow Supplied as human readable VHDL (or Verilog) source code Simple FIFO input interface Programmable RGB channel width (8,10,12,14-bits etc.) *3 pixin (RGB) ASYNC FIFO pix vsync hsync val rdy FRAME SYNC LOGIC Highly versatile architecture supports direct connection to a wide range of video DACs and DVI/HDMI transceivers VSYNC,, CSYNC, DE and BLANKING outputs Fully programmable timing parameters Supports industry standard (VESA, CEA-861, ITU-R BT.656 etc.) and fully custom video modes (both progressive and interlaced formats) clk_a clk_b h_s, h_bp, h_fp, h_disp, v_s, v_bp, v_fp, v_disp, TIMING PARAMS *3 pix rdy VIDEO TIMING CONTROL vid_r vid_g vid_b vid_vsync_n vid_hsync_n vid_csync_n Future-proof design supports resolutions up to 2 16 x 2 16 pixels (8K video and above) vi_s, vi_bp, vi_fp, vi_disp, vi_frame vid_vblank vid_hblank vid_cblank Independent system and pixel clocks supporting frequencies of 400 MHz+ on basic FPGA platforms 1 vid en Compatible with all Zipcores video IP Cores intl start_field Applications Figure 1 Video timing generator architecture HD, UHD and SUHD next generation digital video Legacy (SD) and analogue video applications Computer monitors and flat-panel displays Digital TV and multimedia solutions Generic Parameters Generic name Description Type Valid Range Pixel width integer < 2 16 General Description The VID_TIMING_GEN IP Core is a fully configurable video timing generator with the ability to support any video resolution up to 2 16 x 2 16 pixels in size. The module is compatible with a wide range of video DACs, CODECs and transceivers and provides a flexible solution for displaying digital or analogue video on an external TV, monitor or flat panel display. The module is capable of clock speeds in excess of 400 MHz on some FPGA platforms, making it ideal for the latest generation HD and UHD video solutions. Input pixels and syncs are read on the rising edge of clk_a (the system clock) when and are both active. The input signal is coincident with the first active pixel in a frame and the signal is coincident with the first active pixel in a line. intl start_field Select progressive or Interlaced video Start generating interlaced video on an ODD or EVEN field boolean std_logic false = progressive video true = interlaced video 0 = start on odd field 1 = start on an even field (Note that these sync signals should not be confused with true video timing signals. Their purpose is to delineate the first pixel in a frame and the first pixel in a line only). After resynchronizing the input pixels to the pixel-clock domain (clk_b), the controller locks to the first frame (or field) of video. Once frame-lock is achieved, pixels are supplied on demand to the video timing control unit. This module generates the correct RGB video, sync and blanking information depending on the chosen timing parameters. 1 Xilinx 7-series used as a benchmark Copyright 2017 www.zipcores.com Download this VHDL Core Page 1 of 5

Pin-out Description Pin-out Description cont... Pin name I/O Description Active state clk_a in System clock rising edge clk_b in Pixel clock rising edge reset in Asynchronous reset low underflow out Indicates pixel underflow (synchronized to clk_b) h_s [150] in Horizontal sync pulse duration h_bp [150] in Horizontal back-porch duration h_fp [150] in Horizontal front-porch duration High h_disp [150] in Active pixels per line [150] in Duration of whole line v_s [150] in Vertical sync pulse v_bp [150] in Vertical back-porch v_fp [150] in Vertical front-porch v_disp [150] in Active lines per frame (or [150] in Duration of whole frame (or vi_s [150] in Vertical sync pulse 2 vi_bp [150] in Vertical back-porch vi_fp [150] in Vertical front-porch vi_disp [150] in Active lines per interlaced field #2 vi_frame [150] in Duration of whole interlaced field #2 Pin name I/O Description Active state pixin [*30] in RGB input pixel in Vertical sync pulse (coincident with first pixel of a frame or field) in Horizontal sync pulse (coincident with first pixel of a line) in Input pixel valid out Ready to accept input pixel (handshake signal) vid_r [ - 10] out Video out RED vid_g [ - 10] out Video out GREEN vid_b [ - 10] out Video out BLUE vid_vsync_n out Video VSYNC low vid_hsync_n out Video low vid_csync_n out Video CSYNC low vid_vblank out Video vertical BLANK vid_hblank out Video horizontal BLANK vid_cblank out Video composite BLANK vid en out Video DATA enable Programmable timing parameters The timing parameters determine the duration of the output video, syncs and blanking. They also determine the relative position of the active video signal between syncs. Timing parameters are specified as an integer number of pixels (or pixel clocks) for the horizontal timing. For the vertical timing parameters, values are specified as an integer number of lines. Note that the video timing generator also supports interlaced video formats. For interlaced formats then the generic parameter intl must be set to true. The generic parameter start_field determines whether the output video begins on field #1 or field #2. When operating in interlaced mode, then the user must specify the vertical timing information for both fields. Typically, the first field has fewer vertical blanking lines than the second field. When working with progressive video, then the user only needs to specify the vertical timing information for a complete frame. The interlaced timing parameters may be tied off to zero. All timing parameters are programmable. Whenever the timing parameters are changed during operation, it is advised to reset the module in order to prevent corruption of the video signal. The timing parameters must be specified correctly for the chosen video mode. Figures 2 and 3 on the following page shows this pictorially. 2 Vertical timing parameters for the interlaced field (vi_* etc.) are ignored and may be tied to zero when generating progressive video. Copyright 2017 www.zipcores.com Download this VHDL Core Page 2 of 5

By modifying the respective horizontal and vertical timing parameters, a diverse range of standard and fully-custom video modes may be displayed. h_fp h_s h_bp h_disp Standard video timing output signals h_fp h_s h_bp h_disp Horizontal front-porch Horizontal sync Horizontal back-porch Horizontal active display period Total number of pixels per line Figure 2 Horizontal timing parameters (N.B. all timing parameters as integer number of pixels) The output video timing signals are compatible with standard off-the-shelf video DACs, CODECs and transceivers. In addition to separate VSYNC and signals, the module also provides a Composite SYNC signal that is often used to provide sync information on the GREEN channel of the output video. As well as sync information, the module also provides a video enable (DE) signal and separate vertical, horizontal and composite blanking outputs. The enable is during active pixels. Conversely, the blanking enable(s) are when active video is not present. The enable signal is commonly used when interfacing to DVI and HDMI Transceivers in order to enable valid pixels into the device. VSYNC Pixel input/output rate considerations v_fp v_s v_bp v_disp During normal operation, it is important to ensure that the input pixel rate is sufficient to sustain the chosen video mode. If at any point, the video timing generator detects an internal buffer underflow, then the underflow flag is asserted. Once underflow has occurred, then subsequent pixels will be out of sync and the output display will become corrupted. v_fp v_s v_bp v_disp Veritcal front-porch Vertical sync Vertical back-porch Veritcal active display period Total number of lines per frame (N.B. All timing parameters as integer number of lines) The output may be reset by asserting the system reset signal for at least one clk_a cycle. This will result in a resynchronization of the video signal and the recovery of a clean video output display within a single frame period. Figure 3 Vertical timing parameters As an example, consider a standard XGA output (1024 x 768) with a screen refresh rate of 60 Hz and a pixel-clock frequency of 65 MHz. The following tables describe the horizontal and vertical timing settings according to the VESA specification. HORIZONTAL TIMING (XGA at 60Hz) Generic parameter Description Value h_fp Front-porch 24 h_s Sync pulse 136 h_bp Back-porch 160 h_disp Visible area 1024 Whole line 1344 VERTICAL TIMING (XGA at 60Hz) Generic parameter Description Value v_fp Front-porch 3 v_s Sync pulse 6 v_bp Back-porch 29 v_disp Visible area 768 Whole frame 806 Copyright 2017 www.zipcores.com Download this VHDL Core Page 3 of 5

Functional Timing Output video timing Input video timing RGB pixels are sampled at the module input according to the valid-ready pipeline protocol. Figure 4 shows the signalling at the input of the video signal generator at the start of a new frame. The first pixel of a new frame begins with pixout_vsync and pixout_hsync asserted together with the first pixel. Note that when is asserted low, then input pixels must be held-off, otherwise pixels with be lost and the output video will become out of sync 3. Figures 6 and 7 show the video timing waveforms for a complete frame and a complete line respectively. The position of the active video and the length and duration of the syncs is fully customizable depending on the generic parameter settings. DE FP = Front porch, BP = Back porch VSYNC FP BP Pipeline stall clk CSYNC pixin Pixel 0 Pixel 1 Pixel 2 Pixel 3 Pixel 4 (Timing waveforms not to scale) Figure 6 Output video timing (FRAME) First pixel of a new frame Note that for interlaced video formats, then the vertical timing parameters are different for each field. In this case, the output timing waveforms will be as per Figure 6, but with different FP, BP and SYNC timings for each field. Figure 4 First input pixel in a frame FP = Front porch, BP = Back porch For the first pixel in a new line (Figure 5) the signal pixout_hsync is asserted with pixout_vsync held low. Note that as well as a pipeline stall, Figure 5 also shows an invalid pixel condition. When is low, the input pixel and input syncs (if present) are ignored. DE FP BP CSYNC Invalid pixel Pipeline stall R/G/B ACTIVE ACTIVE PIXELS ACTIVE clk (Timing waveforms not to scale) pixin Pixel n Pixel 0 Pixel 1 Pixel 1 Pixel 2 Figure 7 Output video timing (LINE) Source File Description All source files are provided as text files coded in VHDL. The following table gives a brief description of each file. First pixel of a new line Figure 5 First input pixel of a line 3 Please refer to Zipcores application note app_note_zc001.pdf for a more detailed explanation of the valid-ready pipeline protocol. Source file video_file_reader.vhd vid_timing_fifo.vhd vid_timing_sof.vhd vid_timing_cont.vhd vid_timing_gen.vhd vid_timing_gen_bench.vhd Description Video source file reader Asynchronous pixel FIFO Start of frame sync module Video timing controller Top-level component Top-level test bench Copyright 2017 www.zipcores.com Download this VHDL Core Page 4 of 5

Functional Testing An example VHDL testbench is provided for use in a suitable VHDL simulator. The compilation order of the source code is as follows 1. video_file_reader.vhd 2. vid_timing_fifo.vhd 3. vid_timing_sof.vhd 4. vid_timing_cont.vhd 5. vid_timing_gen.vhd 6. vid_timing_bench.vhd The VHDL test bench instantiates the VID_TIMING_GEN component and the user may modify the generic timing parameters as required. In the example provided, the test is configured to give an industry standard VGA output display at 640x480 resolution and a 60Hz refresh rate. The simulation must be run for at least 100 ms during which time the output syncs and RGB output pixels are captured in the file video_out.txt. The output text file follows a simple format which defines the state of signals vid_vsync_n, vid_hsync_n, vid_r, vid_g and vid_b on a clock-byclock basis. The simulation output is shown in Figure 8. Fixing the timing parameters at the input will result in the most optimum design and will result in significant area savings. Trial synthesis results are shown below. The design was synthesized with generic parameter = 8, intl = true, start_field = 0. Resource usage is specified after Place and Route. XILINX 7-SERIES FPGAS Resource type Artix-7 Kintex-7 Virtex-7 Slice Register 319 319 320 Slice LUTs 456 444 448 Block RAM 0 0 0 DSP48 0 0 0 Occupied Slices 140 130 132 Clock freq. (approx) 300 MHz 350 MHz 400 MHz Revision History Revision Change description Date 1.0 Initial revision 14/12/2009 1.1 Revised the reset scheme. New enable signal. Added section on video signal output timing. 16/04/2011 1.2 Removed the resync_sof signal. Now using system reset instead. Updated synthesis results in line with new source code. 05/12/2011 1.3 Moved generic timing parameters to ports. Increased internal counters to 16-bit throughout. Updated synthesis results. 15/07/2014 1.4 Added support for interlaced video. Added new separate blanking signals. 27/02/2017 Figure 8 VGA simulation output showing regions of video blanking Synthesis The files required for synthesis and the design hierarchy is shown below vid_timing_gen.vhd vid_timing_cont.vhd vid_timing_fifo.vhd vid_timing_sof.vhd The VHDL core is designed to be technology independent. However, as a benchmark, synthesis results have been provided for the Xilinx 7-series FPGAs. Synthesis results for other FPGAs and technologies can be provided on request. Copyright 2017 www.zipcores.com Download this VHDL Core Page 5 of 5