Abstract:
A computer-readable recording medium stores a method of modifying and masking output events of bi-directional signals specified in an event-format test pattern file for a semiconductor integrated circuit, wherein the process of masking and modifying output events does not require any manual operation.

Description:
BACKGROUND OF THE INVENTION 
     1. Field of the Invention 
     The present invention generally relates to integrated circuit computer aided design (CAD) software tools. Specifically, the invention describes a method, which is implemented in software, of modifying or masking output events of bi-directional signals in event-format test pattern files used in digital logic integrated circuit CAD environments. 
     2. Description of the Related Art 
     When digital microchips are tested, known signals are input to the chip, and the resulting output is compared with expected signals. If the output signals match the expected signals, then the chip is determined to be good. If not, then the chip is determined to be defective. The combination of input and output signal patterns are called test patterns. 
     Event-format test pattern files are known as a type of file for recording signal patterns for the testing of digital logic integrated circuits. In event-format files, signal patterns are described by statements which indicate the event time of signal transitions and the logic value which the signal transitions to. Event formats do not include statements which indicate a signal&#39;s logic value when no transitions occur. 
     Often, portions of the output signals are irrelevant to the test. That is, it doesn&#39;t matter what state those output signal portions are in, as they do not affect whether the chip is good or defective. These irrelevant portions of output signals then should be “masked”, or excluded from the test, so that they are not compared with expected values, because if they were not masked, the microchip could be determined to be defective when it is not. 
     The pertinent aspects of event file formats of concern in this invention are as follows. There must exist a main event-format file or set of files which include data for input signals, output signals, and internal directional control signals for bi-directional pins. There must exist a secondary event-format file or set of files which include the modified output values or masking information for output periods of bi-directional signals. There may exist other peripheral files which are used to determine correspondence of signals in the event files with actual pins on the chip if this information is not included in the files mentioned previously. There may also exist files which determine correspondence of the internal bi-directional control signal with the external bi-directional pins if this information is not included in the files mentioned previously. 
     It is sometimes required to modify or mask the output events of bi-directional signals in the main event-format file or files. Presently, modifications of output events in these event-format files are done by manually modifying the events in a file using a text editor. Since in many modern designs, most pins are bi-directional, and patterns can be up to hundreds of thousands of cycles long, this method is both time consuming and error prone. 
     SUMMARY OF THE INVENTION 
     Accordingly, an object of the present invention is to efficiently automate the modification and masking of output events of event-format files in order to reduce the manual work load, reduce the overall time to accomplish the task, and to reduce the chance of human error. 
     Another and more specific object of the present invention is to provide a computer-readable recording medium storing a method of masking or modifying output events of bi-directional signals in an event-format test pattern file, whereby the aforementioned objectives are achieved. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     Other objects and further features of the present invention will be apparent from the following detailed description when read in conjunction with the accompanying drawings, in which: 
     FIG. 1 shows an example of a SIMOUT file to which the present invention is applied; 
     FIG. 2 is a timing chart showing signal patterns described in the SIMOUT file shown in FIG. 1; 
     FIG. 3 shows an example of an MEFO file; 
     FIG. 4 is a waveform chart derived from the MEFO file shown in FIG. 3; 
     FIG. 5 shows a SIGNALPARA file used in the example described; 
     FIG. 6 is a flowchart of the operation of the masking and modification bi-directional signals in a SIMOUT file according to the embodiment; 
     FIG. 7 shows a data structure obtained as a result of executing step ST 1  of the flowchart of FIG. 6; 
     FIG. 8 shows results of step ST 2  shown in FIG. 6; 
     FIG. 9 shows a data structure obtained as a result of executing step ST 3  shown in FIG. 6; 
     FIG. 10 shows a body of data contained in a modified SIMOUT file according to the embodiment; 
     FIG. 11 shows a waveform chart derived from the modified SIMOUT file having the data structure shown in FIG. 10; and 
     FIG. 12 shows the modified SIMOUT file having the data structure shown in FIG.  10 . 
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT 
     Mitsubishi Event Format (MEF) files contain all the relevant parts for this invention and will be used as a concrete example to explain this embodiment. MEF is an event-format proprietary (that is, designed to be used specifically with Mitsubishi CoreCAD software tools) computer file format for recording signal test patterns for ASIC evaluation and testing. SIMOUT files are MEF files created from logic simulation and includes data for input signals, output signals, and internal direction control signals for bi-directional pins. When logic simulations are executed, for example, in the Mitsubishi CoreCAD system, a resulting SIMOUT file is generated which includes the results of the simulation. These SIMOUT files are MEF files with data for input signals, output signals, and internal direction control signals for bi-directional pins. An example of a SIMOUT MEF file which will be used to explain the present invention is shown in FIG.  1 . 
     Reference numeral  10  indicates the header section of the MEF file which includes information for various characteristics of the test pattern file. A section indicated by reference numeral  20  lists signal names against associated signal numbers and signal types as follows. 
     
       
         
               
               
               
               
             
           
               
                   
                   
               
               
                   
                 SIGNAL NAME 
                 SIGNAL 
                 SIGNAL TYPE 
               
               
                   
                   
               
             
             
               
                   
                 CLOCK 
                 0 
                 (4) = input 
               
               
                   
                 RESET 
                 1 
                 (4) 
               
               
                   
                 OUTPUT_0 
                 2 
                 (22) = output 
               
               
                   
                 BIDIR_0 
                 3 
                 (0) = bi-directional 
               
               
                   
                 BIDIR_1 
                 4 
                 (0) 
               
               
                   
                 BIDIR_2 
                 5 
                 (0) 
               
               
                   
                 CONTROL_0 
                 6 
                 (2) = control 
               
               
                   
                 CONTROL_1 
                 7 
                 (2) 
               
               
                   
                 CONTROL_2 
                 8 
                 (2) 
               
               
                   
                   
               
             
          
         
       
     
     Reference numeral  30  indicates the lines where numbers are assigned to each possible state. In FIG. 1 “0” is assigned to the low state, “1” assigned to the high state, “2” assigned to an unknown or mask state X, and “3” assigned to the high impedance state z. Reference numeral  40  indicates the events block which defines the state of each signal at a given simulation time. Each line in this block includes an event time in simulation time units (usually 1 ps or 10 ps), an example of which is indicated by the section  50 , and pairs of signal number and state which identify signal transitions, an example of which is shown by the section  60 . The signal pattern described by the SIMOUT file in FIG. 1 is shown in FIG.  2 . 
     It is sometimes required that certain output signals of bi-directional pins be modified at certain cycles in this SIMOUT file. Another task sometimes required is the masking of bi-directional pin output signals in order that irrelevant comparison errors will not cause a chip to be unnecessarily determined defective during a shipment test. Previous CAD tools do not offer features to accomplish the masking or modification procedures. The conventional solution has been to manually modify the SIMOUT file by hand and replace the appropriate events in the SIMOUT file with a masking state or another desired state. In modern designs with hundreds of bi-directional pins, and test patterns with possibly thousands of cycles, this can become a very time consuming task. 
     This example will use existing files generated by the CoreCAD design environment to reduce the time necessary to carry out the masking or modification of output patterns in bi-directional signals of a SIMOUT file. A method to modify the SIMOUT file with a user defined expected pattern, and a method to mask unwanted bi-directional output signals are described by this invention. 
     The files used by this invention include a MEF SIMOUT FILE which is shown in FIG.  1  and described above, an MEF MEFO expected pattern file which is a user created/modified file that contains expected output values and masking information only; and a SIGNALPARA file which is generated by the CoreCAD system and includes design specific information for pin names and internal direction control signals for bi-directional pins. Note that the MEFO file is not required by this invention if all bi-directional output signals are to be masked. However, for selective masking and signal substitution it is required. 
     An example MEPO file  120  is shown in FIG.  3 . Note that the MEFO file is similar to the SIMOUT file shown in FIG. 1, except that only output and bi-directional pin signals are included and signals which are to be masked are described by assigning the expected output signal to an unknown or “X” state for the entire duration of the test pattern block. FIG. 4 shows the wave diagram of the MEFO file in FIG.  3 . Note that the signals “OUTPUT_ 0 ” and “BIDIR_ 2 ” are assigned the unknown state and are selectively masked. 
     FIG. 5 shows a SIGNALPARA file  110  for this example. A section  51  shows the input buffer type, followed by the names of the pins which are assigned input buffers. A section  52  shows the output buffer type, followed by the name of the pin which is assigned an output buffer. A section  53  shows the bi-directional buffer type followed by the pin names assigned to the bi-directional buffers. A section  54  shows the corresponding control signals names for the pins of the section  53 . Note that the signal names appearing in the section  54  correspond in sequential order with the pins of the section  53 . For example, “CONTROL_ 0 ” corresponds to “BIDIR_ 0 ”, “CONTROL_ 1 ” corresponds to “BIDIR_ 1 ” and so on. 
     The method by which the intended task of masking or modifying bi-directional signals in SIMOUT files is described in the numbered steps below and summarized by the flow chart in FIG.  6 . In FIG. 6, where two parallel series of steps exist, the left series is provided for modifying signals and the right series is provided for masking. 
     Referring to FIG. 6, step ST 1  is performed to scan the SIGNALPARA file and store bi-directional pin names and control signal names into memory. The data structure can be an array or linked list, and which control signal corresponds to which data signal should be clearly identified. Once step ST 1  has been performed on the SIGNALPARA file shown in FIG. 5, the resulting contents of the data structure is as shown in FIG.  7 . 
     In the case of signal modification, step ST 2  is performed to scan through the SIMOUT file and the MEFO file headers to match up signal names found in the step ST 1  with signal numbers specific to the MEF files (SIMOUT file and the MEFO file). These signal numbers are stored in a memory in a data structure such as an array or linked list. The data structure resulting from the step ST 2  performed on the files shown in FIGS. 1 and 3 is shown in FIG.  8 . Each of the signal names found in the SIGNALPARA file is associated with two sets of data having respective data structures (the “SIMOUT signal name” structure, and the “MEFO signal name” structure). In the case that all bi-directional output signals are to be masked, an MEFO file is not required, and only the SIMOUT signal numbers have to be identified (steps ST 21  and ST 31 ). 
     Step ST 3  is performed to create an event data structure in a memory for collecting events and event time from the SIMOUT file and the MEFO file. A linked list of some sort is usually the most appropriate data structure to use in this case. Usually, a separate list is required for each signal and each element in the linked list will hold the event time as a string and the event as an integer. In the case of signal modification, the resulting contents of the event data structure is as shown in FIG.  9 . The MEFO signals will not appear in the case of global signal masking. 
     Step ST 4  is then performed to choose, from the data collected in step  2 , a bi-directional/control signal pair which has not yet been operated on. The selected bi-directional signal then becomes the current signal to be operated on in steps  5  to  11  described below. Step ST 4  will be reiterated for each bi-directional/control signal pair before the procedure is complete. 
     Step ST 5  is then performed to scan the events of a selected control signal in the chronological order. Step ST 5  is reiterated for each output event found for the selected control signal. In the first iteration, the scan starts with the first event recorded. For following iterations, step ST 5  starts where the last iterations left off. The scan continues until an output event is found. The output event time (that is, the start time of the output mode cycle) is then stored and the scan continues until the next input event or the end of the output mode cycle is found. In the example described herein, it is assumed that a bi-directional buffer is in an output mode when the control signal, specifying the direction of the data on the bi-directional signal pin, is high. In other words, it is assumed that output events occur when the control signal is high. For example, referring to FIG. 9, all the control signals have an event to “1” (output) at event time  3010  and an event to “0” at event time  7010 . Thus, in the file shown in FIG. 1, step ST 5  would result in  3010  and  7010  being stored as the start of the output mode cycle and the end of the output mode cycle, respectively. 
     Step ST 6  is performed to delete all events of the bi-directional data signal associated with the control signal occurring in the output mode cycle determined in step  5 . For example, referring to FIG. 9, the output events of the signal SIMOUT BIDIR_ 2  at event time  4010  and at event time  5010  are deleted, and do not appear in FIG. 10 (to be described later). The final state of the bi-directional data signal before the control signal switches to the input mode again, is recorded in step ST 6  to be used in step ST 10  as described below. In this case, the state “0” of the signal SIMOUT DIR_ 2  at event time  5010  is recorded in step  6 . 
     Steps ST 7  and ST 8  only apply to the case where output events of bi-directional signals are modified or selectively masked. In the situation where all output events of the bi-directional pins are masked, steps  7  and  8  are skipped and step  9  (to be described below) is performed instead. 
     The purpose of step  7  is to scan the MEFO file to find the logic value of the bi-directional signal being operated on when the signal switches to the output mode at the event time found in step  5 . To accomplish this, the MEFO file events of the bi-directional signal being operated on are scanned chronologically. Whenever an event is found, the event time of that event is compared with the start of the output mode cycle determined in step  5 . If the event time from the MEFO file is equal to the event time (start of the output mode cycle) from step  5 , then the logic value of the event is recorded and the procedure continues to step  8 . If the event time from the MEFO file is later than the event time from step  5 , or the end of the MEFO file is reached, then the procedure continues to step  8  without recording the event value. If the event time from the MEFO file is earlier than the event time from step  5 , then the event value is recorded and the scan of events in the MEFO file continues. 
     Step ST 8  is performed to copy the events of the signal being operated on from the MEFO data to the SIMOUT data. First, the SIMOUT data at the start of the output mode cycle found in step  5  is rewritten to the last event recorded in step  7 . Then chronologically, events from the MEFO data for the signal being operated on are copied to the SIMOUT data until the event time in the MEFO data equals or surpasses the end of the output mode cycle determined in step  5 . 
     Step ST 9  applies only to the case of masking all signals. In this case a mask state (mask event) is assigned to the current SIMOUT data occurring at the start of the output mode cycle determined in step  5 . 
     Step ST 10  is required for both masking and modifying procedures. Here, the last event found in step  6  is written to the SIMOUT data occurring at the end of the output mode cycle determined in step  5 . 
     Step ST 11  is to determine if the test vector event time has ended. If not, the method returns to step  5  again to search for the next output period in the current bi-directional signal. If the test vector event time has ended the method proceeds to step  12 . 
     Step ST 12  is to determine if there are any bi-directional signals left which have not been operated on and if so to repeat steps  4  to  11 . Once there are no more bi-directional signals left to operate on, the method proceeds to the final step. 
     Step ST 13  is to write the modified SIMOUT information to an output file. FIG. 10 shows the final data for the modified SIMOUT file of this example and FIG. 11 shows the corresponding wave pattern. Note that, in this example, selective masks have been inserted into the output SIMOUT file by using the replace events method. More specifically, referring to FIG. 10, the mask state have been inserted for the SIMOUT BIDIR_ 2  signal at event time  3010  and the mask continues until event time  7010  when the CONTROL_ 2  signal makes the SIMOUT BIDIR_ 2  signal an input signal. The signal patterns of SIMOUT BIDIR_ 0  and SIMOUT BIDIR_ 1  have been modified to match MEFO BIDIR_ 0  and MEFO BIDIR_ 1  during the output period between event time  3010  and  7010 . 
     FIG. 12 shows the actual new SIMOUT file which is the result of the process described above. 
     The present invention is not limited to the above-described embodiments, and variations and modifications may be made without departing from the scope of the present invention.