Abstract:
The links and chains (LNC) of this invention is an applications verification and validation (AVV) methodology. LNC is a hierarchical and systematic approach emphasizing conservation and reuse of effort expended. LNC creates objective metrics for validation. This invention ensures that the device will work in a system environment. LNC is an independent and complementary validation of the design before committing release to tape-out. The chip support library (CSL) and diagnostics used by LNC are natural outputs of the validation and are thus gating items to tape-out release. This ensures a fully tested device.

Description:
TECHNICAL FIELD OF THE INVENTION 
       [0001]    The technical field of this invention is circuit design for verification and validation. 
       BACKGROUND OF THE INVENTION 
       [0002]    With increased levels of integration in silicon devices, it is now possible to have several central processing unit (CPU) cores, peripherals and memory subsystems in a single integrated device. These devices are called systems on a chip (SoC). Due to the complexity of the architecture and the device, it is not possible for the silicon designers to verify and validate the device without knowledge of the end application. The impact of not having a first-pass functional device can be extremely costly. 
         [0003]    These costs include: the cost of processed wafers; the turnaround time in identifying a bug; the work in releasing a new silicon sample; and lost customer opportunities due to short time windows. Thus completing both verification and validation on the device before it has been committed to tape-out is mandatory. 
         [0004]    Verification determines if the system being built matches the specifications by comparing system results to a model of correctness. Coverage-driven verification ensures the functional requirements of the specification are correct and the behavior described is complete and consistent. 
         [0005]    Validation determines if the system being built is what is desired by comparing system results to end-customer requirements. Validation exerts influence over both the beginning and the end of the design cycle. Initially high level system models are validated. Later hardware accelerators are validated ensuring that the right system is being built. 
         [0006]    The goals of any satisfactory verification and validation (V&amp;V) are: a first pass functional device; the device works in the system for which it was developed; customer focus on value added work building on device capabilities and support software; not only composite device modules but also interactions between the modules under stress (maximum usage conditions) are validated. 
         [0007]    Verification and validation has developed substantially since early work on general purpose processor devices.  FIG. 1  illustrates an example of a conventional audio-video processor device. Central processing unit (CPU)  100  interfaces directly with program cache memory and data cache memory. Major blocks of the audio-video processor interface through switch fabric communication device  111 . These blocks: include central processing unit  100 ; DSP co-processor  110 ; image processor  123 ; video port  101 ; memory interface  112 ; and peripheral interface  114 . Each major block of the audio-video processor device of  FIG. 1  is a megacell and each block separately receives conventional verification and validation. Blocks external to the audio-video processor include: image sensor  103 ; TV unit  104 ; liquid crystal display (LCD)  105 ; SD card  130 ; and audio codec  131 .  FIG. 1  also illustrates video port buffers  102 , image processor DMA  124  and image buffer unit  125 . 
         [0008]      FIG. 2  illustrates a flow chart of a conventional verification and validation on the audio-video processor device of  FIG. 1 . Step  201  defines test matrices. These test matrices detail in table form all of the combinations of test conditions and input signals valid for each megacell simulation. Step  202  develops test cases to be covered by the megacell simulations for these test matrices. Step  203  simulates a RTL model for each megacell. Step  204  simulates a gate level model for each megacell. 
         [0009]    Step  205  develops a gate level model for the entire chip by compiling the gate level models of the magacells. Step  206  develops test patterns for the entire chip. Step  207  simulates an RTL model of the entire chip in parallel with step  208  which simulates a gate level model of the entire chip. Step  209  compare results of the gate-level model simulation of step  207  and the RTL model simulation or  208 . Step  210  fixes bugs identified by comparison  209 . 
       SUMMARY OF THE INVENTION 
       [0010]    The links and chains (LNC) of this invention is an applications verification and validation (AVV) methodology. LNC is a hierarchical and systematic approach emphasizing conservation and reuse of effort expended. LNC creates objective metrics for validation. This invention ensures that the device will work in a system environment. LNC is an independent and complementary validation of the design before committing release to tape-out. The chip support library (CSL) and diagnostics used by LNC are natural outputs of the validation and are thus gating items to tape-out release. This ensures a fully tested device. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0011]    These and other aspects of this invention are illustrated in the drawings, in which: 
           [0012]      FIG. 1  illustrates a conventional processor block diagram (Prior Art); 
           [0013]      FIG. 2  illustrates the flow chart of verification and validation flow on a conventional processor device (Prior Art); 
           [0014]      FIG. 3  illustrates the elements of the links and chains methodology of this invention applied to a simple portable audio player; 
           [0015]      FIG. 4  illustrates the flow chart of verification and validation flow using the links and chains methods of this invention; 
           [0016]      FIG. 5  illustrates data paths making up the movie capture links and chains for the audio-video processor device of  FIG. 1 ; and 
           [0017]      FIG. 6  illustrates the data paths making up the movie playback links and chains for the audio-video processor device of  FIG. 1 . 
       
    
    
     DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS 
       [0018]    The links and chains (LNC) of this invention are built on a hierarchy of test cases. These various test cases are building blocks that can be used to build more complex and complicated test scenarios without having to invest additional time in writing new code. Hierarchies of the tests include: module tests; links; chains; concurrent chains; nets; applets; transaction-oriented placebo; and applications. Thin invention blends a bottom-up approach and a top-down approach to identify, create and reuse test cases and associated software for testing. 
         [0019]    The bottom-up approach views the architecture of the device and the various modules, building a set of test cases for the modules and for all paths between modules supported by hardware architecture. This often grows into a large set of test cases that might not be practical to verify them at a pre-silicon stage. Simulations are not fast enough or the verification platforms including such hardware simulators as Quickturn. Such simulations are accurate but not fast enough and are cumbersome to use. 
         [0020]    Taking a top-down view of the application for which the device is targeted reduces the scope of test coverage and is the best approach is to take. This top-down view identifies those paths and modules most relevant and verifies them thoroughly. This enhances time to market by reducing the time for verification. The top-down approach also reveals the most important transactions between modules and the paths between them. The bottom-up and top-down blend to verify when the links defined in verifying the modules are reused in concurrent chains derived from the application. 
         [0021]    The two most basic elements of the LNC methodology may be defined as follows: 
         [0022]    A link is a transaction path traversed between two operational modules in a particular application scenario. An atomic link is the smallest link and is the base building block. A link is self-sufficient and used to build more complicated tests. 
         [0023]    A chain is a more complex transaction path made up of two or more links. For example, one chain might be formed from four elements: the links between a peripheral device and memory; the CPU operating on this data; the CPU storing the data in synchronous dynamic random access memory (SDRAM); and the path between the SDRAM the peripheral device. 
         [0024]    A concurrent chain is a more detailed representation of the application. A concurrent chain includes several chains executing in parallel. The data traffic generated by Concurrent Chains is normally more than or equal to what the actual end application would do. 
         [0025]    A net is a complex concurrent chain used in architecture analysis of the device. The data traffic generated by a net is typically more than what an application would generate. 
         [0026]    An applet is a small independent application. An applet can be a module, an algorithm or snippets of code that form an integral part of the end application. Some examples of applets are: an MP3 decoder; an echo cancellation operation; and an MPEG4 encoder. 
         [0027]    A transaction oriented placebo (TOP) looks and performs exactly like an end application and has the same kind of data traffic. TOPs concentrate on the interactions between modules which are similar to what would exist within the device when running the application. A typical example is when packet pushers receive voice from one peripheral function and place it on the network. 
         [0028]      FIG. 3  illustrates the elements of links and chains methodology applied to a simple portable audio player.  FIG. 3  illustrates applets  301  used to load the MP3 and WMA decoder from a direct MP3 or WMA source or alternately from a PC via USB link using LCD display and keyboard input.  FIG. 3  illustrates playback mode including transactions involving concurrent chains  302  (playback mode) and  303  (download songs from PC), and simple chains  304  (audio playback),  305  (LCD display update),  306  (keyboard scan and response) and  307  (PC link to memory write).  FIG. 3  illustrates additional audio playback features utilize links  308  (memory card read) and  309  (output to headphones). 
         [0029]      FIG. 4  illustrates a flow chart of verification and validation flow using the links and chains of this invention. Step  401  beings the flow with a requirements definition document. This requirements definition document specifies goals that must be met by device including silicon and software. Step  401  leads to step  402  creation of a hardware architecture for a system on chip (SoC) specification and step  403  creation of a software architecture specification for software applications to run on the system on chip (SoC). 
         [0030]    Step  404  compiles test matrices and test plan documents for applications verification and validation (AVV) containing a description of the tests that will be performed. This includes: module level tests; links definition; chains definition; concurrent chains; and throughput nets definition. The content of block  404  comprehends both the S/W application software and the system on chip embedded software as shown by handshaking elements  416  and  417 . 
         [0031]    Step  405  implements design, verification and layout of the SoC. This proceeds in parallel with the AVV flow of steps  407  through  409 . Step  406  develops chip support libraries. Step  410  develops the platform support package (PSP) containing drivers forming an integral part of the software. Step  407  develops the test cases defined in step  404 . Step  408  tests the links on the verification platform which is generally a hardware simulator such as Quickturn. Step  409  integrates concurrent chain processing with the chains used. 
         [0032]    Step  411  determines if the chains and concurrent chains from step  409  pass mandatory tests. If the chains and concurrent chains do not pass (No at step  411 ), then processing returns to step  405 . Step  405  re-implements design, verification and layout of the SoC. The resultant new design is again subject to the mandatory test pass of step  411 . If the chains and concurrent chains do pass (Yes at step  411 ), then processing advances to step  413 . 
         [0033]    The module test matrix defined in step  404  is a suite of tests that exercise all the modes of a particular module or mega-module. These tests will cover all the possible modes in which the module can be used. Step  412  verifies concurrent chains from step  409  on a hardware accelerator such as Quickturn (QT) and a verification test bench (VTB). Step  413  fabricates the SOCs (Fab) and provides production engineering tests (PE). Step  414  performs complete silicon tests. Step  415  delivers the fabricates SOCs and platform support package to the customer. Step  420  delivers the platform support package, diagnostic code and verification test bench to the customer. 
         [0034]    The application hierarchy is the final software that will run on the device. This is delivered to the customer as the last part of solution to the problem of the application. Alternatively, the customer may write the software required by the device. Assuming that the module has been tested, the links are built. For the module every possible mode of operation is tested. Links target testing the module in modes that are relevant to the application. 
         [0035]    All the tests are built on the chip support library (CSL) of step  406 . The chip support library is a natural output of the verification. This ensures portability of the test cases across devices. Further, this ensures that if the same module is used in different devices it is not necessary to create a whole new set of test cases for the new device. 
         [0036]    There are four types of views needed to identify the links and chains. These are: CPU-centric tests; source-Sink centric tests; bridge-centric tests; and bus-centric tests. CPU centric tests include all transaction paths and modules that can be reached by the CPU. For example, CPU-centric tests include memory read/writes from/to the CPU core. Source-sink tests identify all modules that can be accessed within the device from a peripheral source. Bridge-centric tests identify all the possible paths to and from the switch fabric communication device  111 . 
         [0037]      FIG. 5  illustrates the links and chains included in a movie capture operation of the audio-video processor device of  FIG. 1 . Table 1 lists the individual data path descriptions forming chains in capture. 
         [0000]    
       
         
               
               
             
           
               
                 TABLE 1 
               
               
                   
               
               
                 Chains 
                 Description 
               
               
                   
               
             
             
               
                 531 
                 Raw data from image sensor is processed through 
               
               
                   
                 capture/preview engine to generate image data in 
               
               
                   
                 external memory. 
               
               
                 532 
                 Video back end transfers image data from external 
               
               
                   
                 memory to TV through digital to analog converter 
               
               
                   
                 (DAC). 
               
               
                 533 
                 Video back end transfers image data from external 
               
               
                   
                 memory to LCD. 
               
               
                 534 
                 Image processing block DMA transfers image data 
               
               
                   
                 from external memory to image buffer. 
               
               
                 535 
                 Image processing block DMA transfers encoded video 
               
               
                   
                 bitstream from image buffer to external memory. 
               
               
                 536 
                 Raw data from audio CODEC is transferred through 
               
               
                   
                 peripheral interface to DSP co-processor cache 
               
               
                   
                 memory. 
               
               
                 537 
                 Encoded audio bitstream is transferred from DSP 
               
               
                   
                 co-processor cache memory to external memory. 
               
               
                 538 
                 Encoded movie is transferred from external memory 
               
               
                   
                 to SD card. 
               
               
                   
               
             
          
         
       
     
         [0038]      FIG. 6  illustrates the links and chains included in a movie playback operation of the audio-video processor device of  FIG. 1 . Table 2 lists the individual data path descriptions forming chains in playback. 
         [0000]    
       
         
               
               
             
           
               
                 TABLE 2 
               
               
                   
               
               
                 Chains 
                 Description 
               
               
                   
               
             
             
               
                 631 
                 Encoded movie is transferred from SD card to 
               
               
                   
                 external memory. 
               
               
                 632 
                 Image processing block DMA transfers video 
               
               
                   
                 bitstream from external memory to image buffer. 
               
               
                 633 
                 Image processing block DMA transfers decoded 
               
               
                   
                 image from image buffer to external memory. 
               
               
                 634 
                 Audio bitstream is transferred from external 
               
               
                   
                 memory to DSP co-processor cache memory. 
               
               
                 635 
                 Decoded audio data is transferred from DSP 
               
               
                   
                 co-processor cache memory to audio CODEC through 
               
               
                   
                 peripheral interface. 
               
               
                 636 
                 Video back end transfers image data from external 
               
               
                   
                 memory to TV through digital to analog converter 
               
               
                   
                 (DAC). 
               
               
                 637 
                 Video back end transfers image data from external 
               
               
                   
                 memory to LCD.