AUTOMATIC SYNC SELECTOR WITH PROGRAMMABLE PRIORITY

Abstract: Two or more independent video sync sources are input along with a programmable priority or order for each sync source. The sync source with the highest priority that is valid is the output. This invention shall automatically switch the highest priority valid sync to the output. The priority associated with each independent sync source is programmable and can be changed or set differently with each unit.

Description: AUTOMATIC SYNC SELECTOR WITH PROGRAMMABLE PRIORITY GOVERNMENT RIGHTS The invention was made with United States Government support under Contract No. DAAE30-95-C-0009 awarded by the U.S. Army. The Government has certain rights to this invention. BACKGROUND OF THE INVENTION The present invention relates generally to video signal processing and more particularly to a method and apparatus for selecting and presenting one or more different video syncs to a video system. The PC industry follows the VESA (Video Electronics Standards Association) standard for video synchronization, allowing one to buy a monitor and plug it into a different brand computer. However, in most military systems a composite sync on green is used, eliminating the need for two extra wires. As the commercialization of military hardware continues, computer standards are becoming more commonplace in the military. The present invention allows both formats to be present simultaneously, with a programmable prioritization for use of a valid sync source with the highest priority. In addition, if the selected sync source fails, the invention automatically switches to the next highest priority valid sync source. This invention can be used to include other sync sources as well. The present technology allows for use of a single sync source with no alternative selection of secondary sync sources or automatic shifting of sync sources, if a failure to the primary sync source occurs. The present invention also allows both sync formats, VESA which is a separate horizontal and vertical sync, and a composite sync on green video. BRIEF SUMMARY OF THE INVENTION The following summary of the invention is provided to facilitate an understanding of some of the innovative features unique to the present invention, and is not intended to be a full description. A full appreciation of the various aspects of the invention can only be gained by taking the entire specification, claims, drawings, and abstract as a whole. In accordance with the present invention there is provided a method and apparatus for selecting and prioritizing two or more video sync sources for use as a primary sync source as input to a video system. A preferred method of selecting a valid digital video sync source from at least two digital sync sources comprises the steps of independently determining a validity of the at least two digital sync sources, selecting the valid digital sync source with a highest priority and utilizing the valid digital sync source as an input to a video system. The preferred step of independently determining a validity of the at least two digital sync sources comprises independently determining whether each of the at least two digital sync sources is stuck high or stuck low. The step of independently determining a validity of the at least two digital sync sources also can comprise independently determining whether each of the at least two digital sync sources comprises a predetermined frequency. The step of independently determining a validity of the at least two digital sync sources can also comprise independently determining whether each of the at least two digital sync sources comprises a predetermined high time and a predetermined low time. The preferred step of selecting a valid digital sync source with a highest priority comprises a programmable selection. The preferred programmable selection comprises prioritizing each of the at least two digital sync sources, validating each of the at least two digital sync sources, and if a sync source with a highest priority is invalid, select a sync source with the next highest priority as the valid sync source. An alternative step of selecting a valid digital sync source with a highest priority comprises a manual selection. The preferred method further comprises the step of periodically repeating steps a), b) and c). The method can also further comprise the step of generating a signal when an invalid digital sync source is determined. The invention also comprises a method of selecting a valid digital video sync source from at least two digital sync sources comprising the steps of independently determining a validity of the at least two digital sync sources, selecting a valid digital sync source with a highest priority, automatically shifting to a next highest priority valid digital sync source if the highest priority sync source becomes invalid, utilizing the valid digital sync source with the highest priority as an input to a video system. The preferred apparatus for selecting a video sync source from at least two digital sync sources comprises structure for independently determining a validity of the at least two digital sync sources, an apparatus for prioritizing each of the at least two digital sync sources and structure for selecting a highest priority valid sync source from the at least two digital sync sources as the video sync source. The preferred invention further comprises an apparatus to automatically switch to a next highest priority sync source as the video sync source, if a highest priority sync source becomes invalid. The preferred structure for independently determining a validity of the at least two digital sync sources comprises a member from the group of ASIC, FPGA and EPLD. The structure for independently determining a validity of the at least two digital sync sources can also comprise structure for determining whether each of the at least two digital sync sources is stuck high or stuck low. The structure for independently determining a validity of the at least two digital sync sources can also comprise structure for determining whether each of the at least two digital sync sources comprises a predetermined frequency. The structure for independently determining a validity of the at least two digital sync sources can also comprise structure for determining whether each of the at least two digital sync sources comprises a predetermined high time and a predetermined low time. The invention can also further comprise a signal when each of the at least two digital sync sources is invalid. The invention also further comprises an apparatus to automatically switch from an invalid digital sync source to a next highest priority digital sync source. The invention also further comprises an apparatus to periodically activate the structure for independently determining a validity of the at least two digital sync sources. A primary object of this invention is to be as universal as possible, that is to accept as many commonly used formats as possible. Another object of the invention is to provide an apparatus that is transparent to the user. So if both sync sources are available, then use the primary, if the primary source is not available, then automatically switch to the secondary source if it is available. A primary advantage of the present invention is to provide commonality with the military standard and with the computer industry standard (VESA). Another advantage is that of redundancy, since this invention automatically switches from the primary sync source to the secondary sync source if the primary source becomes un-useable for any reason. Other objects, advantages and novel features, and further scope of applicability of the present invention will be set forth in part in the detailed description to follow, taken in conjunction with the accompanying drawings, and in part will become apparent to those skilled in the art upon examination of the following, or may be learned by practice of the invention. The objects and advantages of the invention may be realized and attained by means of the instrumentalities and combinations particularly pointed out in the appended claims. BRIEF DESCRIPTION OF THE DRAWINGS The accompanying drawing, which is incorporated into and form a part of the specification, illustrates the preferred embodiment of the present invention and, together with the description, serves to explain the principles of the invention. The drawing is only for the purpose of illustrating a preferred embodiment of the invention and is not to be construed as limiting the invention. In the drawings: FIG. 1 is a flow chart depicting the operation of the preferred automatic sync selector. DETAILED DESCRIPTION OF THE INVENTION A portion of the disclosure of this patent document contains material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the U. S. Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever. Video sync for commercial computer monitors is standardized using VESA standards. This contains a separate vertical and horizontal sync signal. A loss of sync makes the system inoperable. Most military applications utilize a composite sync on green for displays. This composite sync was created and used to remove two wires for operation. However, in order to utilize off-the-shelf monitors or displays for military applications, this invention is necessary and also has the added advantage of creating a redundancy for an additional safeguard. FIG. 1, is a flow chart showing how the preferred invention operates. Composite video has the sync encoded along with the video. The composite sync 10 is detected and converted into a signal that is voltage compatible with the field programmable gate array (FPGA) or application specific integrated circuit (ASIC). This can be done using one of several methods well known in the art, such as Integrated Circuits or using a comparator. Separate H sync (VESA H Sync) 12 is buffered and level shifted if required to meet the required input level of the FPGA or ASIC. In addition, separate V sync (VESA V Sync) 14 is buffered and level shifted if required to meet the input level of the FPGA or ASIC. Composite sync 10 is sent to composite sync validation 16 to determine if the composite video sync is active and at approximately the correct timing. This is accomplished in an FPGA, an ASIC or other technology can be used as well. If the FPGA or ASIC determines if the signal is stuck low or stuck high, both are invalid states for composite sync 11. If composite sync is toggling, an approximate determination of low time versus high time and/or a frequency measurement can be made to help in determining validity. The level of checking for determination of validity on the composite sync input is defined by system requirements as shown in FPGA validity equations 1. % LOSS OF SYNC % (1) LOSJL = (LOS_CS & !SSB) # (VESA_ACT & SSB); ED0 = !CS; EDI = ED0; ED2 = ED1: CSEDGE = !ED1 & ED2; % LEADING EDGE OF CS % LOS_SR.r = CSEDGE; LOS_SR.s = CSL7; % RISING EDGE OF CSPLL % LOSS[3..0].ena = HB3; % ENABLED ON FALLING EDGE OF HBLANK % LOSS0 = LOS_SR; LOSSl = LOSS0; LOSS2 = LOSSl; LOSS3 = LOSS2; LOSA.s = LOSS0 & LOSS1 & LOSS2 & LOSS3; LOSA.r = 1LOSS0 & ILOSS1 & 1LOSS2 & 1LOSS3; LOSS[7..4].ena = LSS3; % ENABLED IN MIDDLE OF ACTIVE SYNC % LOSS4 = !LOS_SR; LOSS5 = LOSS4; LOSS6 = LOSS5; LOSS7 = LOSS6; LOSB.s = LOSS4 & LOSS5 & LOSS6 & LOSS7; LOSB.r = ILOSS4 & ILOSS5 & ILOSS6 & ILOSS7; LOSC = LOSA & LOSB; LOS_CS.r = !LOSC; LOS_CS.s = LOSC & VS3; % LOSS OF SYNC ENABLE AT 64 % LSSO = !QX0 & !QX1 & !QX2 & !QX3; LSS1 = !QX4 & !QX5 & QX6 & !QX7; LSS2 = !QX8 & !QX9 & !QX10; LSS3 = LSSO & LSS1 & LSS2 & !VSYNC; An output from the composite sync validation 16 indicating composite invalid sync 31 can be used to provide a signal elsewhere in the system to indicate a "Composite Loss Of Sync". Separate H sync validation 18 determines whether H sync is valid. Stuck low or stuck high are checked and are invalid H sync 13 states. Approximate frequency and low time and high time can all be determined to aid in determining the validity of the signal as shown in FPGA horizonal sync validity equations 2. % DETERMINE IF HS_VESA IS ACTIVE % (2) HSVO = HS VESA; HSV1 = HSV0; HSV2 = HSV1; HSV EDGE = !HSV1 & HSV2; HV_ACT.s = HSV EDGE; HV_ACT.r = !HSV_EDGE & RX; HVA[].ena = RX; HVAO = HV_ACT; HVA1 = HVAO; HVA2 = HVA1; HVA3 = HVA2; HVAA.s = HVA0 & HVA1 & HVA2 & HVA3; HVAA.r = IHVAO & !HVA1 & !HVA2 & !HVA3; Similarly, separate V Sync validation 20 is performed to determine its validity. Stuck low or stuck high are checked and are invalid V sync 15 states. Approximate frequency and low time and high time can all be determined to aid in determining the validity of the signal as shown in FPGA vertical sync validity equations 3. % DETERMINE IF VS_VESA IS ACTIVE % (3) VSVO = VS_VESA; VSV1 = VSV0; VSV2 = VSV1; VSV_EDGE = !VSV1 & VSV2; % FIND LEADING EDGE OF VS_VESA % VV_RST = !VSV_EDGE & VS3; % DELAY VV_ACT.r 1 CLK TO MATCH VVA[].ena % VV_ACT.s = VSV_EDGE; VV ACT.r = VV RST; VV_EN = % (VS3 & LOSJL) # %(VS3 & VV_ACT% & !LOS_L%); VVA[].ena = VV_EN; VVAO = VV_ACT; VVA1 = VVAO; VVA2 = VVA1; VVA3 = VVA2; VVAA.s = VVAO & VVA1 & VVA2 & VVA3; VVAA.r = ! WAO & ! WA1 & !VVA2 & !VVA3; Again, the level of checking for determination of validity on the separate syncs is defined by system requirements. When both valid separate H sync 19 and valid separate V sync 21 are determined, the information is sent to comparator 22 which is essentially an "and" gate. Valid comparator information 23 is passed onto programmable priority sync selection 26. An invalid comparator output 29 indicating invalid sync can be used elsewhere as a signal in the system to indicate a "VESA Loss Of Sync". Sync priority input 24 can be any number of commonly used interfaces. A peripheral connect interface (PCI) bus is an example of such a common interface in which the priority can be loaded. Valid composite sync 17 and valid comparator information 23 are both fed to programmable priority sync selection 26. The programmable priority sync selection 26 determines which sync input is valid, both, one or the other, or neither. The other input is where the priority is loaded from. If both syncs are valid 17 and 23 the sync source with the highest priority loaded from the sync priority input 24 is selected to be output 30 by multiplexer 28. If only composite sync is valid then composite sync is selected as the output 30 of the multiplexer 28, regardless of the priority. If only VESA sync is valid than VESA sync is selected as the output of the multiplexer 28, regardless of the priority. If neither sync is valid, depending upon system requirements, the invalid sync with the highest priority could be output by the multiplexer 30 and the system could wait for a valid input from one of the sources. There are many other options, e.g. on some systems an internal source can be available such that information can be displayed to indicate the display is functioning properly. Multiplexer 28 is essentially a 2 to 1 multiplexer that has the composite sync 11 as one input and H sync 13 and V sync 15 as the other input. The output 30 is selected based upon the output of the programmable priority sync selection 26. This disclosure has described a system in which to two different sync formats are checked and the highest priority valid format is output to be used elsewhere in the system. The output in the implemented case is used by a phase locked loop (PLL) as the reference input. However this could easily be modified to any number of different sync inputs each with a unique and programmable priority. This also allows for redundancy in a system. First of all, if the primary sync source fails, this invention automatically switches to the secondary sync source. Two independent inputs must both fail before the system is unable to display the appropriate video. Although only describing separate horizontal and vertical sync and composite sync, this invention can be used with two or more composite sync sources or two or more separate horizontal and vertical sync sources or any combination of these types of sync sources. The primary and secondary sources are programmable. As set forth in equations 1, 2, and 3. The primary source could be set as the separate syncs for one unit and set for the composite syncs for another unit. The selection of the primary source can be accomplished through methods well known in the art such as bezel buttons, a communications port or any other interface. As computer monitors move towards higher performance with higher resolution, RGB inputs with sync on green are becoming more common. This compatibility to legacy displays, supporting the current computer monitor standard VESA and supporting the higher performance RGB will have benefits. Industrial Applicability: The invention is further illustrated by the following non-limited example. An example for an entire system is set forth in equations 4. The "Automatic Sync Selector with Programmable Priority" was used in a display system which had two sync inputs. This display system quantized video at a pixel clock rate, 65MHz for this system. The clock must be stable and at the correct frequency, in order to properly quantize the video signal. A phase locked loop (PLL) was used to meet these requirements, however, there are other ways of meeting the requirement of a stable clock as well. The clock generator (PLL in this case) had as one input a valid sync reference from the video signal. The generation of the pixel clock is well known in the art. Once the stable pixel clock had been generated and was phase locked to the reference sync, this clock was used as the system clock and was used to create all control signals required for the display surface. TITLE "PLL FEEDBACK"; (4) SUBDESIGN PLLFB ( CS, HS_VESA, VS_VESA, FF_TP, GS_TP, PCLK, OCLK, CLKTN : INPUT; CLKOUT, PLLSYNC, QX[10..0], QY[9..0], EVEN_L, RX, BITEN : OUTPUT; TPKNT, CBLNK_L, RY, VBLNKJL, HBLNK_L, HBPJL, HSYNC_L : OUTPUT; VSYNC, CSYNCJL, GB4, LHSYNC_L, LVSYNCJL, ENAB, LOS_L, SSB : OUTPUT; LOS_CS, VVAA, W EN, SSA ) VARIABLE CLK : GLOBAL; o/ *##******* CLOCKM U X ********** % CLKOUT : LCELL; QX[10..0] DFF; CX[10..0] CARRY; RX DFF; RXA, RXB, RXC DFF; GB4 DFF; U \ / "*C\11 Tli~--*f * * ^ "^ / « QY[9..0] DFFE; CY[9..0] : CARRY; CYE DFF; RY, TPRY DFF; % **** VERTICAL SYNC DETECTOR *** % RYY[3..0] DFFE; RRYY, YRY, RVO DFF; VBR SRFF; CRY[3..0] CARRY; CRYY, CRYYA : DFF; VCS : LCELL; % **** H, V AND CSYNC FOR PLL **** % PLLSYNC LCELL; PLLS LCELL; HSYNCJL SRFF; HS[7..0] : DFF; VSYNC : SRFF; VS[7..0] : DFF; CSYNC_L DFF; CSSR SRFF; CSL[7..0] DFF; % **** H AND V BLANK **** % HBLNKJ , CHBL : SRFF; HB[7..0] : DFF; VBLNK_L : SRFF; VB[7..0] : DFF; CBLNK L : DFF; % **** BACK PORCH **** % HBP_L : SRFF; BP[7..0] : DFF; % **** LVDS CONTROL **** % EVEN_L : DFF; LHSYNC_L SRFF; LHS[7..0] DFF; LVSYNC_L SRFF; LVS[7..0] DFF; LHBLNK_L SRFF; LHB[7..0] DFF; LCHBL : SRFF; ENAB DFF; % **** LOSS OF SYNC **** % LOS_L : DFF; EDP2..0] DFF; CSEDGE : DFF; LOS_SR : SRFF; LOSS[7..0] DFFE; LOSA, LOSB SRFF; LOSC DFF; LOS_CS : SRFF; LSS[3..0] DFF; SS[3..0] DFFE; SSA, SSB DFF; HSV[2..0] DFF; HSV_EDGE DFF; HV_ACT : SRFF; HVA[3..0] DFFE; HVAA SRFF; VSV[2..0] DFF; VSV_EDGE : DFF; VV_ACT SRFF; WA[3..0] : DFFE VVAA : SRFF; VESA_ACT : DFF; VV_EN, VV_RST : DFF; % TEST PATTERNS AND BIT % TPKNT : DFF; BITEN : SRFF; BIT[7..0] : DFF; % set all register clocks % CLK = CLKLN; % clocks % QX[].clk = CLK; RX.clk = CLK; RXA.clk = CLK RXB.clk = CLK RXC.clk = CLK GB4.clk = CLK QY[].clk = CLK; CYE.clk = CLK RY.clk = CLK; RYY[].clk = CLK; RRYY.clk = CLK; CRYY.clk = CLK; CRYYA.clk = CLK; YRY.clk = CLK VBR.clk = CLK; RVO.clk = CLK; TPRY.clk = CLK; CBLNK L.clk = CLK; VBLNK_L.clk = CLK; VB[].clk = CLK; HBLNK_L.clk CLK; HB[].clk = CLK; CHBL.clk = CLK; HSYNC_L.clk = CLK; HS[].clk = CLK; VSYNC.clk = CLK; VS[].clk = CLK; CSYNC_L.clk = CLK; CSSR.dk = CLK; CSL[].clk = CLK; HBP L.clk = CLK; BP[].clk = CLK; EVEN_L.clk = CLK; LHSYNC_L.clk = CLK; LHS[].clk = CLK; LVSYNC_L.clk = CLK; LVS[].clk = CLK; LHBLNK_L.clk = CLK; LHB[].clk = CLK; LCHBL.clk = CLK; ENAB.clk = CLK; LOS L.clk = CLK; ED[].clk = CLK CSEDGE.clk = CLK LOS_SR.clk = CLK LOSSQ.clk = CLK LOSA.clk = CLK LOSB.clk = CLK LOSC.clk = CLK LOS_CS.clk = CLK LSS[].clk = CLK SS[].clk = CLK SSNclk = CLK; SSB.clk = CLK; HSV[].clk = CLK HSV_EDGE.clk = CLK HV_ACT.clk = CLK HVA[].clk = CLK HVAA.dk = CLK VSV[].clk = CLK VSV_EDGE.clk = CLK VV_ACT.clk = CLK VVA[].clk = CLK VVAA.clk = CLK VV_EN.clk = CLK VV_RST.dk = CLK VESA_ACT.clk = CLK TPKNT.clk = CLK BITEN.clk = CLK BIT[].clk = CLK % MUX BETWEEN CLOCKS, SO TEST PATTERN CAN BE DISPLAYED WITHOUT SYNC % CLKOUT = (PCLK & !FF_TP & !GS_TP) # (OCLK & FF_TP) # (OCLK & GS_TP); % SWITCH BETWEEN COMP SYNC AND HORIZONTAL SYNC FOR PLL REFERENCE % PLLS = (CS & IVSYNC & !SSB) # (ICSSR & VSYNC & !SSB); PLLSYNC = PLLS # (!HS_VESA & SSB); % Horizontal line length counter 1344 clocks per line % QX[10..0] = (!RX & QX[10..0]) $ (!RX & CX[10..0]); GB4 = QX3; % 4MHz IN SYNC WITH VIDEO % % HORIZONTAL CARRY CHAIN % CXO = VCC; CX[10..1] = CX[9..0] & QX[9..0]; % HORIZONTAL COUNTER CONTROL RESET AT 1343 % RXA = QX[3..0] == H"D"; RXB = QX[7..4] == H"3"; RXC = QX[10..8]= H"5"; RX = RXA & RXB & RXC; CYE = RXA & RXB & RXC; % SWITCH BETWEEN COMP SYNC AND VERTICAL SYNC % VCS = (CS & !SSB) # (!VS_VESA & SSB); % Vertical line counter % QY[].ena = CYE; QY[] = QY[] $ CY[]; QY[].clrn = !RY; % VERTICAL CARRY CHAIN % CY0 = VCC; CY[9..1] = CY[8..0] & QY[8..0]; % VERTICAL SYNC DETECTOR % RYY[].ena = CRYY; % COUNT EVERY 0.5uS THAT CS IS ACTIVE % % VERTICAL SYNC DET COUNTER % RYY[] = (RYY[]) $ (CRY[]); RYY[].clrn = IRRYY; % VERTICAL SYNC DET COUNTER CARRY CHAIN % CRYO = VCC; CRY[3..1] = CRY[2..0] & RYY[2..0]; % DECODE X COUNTER FOR 0.5uS % CRYYA = !QX0 & !QX1 & !QX2 & !QX3; CRYY = !QX4 & CRYYA & VCS; % RESET V SYNC COUNTER WHEN CS IN INACTIVE % RRYY = !QX4 & CRYYA & !VCS; % WHEN CS IS ACTIVE FOR 7uS GENERATE RESET PULSE % YRY = RYY3 & RYY2 & RYY1; % ALLOW VERTICAL RESET PULSE TO RESET Y COUNTER ONCE PER 15 LINES % RVO = QYO & QY1 & QY2 & QY3; VBR.r = YRY; VBR.s = RVO; TPRY = (FF_TP & LVS3) # (GS_TP & LVS3); % RESET Y CNTR WHEN IN TEST PATTERN % RY = (YRY & VBR) # TPRY; % HORIZONTAL BLANK INTERVAL RESET AT 1331 SET AT 307 % HB0 = QX[3..0] == H"3"; HB1 = QX[7..4] == H"3"; HB2 = QX[10..8] == H"5"; HB3 = HBO & HB1 & HB2; HB4= QX[3..0] = H"3"; HB5= QX[7..4]==H"3"; HB6 = QX[10..8]==H"1"; HB7 = HB4 & HB5 & HB6; HBLNK_L.r = HB3; HBLNK_L.s = HB7; % VERTICAL BLANK INTERVAL RESET AT 802 SET AT 34 % VBO = QY[3..0] == H"2"; VB1=QY[7..4]==H"2"; VB2 = QY[9..8]==H"3"; VB3 = VBO & VB1 & VB2 & CYE; VB4 =QY[3..0]==H"2"; VB5 = QY[7..4] == H"2"; VB6 = QY[9..8]==H"0"; VB7 = VB4 & VB5 & VB6 & CYE; VBLNK_L.r = VB3; VBLNKJ s = VB7; % COMPOSITE BLANK INTERVAL % CHBL.r = HB3; CHBL.s = HB7; CBLNK L = CHBL & VBLNK L; % HORIZONTAL SYNC INTERVAL SET AT 1342 RESET AT 132 % HSO = !QX0 & QX1 & QX2 & QX3; HS1 = QX4 & QX5 & !QX6 & !QX7; HS2 = QX8 & !QX9 & QX10; HS3 =HS0&HS1&HS2; HS4 = !QX0 & !QX1 & QX2 & !QX3; HS5 = !QX4 & !QX5 & !QX6 & QX7; HS6 = !QX8 & !QX9 & IQX10; HS7 = HS4 & HS5 & HS6; HSYNCJ .r = HS7; HSYNC_L.s = HS3; % VERTICAL SYNC INTERVAL SET AT RY RESET AT 5 % VSO = QYO & !QY1 & !QY2 & !QY3; VS1 = !QY4 & !QY5 & !QY6 & !QY7; VS2 = !QY8 & !QY9; VS3 = VSO & VS1 & VS2 & CYE; VS4 = QYO & !QY1 & QY2 & !QY3; VS5 = !QY4 & !QY5 & !QY6 & !QY7; VS6 = !QY8 & !QY9; VS7 = VS4 & VS5 & VS6 & CYE; VSYNC.r = VS7; VSYNC.s = RY; % COMPOSITE SYNC PLL FEEDBACK RESET AT 1341 SET AT 524 % CSLO = QXO & !QX1 & QX2 & QX3; CSL1 = QX4 & QX5 & !QX6 & !QX7; CSL2 = QX8 & !QX9 & QX10; CSL3 = CSLO & CSL1 & CSL2; CSL4 = !QX0 & !QX1 & QX2 & QX3; CSL5 = !QX4 & !QX5 & !QX6 & !QX7; CSL6 = !QX8 & QX9 & IQX10; CSL7 = CSL4 & CSL5 & CSL6; CSSR.r = CSL3; CSSR.S = CSL7; % PLL FEEDBACK IS H AND V WHEN CS IS USED, H WHEN HS _VESA IS USED % CSYNC_L = (!CSSR & !SSB) # (ICSSR & SSB); % BACK PORCH INTERVAL RESET AT 144, SET AT 273 % BPO = QX[3..0] == H"0"; BP1 = QX[7..4] = H"9"; BP2 = QX[10..8]=H"0"; BP3 =BP0&BP1&BP2; BP4= QX[3..0]==H"1"; BP5= QX[7..4]==H"1"; BP6 = QX[10..8]==H"1"; BP7 = BP4 & BP5 & BP6; HBP_L.r = BP3 & LVSYNC_L; HBP_L.s = BP7; % LVDS CONTROL % EVEN_L = QXO; % ODD PIXEL IS FIRST PIXEL DISPLAYED % % LVDS HORIZONTAL BLANK INTERVAL RESET AT 1342 SET AT 317 % LHB0= QX[3..0]==H"D"; LHB1= QX[7..4] == H"3"; LHB2 = QX[10..8]==H"5"; LHB3 = LHB0 & LHB1 & LHB2; LHB4- QX[3..0] = H"D"; LHB5= QX[7..4]==H"3"; LHB6 = QX[10..8]==H"1"; LHB7 = LHB4 & LHB5 & LHB6; LHBLNK_L.r = LHB3; LHBLNK_L.s = LHB7; % LVDS COMPOSITE BLANK INTERVAL, ENAB % LCHBL.r = LHB3; LCHBL.s = LHB7; ENAB = LCHBL & VBLNK L; % LVDS HORIZONTAL SYNC INTERVAL RESET AT 18 SET AT 152 % LHS0= QX[3..0]==H"2"; LHS1= QX[7..4] = H"1"; LHS2 = QX[10..8] = H"0"; LHS3 = LHSO & LHS1 & LHS2; LHS4= QX[3..0]==H"8"; LHS5 = QX[7..4] = H"9"; LHS6 = QX[10..8]==H"0"; LHS7 - LHS4 & LHS5 & LHS6; LHSYNC_L.r = LHS3; LHSYNC_L.s = LHS7; % LVDS VERTICAL SYNC INTERVAL RESET AT 805 SET AT 5 % LVS0 = QYO & !QY1 & QY2 & !QY3; LVS1 = !QY4 & QY5 & !QY6 & !QY7; LVS2 = QY8 & QY9; LVS3 - LVS0 & LVS1 & LVS2 & CYE; LVS4 = QYO & !QY1 & QY2 & !QY3; LVS5 = !QY4 & !QY5 & !QY6 & !QY7; LVS6=!QY8&!QY9; LVS7 = LVS4 & LVS5 & LVS6 & CYE; LVSYNC_L.r = LVS3; LVSYNC_L.s = LVS7; % LOSS OF SYNC % LOS_L = (LOS_CS & !SSB) # (VESA_ACT & SSB); ED0 = !CS; EDI = EDO; ED2 = ED1; CSEDGE = !ED1 & ED2; % LEADING EDGE OF CS % LOS_SR.r = CSEDGE; LOS_SR.s = CSL7; % RISING EDGE OF CSPLL % LOSS[3..0].ena = HB3; % ENABLED ON FALLING EDGE OF HBLANK % LOSS0 = LOS_SR; LOSSl = LOSS0; LOSS2 = LOSSl; LOSS3 = LOSS2; LOSA.s = LOSS0 & LOSS1 & LOSS2 & LOSS3; LOSA.r = ILOSSO & ILOSSl & ILOSS2 & 1LOSS3; LOSS[7..4].ena = LSS3; % ENABLED IN MIDDLE OF ACTIVE SYNC % LOSS4 = !LOS_SR; LOSS5 = LOSS4; LOSS6 = LOSS5; LOSS7 = LOSS6; LOSB.s = LOSS4 & LOSS5 & LOSS6 & LOSS7; LOSB.r = ILOSS4 & ILOSS5 & ILOSS6 & ILOSS7; LOSC = LOSA & LOSB; LOS_CS.r = !LOSC; LOS_CS.s = LOSC & VS3; % LOSS OF SYNC ENABLE AT 64 % LSSO = !QX0 & !QX1 & !QX2 & !QX3; LSS1 = !QX4 & !QX5 & QX6 & !QX7; LSS2 = !QX8 & !QX9 & !QX10; LSS3 = LSSO & LSS1 & LSS2 & IVSYNC; % SYNC SELECT % SS[].ena = VS3; SSO = !LOS_CS; 551 = SSO; 552 = SS1; 553 = SS2; SSA = SSO & SSI & SS2 & SS3; % FOUR FRAMES OF LOS ON COMP SYNC % SSB = SSA & VESA_ACT; % SELECT COMP SYNC WHEN LOW % % DETERMINE IF HS _VESA IS ACTIVE % HSVO = HS VESA; HSV1 = HSVO; HSV2 = HSV1 ; HSV_EDGE = IHSV1 & HSV2; HV_ACT.s = HSV_EDGE; HV_ACT.r = !HSV_EDGE & RX; HVA[].ena = RX; HVAO = HV_ACT; HVA1 = HVAO; HVA2 = HVA1 ; HVA3 = HVA2; HVAA.s = HVAO & HVA1 & HVA2 & HVA3; HVAA.r = IHVAO & IHVA1 & IHVA2 & IHVA3; % DETERMINE IF VS_VESA IS ACTIVE % VSVO = VS_VESA; VSV1 = VSVO; VSV2 = VSV1 ; VSV_EDGE = IVSVl & VSV2; % FIND LEADING EDGE OF VS VESA % VV_RST = !VSV_EDGE & VS3; % DELAY VV_ACT.r 1 CLK TO MATCH VVA[] .ena % VV_ACT.s = VSVJEDGE; VV_ACT.r = VV_RST; VV_EN = % (VS3 & LOSJL) # %(VS3 & VV_ACT% & !LOS_L%); VVA[].ena = VV_EN; VVAO = VV_ACT; VVA1 = VVAO; VVA2 = VVA1; VVA3 = VVA2; WAA.s = VVA0 & VVA1 & VVA2 & VVA3; VVAA.r = IVVAO & IVVA1 & IVVA2 & IVVA3; VESA_ACT = HVAA & VVAA; % TEST PATTERN COUNT ENABLE % TPKNT = QX[3..0] == H"0"; BITEN.s = BIT3; BITEN.r = BIT7; BITO = IQYO & IQY1 & IQY2 & IQY3; BIT1 = IQY4 & IQY5 & IQY6 & IQY7; BIT2 = IQY8 & IQY9; BIT3 = BITO & BIT 1 & BIT2 & CYE; BIT4 = !QY0 & QY1 & IQY2 & IQY3; BIT5 = IQY4 & IQY5 & IQY6 & IQY7; BIT6 = IQY8 & IQY9; BIT7 = BIT4 & BIT5 & BIT6 & CYE; END; The preceding example can be repeated with similar success by substituting the generically or specifically described reactants and/or operating conditions of this invention for those used in the preceding example. Although the invention has been described in detail with particular reference to these preferred embodiments, other embodiments can achieve the same results. Other variations and modifications of the present invention will be apparent to those of skill in the art, and it is the intent of the appended claims that such variations and modifications be covered. The particular values and configurations discussed above can be varied and are cited merely to illustrate a particular embodiment of the present invention and are not intended to limit the scope of the invention. It is contemplated that the use of the present invention can involve components having different characteristics as long as the principle of the invention is followed. It is intended that the scope of the present invention be defined by the claims appended hereto.

Claims: CLAIMS The embodiments of an invention in which an exclusive property or right is claimed are defined as follows: 1. A method of selecting a valid digital video sync source from at least two digital sync sources, the method comprising the steps of: a) independently determining a validity of the at least two digital sync sources; b) selecting the valid digital sync source with a highest priority; and c) utilizing the valid digital sync source as an input to a video system. 2. The method of Claim 1 wherein the step of independently determining a validity of the at least two digital sync sources comprises independently determining whether each of the at least two digital sync sources is stuck high or stuck low. 3. The method of Claim 1 wherein the step of independently determining a validity of the at least two digital sync sources comprises independently determining whether each of the at least two digital sync sources comprises a predetermined frequency. 4. The method of Claim 1 wherein the step of independently determining a validity of the at least two digital sync sources comprises independently determining whether each of the at least two digital sync sources comprises a predetermined high time and a predetermined low time. 5. The method of Claim 1 wherein the step of selecting a valid digital sync source with a highest priority comprises a programmable selection. 6. The method of Claim 5 wherein the programmable selection comprises prioritizing each of the at least two digital sync sources, validating each of the at least two digital sync sources, and if a sync source with a highest priority is invalid, select a sync source with the next highest priority as the valid sync source. 7. The method of Claim 1 wherein the step of selecting a valid digital sync source with a highest priority comprises a manual selection. 8. The method of Claim 1 further comprising the step of periodically repeating steps a), b) and c). 9. The method of Claim 1 further comprises the step of generating a signal when an invalid digital sync source is determined. 10. A method of selecting a valid digital video sync source from at least two digital sync sources, the method comprising the steps of: independently determining a validity of the at least two digital sync sources; selecting a valid digital sync source with a highest priority; automatically shifting to a next highest priority valid digital sync source if the highest priority sync source becomes invalid; and utilizing the valid digital sync source with the highest priority as an input to a video system. 11. An apparatus for selecting a video sync source from at least two digital sync sources comprising: a means for independently determining a validity of said at least two digital sync sources; a means for prioritizing each of said at least two digital sync sources; and structure for selecting a highest priority valid sync source from said at least two digital sync sources as said video sync source. 12. The invention of Claim 11 further comprising a means to automatically switch to a next highest priority sync source as said video sync source, if a highest priority sync source becomes invalid. 13. The invention of Claim 11 wherein said means for independently determining a validity of said at least two digital sync sources comprises a member from the group consisting of ASIC, FPGA and EPLD and combinations thereof. 14. The invention of Claim 1 1 wherein the means for independently determining a validity of said at least two digital sync sources comprises a means of determining whether each of said at least two digital sync sources is stuck high or stuck low. 15. The invention of Claim 11 wherein the means of independently determining a validity of said at least two digital sync sources comprises a means of determining whether each of said at least two digital sync sources comprises a predetermined frequency. 16. The invention of Claim 11 wherein the means of independently determining a validity of said at least two digital sync sources comprises a means of determining whether each of said at least two digital sync sources comprises a predetermined high time and a predetermined low time. 17. The invention of Claim 11 further comprises a signal when each of said at least two digital sync sources is invalid. 18. The invention of Claim 11 further comprises a means to automatically switch from an invalid digital sync source to a next highest priority digital sync source. 19. The invention of Claim 11 further comprising a means to periodically activate said means for independently determining a validity of the at least two digital sync sources.

Inventors: CONOVER KURT M, CONOVER, KURT, M.
Applicants: HONEYWELL INC, HONEYWELL INC.
Application year: 1999
Main classification: H04N5
IPC codes: G09G5, H04N5