Title of Invention

A METHOD FOR VERIFYING TIMING RULES FOR LOGIC BLOCKS OF A CIRCUIT

Abstract METHOD AND APPARATUS POR VERIFYING TIMIKG RULES FOR AN INTEGRATED CIRCUIT DESIGN ABSTRACT OP THE DISCLOSURE An automated process for timing rule verification for an integrated circuit design is disclosed. The process includes the step of checking the generated timing rules by comparing a given timing rule against a synthesized model to determine timing relationships in the model that are not included in the timing rule and timing relationships in the timing rule that are not present in the model
Full Text

The present invention relates to a method for verifying timing rules for logic blocks of a circuit.
In the process of creating a large integrated circuit chip design, it is quite useful and customary to partition the logic into manageable pieces and to design hierarchically. This modularity maximizes reuse and simplifies the design. Some of the design pieces or blocks might be custom designed, while others could simply be synthesized ASIC (Application Specific Integratged Circuit) blocks. If the design is to be processed by a timing analysis tool, such as a static timing analyzer, there must at least be timing information for each of the lowest level building blocks of the design. Timing information about these blocks is presented to the timing analysis tool in the form of timing rules.
There currently exist static timing analysis tools, which are commonly made available by vendors of CAE stations and software, for timing analysis. Timing analysis is performed

by software which analyzes the timing relationships between logic state changes within a circuit and determines if certain timing criteria such as ninimiom setup and hold times have been violated. A static timing analyzer does not attempt to model the circuit as it would operate but rather attempts to analyze a circuit's temporal behavior.
Timing rules for custom design blocks are usually generated via automatic program (such as Pathmill by EPIC), by hand, or some combination of the two. The problem is that the process is error prone, since rule generation programs rely on determining circuit temporal behavior based on a sometimes faulty set of heuristics, and manual generation suffers from all the problems associated with human intervention. Therefore, the timing rule must be checked to be sure that all of the required timing relationships, such. as the correct propagation paths and setup and hold tests, exist in the rule, with no unnecessary additions. Results of missing timing relationships can be disastrous. Excess timing relationships cause additional problems. Checking many large, complicated rules by hand is not a reasonable option. Thus, what is needed is a computer implemented method for verifying timing rules for an integrated circuit design.

SDHHARY OF THE XNVENTXON
It is the object of the present invention to provide a method and apparatus for automatic verification of timing rules for an integrated circuit design. According to the invention, a method of designing an integrated circuit is provided which includes the steps of selecting a plurality of logic blocks to be included in a circuit, and carrying out a timing analysis on the circuit utilizing timing rules verified by 1) generating a timing rule for each of the plurality of logic blocks, and 2) checking the generated timing rules by comparing a timing rule associated with a particular logic block against a synthesized model of the particular logic block to determine timing relationships in the model that are not included in the particular timing rule and timing relationships in the particular timing rule that are not present in the model.
The present invention also includes a computer implemented method implementing the method steps set forth above.
The present invention provides the advantage of a systematic and automatic verification of timing rules utilized in designing an integrated circuit.
The present invention provides the advantage of eliminating the errors caused by automatic program or hand checking or verification of timing rules.

Accordingly the present invention provides a method of verifying timing rules for logic blocks of a circuit, said method comprising: supplying logical requirements and timing constraints for said circuit; dividing said circuit into logic blocks using said logical requirements; separating said logic blocks into standard logic blocks and custom logic blocks; referencing a circuit library to retrieve standard timing rules for said standard logic blocks; generating custom timing rules for said custom logic blocks; synthesizing custom models for said custom logic blocks based on said logical requirements of a high-level design language and first timing rules with said circuit library, said first timing rules comprising known timing rules; comparing said model and second timing rules to verify said second timing rules; repeating said generating and said comparing until said customized timing rules have consistent timing relationships with said customized models; analyzing said circuit using said standard timing rules and said custom timing rules to produce a timing value for said circuit; comparing said timing value with said timing constraints; and repeating said dividing, separating, referencing, generating, synthesizing, comparing of said model and said second timing rules, repeating, analyzing and comparing of said timing value with said timing constraints until said timing value is within said timing constraint.
With reference to the accompanying drawings :
Fig. 1 is an information handling/computer system embodying the present invention;
Fig. 2 schematically depicts a representative set of cells or logic blocks utilized in designing an integrated circuit according to the present invention; and
Fig. 3 is a block diagram illustrating a method according to the present invention.

DETAILED DESCRIPTION OF A PREFERRED EMBODIMENT
OP THE INVENTION
A representative hardware environment for practicing the present invention is depicted in Fig. 1, which illustrates the typical hardware configuration of an information handling/computer system in accordance with the subject invention having at least one processor or central processing unit (CPU) 10. CPUs 10 are interconnected via system bus 12 to a random access memory (RAM) 14, read-only memory (ROM) 16, an input/output (I/O) adapter 18 for connecting peripheral devices such as disk units 20 and tape drives 40 to bus 12, user interface adapter 2 2 for connecting keyboard 24, mouse 26, speaker 28, microphone 32, and/or other user interface devices such as touch screen device (not shown) to bus 12, communication adapter 34 for connecting the information handling system to a data processing network, and display adapter 36 for connecting bus 12 to display device 38.
Figure 2 schematically depicts a set of logic cells or logic blocks 100, including exemplary logic block 112 for which it is desired to accurately verify the timing rule. Logic block 112 is a NAND block comprising a pair of input pins A, B and an output pin X. A driving block 114 is connected to the input side of block 112, and a driven block 116 is connected to the output side. Both the driving block 114 and the driven block 116 are inverters which have input pin A and output pin X. Blocks 100 and the particular type of block 112 are given by way of example only and are in no sense limiting; rather, the present methodology is designed to

provide accurate timing rule verification for any size and type of logic block, including blocks consisting of lower level building blocks.
In one aspect, the invention is embodied in a process for
designing and/or designing and fabricating integrated
circuits. The steps of this process are illustrated in the
Plow Chart of Figure 3. The design process begins with step
200. In step 210, a high level hierarchical integrated
circuit design is developed using a synthesizable high level
design language such as VHDL or VERILOG as standardized by
I.E.E.E. "Synthesizable" means being able to translate the
high level design language into logic gates or blocks using a
logic synthesizer. Next, in step 220, those logic blocks
which will be custom designed are selected or separated from
non-custom design blocks. "Custom" means currently unavailable
designs needed, for example, to increase speed of operation.
The custom logic blocks selected are passed to steps 230 and
24 0. It is to be understood that although the preferred
embodiment of the present invention is used for verifying
timing rules developed for a custom design, the method of the
present invention may also be used to verify the timing rules
of a non-customized and synthesizable section of the
hierarchical design, in which case step 240 need not be
performed and would be bypassed. It is also to be noted that
the present invention is not limited to developing or
designing a hierarchical design and may include verifying the
timing rules of a new design for a single block, such as an
AND gate. By way of example, the timing rules developed for
a newly designed AND gate may be compared against a

synthesized model of an AND gate having an associated circuit library with known good timing rules. In step 23 0, digital models of those logic blocks selected to be customized are generated. In other words, the high level design language for the blocks selected is translated into logic gates or blocks having an associated circuit library with known good timing rules. For example, a known good timing rule for a particular circuit block in a circuit library may consist of all possible propagation paths in a particular block, each setup and hold time test for the block, and specific values for setup, hold and delay times for the block. Now in step 240, low level designs (at the transistor level, for example) are developed for those logic blocks selected to be customized.
In step 250, a timing rule for a particular logic block from step 240 is generated using an automatic program such as Pathmi 11 by EPIC, by hand, or some combination of the two. Next, in step 260, the timing rule for the particular logic block from step 250 is compared to the temporal behavior of the synthesized model generated in step 230. It is preferred that in this step, timing values are not compared, but instead, propagation paths are compared as well as setup and hold tests. However, it is to be understood that timing values may be compared to verify a timing rule. if it is determined, in step 270, that the timing rule for the custom logic block is identical to the timing rule for the non-custom synthesized version of the logic block, i.e., all of the propagation paths, setup and hold timing tests match, then a static timing analysis of the individual custom logic block or any combination of the logic blocks is performed, in step 270,

to eventually check all possible timing implications/relationships through all circuit points. In step 270, a determination of the timing relationship, such as propagation paths or setup and hold timing tests in the model that are not included in the timing rule developed for the custom block and timing relationships in the timing rule for the custom block that are not present in the model is made. If a mismatch occurs, as determined in step 270, the low level design of the custom block performed in step 240 is modified if the design was faulty or the timing rule for the block generated in step 250 is modified. After modification, the timing rules are again compared in step 260 to determine if any mismatches are present. The timing rule for each custom block, generated in step 250, is compared to its corresponding model of the block generated in step 230 and modified, if necessary, in a similar fashion. The process is completed in step 290.
The method of the present invention is preferably implemented by a computer system, such as illustrated in Figure l, from a program storage device readable by the computer system. The program storage device tangibly embodies a program of instructions executed by the computer system to perform the process set forth above for verifying timing rules for an integrated circuit design. The program storage device could be RAM 14, ROM 16, disk units 20, tape drives 4o, floppy disks, hard disks, compact discs or the like.
Although the present invention and its advantages have been described in detail, it should be understood that various

changes, substitutions and alterations can be made herein without departing from the spirit or scope of the invention as defined in the appended claims.



WE CLAIM :
1. A method of verifying timing rules for logic blocks of a circuit said method comprising;
supplying logical requirements and timing constraints for said circuit;
dividing said circuit into logic blocks using said logical requirements;
separating said logic blocks into standard logic blocks and custom logic blocks;
referencing a circuit library to retrieve standard timing rules for said standard logic blocks;
generating custom timing rules for said custom logic blocks;
synthesizing custom models for said custom logic blocks based on said logical requirements of a high-level design language and first timing rules with said circuit library, said first timing rules comprising known timing rules;
comparing said model and second timing rules to verity said second timing rules;
repeating said generating and said comparing until said customized timing rules have consistent timing relationships with said customized models;
analyzing said circuit using said standard timing rules and said custom doming rules to produce a timing value for said circuit;

comparing said timing value with said timing constraints; and repeating said dividing, separating, referencing, generating, synthesizing, comparing of said model and said second timing rules, repeating, analyzing and comparing of said timing value with said timing constraints until said timing value is within said timing constraint.
2. The method as claimed in claim 1, wherein said timing relationships
comprise at least one of propagation paths, setup timing values and hold
timing values.
3. The method as claimed in claim 1, wherein said logic block comprises a
transistor-level element of said circuit.
4. The method as claimed in claim I, wherein said second timing rules comprise timing rules for custom logic blocks unique to said circuit.
5. The method in claim 1, wherein said generating custom timing rules comprises using at least one of an automated program and a manual method.
6. The method as claimed in claim 1 wherein if said comparing does not verify said second timing rules, supplying third timing rules and comparing said model and said third timing rules to verify said third timing rules.

7. A computer system for carrying out the method of verifying timing rules
for logic blocks of a circuit, as claimed in claims 1 to 6.
8. A method of verifying timing rules for logic blocks of a circuit,
substantially as hereinabove described and illustrated with reference to the
accompanying drawings.


Documents:

2083-mas-1997 abstract duplicate.pdf

2083-mas-1997 claims duplicate.pdf

2083-mas-1997 claims.pdf

2083-mas-1997 correspondence others.pdf

2083-mas-1997 correspondence po.pdf

2083-mas-1997 description (complete) duplicate.pdf

2083-mas-1997 description (complete).pdf

2083-mas-1997 drawings duplicate.pdf

2083-mas-1997 drawings.pdf

2083-mas-1997 form-19.pdf

2083-mas-1997 form-2.pdf

2083-mas-1997 form-26.pdf

2083-mas-1997 form-4.pdf

2083-mas-1997 form-6.pdf

2083-mas-1997 petition.pdf


Patent Number 200604
Indian Patent Application Number 2083/MAS/1997
PG Journal Number 30/2009
Publication Date 24-Jul-2009
Grant Date
Date of Filing 22-Sep-1997
Name of Patentee INTERNATIONAL BUSINESS MACHINE CORPORATION
Applicant Address ARMONK, NEW YORK 10504
Inventors:
# Inventor's Name Inventor's Address
1 PETER JAMES OSLER RR 1, BOX 345, JERICHO, VT 05465
2 TAD JEFFREY WILDER 639 ROUTE 2, SOUTH HERO, VT 05486
3 CHARLES BARRY WINN 59 MARBLE ISLAND ROAD, COLCHESTER, VT 05446
PCT International Classification Number G06F17/50
PCT International Application Number N/A
PCT International Filing date
PCT Conventions:
# PCT Application Number Date of Convention Priority Country
1 08/726,589 1996-10-07 U.S.A.