<html>
<head>
   <meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>
   vtc v6_0
</title>
<link href="$DriverApiDocsCssPath" rel="stylesheet" type="text/css">
</head>
<h3 class="PageHeader">Xilinx Processor IP Library</h3>
<hl>Software Drivers</hl>
<hr class="whs1">
<!-- Generated by Doxygen 1.4.5 -->
<div class="tabs">
  <ul>
    <li id="current"><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="annotated.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
  </ul></div>
<h1>vtc v6_0</h1>
<p>
This is the main header file of Xilinx MVI Video Timing Controller (VTC) device driver. The VTC device detects video signals, independently overrides any one of them, re-generates video signals with +/- delay and with polarity inversion, and generates up to 16 one cycle Frame Sync outputs.<p>
The device has the following main features:<ul>
<li>Detect video signals:<ul>
<li>horizontal sync</li><li>horizontal blank</li><li>vertical sync</li><li>vertical blank</li><li>active video</li><li>field id</li></ul>
</li><li>Independently override any one signal.</li><li>Re-generate video signals with +/- delay and with polarity inversion.</li><li>Generate up to 16 one cycle Frame Sync outputs.</li></ul>
<p>
For a full description of VTC features, please see the hardware specification.<p>
<b>Interrupt Service </b><p>
The interrupt types supported are:<ul>
<li>Frame Sync Interrupts 0 - 15</li><li>Generator interrupt<ul>
<li>Generator Active Video Interrupt</li><li>Generator VBLANK Interrupt</li></ul>
</li><li>Detector interrupt:<ul>
<li>Detector Active Video Interrupt</li><li>Detector VBLANK Interrupt</li></ul>
</li><li>Signal Lock interrupt<ul>
<li>Active Chroma signal lock</li><li>Active Video Signal Lock</li><li>Field ID Signal Lock</li><li>Vertical Blank Signal Lock</li><li>Vertical Sync Signal Lock</li><li>Horizontal Blank Signal Lock</li><li>Horizontal Sync Signal Lock</li></ul>
</li></ul>
<p>
<b>Software Initialization </b><p>
The application needs to do following steps in order for preparing the VTC to be ready to process video signal handling.<p>
<ul>
<li>Call <a class="el" href="xvtc__sinit_8c.html#93d5074c0fb4f33e8433e040b9f0571a">XVtc_LookupConfig()</a> using a device ID to find the device configuration.</li><li>Call <a class="el" href="xvtc_8c.html#8c32667f57c26eb209f5eee763a3727a">XVtc_CfgInitialize()</a> to initialize the device and the driver instance associated with it.</li><li>Call <a class="el" href="xvtc_8c.html#e0a18370e29671b5e4e784671d13b1fb">XVtc_SetGenerator()</a> to set up the video signals to generate, if desired.</li><li>Call <a class="el" href="xvtc_8c.html#621c6a6c90b127b930fae449dd6125bf">XVtc_SetPolarity()</a> to set up the video signal polarity.</li><li>Call <a class="el" href="xvtc_8c.html#f0ccf7c4aceea924d6e00ef0ee73ab07">XVtc_SetSource()</a> for source selection</li><li>Call <a class="el" href="xvtc_8c.html#8e19eedcd2d65b6fbf6a460c4985c814">XVtc_SetGeneratorHoriOffset()</a> to set up the Generator VBlank/VSync horizontal offsets, if values other than the default are needed</li><li>Call XVtc_EnableSync(), if generator needs to be synced to the detector</li><li>Call <a class="el" href="xvtc_8c.html#d909f2e72f6ebec70d521d39efba60d6">XVtc_Enable()</a> to enable/start the VTC device.</li></ul>
<p>
<b> Examples </b><p>
An example is provided with this driver to demonstrate the driver usage.<p>
<b>Cache Coherency</b><p>
<b>Alignment</b><p>
<b>Limitations</b><p>
<b>BUS Interface</b><p>
<pre>
 MODIFICATION HISTORY:</pre><p>
<pre> Ver   Who  Date       Changes
 ----- ---- --------    -----------------------------------------------
 1.00a xd   08/05/08    First release
 1.01a xd   07/23/10    Added GIER; Added more h/w generic info into
                        xparameters.h; Feed callbacks with pending
                        interrupt info. Added Doxygen &amp; Version support
 2.00a xd   05/13/11    1. Renamed to "Video Timing Controller"
                        2. Added Generator/Detector VBlank/VSync
                           Horizontal offset setup/fetch support;
                        3. Renamed the IP to support to be axi_vtc;
                        4. Supported sync between generator and detector
                           with addition of new XVtc_EnableSync() and
                           XVtc_DisableSync() functions;
                        5. Renamed XVtc_SetSync() to <a class="el" href="xvtc_8c.html#2cb7b790bb8b52ae16e06ce120d556b2">XVtc_SetFSync()</a>;
                        6. Renamed XVtc_GetSync() to <a class="el" href="xvtc_8c.html#4db10bcdc7eb7e797d4dc19bd0f6f9b9">XVtc_GetFSync()</a>;
                        7. Removed unnecessary register write in
                           XVtc_Reset();
                        8. Corrected driver name in .mdd file
                        9. Updated register bit definition(a few fields grow
                           from 12 to 13 bit wide)
 2.00a cm   05/25/11    1. Renamed XVtc_SetSkip() to <a class="el" href="xvtc_8c.html#850e78057ad6939373369323421bec88">XVtc_SetSkipLine()</a>;
                        2. Renamed XVtc_GetSkip() to <a class="el" href="xvtc_8c.html#9d0202920bd08b8abba2b1fc24f76b21">XVtc_GetSkipLine()</a>;
                        3. Added <a class="el" href="xvtc_8c.html#5896b72c9fab754793441fb5aaa524f8">XVtc_SetSkipPixel()</a>;
                        4. Added <a class="el" href="xvtc_8c.html#4cb1b2509e8b24b83abbe0be34ca6e4e">XVtc_GetSkipPixel()</a>;
 2.00a cm   06/16/12    1. Added missing xil_assert.h include
 2.00a cm   07/25/12    1. Removed unused XVtc_IntrSetLockPolarity() function
 3.00a cm   08/02/12    1. Added the XVtc_Sync_Reset() frame sync'ed SW 
                           reset function.
 3.00a cjm  08/02/12 Converted from xio.h to xil_io.h, translating
                     basic types, MB cache functions, exceptions and
                     assertions to xil_io format. 
                     Replaced the following 
                     "XExc_Init" -&gt; "Xil_ExceptionInit"
                     "XExc_RegisterHandler" -&gt; "Xil_ExceptionRegisterHandler"
                     "XEXC_ID_NON_CRITICAL_INT" -&gt; "XIL_EXCEPTION_ID_INT"
                     "XExceptionHandler" -&gt; "Xil_ExceptionHandler"
                     "XExc_mEnableExceptions" -&gt; "Xil_ExceptionEnable"
                     "XEXC_NON_CRITICAL" -&gt; "XIL_EXCEPTION_NON_CRITICAL"
                     "XExc_DisableExceptions" -&gt; "Xil_ExceptionDisable"
                     "XExc_RemoveHandler" -&gt; "Xil_ExceptionRemoveHandler"
                     "microblaze_enable_interrupts" -&gt; "Xil_ExceptionEnable"
                     "microblaze_disable_interrupts" -&gt; "Xil_ExceptionDisable"</pre><p>
<pre>                     "XCOMPONENT_IS_STARTED" -&gt; "XIL_COMPONENT_IS_STARTED"
                     "XCOMPONENT_IS_READY" -&gt; "XIL_COMPONENT_IS_READY"</pre><p>
<pre>                     "XASSERT_NONVOID" -&gt; "Xil_AssertNonvoid"
                     "XASSERT_VOID_ALWAYS" -&gt; "Xil_AssertVoidAlways"
                     "XASSERT_VOID" -&gt; "Xil_AssertVoid"
                     "Xil_AssertVoid_ALWAYS" -&gt; "Xil_AssertVoidAlways" 
                     "XAssertStatus" -&gt; "Xil_AssertStatus"
                     "XAssertSetCallback" -&gt; "Xil_AssertCallback"</pre><p>
<pre>                     "XASSERT_OCCURRED" -&gt; "XIL_ASSERT_OCCURRED"
                     "XASSERT_NONE" -&gt; "XIL_ASSERT_NONE"</pre><p>
<pre>                     "microblaze_disable_dcache" -&gt; "Xil_DCacheDisable"
                     "microblaze_enable_dcache" -&gt; "Xil_DCacheEnable"
                     "microblaze_enable_icache" -&gt; "Xil_ICacheEnable"
                     "microblaze_disable_icache" -&gt; "Xil_ICacheDisable"
                     "microblaze_init_dcache_range" -&gt; "Xil_DCacheInvalidateRange"</pre><p>
<pre>                     "XCache_DisableDCache" -&gt; "Xil_DCacheDisable"
                     "XCache_DisableICache" -&gt; "Xil_ICacheDisable"
                     "XCache_EnableDCache" -&gt; "Xil_DCacheEnableRegion"
                     "XCache_EnableICache" -&gt; "Xil_ICacheEnableRegion"
                     "XCache_InvalidateDCacheLine" -&gt; "Xil_DCacheInvalidateRange"</pre><p>
<pre>                     "XUtil_MemoryTest32" -&gt; "Xil_TestMem32"
                     "XUtil_MemoryTest16" -&gt; "Xil_TestMem16"
                     "XUtil_MemoryTest8" -&gt; "Xil_TestMem8"</pre><p>
<pre>                     "xutil.h" -&gt; "xil_testmem.h"</pre><p>
<pre>                     "xbasic_types.h" -&gt; "xil_types.h"
                     "xio.h" -&gt; "xil_io.h"</pre><p>
<pre>                     "XIo_In32" -&gt; "Xil_In32"
                     "XIo_Out32" -&gt; "Xil_Out32"</pre><p>
<pre>                     "XTRUE" -&gt; "TRUE"
                     "XFALSE" -&gt; "FALSE"
                     "XNULL" -&gt; "NULL"</pre><p>
<pre>                     "Xuint8" -&gt; "u8"
                     "Xuint16" -&gt; "u16"
                     "Xuint32" -&gt; "u32"
                     "Xint8" -&gt; "char"
                     "Xint16" -&gt; "short"
                     "Xint32" -&gt; "long"
                     "Xfloat32" -&gt; "float"
                     "Xfloat64" -&gt; "double"
                     "Xboolean" -&gt; "int"
                     "XTEST_FAILED" -&gt; "XST_FAILURE"
                     "XTEST_PASSED" -&gt; "XST_SUCCESS"
 4.00a cjm  02/07/13 Removed Unused Functions
                     XVtc_IntrEnableGlobal()
                     XVtc_IntrDisableGlobal()
 5.00a cjm  08/07/13 Replaced XVTC_RESET with XVTC_CTL
                     Replaced XVTC_RESET_RESET_MASK with XVTC_CTL_RESET_MASK
                     Replaced XVTC_SYNC_RESET_MASK with XVTC_CTL_SRST_MASK
 5.00a cjm  10/30/13 Replaced XVtc_RegUpdate() with XVtc_RegUpdateEnable()
                     Added XVtc_RegUpdateDisable()
                     Removed type parameter from <a class="el" href="xvtc_8c.html#d909f2e72f6ebec70d521d39efba60d6">XVtc_Enable()</a>   
                     Added <a class="el" href="xvtc_8c.html#5e313f936a3ec2cf0ac66b623eaa35d3">XVtc_EnableGenerator()</a> to enable only the Generator  
                     Added <a class="el" href="xvtc_8c.html#31cfaed991936b1ca0359cf920ac8e90">XVtc_EnableDetector()</a> to enable only the Detector
 5.00a cjm  11/01/13 Added Timing, VideoMode and Signal Conversion Functions:
                       XVtc_ConvVideoMode2Timing()
                       XVtc_ConvTiming2Signal()
                       XVtc_ConvSignal2Timing()
                       XVtc_ConvTiming2VideoMode()
                     Added Timing and Video Mode Set/Get Functions:
                       XVtc_SetGeneratorTiming()
                       XVtc_SetGeneratorVideoMode()
                       XVtc_GetGeneratorTiming()
                       XVtc_GetGeneratorVideoMode()
                       XVtc_GetDetectorTiming()
                       XVtc_GetDetectorVideoMode()
 6.0   adk  19/12/13 Updated as per the New Tcl API's</pre><p>
<pre> </pre> Copyright @ 1995-2014 Xilinx, Inc. All rights reserved.