Video Timing Controller
Video Timing Controller
Video Timing Controller
1
DS729 September 21, 2010 Product Specification
Introduction
The Xilinx Video Timing Controller LogiCORE IP is a general purpose video timing generator and detector. The input side of this core automatically detects horizontal and vertical synchronization pulses, polarity, blanking timing and active video pixels. While on the output, it generates the horizontal and vertical blanking and synchronization pulses used with a standard video system including support for programmable pulse polarity. The core is highly programmable through a comprehensive register set allowing control of various timing generation parameters. This programmability is coupled with a comprehensive set of interrupt bits which provides easy integration with the MicroBlaze Soft Processor for in-system control of the block in real-time. The Video Timing Controller is provided with a General Purpose Processor register interface.
Supported Device Family (1) Supported User Interfaces
Features
Support for video frame sizes up to 4096x4096 Direct regeneration of output timing signals with independent timing and polarity inversion Automatic detection and generation of horizontal and vertical video timing signals Support for multiple combinations of blanking or synchronization signals Automatic detection of input video control signal polarities Programmable output video signal polarities Generation of up to 16 additional independent output frame synchronization signals Selectable processor interface
Support
Provided by Xilinx, Inc.
1. For a complete listing of supported devices, see the release notes for this core.
High number of interrupts and status registers for easy system control and integration
Copyright 2009 - 2010 Xilinx, Inc. XILINX, the Xilinx logo, Artix, ISE, Kintex, Spartan, Virtex, and other designated brands included herein are trademarks of Xilinx in the United States and other countries. All other trademarks are the property of their respective owners.
www.xilinx.com
Applications
Video Surveillance Industrial Imaging Video Conferencing Machine Vision
Overview
All video systems require management of video timing signals, which are used to synchronize a variety of processes. The Video Timing Controller serves the function of both detecting and generating these timing signals. Figure 1 shows a typical video frame including timing signals. Note: All signals are shown with active high polarity.
X-Ref Target - Figure 1f
www.xilinx.com
A video frame can be completely described in terms of timing by only a few definitions. A video frame comprises active video and blanking periods. The vertical and horizontal synchronization signals describe the video frame timing, which includes active and blanking data. In addition, the frame synchronization signals can be used to synchronize video data from one processing block to another within a video system. There are additional signals that can also be used to control the video system, such as a signal to differentiate valid chroma samples. Video systems may utilize different combinations of blank, synchronization or active signals with various polarities to synchronize processing and control video data. The Video Timing Controller makes this process easy by providing a highly programmable and flexible core that allows detection and generation of the various timing signals within a video system.
Direction
Input
Description
SYNCHRONOUS CLEAR/RESET System synchronous reset (active high). Asserting sclr synchronously with video_clk_in resets the video timing controller internal state machines. sclr has priority over ce. CLOCK ENABLE Used to halt processing and hold current values.
ce
Input
Detector Interface
video_clk_in Input INPUT CLOCK Core clock (active high edge). Always present. INPUT HORIZONTAL SYNCHRONIZATION Used to set the det_hsync_start and the det_hbp_start registers. Polarity is auto-detected (see "DETECTION STATUS REGISTER"). Optional. Either horizontal blank or horizontal synchronization signal inputs must be present. Both do not have to be present. INPUT HORIZONTAL BLANK Used to set the det_hfp_start and the det_hactive_start registers. Polarity is auto-detected. Optional. Either horizontal blank or horizontal synchronization signal inputs must be present. Both do not have to be present. INPUT VERTICAL SYNCHRONIZATION Used to set the det_v0sync_start and the det_v0bp_start registers. Polarity is auto-detected (see "DETECTION STATUS REGISTER"). Optional. One of the following inputs must be present: active video, vertical blank or vertical synchronization.
hsync_in
Input
hblank_in
Input
vsync_in
Input
www.xilinx.com
Table 1: General Purpose Processor Port Descriptions (Contd) Name Direction Description
INPUT VERTICAL BLANK Used to set the det_v0fp_start and the det_v0active_start registers. Polarity is auto-detected (see "DETECTION STATUS REGISTER"). Optional. One of the following inputs must be present: active video, vertical blank or vertical synchronization. Reserved. INPUT ACTIVE VIDEO Used to set the det_v0fp_start and the det_v0active_start registers. Polarity is auto-detected (see "DETECTION STATUS REGISTER"). Optional. One of the following inputs must be present: active video, vertical blank or vertical synchronization. INPUT ACTIVE CHROMA Used to set the det_v0achroma_start register and bit 4 in the detection status register. Polarity is auto-detected (see "DETECTION STATUS REGISTER"). Optional.
vblank_in
Input
field_id_in
Input
active_video_in
Input
active_chroma_in
Input
Generator Interface
video_clk_out Output OUTPUT CLOCK Same as video_clk_in. OUTPUT HORIZONTAL SYNCHRONIZATION Generated horizontal synchronization signal. Polarity configured by the control register. Asserted active during the cycle set by the gen_hsync_start register and deasserted during the cycle set by the gen_hbp_start register. OUTPUT HORIZONTAL BLANK Generated horizontal blank signal. Polarity configured by the control register. Asserted active during the cycle set by the gen_hfp_start and deasserted during the cycle set by the gen_hactive_start register. OUTPUT VERTICAL SYNCHRONIZATION Generated vertical synchronization signal. Polarity configured by the control register. Asserted active during the line set by the gen_v0sync_start register and deasserted during the line set by the gen_v0bp_start register. OUTPUT VERTICAL BLANK Generated vertical blank signal. Polarity configured by the control register. Asserted active during the line set by the gen_v0fp_start register and deasserted during the line set by the gen_v0active_start register. Reserved. OUTPUT ACTIVE VIDEO Generated active video signal. Polarity configured by the control register. Active for non blanking lines. Asserted active during the cycle set by the gen_hactive_start register and deasserted during the cycle set by the gen_hbp_start register.
hsync_out
Output
hblank_out
Output
vsync_out
Output
vblank_out
Output
field_id_out
Output
active_video_out
Output
www.xilinx.com
Table 1: General Purpose Processor Port Descriptions (Contd) Name Direction Description
OUTPUT ACTIVE CHROMA Generated active chroma signal. Denotes which lines contain valid chroma samples (used for YUV 4:2:0). Polarity configured by the control register. Active for non blanking lines after the line set by the gen_v0achroma_start register (inclusive). For valid chroma lines, asserted active during every cycle the active_video_out signal is set per line.
active_chroma_out
Output
Output
control[31:0]
Input
www.xilinx.com
Description
Input
www.xilinx.com
Table 1: General Purpose Processor Port Descriptions (Contd) Name Direction Description
DETECTION STATUS REGISTER Bits 0-3: RESERVED Bit 4: Detected Active Chroma Skip. This is the number of lines skipped between each successive active chroma line. Low denotes no lines are skipped. Used for detecting YUV 4:2:2 or 4:4:4. High denotes every other line is skipped. Used for detecting YUV 4:2:0. Bits 5-19: RESERVED Detected Input Signal Polarities. Bits 20-26 denote the polarity of each input. High denotes active high polarity. Low denotes active low polarity. Bit 20: Horizontal Synchronization Input Polarity Bit 21: Horizontal Blank input Polarity Bit 22: Vertical Synchronization Input Polarity Bit 23: Vertical Blank Input Polarity Bit 24: Field ID Input Polarity Bit 25: Active Video Input Polarity Bit 26: Active Chroma Input Polarity Bits 27-31: RESERVED GENERATED HORIZONTAL TOTAL Total number of horizontal clock cycles (minus 1) per line including blanking and active cycles. This is the last pixel count on each line. Each line starts at count 0. Maximum allowable Horizontal Total is configured by the MAX CLOCKS PER LINE parameter. GENERATED HORIZONTAL FRONT PORCH START Cycle count during which the Horizontal Front Porch starts. Also denotes the end of Active Video. GENERATED HORIZONTAL SYNCHRONIZATION START Cycle count during which the Horizontal Synchronization starts. Also denotes the end of Horizontal Front Porch. GENERATED HORIZONTAL BACK PORCH START Cycle count during which the Horizontal Back Porch starts. Also denotes the end of Horizontal Synchronization. GENERATED HORIZONTAL ACTIVE VIDEO START Cycle count during which the Horizontal Active Video starts. Also denotes the end of Horizontal Back Porch. GENERATED VERTICAL TOTAL LINES Total number of Vertical lines per frame (minus 1) including blanking and active cycles. This is the last line count in each frame. Each frame starts at line count 0. Maximum allowable Vertical Total is configured by the MAX LINES PER FRAME parameter.
det_status[31:0]
Output
gen_htotal[Xb2-1:0]
Input
gen_hfp_start[Xb2-1:0]
Input
gen_hsync_start[Xb2-1:0]
Input
gen_hbp_start[Xb2-1:0]
Input
gen_hactive_start[Xb2-1:0]
Input
gen_v0total[Yb2-1:0]
Input
www.xilinx.com
Direction
Input
Description
GENERATED VERTICAL FRONT PORCH START Line count during which the Vertical Front Porch starts. Also denotes the end of Active Video. GENERATED VERTICAL SYNCHRONIZATION START Line count during which the Vertical Synchronization starts. Also denotes the end of Vertical Front Porch. GENERATED VERTICAL BACK PORCH START Line count during which the Vertical Back Porch starts. Also denotes the end of Vertical Synchronization. GENERATED VERTICAL ACTIVE VIDEO START Line count during which the Active Video starts. Also denotes the end of Vertical Back Porch. GENERATED ACTIVE CHROMA START Line count during which the Active Chroma starts. See bit 4 of the control register to configure for YUV 4:2:0 mode. DETECTED HORIZONTAL TOTAL Detected Total number of horizontal clock cycles per line including blanking and active cycles (minus 1). Maximum allowable horizontal Total is configured by the MAX CLOCKS PER LINE parameter. DETECTED HORIZONTAL FRONT PORCH START Detected cycle count during which the Input Horizontal Front Porch starts. Also denotes the end of Input Active Video. DETECTED HORIZONTAL SYNCHRONIZATION START Detected Cycle count during which the Input Horizontal Synchronization starts. Also denotes the end of Input Horizontal Front Porch. DETECTED HORIZONTAL BACK PORCH START Detected Cycle count during which the Input Horizontal Back Porch starts. Also denotes the end of Input Horizontal Synchronization. DETECTED HORIZONTAL ACTIVE VIDEO START Cycle count during which the Input Horizontal Active Video starts. Also denotes the end of Input Horizontal Back Porch. DETECTED VERTICAL TOTAL Total number of Input Vertical lines per frame including blanking and active cycles (minus 1). Maximum allowable Vertical Total is configured by the MAX LINES PER FRAME parameter. DETECTED VERTICAL FRONT PORCH START Line count during which the Input Vertical Front Porch starts. Also denotes the end of Input Active Video. DETECTED VERTICAL SYNCHRONIZATION START Line count during which the Input Vertical Synchronization starts. Also denotes the end of Input Vertical Front Porch.
gen_v0sync_start[Yb2-1:0]
Input
gen_v0bp_start[Yb2-1:0]
Input
gen_v0active_start[Yb2-1:0]
Input
gen_v0achroma_start [Yb2-1:0]
Input
det_htotal[Xb2-1:0]
Output
det_hfp_start[Xb2-1:0]
Output
det_hsync_start[Xb2-1:0]
Output
det_hbp_start[Xb2-1:0]
Output
det_hactive_start[Xb2-1:0]
Output
det_v0total[Yb2-1:0]
Output
det_v0fp_start[Yb2-1:0]
Output
det_v0sync_start[Yb2-1:0]
Output
www.xilinx.com
Direction
Output
Description
DETECTED VERTICAL BACK PORCH START Line count during which the Input Vertical Back Porch starts. Also denotes the end of Input Vertical Synchronization. DETECTED VERTICAL ACTIVE VIDEO START Line count during which the Input Vertical Active Video starts. Also denotes the end of Input Vertical Back Porch. DETECTED ACTIVE CHROMA START Line count during which the Input Active Chroma starts. FRAME SYNCHRONIZATION HORIZONTAL START REGISTER Bits Yb2-1 to 0: Horizontal Cycle during which Frame Synchronization 0 is active. Bits 2Xb2-1 to Xb2: Horizontal Cycle during which Frame Synchronization 1 is active. FRAME SYNCHRONIZATION VERTICAL START REGISTER Bits Yb2-1 to 0: Vertical line during which Frame Synchronization 0 is active. Bits 2Yb2-1 to Yb2: Vertical line during which Frame Synchronization 1 is active.
Output
Output
Input
Input
Note: Frame Syncs are not active during the complete line, only in
the cycle during which both the fsync_vstart and fsync_hstart are valid each frame.
www.xilinx.com
Table 1: General Purpose Processor Port Descriptions (Contd) Name Direction Description
INTERRUPT STATUS REGISTER Bit 0: Horizontal Synchronization Lock Status. When the lock polarity is low (see "CONTROL REGISTER", bit 3), set high when the horizontal synchronization timing has changed, signifying a signal lock has been lost. When the lock polarity is high, set high when the horizontal synchronization timing remains unchanged, signifying a signal lock. Bit 1: Horizontal Blank Lock Status. Set high when the horizontal blank timing has changed and the lock polarity is low. Set high when the horizontal blank timing remains unchanged and the lock polarity is high. Bit 2: Vertical Synchronization Lock Status. Set high when the vertical synchronization timing has changed and the lock polarity is low. Set high when the vertical synchronization timing remains unchanged and the lock polarity is high. Bit 3: Vertical Blank Lock Status. Set high when the vertical blank timing has changed and the lock polarity is low. Set high when the vertical blank timing remains unchanged and the lock polarity is high. Bit 4: Reserved. Bit 5: Active Video Lock Status. Set high when the active video timing has changed and the lock polarity is low. Set high when the active video timing remains unchanged and the lock polarity is high. intr_status[31:0] Output Bit 6: Active Chroma Lock Status. Set high when the active chroma timing has changed and the lock polarity is low. Set high when the active chroma timing remains unchanged and the lock polarity is high. Bit 7: All Lock Status. Set high when bits 0-6 of the interrupt status register are high. When the lock polarity is high, a high on bit 7 indicates that all signals have been locked. When the lock polarity is low, a high on bit 7 indicates that all signal timing have changed. Bit 8: Detected Vertical Blank Interrupt Status. Set high during the first cycle the input vertical blank is asserted active after lock. Bit 9: Detected Active Video Interrupt. Set high during the first cycle the input active video is asserted active after lock. Bits 11-10: Reserved. Bit 12: Generated Vertical Blank Interrupt Status. Set high during the first cycle the output vertical blank is asserted. Bit 13: Generated Active Video Interrupt. Set high during the first cycle the output active video is asserted. Bits 15-14: Reserved. Bits 31-16: Frame Synchronization Interrupt Status. Bits 31-16 are set high when frame syncs 15-0 are set respectively.
10
www.xilinx.com
Table 1: General Purpose Processor Port Descriptions (Contd) Name Direction Description
INTERRUPT ENABLE REGISTER Same bit definitions as in the interrupt status register. Setting a bit high in the interrupt enable register enables the corresponding interrupt. Bits that are low mask the corresponding interrupt from triggering a host interrupt. INTERRUPT CLEAR REGISTER Same bit definitions as in the interrupt status register. Setting a bit high in the interrupt clear register clears the corresponding bit in the interrupt status register. Bits in the interrupt status register are cleared only on the rising edge of the corresponding bits in the interrupt clear register. Therefore, each bit in the interrupt clear register must be driven low before being driven high to clear the status register bits. HOST INTERRUPT Active high host interrupt output. This output is set active high when an interrupt occurs (an enabled bit in the status register is high) and cleared to low when all enabled status bits in the intr_status register have been cleared by writing to the intr_clr register.
intr_enable[31:0]
Input
intr_clr[31:0]
Input
intr_out
Output
Notes:
1. 2. Xb2 is the log2(Max Clocks per Line) GUI parameter. Yb2 is the log2(Max Lines per Frame) GUI parameter. All registers are little-endian.
The pCore should be copied to the user's <EDK_Project>/pcores directory or to a user pCores repository.
www.xilinx.com
11
Direction
Input
Description
CLOCK ENABLE Used to halt processing and hold current values.
Detector Interface
video_clk_in Input INPUT CLOCK Core clock (active high edge). Always present. INPUT HORIZONTAL SYNCHRONIZATION Used to set the det_hsync_start and the det_hbp_start registers. Polarity is auto-detected (see "DETECTION STATUS REGISTER"). Optional. Either horizontal blank or horizontal synchronization signal inputs must be present. Both do not have to be present. INPUT HORIZONTAL BLANK Used to set the det_hfp_start and the det_hactive_start registers. Polarity is auto-detected. Optional. Either horizontal blank or horizontal synchronization signal inputs must be present. Both do not have to be present. INPUT VERTICAL SYNCHRONIZATION Used to set the det_v0sync_start and the det_v0bp_start registers. Polarity is auto-detected (see "DETECTION STATUS REGISTER"). Optional. One of the following inputs must be present: active video, vertical blank or vertical synchronization. INPUT VERTICAL BLANK Used to set the det_v0fp_start and the det_v0active_start registers. Polarity is auto-detected (see "DETECTION STATUS REGISTER"). Optional. One of the following inputs must be present: active video, vertical blank or vertical synchronization. Reserved. INPUT ACTIVE VIDEO Used to set the det_v0fp_start and the det_v0active_start registers. Polarity is auto-detected (see "DETECTION STATUS REGISTER"). Optional. One of the following inputs must be present: active video, vertical blank or vertical synchronization. INPUT ACTIVE CHROMA Used to set the det_v0achroma_start register and bit 4 in the detection status register. Polarity is auto-detected (see "DETECTION STATUS REGISTER"). Optional.
timebase_hsync_i
Input
timebase_hblank_i
Input
timebase_vsync_i
Input
timebase_vblank_i
Input
timebase_field_id_i
Input
timebase_active_video_i
Input
timebase_active_chroma_i
Input
12
www.xilinx.com
Table 2: EDK pCore Port Descriptions (Contd) Name Direction Generator Interface
timebase_video_clk_o Output OUTPUT CLOCK Same as video_clk_in. OUTPUT HORIZONTAL SYNCHRONIZATION Generated horizontal synchronization signal. Polarity configured by the control register. Asserted active during the cycle set by the gen_hsync_start register and deasserted during the cycle set by the gen_hbp_start register. OUTPUT HORIZONTAL BLANK Generated horizontal blank signal. Polarity configured by the control register. Asserted active during the cycle set by the gen_hfp_start and deasserted during the cycle set by the gen_hactive_start register. OUTPUT VERTICAL SYNCHRONIZATION Generated vertical synchronization signal. Polarity configured by the control register. Asserted active during the line set by the gen_v0sync_start register and deasserted during the line set by the gen_v0bp_start register. OUTPUT VERTICAL BLANK Generated vertical blank signal. Polarity configured by the control register. Asserted active during the line set by the gen_v0fp_start register and deasserted during the line set by the gen_v0active_start register. Reserved. OUTPUT ACTIVE VIDEO Generated active video signal. Polarity configured by the control register. Active for non blanking lines. Asserted active during the cycle set by the gen_hactive_start register and deasserted during the cycle set by the gen_hbp_start register. OUTPUT ACTIVE CHROMA Generated active chroma signal. Denotes which lines contain valid chroma samples (used for YUV 4:2:0). Polarity configured by the control register. Active for non blanking lines after the line set by the gen_v0achroma_start register (inclusive). For valid chroma lines, asserted active during every cycle the active_video_out signal is set per line.
Description
timebase_hsync_o
Output
timebase_hblank_o
Output
timebase_vsync_o
Output
timebase_vblank_o
Output
timebase_field_id_o
Output
timebase_active_video_o
Output
timebase_active_chroma_o
Output
Output
www.xilinx.com
13
Direction
Input Input Input Input Input Input Input Input Input Input Input Input Input Input Input Input Input Input Input Input Input Input Input Input Input Output Output Output Output Output Output Output Output Output Output Output Output
Description
Slave PLB Clock Slave PLB Reset PLB address bus PLB primary address valid indicator PLB current master identifier PLB abort bus request indicator PLB read not write PLB byte enables PLB master data bus size PLB transfer size PLB transfer type PLB write data bus PLB burst write transfer indicator PLB burst read transfer indicator PLB Secondary address valid PLB Upper address bus PLB Bus Lock PLB Lock Error PLB Attribute PLB Read Primary PLB Write Primary PLB Read Pending on Primary PLB Write Pending on Primary PLB Read Pending Request PLB Write Pending Request Slave address acknowledge Slave data bus size Slave wait indicator Slave rearbitrate bus indicator Slave write data acknowledge Slave write transfer complete indicator Slave terminate write burst transfer Slave read data bus Slave read word address Slave read data acknowledge Slave read transfer complete indicator Slave terminate read burst transfer
14
www.xilinx.com
Direction
Output Output Output Output Output
Description
Slave busy indicator Slave read error indicator Slave write error indicator Slave Interrupt Interrupt signal
Name
Control Generator Horizontal 0 Generator Horizontal 1 Generator Horizontal 2 Generator Vertical 0 Generator Vertical 1 Generator Vertical 2 Reserved Reserved Reserved Detector Status Detector Horizontal 0 Detector Horizontal 1 Detector Horizontal 2 Detector Vertical 0 Detector Vertical 1 Detector Vertical 2 Reserved Reserved Reserved
Read/Write
R/W R/W R/W R/W R/W R/W R/W R R R R R R R -
Description
General control register Horizontal total and front porch Horizontal sync and back porch Horizontal Active Video Vertical total and front porch Vertical sync and back porch Vertical Active Video and Active Chroma Reserved Reserved Reserved Detector polarities and chroma format status Horizontal total and front porch (detected) Horizontal sync and back porch (detected) Horizontal Active Video (detected) Vertical total and front porch (detected) Vertical sync and back porch (detected) Vertical Active Video and Active Chroma (detected) Reserved Reserved Reserved Horizontal start clock and vertical start line of Frame Sync 0 - 15 Reserved
Reserved
Version Registers
www.xilinx.com
15
Note: The registers of the EDK pCore Interface are big-endian. The registers of the General Purpose Processor
Interface are little-endian.
R/W
Description
Reserved Active Chroma Output Polarity Active Video Output Polarity Field ID Output Polarity Vertical Blank Output Polarity
Gen_achroma_skip
Reserved
16
www.xilinx.com
Det_en
Gen_en
1. Bits 20-26 configure the polarity of each output. High denotes active high polarity. Low denotes active low polarity. 2. Bits 8-18 select which register controls the generator outputs. Low denotes the detection register will be used. High denotes that the generation register will be used. These bits allow the video timing controller detector to control the generator outputs (when low) or allow the host processor to override each value independently (when high).
R/W
Description
Reserved GENERATED HORIZONTAL FRONT PORCH START Cycle count during which the Horizontal Front Porch starts. Also denotes the end of Active Video. Reserved GENERATED HORIZONTAL TOTAL Total number of horizontal clock cycles (minus 1) per line including blanking and active cycles. This is the last pixel count on each line. Each line starts at count 0. Maximum allowable Horizontal Total is configured by the MAX CLOCKS PER LINE parameter.
HTotal
0:11
R/W
Description
Reserved GENERATED HORIZONTAL BACK PORCH START Cycle count during which the Horizontal Back Porch starts. Also denotes the end of Horizontal Synchronization. Reserved GENERATED HORIZONTAL SYNCHRONIZATION START Cycle count during which the Horizontal Synchronization starts. Also denotes the end of Horizontal Front Porch.
www.xilinx.com
17
R/W
Description
Reserved GENERATED HORIZONTAL ACTIVE VIDEO START Cycle count during which the Horizontal Active Video starts. Also denotes the end of Horizontal Back Porch.
R/W
Description
Reserved GENERATED VERTICAL FRONT PORCH START Line count during which the Vertical Front Porch starts. Also denotes the end of Active Video. Reserved GENERATED VERTICAL TOTAL LINES Total number of Vertical lines per frame (minus 1) including blanking and active cycles. This is the last line count in each frame. Each frame starts at line count 0. Maximum allowable Vertical Total is configured by the MAX LINES PER FRAME parameter.
V0Total
0:11
Table 10: Generator Vertical 1 Register (Address Offset 0x0014) 0x0014 Name
Reserved V0BP_start Reserved V0Sync_start
R/W
Description
Reserved GENERATED VERTICAL BACK PORCH START Line count during which the Vertical Back Porch starts. Also denotes the end of Vertical Synchronization. Reserved GENERATED VERTICAL SYNCHRONIZATION START Line count during which the Vertical Synchronization starts. Also denotes the end of Vertical Front Porch.
18
www.xilinx.com
Table 11: Generator Vertical 2 Register (Address Offset 0x0018) 0x0018 Name
Reserved V0chroma_start Reserved V0active_start
R/W
Description
Reserved GENERATED ACTIVE CHROMA START Line count during which the Active Chroma starts. See bit 4 of the control register to configure for YUV 4:2:0 mode. Reserved GENERATED VERTICAL ACTIVE VIDEO START Line count during which the Active Video starts. Also denotes the end of Vertical Back Porch.
Table 12: Detector Status Register (Address Offset 0x0028) 0x0028 Name
Reserved Active_Chroma_pol Active_Video_pol Field_id_pol Vblank_pol Vsync_pol Hblank_pol Hsync_pol Reserved
Description
Reserved Active Chroma Input Polarity Active Video Input Polarity Field ID Input Polarity Vertical Blank Input Polarity Vertical Synchronization Input Polarity Horizontal Blank Input Polarity Horizontal Synchronization Input Polarity Reserved Detected Active Chroma Skip. This is the number of lines skipped between each successive active chroma line. Low denotes no lines are skipped. Used for detecting YUV 4:2:2 or 4:4:4. High denotes every other line is skipped. Used for detecting YUV 4:2:0. Reserved
Det_achroma_skip
Reserved
0:3
Note: Bits 20-26 denote the polarity of each input. High denotes active high polarity. Low denotes active low
polarity.
www.xilinx.com
19
Table 13: Detector Horizontal 0 Register (Address Offset 0x002C) 0x002C Name
Reserved HFP_start Reserved
Description
Reserved DETECTED HORIZONTAL FRONT PORCH START Detected cycle count during which the Input Horizontal Front Porch starts. Also denotes the end of Input Active Video. Reserved DETECTED HORIZONTAL TOTAL Detected Total number of horizontal clock cycles per line including blanking and active cycles (minus 1). Maximum allowable horizontal Total is configured by the MAX CLOCKS PER LINE parameter.
HTotal
0:11
Table 14: Detector Horizontal 1 Register (Address Offset 0x0030) 0x0030 Name
Reserved HBP_start Reserved
Description
Reserved DETECTED HORIZONTAL BACK PORCH START Detected Cycle count during which the Input Horizontal Back Porch starts. Also denotes the end of Input Horizontal Synchronization. Reserved DETECTED HORIZONTAL SYNCHRONIZATION START Detected Cycle count during which the Input Horizontal Synchronization starts. Also denotes the end of Input Horizontal Front Porch.
HSync_start
0:11
Table 15: Detector Horizontal 2 Register (Address Offset 0x0034) 0x0034 Name
Reserved HActive_start
Description
Reserved DETECTED HORIZONTAL ACTIVE VIDEO START Cycle count during which the Input Horizontal Active Video starts. Also denotes the end of Input Horizontal Back Porch.
20
www.xilinx.com
Table 16: Detector Vertical 0 Register (Address Offset 0x0038) 0x0038 Name
Reserved V0FP_start Reserved
Description
Reserved DETECTED VERTICAL FRONT PORCH START Line count during which the Input Vertical Front Porch starts. Also denotes the end of Input Active Video. Reserved DETECTED VERTICAL TOTAL Total number of Input Vertical lines per frame including blanking and active cycles (minus 1). Maximum allowable Vertical Total is configured by the MAX LINES PER FRAME parameter.
V0Total
0:11
Table 17: Detector Vertical 1 Register (Address Offset 0x003C) 0x003C Name
Reserved V0BP_start Reserved V0Sync_start
Description
Reserved DETECTED VERTICAL BACK PORCH START Line count during which the Input Vertical Back Porch starts. Also denotes the end of Input Vertical Synchronization Reserved DETECTED VERTICAL SYNCHRONIZATION START Line count during which the Input Vertical Synchronization starts. Also denotes the end of Input Vertical Front Porch.
Table 18: Detector Vertical 2 Register (Address Offset 0x0040) 0x0040 Name
Reserved V0chroma_start Reserved V0active_start
Description
Reserved DETECTED ACTIVE CHROMA START Line count during which the Input Active Chroma starts. Reserved DETECTED VERTICAL ACTIVE VIDEO START Line count during which the Input Vertical Active Video starts. Also denotes the end of Input Vertical Back Porch.
www.xilinx.com
21
Table 19: Frame Sync 0 Register (Address Offset 0x0050) 0x0050 Name
Reserved
R/W
Description
Reserved FRAME SYNCHRONIZATION VERTICAL START REGISTER Vertical line during which Frame Synchronization 0 is active. Note: Frame Syncs are not active during the complete line, only in the cycle during which both the fsync_vstart and fsync_hstart are valid each frame. Reserved FRAME SYNCHRONIZATION HORIZONTAL START REGISTER Horizontal Cycle during which Frame Synchronization 0 is active.
V_start
16:27
Reserved H_start
12:15 0:11
Note: Frame Sync 1-15 Registers (address offset 0x54 - 0x8c) have the same format as the Frame Sync 0
Register.
Description
Major Version Number. Set to 0x2. Minor Version Number. Set to 0x01. Revision Number. Set to 0XA. Reserved
Table 21: Software Reset Register (Address Offset 0x0100) 0x0100 Name
Soft_Reset_Value
R/W
Description
Soft Reset to reset the registers and IP Core, data Value provided by the EDK create peripheral utility. (0xa000_0000)
Table 22: Global Interrupt Enable Register (Address Offset 0x021c) 0x00F0 Name
GIER Reserved
R/W
Description
Global Interrupt Enable. Writing a 1 to this bit will enable all interrupts. Set to 0 (all interrupts disabled) by default. Reserved
22
www.xilinx.com
Table 23: ISR (Interrupt Status/Clear) Register (Address Offset 0x0220) 0x0220 Name
Fsync Reserved Gen_active_video Gen_blank Reserved Det_active_video Det_vblank
R/W
Description
Frame Synchronization Interrupt Status. Bits 16-31 are set high when frame syncs 0-15 are set respectively. Reserved Generated Active Video Interrupt. Set high during the first cycle the output active video is asserted. Generated Vertical Blank Interrupt Status. Set high during the first cycle the output vertical blank is asserted. Reserved Detected Active Video Interrupt. Set high during the first cycle the input active video is asserted active after lock. Detected Vertical Blank Interrupt Status. Set high during the first cycle the input vertical blank is asserted active after lock. All Lock Status. Set High when bits 0-6 are high, signifying that all enabled detection signals have locked. Signals that have detection disabled will not affect this bit. Active Chroma Lock Status. Set high when the active chroma timing has changed and the lock polarity is low. Set high when the active chroma timing remains unchanged and the lock polarity is high. Active Video Lock Status. Set high when the active video timing has changed and the lock polarity is low. Set high when the active video timing remains unchanged and the lock polarity is high. Reserved Vertical Blank Lock Status. Set high when the vertical blank timing has changed and the lock polarity is low. Set high when the vertical blank timing remains unchanged and the lock polarity is high. Vertical Synchronization Lock Status. Set high when the vertical synchronization timing has changed and the lock polarity is low. Set high when the vertical synchronization timing remains unchanged and the lock polarity is high. Horizontal Blank Lock Status. Set high when the horizontal blank timing has changed and the lock polarity is low. Set high when the horizontal blank timing remains unchanged and the lock polarity is high. Horizontal Synchronization Lock Status. When the lock polarity is low (see "CONTROL REGISTER", bit 3), set high when the horizontal synchronization timing has changed, signifying a signal lock has been lost. When the lock polarity is high, set high when the horizontal synchronization timing remains unchanged, signifying a signal lock.
All_lock
Active_chroma_lock
5 4 3
Vsync_lock
Hblank_lock
Hsync_lock
Note: Setting a bit high in the ISR will clear the corresponding interrupt.
www.xilinx.com
23
Table 24: IER (Interrupt Enable) Register (Address Offset 0x0228) 0x0228 Name
Fsync Reserved Gen_active_video Gen_blank Reserved Det_active_video Det_vblank All_lock Active_chroma_lock Active_video_lock Reserved Vblank_lock Vsync_lock Hblank_lock Hsync_lock
R/W
Description
Frame Synchronization Interrupt Enable. Reserved Generated Active Video Interrupt Enable. Generated Vertical Blank Interrupt Enable. Reserved Detected Active Video Interrupt Enable. Detected Vertical Blank Interrupt Enable. All Lock Enable. Active Chroma Lock Enable. Active Video Lock Enable. Reserved Vertical Blank Lock Enable. Vertical Synchronization Lock Enable. Horizontal Blank Lock Enable. Horizontal Synchronization Lock Enable.
Note: Setting a bit high in the interrupt enable register enables the corresponding interrupt. Bits that are low mask
the corresponding interrupt from triggering a host interrupt.
24
www.xilinx.com
Table 25 lists the files that are included with the Xilinx Video Timing Controller pCore driver and their description. Table 25: Device Driver Source Files File Name
xtimebase.h xtimebase.c xtimebase_intr.c xtimebase_sinit.c xtimebase_g.c
Description
Contains all prototypes of high-level API to access all of the features of the Xilinx Video Timing Controller devices. Contains the implementation of high-level API to access all of the features of the Xilinx Video Timing Controller devices except interrupts. Contains the implementation of high-level API to access interrupt feature of the Xilinx Video Timing Controller devices. Contains static initialization methods for the Xilinx Video Timing Controller device driver. Contains a template for a configuration table of Xilinx Video Timing Controller devices. This file is used by the high-level API and will be automatically generated to match the Video Timing Controller device configurations by Xilinx EDK/SDK tools when the software project is built. Contains low-level API (that is, register offset/bit definition and register-level driver API) that can be used to access the Xilinx Video Timing Controller devices. An example that demonstrates how to control the Xilinx Video Timing Controller devices using the high-level API.
xtimebase_hw.h example.c
Xilinx CORE Generator software will place all EDK pCore driver files in the drivers subdirectory located in the core output directory. The core output directory is given the same name as the component. For example, if the component name is set to v_timebase_v2_1_u0, then the device driver source files will be located in the following directory:
<coregen project directory>/v_timebase_v2_1_u0/drivers/timebase_v1_01_a/
The driver software should be copied to the user's <EDK_Project>/drivers directory or to a user pCores repository.
www.xilinx.com
25
Figure 2: Video Timing Controller Graphical User Interface The GUI displays a representation of the IP symbol on the left side and the parameter assignments on the right side, described as follows: Component Name: The component name is used as the base name of output files generated for the module. Names must begin with a letter and must be composed from characters: a to z, 0 to 9 and _. Note: The name v_timebase_v2_1 is not allowed. Interface Selection: The Video Timing Controller is generated with one of two interfaces
EDK pCore Interface: The CORE Generator tool will generate the Video Timing Controller as a pCore which can be easily imported into an EDK project as a hardware peripheral. The core registers can then be programmed in real-time via the MicroBlaze processor. See the "EDK pCore (PLB) Interface" section. General Purpose Processor Interface: The CORE Generator tool will generate a set of ports that can be used to program the Video Timing Controller. See the "General Purpose Processor Interface" section.
Maximum Clocks per Line: This parameter sets the maximum number of clock cycles per video line that the Video Timing Controller can generate or detect. Values of 128, 256, 512, 1024, 2048 and 4096 are valid.
26
www.xilinx.com
Maximum Lines per Frame: This parameter sets the maximum number of lines per video frame that the Video Timing Controller can generate or detect. Values of 128, 256, 512, 1024, 2048 and 4096 are valid. Frame Syncs: This parameter sets the number of frame synchronization outputs to generate and supports up to 16 independent outputs. Enable Generation: This parameter enables or disables the video timing outputs. Auto Mode Generation: When enabled, this parameter will cause the generated video timing outputs to change based on the detected inputs. If this parameter is disabled, the video timing outputs will be generated based on only the first detected input format. The output for the generated synchronization signals will continue even if the detection block loses lock. This parameter is available only if both the Enable Generation and Enable Detection parameters are enabled. Note: This parameter has an effect only if one or more of the source select control register bits are set to low. Horizontal Blank Generation: This parameter enables or disables generating the horizontal blank output. Horizontal Sync Generation: This parameter enables or disables generating the horizontal synchronization output. Vertical Blank Generation: This parameter enables or disables generating the vertical blank output. Vertical Sync Generation: This parameter enables or disables generating the vertical synchronization output. Active Video Generation: This parameter enables or disables generating the active video output. Active Chroma Generation: This parameter enables or disables generating the active chroma output. Enable Detection: This parameter enables or disables the detecting the timing of the video inputs. Horizontal Blank Detection: This parameter enables or disables detecting the horizontal blank input. Horizontal Sync Detection: This parameter enables or disables detecting the horizontal synchronization input. Vertical Blank Detection: This parameter enables or disables detecting the vertical blank input. Vertical Sync Detection: This parameter enables or disables detecting the vertical synchronization input. Active Video Detection: This parameter enables or disables detecting the active video input. Active Chroma Detection: This parameter enables or disables detecting the active chroma input.
www.xilinx.com
27
Basic Architecture
The Video Timing Controller core contains three modules: the video timing detector, the video timing generator and the interrupt controller. See Figure 3. Either the detector or the generator module can be disabled with the CORE Generator GUI to save resources.
X-Ref Target - Figure 3
28
www.xilinx.com
Figure 4: Example Video Frame and Timing Signals with Front and Back Porch
www.xilinx.com
29
The polarity of each output signal can be set by bits 26-20 of the Control Register. High denotes active high polarity, and low denotes active low polarity. Bit 4 of the Control Register also sets the number of lines skipped between each active chroma line. High denotes that every other line is skipped (4:2:0), and low denotes that no lines are skipped (4:4:4 or 4:2:2). The Video Timing Controller has 11 little-endian input control busses to set the timing of the output signals. Each bus has a corresponding bit in the Control Register (bits 18-8) called Source Selects to select the internal detection bus or the external input generation bus. These bits allow the detected timing (if enabled) to control the generated outputs or allow the host processor to override each value independently via the generation input control busses (see "CONTROL REGISTER" in Table 1). Horizontal Generation Control busses have a width of log2(Max Clocks per Line). Vertical Generation Control busses have a width of log2(Max Lines per Frame). Table 26 through Table 31 show example settings of the input control busses and the resultant video timing output signals. Programming the horizontal generation registers to the values shown in Table 26 will result in the video timing signal outputs shown in Figure 5. Notice that in Table 26 the Control Register bit 0 is set to enable generation, that all source selects are set to 1 to select the Generation Registers and that the polarity bits are all set to 1 to configure the outputs for active high polarity. (See "CONTROL REGISTER" in Table 1 for a description of this register). Table 26: Example Horizontal Generation Register Inputs Generation Register Input
gen_htotal gen_hfp_start gen_hsync_start gen_hbp_start gen_hactive_start control
Value
0x006 0x000 0x001 0x002 0x004 0x07f7_ff05
Figure 5: Generated Horizontal Timing Note: All signals are shown active high. The polarities of the output signals can be changed at any time in the
control register.
30
www.xilinx.com
Next, an example vertical generation configuration is given. Programming the vertical generation registers to the values shown in Table 27 will result in the video timing signal outputs shown in Figure 6. Notice that in Table 27 the Control Register bit 4 is set to 0 to configure the number of lines skipped between each active chroma line to be 0. This configures the Active Chroma output signal for 4:4:4 or 4:2:2 mode in which every line contains valid chroma samples. (See "CONTROL REGISTER" in Table 1 for a description of this register.) Table 27: Example Vertical Generation Register Inputs Generation Register Input
gen_v0total gen_v0fp_start gen_v0sync_start gen_v0bp_start gen_v0active_start gen_v0achroma_start control
Value
0x006 0x000 0x001 0x002 0x003 0x003 0x07f7_ff05
www.xilinx.com
31
Next is a vertical generation example similar to the previous except that the Active Chroma output is configured to for YUV 4:2:0. Programming the vertical generation registers to the values shown in Table 28 will result in the video timing signal outputs shown in Figure 7. Notice that in Table 28 the Control Register bit 4 is set to 1 to configure the number of lines skipped between each active chroma line to be one line. This configures the Active Chroma output signal for 4:2:0 mode in which only every other line contains valid chroma samples. (See "CONTROL REGISTER" in Table 1 for a description of this register.) Table 28: Example Vertical Generation Register Inputs (4:2:0 Chroma) Generation Register Input
gen_v0total gen_v0fp_start gen_v0sync_start gen_v0bp_start gen_v0active_start gen_v0achroma_start control
Value
0x006 0x000 0x001 0x002 0x003 0x003 0x07f7_ff15
32
www.xilinx.com
Next is a vertical generation example similar to the previous except that the Active Chroma output is configured to be active for odd lines instead of even lines. Programming the vertical generation registers to the values shown in Table 29 will result in the video timing signal outputs shown in Figure 8. Notice that the Generated Active Chroma Start Register is set to 4 instead of 3, as in the previous example. This configures the Active Chroma output signal for 4:2:0 mode, but with the opposite line set.
.
Table 29: Example Vertical Generation Register Inputs (Alternate 4:2:0 Chroma) Generation Register Input
gen_v0total gen_v0fp_start gen_v0sync_start gen_v0bp_start gen_v0active_start gen_v0achroma_start control
Value
0x006 0x000 0x001 0x002 0x003 0x004 0x07f7_ff15
www.xilinx.com
33
The next example shows how the Video Timing Controller can be configured to regenerate timing signals to selectively override individual characteristics. Table 30 shows the detection output register output signals. Programming the horizontal generation registers to the values shown in Table 31 will result in the video timing signal outputs shown in Figure 9. Table 30: Example Horizontal Detection Register Outputs Detection Register Output
det_htotal det_hfp_start det_hsync_start det_hbp_start det_hactive_start det_status
Value
0x006 0x000 0x001 0x002 0x004 0x07f0_000
Notice that all polarities bits are high in the Detection Status Register, signifying that all inputs are detected to have an active high polarity. Table 31: Example Horizontal Generation Register Inputs Generation Register Input
gen_hfp_start gen_hactive_start control
Value
0x006 0x005 0x07e0_1207
Notice, in the Control Register, that bit 0 is set to enable generation, bit 1 is set to enable detection and bit 2 is set to enable synchronizing the generated output to the detected inputs. The Horizontal Front Porch Start Register Source Select (bit 9 of the Control Register) is set to 1 and the Horizontal Active Video Start Register Source Select (bit 12 of the Control Register) is set to 1. This signifies that the gen_hfp_start and the gen_hactive_start registers will be used instead of the det_hfp_start and the det_hactive_start registers since these values are being overridden. All other source selects are low, signifying that the detection register should be used. Also notice that the polarity of the output horizontal synchronization has been changed to active low by clearing bit 20 of the Control Register.
X-Ref Target - Figure 9
Figure 9: Detected and Regenerated Horizontal Timing Note: All generated outputs remain synchronized to the inputs. The only changes made to the output are to the
horizontal synchronization polarity and to the active video start and stop times.
34
www.xilinx.com
Synchronization
Generation of the video timing output signals can be synchronized to the detected video timing input signals or generated independently. Synchronization of the output to the input allows the developer to override each individual timing signal with different settings such as signal polarity or start time. For example, the active video signal could be regenerated shifted one cycle earlier or later. This provides a flexible method for regenerating video timing output signals with different settings while remaining synchronized to the input timing. The Video Timing Controller also has a GUI parameter, called Auto Mode Generation, to control the behavior of the generated outputs based on the detected inputs. When the Auto Mode Generation parameter is set, the generated video timing outputs will change based on the detected inputs. If this parameter is not set, then the video timing outputs will be generated based on only the first detected input format. (If the detector loses lock, the generated outputs will continue to be generated.) To change output timing while Auto Mode Generation is set, timing detection must first be disabled by clearing bit 1 in the Control Register and then re-enabling, if any of the Source Select bits are low.
Frame Syncs
The Video Timing Controller has a frame synchronization output bus. Each bit can be configured to toggle high for any one clock cycle during each video frame. Each bit is independently configured for horizontal and vertical clock cycle position with the fsync_hstart and fsync_vstart registers. Table 32 shows which bits in the fsync_hstart and fsync_vstart registers control which frame synchronization output. Table 32: Frame Synchronization Control Registers Frame Synchronization Output
fsync[0] fsync[1] fsync[2] fsync[3] fsync[4] fsync[5] fsync[6] fsync[7] fsync[8] fsync[9] fsync[10] fsync[11] fsync[12] fsync[13] fsync[14] fsync[15] Notes:
1. 2. x is the Max Clocks per Line GUI parameter. y is the Max Lines per Frame GUI parameter. The width of the frame synchronization bus is configured with the Frame Syncs GUI parameter. Frame syncs can be used for various control applications including controlling the timing of processing of external modules.
www.xilinx.com
35
Use Model
This section illustrates a likely usage scenario for the Xilinx Video Timing Controller core.
X-Ref Target - Figure 10
Figure 10: Example Video Timing Controller Use Model Figure 10 shows four features of the Video Timing Controller being utilized in a video system: 1. 2. 3. 4. Detection of the source video frame timing Generation of video timing signals Generation of two Frame Syncs to control the Video Processors Connection to a Host Processor via the General Purpose Processor Interface
36
www.xilinx.com
To detect the timing of the source video, the timing signals are connected to the Video Timing Controller Detection Module. Both the timing and the signal polarity of the timing signals are captured and easily read by the host processor. Video timing signals are generated to control a display driver module and an external display. The timing of these output signals is controlled by the host processor. The Video Timing Controller can be configured in real-time to replicate the source video format or to slightly change the format on the output, for example, in cases where the input signals are positive polarity yet the display requires negative polarity synchronization signals. The Video Timing Controller can also be reconfigured in real-time to output a completely different format from the input source. Two Frame Sync outputs are generated to control Video Processor 1 and Video Processor 2. These outputs could be used to control when Video Processor 2 starts processing relative to when Video Processor 1 starts processing. These Frame Syncs can be reconfigured in real-time as well. The Video Timing Controller is connected to a Host Processor in this example. General Purpose Processor Interface allows for easy connection between status/control registers and the host processor. In addition, the Video Timing Controller interrupt output can also be used to synchronize the software with hardware events.
Detection Enable
No No No No No No No No No No No No Yes Yes
Generation Enable
Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes No No
H/V Blanks
No No No No Yes Yes Yes Yes Yes Yes Yes Yes No No
H/V Syncs
Yes Yes Yes Yes No No No No Yes Yes Yes Yes Yes Yes
Active Video
No No Yes Yes No No Yes Yes No No Yes Yes No No
Active Chroma
No Yes No Yes No Yes No Yes No Yes No Yes No Yes
LUTs
107 140 131 143 109 120 113 125 132 144 137 149 88 98
FFs
114 152 144 156 109 121 113 125 145 157 149 161 121 144
www.xilinx.com
37
38
www.xilinx.com
Maximum Lines
256 256 256 256 256 256
Detection Enable
No No No No No No
Generation Enable
Yes Yes Yes Yes Yes Yes
H/V Blanks
No No No No Yes Yes
H/V Syncs
Yes Yes Yes Yes No No
Active Video
No No Yes Yes No No
Active Chroma
No Yes No Yes No Yes
LUTs
92 112 111 117 96 102
FFs
114 152 144 156 109 121
www.xilinx.com
39
40
www.xilinx.com
www.xilinx.com
41
Maximum Lines
256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256
Detection Enable
No No No No No No No No No No No No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes
Generation Enable
Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes No No No No No No No No No No No No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes
H/V Blanks
No No No No Yes Yes Yes Yes Yes Yes Yes Yes No No No No Yes Yes Yes Yes Yes Yes Yes Yes No No No No Yes Yes Yes Yes Yes Yes Yes Yes
H/V Syncs
Yes Yes Yes Yes No No No No Yes Yes Yes Yes Yes Yes Yes Yes No No No No Yes Yes Yes Yes Yes Yes Yes Yes No No No No Yes Yes Yes Yes
Active Video
No No Yes Yes No No Yes Yes No No Yes Yes No No Yes Yes No No Yes Yes No No Yes Yes No No Yes Yes No No Yes Yes No No Yes Yes
Active Chroma
No Yes No Yes No Yes No Yes No Yes No Yes No Yes No Yes No Yes No Yes No Yes No Yes No Yes No Yes No Yes No Yes No Yes No Yes
LUTs
108 136 127 135 108 107 105 110 130 136 137 143 106 119 193 181 128 144 210 193 213 218 276 306 260 329 388 394 267 300 354 364 398 429 459 489
FFs
114 152 144 156 109 121 113 125 145 157 149 161 121 144 207 233 148 171 179 206 224 247 279 306 253 315 371 410 277 313 312 352 387 423 448 487
42
www.xilinx.com
www.xilinx.com
43
Maximum Lines
256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256
Detection Enable
No No No No No No No No No No No No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes
Generation Enable
Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes No No No No No No No No No No No No Yes Yes Yes Yes Yes
H/V Blanks
No No No No Yes Yes Yes Yes Yes Yes Yes Yes No No No No Yes Yes Yes Yes Yes Yes Yes Yes No No No No Yes
H/V Syncs
Yes Yes Yes Yes No No No No Yes Yes Yes Yes Yes Yes Yes Yes No No No No Yes Yes Yes Yes Yes Yes Yes Yes No
Active Video
No No Yes Yes No No Yes Yes No No Yes Yes No No Yes Yes No No Yes Yes No No Yes Yes No No Yes Yes No
Active Chroma
No Yes No Yes No Yes No Yes No Yes No Yes No Yes No Yes No Yes No Yes No Yes No Yes No Yes No Yes No
LUTs
101 109 114 134 87 96 90 100 120 134 119 128 100 112 145 177 130 129 199 209 187 208 254 275 244 293 346 346 256
FFs
114 152 144 156 109 121 113 125 145 157 149 161 121 144 207 233 148 171 179 205 224 247 278 304 253 314 371 409 277
44
www.xilinx.com
www.xilinx.com
45
Note: The Video Timing Controller does not utilize block RAMs or Xilinx XtremeDSP slices.
Performance
The following are typical clock frequencies for the target families. The maximum achievable clock frequency could vary and in most cases will be higher. The maximum achievable clock frequency and all resource counts may be affected by other tool options, additional logic in the FPGA device, using a different version of Xilinx tools, and other factors. Spartan-3A DSP: 150 MHz Spartan-6: 150 MHz Virtex-5: 225 MHz Virtex-6: 225 MHz
Support
Xilinx provides technical support for this LogiCORE IP product when used as described in the product documentation. Xilinx cannot guarantee timing, functionality, or support of product if implemented in devices that are not defined in the documentation, if customized beyond that allowed in the product documentation, or if changes are made to any section of the design labeled DO NOT MODIFY.
License Options
The Xilinx Video Timing Controller LogiCORE IP system provides three licensing options. After installing the required Xilinx ISE software and IP Service Packs, choose a license option:
46
www.xilinx.com
Simulation Only
The Simulation Only Evaluation license key is provided with the Xilinx CORE Generator tool. This key lets you assess the core functionality with either the provided example design or alongside your own design and demonstrates the various interfaces on the core in simulation. (Functional simulation is supported by a dynamically-generated HDL structural model.)
Full
The Full license key is provided when you purchase the core and provides full access to all core functionality both in simulation and in hardware, including: Functional simulation support Back annotated gate-level simulation support Full implementation support including place and route and bitstream generation Full functionality in the programmed device with no time outs
Simulation License
No action is required to obtain the Simulation Only Evaluation license key; it is provided by default with the Xilinx CORE Generator software.
Full License
To obtain a Full license key, you must purchase a license for the core. After doing so, click the Access Core link on the Xilinx.com IP core product page for further instructions.
www.xilinx.com
47
Ordering Information
The Video Timing Controller v2.1 core is provided under the SignOnce IP Site License and can be generated using the Xilinx CORE Generator system v12.3 or higher. The CORE Generator system is shipped with Xilinx ISE Design Suite development software. To order Xilinx software, please contact your local Xilinx sales representative. Information on additional Xilinx LogiCORE IP modules is available on the Xilinx IP Center.
Revision History
The following table shows the revision history for this document: Date
06/24/09 12/02/09 09/21/10
Version
1.0 2.0 3.0 Initial Xilinx release.
Description of Revisions
Update for core version 2.0. Update for core version 2.1 and ISE 12.3.
Notice of Disclaimer
Xilinx is providing this product documentation, hereinafter Information, to you AS IS with no warranty of any kind, express or implied. Xilinx makes no representation that the Information, or any particular implementation thereof, is free from any claims of infringement. You are responsible for obtaining any rights you may require for any implementation based on the Information. All specifications are subject to change without notice. XILINX EXPRESSLY DISCLAIMS ANY WARRANTY WHATSOEVER WITH RESPECT TO THE ADEQUACY OF THE INFORMATION OR ANY IMPLEMENTATION BASED THEREON, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OR REPRESENTATIONS THAT THIS IMPLEMENTATION IS FREE FROM CLAIMS OF INFRINGEMENT AND ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Except as stated herein, none of the Information may be copied, reproduced, distributed, republished, downloaded, displayed, posted, or transmitted in any form or by any means including, but not limited to, electronic, mechanical, photocopying, recording, or otherwise, without the prior written consent of Xilinx.
48
www.xilinx.com