Abstract:
Provided is a system and method including a number of routers structured and arranged to route one or more video sources to any of one or more destinations. Each of the number of routers including a plurality of input and output ports and each input port being connectable to any one or more of corresponding output ports via data-paths. The datapaths are connectable to a corresponding one of the one or more destinations. The apparatus includes a testing output port selectably connectable to any of the one or more output data-paths. The testing output port is configured to connect a selected one of the one or more data-paths to a data collection device. The testing output port is configured to facilitate analysis of at least one from the group including (a) one or more of the data paths and (b) one or more of the video sources associated with the selected data-path.

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS  
       [0001]     This application claims the benefit of U.S. Provisional Application No. 60/495,125, filed Aug. 15, 2003, which is incorporated herein by reference. 
     
    
     BACKGROUND OF THE INVENTION  
       [0002]     1. Field of the Invention  
         [0003]     The present invention generally relates to performing CRC analysis in integrated circuit (IC) test environments.  
         [0004]     2. Related Art  
         [0005]     CRC check sum checking is a very useful tool for analyzing the integrity of video data associated with modern video networking systems. Within video test environments, CRC modules are provided along video data paths to collect incoming video pixel data in support of CRC check sum analysis. During IC chip design, for example, aggregation can be accomplished and then compared with the associated CRC check sums. CRC analysis can also be used for bench testing after the IC chips have completed the design phase. CRC check sum analysis can also be used prior to software release, for example, during software regression testing to insure the validity of transmitted data fields.  
         [0006]     Many separate CRC modules are required to accommodate conventional CRC analysis of video data fields. For example, a separate CRC module is required for each internal data path and each associated video component within a system under test. Including numerous CRC modules to support testing can be costly and can consume significant amounts of an IC chip&#39;s surface area.  
         [0007]     Therefore, what is needed is a mechanism to facilitate the use of a CRC module for performing CRC analysis in video networking systems having multiple paths and multiple components.  
       BRIEF SUMMARY OF THE INVENTION  
       [0008]     Consistent with the principles of the present invention as embodied and broadly described herein, an embodiment of the present invention includes an apparatus for testing data paths and/or video sources on an integrated circuit. The apparatus includes a number of switches configured to switch one or more video sources to one or more destinations, each of the number of switches including a plurality of input and output ports. Each input port is connectable to one or more of the output ports via data-paths.  
         [0009]     A testing output port is selectably connected to one or more of the data-paths and a controller is coupled to at least one of the switches and configured for selectably connecting the testing output port. The testing output port is configured to (i) connect a selected one of the data-paths to a data collection device and (ii) permit analysis of at least one from the group including (a) one or more of the data paths and (b) one or more of the video sources, via the selected data-path.  
         [0010]     Further features and advantages of the present invention, as well as the structure and operation of various embodiments of the present invention are described in detail below with reference to the accompanying drawings. 
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS AND FIGURES  
       [0011]     The accompanying drawings, which are incorporated in and constitute part of the specification, illustrate embodiments of the invention and, together with the general description given above and detailed description given below, serve to explain the principles of the invention. In the drawings:  
         [0012]      FIG. 1  is a block diagram illustration of an apparatus structured and arranged in accordance with an embodiment of the present invention;  
         [0013]      FIG. 2  is a block diagram illustration of an exemplary video network used in the illustration of  FIG. 2 ; and  
         [0014]      FIG. 3  is a block diagram of an exemplary computer system on which the present invention can be practiced. 
     
    
     DETAILED DESCRIPTION OF THE INVENTION  
       [0015]     The following detailed description of the present invention refers to the accompanying drawings that illustrate exemplary embodiments consistent with this invention. Other embodiments are possible, and modifications may be made to the embodiments within the spirit and scope of the invention. Therefore, the following detailed description is not meant to limit the invention. Rather, the scope of the invention is defined by the impending claims.  
         [0016]     It would be apparent to one skilled in the art that the present invention, as described below, may be implemented in many different embodiments of hardware, software, firmware, and/or the entities illustrated in the figures. The actual software code with the specialized control hardware to implement the present invention is not limiting of the present invention. Thus, the operation and behavior of the present invention will be described with the understanding that modifications and variations of the embodiments are possible, given the level of detail presented herein.  
         [0017]      FIG. 1  is an illustration of an exemplary video network device  100  constructed and arranged in accordance with an embodiment of the present invention. In  FIG. 1 , the video network device  100  includes switching devices  102  and  104 . The switching devices  102  and  104  can include, for example, cross-bar switches, video routers, multiplexers, or other similar hardware. The switching devices  102  and  104  route one or more input video sources to one or more output destinations. The switching devices  102  and  104  are interconnected through data lines  105  and  106 .  
         [0018]     For purposes of illustration, the video networking device  102  is connected to input video sources  107 ,  108 , and  110 . The video sources  107  can include, for example, moving picture experts group (MPEG) feeders. The video sources  108  can include, for example, video feeders. Video sources  110  can include analog video input source devices.  
         [0019]     Video source devices  112 , such as 3D scalers, are provided for processing video data transferred between the video switching devices  102  and  104 .  
         [0020]     The video switching device  104  is shown connected to output devices  114  and  116 , which can include video capture engines. The output devices  116  can include, for example, video compositors which can be used for image editing applications. An exemplary video encoder  118  is connected to outputs to the compositors  116  via connecting lines  119  for providing encoded video data to output source devices  120 , such as televisions. The video switching devices  102  and  104  are implemented to route one or more of the video sources  107 ,  108 , and  110  such as video playback, digital video or analog video, to one or more of output destinations  114 ,  116 , and/or  120 .  
         [0021]     A dynamically configurable output path  122  is included as an output data path from the networking device  104 . The output data path  122  can in-turn be connected to a CRC module, or data collection device. In the exemplary embodiment of  FIG. 1 , the output path  122  is configured as a dedicated CRC output data path. The output data path  122  can be programmed to monitor any of the video sources  107 ,  108 , and  110  and any of the destination devices  114 ,  116 , and  120  without interrupting normal operations.  
         [0022]     A CRC module (not illustrated in  FIG. 1 ) connected to the CRC output data path  122  can facilitate CRC checksum checking of pixels transmitted along one or more data paths internal to either of the switches  102  and  104 , as well as the paths  105  and  106 . The CRC output data path  122  also facilitates CRC checksum testing of any of the internal states of components coupled to either of the switches  102  and  104  and/or along the paths  105  and  106 .  
         [0023]     CRC modules can be programmed to capture CRC data, such as pixel value check sums, for check sum data analysis. In the present invention, as noted above, the CRC output data path  122  can be programmed for connection to any input source device (e.g  107 ,  108 , and/or  110 ) or one or more internal data paths associated with the video network devices  102  and  104 . A controller  124  is coupled to the video network device  104  and configured for controlling the output data path  122 . A more detailed illustration of the exemplary network device  104  and the CRC output data path  122  are illustrated in  FIG. 2 .  
         [0024]      FIG. 2 , the switching device  104 , for illustrative purposes, is shown to include the exemplary video source devices  112 . The video source devices  112  are connected via internal data paths  212 , within the switching device  104 , to output data ports  214 . The output data ports  214  can be connected, for example, to the destination devices  114  and  116 .  
         [0025]     Using turn-key hardware handshake techniques, such as the Broadcom corporation&#39;s Ready Accept™ protocol, the CRC output data path  122  can be connected across any of the internal data paths  212  or the video source devices  112 . Alternatively, the CRC output data path  122  can be configured to allow monitoring any of the output data ports  214  by, for example, a CRC module  216 .  
         [0026]     In this manner, one hardware CRC module can be connected to the output data path  122  and used to perform CRC check sum of any input video pixel. This technique provides CRC checking flexibility for application to one or more internal data paths through programming of the video switching device  104  and/or the switching device  102 . Thus, a user can apply CRC checking to one or more operational modes without impact to normal operation of the video network device  100 .  
         [0027]     As stated above, the present invention can be implemented in hardware, or as a combination of software and hardware. Consequently, the invention may be implemented in the environment of a computer system or other processing system. An example of such a computer system  300  is shown in  FIG. 3 .  
         [0028]     The computer system  300  includes one or more processors, such as a processor  304 . The processor  304  can be a special purpose or a general purpose digital signal processor. The processor  304  is connected to a communication infrastructure  306  (for example, a bus or network). Various software implementations are described in terms of this exemplary computer system. After reading this description, it will become apparent to a person skilled in the relevant art how to implement the invention using other computer systems and/or computer architectures.  
         [0029]     The computer system  300  also includes a main memory  308 , preferably random access memory (RAM), and may also include a secondary memory  310 . The secondary memory  310  may include, for example, a hard disk drive  312  and/or a removable storage drive  314 , representing a floppy disk drive, a magnetic tape drive, an optical disk drive, etc. The removable storage drive  314  reads from and/or writes to a removable storage unit  318  in a well known manner. The removable storage unit  318 , represents a floppy disk, magnetic tape, optical disk, etc. which is read by and written to by removable storage drive  314 . As will be appreciated, the removable storage unit  318  includes a computer usable storage medium having stored therein computer software and/or data.  
         [0030]     In alternative implementations, the secondary memory  310  may include other similar means for allowing computer programs or other instructions to be loaded into the computer system  300 . Such means may include, for example, a removable storage unit  322  and an interface  320 . Examples of such means may include a program cartridge and cartridge interface (such as that found in video game devices), a removable memory chip (such as an EPROM, or PROM) and associated socket, and the other removable storage units  322  and the interfaces  320  which allow software and data to be transferred from the removable storage unit  322  to the computer system  300 .  
         [0031]     The computer system  300  may also include a communications interface  324 . The communications interface  324  allows software and data to be transferred between the computer system  300  and external devices. Examples of the communications interface  324  may include a modem, a network interface (such as an Ethernet card), a communications port, a PCMCIA slot and card, etc. Software and data transferred via the communications interface  324  are in the form of signals  328  which may be electronic, electromagnetic, optical or other signals capable of being received by the communications interface  324 . These signals  328  are provided to the communications interface  324  via a communications path  326 . The communications path  326  carries the signals  328  and may be implemented using wire or cable, fiber optics, a phone line, a cellular phone link, an RF link and other communications channels.  
         [0032]     The communications path  326  can couple the communications interface  324  to an exemplary video system  330 . By way of example, the video system  330  can include a video processing module  332 , a graphics engine  334 , and an audio processing module  336 .  
         [0033]     In the present application, the terms “computer readable medium” and “computer usable medium” are used to generally refer to media such as the removable storage drive  314 , a hard disk installed in the hard disk drive  312 , and the signals  328 . These computer program products are means for providing software to the computer system  300 .  
         [0034]     Computer programs (also called computer control logic) are stored in the main memory  308  and/or the secondary memory  310 . Computer programs may also be received via the communications interface  324 . Such computer programs, when executed, enable the computer system  300  to implement the present invention as discussed herein.  
         [0035]     In particular, the computer programs, when executed, enable the processor  304  to implement the processes of the present invention. Accordingly, such computer programs represent controllers of the computer system  300 . By way of example, in the embodiments of the invention, the processes/methods performed by signal processing blocks of encoders and/or decoders can be performed by computer control logic. Where the invention is implemented using software, the software may be stored in a computer program product and loaded into the computer system  300  using the removable storage drive  314 , the hard drive  312  or the communications interface  324 .  
         [0036]     The present invention has been described above with the aid of functional building blocks illustrating the performance of specified functions and relationships thereof. The boundaries of these functional building blocks have been arbitrarily defined herein for the convenience of the description. Alternate boundaries can be defined so long as the specified functions and relationships thereof are appropriately performed.  
         [0037]     Any such alternate boundaries are thus within the scope and spirit of the claimed invention. One skilled in the art will recognize that these functional building blocks can be implemented by analog and/or digital circuits, discrete components, application specific integrated circuits, firmware, processor executing appropriate software and the like or any combination thereof. Thus, the breadth and scope of the present invention should not be limited by any of the above described exemplary embodiments but should be defined only in accordance with the following claims and their equivalence.