WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
Test ready compiler for design for test synthesis    
United States Patent5703789   
Link to this pagehttp://www.wikipatents.com/5703789.html
Inventor(s)Beausang; James (Mountain View, CA); Walker; Robert (Boulder, CO)
AbstractA computer implemented process and system for providing a test ready (TR) compiler with specific information regarding the impact of added scannable cells and resources on its mission mode design. In so doing, the TR compiler optimizes more effectively for added test resources (e.g., scannable cells and other scan routing resources) so that predetermined performance and design related constraints of the mission mode design are maintained. The TR compiler translates generic sequential cells into technology dependent non-scan cells. In the TR compiler, during replacement, scannable memory cells are used in place of these non-scan memory cells specified within the mission mode circuitry. In this way, the TR compiler is informed of the characteristics of the scannable memory cells during optimization. For test, the scannable memory cells are chained to each other to form chain chains of sequential cells. To account for chaining during compile, the TR compiler provides output driven loopback connections to simulate electrical characteristics of the chain during compile. In the above implementation, the TR compiler can efficiently provide translation of an HDL description with test implementations into a gate level netlist. With the addition of certain information regarding the test implementation (e.g., scan replacement is done and loopback connections are added), the TR compiler of the present invention can better optimize the overall layout for the addition of the test resources.
   














 Title Information Submit all comments and votes
 
Patent Text Patent PDF Print Page Summary File History
Plain text PDF images Print Summary File History
Drawing from US Patent 5703789
Test ready compiler for design for test synthesis - US Patent 5703789 Drawing
Test ready compiler for design for test synthesis
Inventor     Beausang; James (Mountain View, CA); Walker; Robert (Boulder, CO)
Owner/Assignee     Synopsys, Inc. (Mountain View, CA)
Patent assignment
All assignments
Publication Date     December 30, 1997
Application Number     08/581,187
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     December 29, 1995
US Classification     716/4 716/5
Int'l Classification     G06F 017/50
Examiner     Trans; Vincent N.
Assistant Examiner    
Attorney/Law Firm     Wagner, Murabito & Hao
Address
Parent Case    
Priority Data    
USPTO Field of Search     364/488 364/489 364/490 371/22.3 371/22.6 371/27
Patent Tags     test ready compiler design test synthesis
   
Enter a comma (,) or semicolon (;) between multiple tag words/phrases.
Describe this patent:
 Amusing   
 Clever   
 Complex   
 Efficient   
 Historic   
 Important   
 Innovative   
 Interesting   
 Practical   
 Simple   
[no votes]
Patent WIKI

Share information and news about this patent, including information and news about the technology, inventors, company, ligation and licensing.

 References Submit all comments and votes
 
*references marked with an asterisk below are user-added references
 U.S. References
 
Add a new US reference:  
ReferenceRelevancyCommentsReferenceRelevancyComments
5572712
Jamal
716/18
Nov,1996

[0 after 0 votes]
5550749
Dey
716/18
Aug,1996

[0 after 0 votes]
5522063
Ashar
716/4
May,1996

[0 after 0 votes]
5513118
Dey
716/18
Apr,1996

[0 after 0 votes]
5513123
Dey
716/4
Apr,1996

[0 after 0 votes]
5345393
Ueda
716/18
Sep,1994

[0 after 0 votes]
 Foreign References
 Other References
 Market Review Submit all comments and votes
   
Market Size
Estimate the gross annual revenues of the relevant market sector:
> $10B
$5B - $10B
$2B - $5B
$500M - $2B
$100M - $500M
$10M - $100M
$1M - $10M
$500K - $1M
$100K - $500K
< $100K
[No votes]
$0
 
$0   $2.5B   $5B   $7.5B   $10B
Market Share
Estimate the percentage of the relevant market sector this invention will capture:
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Reasonable Royalty
What percentage of gross sales should the inventor or assignee be paid?
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Public's "Guesstimation" of Royalty Value
Market SizeN/A[No votes]
xMarket ShareN/A[No votes]
xReasonable RoyaltyN/A[No votes]

N/A

License Availablity
If you are NOT the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
License Availablity
If you ARE the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
Competitive Advantage
Does this invention have a significant competitive advantage over similar technologies?
Yes

No



[No votes]
Most helpful competitive advantage comment
[No comments]

Commercial Alternatives
Are there viable commercial alternatives for this invention?
Yes

No



[No votes]
Most helpful commercial alternative comment
[No comments]

 Technical Review Submit all comments and votes
 Claims Submit all comments and votes
 


What is claimed is:

1. In a computer implemented synthesis system, a method of generating a netlist comprising the computer implemented steps of:

receiving an HDL specification representing a design to be realized in physical form and storing said HDL specification in a computer memory unit;

receiving constraints applicable to said design;

compiling said HDL specification with a compiler to produce a netlist description of said design wherein said netlist comprises functional logic blocks and connections there between including sequential cells and combinational logic, said step of compiling further comprising the steps of:

(i) replacing non-scan sequential cells specified in or inferred from said HDL specification with scannable sequential cells specially adapted to apply test vectors to combinational logic of said design; and

(ii) installing a loopback connection between an output and an input of each scannable sequential cell;

storing said netlist description into said computer memory unit, said netlist description including said scannable sequential cells and loopback connections associated with said scannable sequential cells.

2. A method as described in claim 1 wherein said non-scan sequential cells and said scannable sequential cells are level sensitive latches.

3. A method as described in claim 1 wherein said non-scan sequential cells are D flip-flops and wherein said scannable sequential cells are multiplexed input D flip-flops.

4. A method as described in claim 3 wherein said step of installing a loopback connection between an output and input of each scannable sequential cell installs a loopback connection between said output and a multiplexed scan-in input of each scannable sequential cell.

5. A method as described in claim 3 wherein said step of installing a loopback connection between an output and input of each scannable sequential cell installs a loopback connection between an inverse output and a multiplexed scan-in input of each scannable sequential cell.

6. A method as described in claim 1 wherein said step of replacing non-scan sequential cells with scannable sequential cells specially adapted to apply said test vectors comprises the steps of:

identifying a non-scan sequential cell for replacement, said non-scan sequential cell including combinational logic and further having a first identifier listing functions of said non-scan sequential cell;

scanning identifiers within a technology dependent library against said first identifier to locate an equivalent scatunable sequential cell having a second identifier including functions that match said functions of said non-scan sequential cell; and

replacing said non-scan sequential cell with said equivalent scannable sequential cell.

7. A method as described in claim 1 wherein said step of replacing non-scan sequential cells with scannable sequential cells specially adapted to apply said test vectors comprises the step of performing sequential mapping based scan equivalence.

8. A method as described in claim 1 wherein said constraints define design rule and performance limitations applicable to said design.

9. In a computer implemented synthesis system, a method of compiling an HDL specification having associated design rule and performance constraints, said method comprising the computer implemented steps of:

compiling said HDL specification to produce a netlist description of a circuit design wherein said netlist comprises functional logic blocks and connections there between, said step of compiling further comprising the steps of:

(i) replacing non-scan sequential cells with scannable sequential cells specially adapted to apply test vectors to combinational logic of said design, said scannable sequential cells being technology dependent;

(ii) installing a loopback connection between an output and an input of each scannable sequential cell to simulate a scan chain link; and

(iii) performing mapping optimization to modify results of said step of installing a loopback connection in an effort to satisfy said design rule and performance constraints; and

storing said netlist description into a memory unit of a computer system, said netlist description including said scannable sequential cells and said loopback connection of each scannable sequential cell.

10. A method as described in claim 9 wherein said non-scan sequential cells and said scannable sequential cells are level sensitive latches.

11. A method as described in claim 9 wherein said non-scan sequential cells are D flip-flops and wherein said scannable sequential cells are multiplexed input D flip-flops.

12. A method as described in claim 11 wherein said step of instailing a loopback connection between an output and input of each scannable sequential cell installs a loopback connection between said output and a multiplexed scan-in input of each scannable sequential cell.

13. A method as described in claim 11 wherein said step of installing a loopback connection between an output and input of each scannable sequential cell installs a loopback connection between an inverse output and a multiplexer scan-in input of each scannable sequential cell.

14. A method as described in claim 9 wherein said step of replacing non-scan sequential cells with scannable sequential cells specially adapted to apply said test vectors comprises the steps of:

identifying a non-scan sequential cell for replacement, said non-scan sequential cell including combinational logic and further having a first identifier listing functions of said non-scan sequential cell;

scanning identifiers within a technology dependent library against said first identifier to locate an equivalent scannable sequential cell having a second identifier including functions that match said functions of said non-scan sequential cell; and

replacing said non-scan sequential cell with said equivalent scannable sequential cell.

15. A method as described in claim 9 wherein said step of replacing non-scan sequential cells with scannable sequential cells specially adapted to apply said test vectors comprises the step of performing sequential mapping based scan equivalence.

16. A computer implemented synthesis system, said system having a processor coupled to a memory unit wherein said processor is programmed to perform logic processing, said system further comprising:

logic for receiving an HDL specification representing a design to be realized in circuit form and storing said HDL specification in said memory unit;

logic for receiving constraints applicable to said design;

compile logic for compiling said HDL specification to produce a netlist description of said design wherein said netlist comprises functional logic blocks and connections there between, said compile logic further comprising:

(i) logic for replacing a genetic HDL specified or inferred sequential cell with scannable sequential cells specially adapted to apply test vectors to combinational logic of said design; and

(ii) loopback logic for installing a loopback connection between an output and an input of each scannable sequential cell; and

store logic for storing said netlist description into said memory unit, said netlist description including said scannable sequential cells and said loopback connection of each scannable sequential cell.

17. A system as described in claim 16 wherein said (i) logic for replacing further comprises:

translation logic for translating said generic HDL specified or inferred sequential cell to a non-scan sequential cell that is technology dependent; and

replacement logic for replacing said non-scan sequential cells with said scannable sequential cells specially adapted to apply test vectors to combinational logic of said design.

18. A system as described in claim 17 wherein said non-scan sequential cells are D flip-flops and wherein said scannable sequential cells are multiplexed input D flip-flops.

19. A system as described in claim 18 wherein said loopback logic installs a loopback connection between said output and a multiplexed scan-in input of each scannable sequential cell.

20. A system as described in claim 18 wherein said loopback logic installs a loopback connection between an inverse output and a multiplexed scan-in input of each scannable sequential cell.

21. A system as described in claim 17 wherein said non-scan sequential cells and said scannable sequential cells are level sensitive latches.

22. A system as described in claim 17 wherein said replacement logic comprises:

logic for identifying a non-scan sequential cell for replacement, said non-scan sequential cell including combinational logic and further having a first identifier listing functions of said non-scan sequential cell;

logic for scanning identifiers within a technology dependent library against said first identifier to locate an equivalent scannable sequential cell having a second identifier including functions that match said functions of said non-scan sequential cell; and

logic for replacing said non-scan sequential cell with said equivalent scannable sequential cell.

23. A system as described in claim 17 wherein said constraints define design rule and performance limitations applicable to said design.

24. A system as described in claim 17 further comprising a design rule checker analyzing said netlist description produced by said compile logic, said design rle checker identifying and marking as violated scannable sequential cells of said netlist description that cannot be part of a valid scan chain.

25. A system as described in claim 17 wherein said HDL specification represents a module of an overall integrated circuit design.

26. A computer implemented synthesis system, said system having a processor coupled to a memory unit wherein said processor is programmed to perform logic processing, said system further comprising:

logic receiving an HDL specification representing a design to be realized in circuit form and storing said HDL specification in said memory unit;

logic receiving constraints applicable to said design;

compile logic compiling said HDL specification to produce a netlist description of said design wherein said nefiist comprises scannable sequential cells, functional logic blocks and connections there between, said compile logic further comprising:

loopback logic installing a loopback connection between an output and an input of each scannable sequential cell to simulate a scan link of a scan chain for design for test implemented circuitry; and

store logic storing said netlist description into said memory unit, said netlist description including scannable sequential cells and said loopback connection of each scannable sequential cell.

27. A system as described in claim 26 further comprising a design rule checker analyzing said netlist description produced by said compile logic, said design rule checker identifying and marking as violated sequential cells of said netlist description that cannot be part of a valid scan chain.

28. A system as described in claim 26 wherein said compile logic further comprises:

translation logic translating generic non-scan cells to technology dependent non-scan cells; and

replacement logic replacing said non-scan cells with scannable sequential cells specially adapted to apply test vectors to combinational logic of said design.

29. A system as described in claim 28 wherein said scannable sequential cells are multiplexed input D flip-flops.

30. A system as described in claim 28 wherein said loopback logic installs a loopback connection between said output and a multiplexed scan-in input of each scannable sequential cell.

31. A system as described in claim 28 wherein said constraints define design rule and performance limitations applicable to said design.

32. In a computer implemented synthesis system, a method comprising the computer implemented steps of:

receiving an HDL specification representing a design and storing said HDL specification in a computer memory unit;

receiving performance constraints applicable to said design;

compiling said HDL specification with a compiler to produce a netlist description of said design optimized to said performance constraints wherein said netlist comprises functional logic blocks and connections there between including generic sequential eelIs and combinational logic, said step of compiling further comprising the step of:

replacing said generic cells of said HDL specification with scannable sequential cells specially adapted to apply test vectors to combinational logic of said design;

storing said netlist description into said computer memory unit, said netlist description including said scarunable sequential cells; and

identifying and marking as violated those scannable sequential cells that cannot be part of a valid scan chain and replacing said violated scannable sequential cells with non-scan sequential cells.

33. A method as described in claim 32 wherein said step of replacing said generic cells of said HDL specification with scannable sequential cells specially adapted to apply test vectors to combinational logic of said design comprises the steps of:

replacing said generic cells of said HDL specification with non-scan sequential cells that are technology dependent;

replacing said non-scan sequential cells with scannable sequential cells specially adapted to apply test vectors to combinational logic of said design.

34. A method as described in claim 33 wherein said step of compiling further comprises the step of installing a loopback connection between an output and an input of each scannable sequential cell to simulate a scan chain link and wherein said netlist description stored in said computer memory unit includes said loopback connections.

35. A method as described in claim 34 wherein said non-scan sequential cells are D flip-flops and wherein said scannable sequential cells are multiplexed input D fliip-flops.

36. A method as described in claim 34 wherein said step of replacing said non-scan sequential cells with scannable sequential cells specially adapted to apply said test vectors comprises the steps of:

identifying a non-scan sequential cell for replacement, said non-scan sequential cell including combinational logic and further having a first identifier listing functions of said non-scan sequential cell;

scanning identifiers within a technology dependent library against said first identifier to locate an equivalent non-scan sequential cell having a second identifier including functions that match said functions of said non-scan sequential cell; and

replacing said non-scan sequential cell with said equivalent scannable sequential cell.
 Description Submit all comments and votes
 


BACKGROUND OF THE INVENTION

(1) Field of the Invention

The present invention relates generally to the field of logic synthesis for integrated circuit devices. More particularly, aspects of the present invention relate to an HDL compiler and a scan insertion process used for test implementations designed for circuit synthesis.

(2) Background of the Related Art

Complex integrated circuits are designed with the use of computer aided design (CAD) tools. Specifically, application specific integrated circuits (ASICs) and field programmable gate array (FPGA) circuits can be designed using a variety of CAD tools. The development of ASICs and FPGA circuits with the aid of CAD tools is referred to as electronic design automatic or EDA. Design, checking and testing of large scale integrated circuits are so complex that the use of programmed computer systems are required for realization of normal circuits. This is partly because the integrated devices are inherently complex and partly because the circuit design needs to be decomposed into simpler functions which are recognized by the CAD tool. It is also partly because considerable computation is required in order to achieve an efficient layout of the resultant network. The result of the computerized design process is a detailed specification defining a complex integrated circuit in terms of a particular technology. This specification can be regarded as a template for the fabrication of the physical embodiment of the integrated circuit using transistors, routing resources, etc.

Integrated circuit designs can be represented in different levels of abstraction, such as the register transfer level (RTL) and the logical level, using a hardware description language (HDL), also called high level design language. Two exemplary forms of HDL are Verilog and VHDL. The integrated circuit can be represented by different layers of abstractions (e.g., behavioral levels, structural levels and gate levels). An RTL level is an intermediary level of abstraction between the behavioral and structural levels. HDL descriptions can represent designs of all these levels.

The behavior levels and RTL levels consist generally of descriptions of the circuit expressed with program-like constructs, such as variables, operators conditional loops, procedures and functions. At the logic level, the descriptions of the circuit are expressed with Boolean equations. The HDL can be used along with a set of circuit constraints as an input to a computer implemented compiler (also called a "silicon compiler"). The computer implemented compiler program processes this description of the integrated circuit and generates therefrom a detailed list of logic components and the interconnections between these components. This list is called a "netlist." The components of a netlist can include primitive cells such as full-adders, NAND gates, NOR gates, XOR gates, latches and D-flip flops, etc. and their interconnections used to form a custom design.

In processing the HDL input, the compiler first generates a netlist of generic primitive cells that are technology independent. The compiler then applies a particular cell library to this generic netlist (this process is called mapping) in order to generate a technology dependent mapped netlist. The mapping process converts the logical representation which is independent of technology into a form which is technology dependent. The mapped netlist has recourse to standard circuits, or cells which are available within a cell library forming a pan of the data available to the computer system.

Compiler programs and mapping programs are well known in the an and several of these systems are described in U.S. Pat. No. 5,406,497, by Altheimer et al.

An important pan of the logic synthesis process involves designing for testability. Programs that aid in the testability process of logic synthesis are called design for test (DFT) processes. As part of DFT, it is known to take the mapped netlist generated from a compiler and add and/or replace certain memory cells and associated circuitry with special memory cells that are designed to allow the application of test vectors to certain logic portions of the integrated circuit. The act of applying test vector is called stimulation of the design and the special memory cells and associated circuitry are referred to as DFT implementations. Issues concerning controllability deal with facilitating the application of the test vectors to the circuitry to be tested. The same memory cells can be used to capture the output of the circuitry for observation and compare this output to the expected output in an effort to determine if circuit (e.g., manufacturing) defects are present.

The portions of an integrated circuit that are designed to perform its intended or expected operational function are called its "mission mode" circuitry while the portions added to the integrated circuit to facilitate testability are called "test mode" circuitry or DFT implementations. The resultant circuit therefore has two functional modes, mission and test.

An exemplary flow chart diagram of a typical logic synthesis process, including a DFT process, is shown in FIG. 1. The processes 200 described with respect to this flow chart is implemented within a computer system in a CAD environment. High level design language (HDL) descriptions of the integrated circuit enter at block 201. Also accompanying the HDL 201 is a set of performance constraints 205 applicable to the design which typically include timing, area, power consumption, and other performance related limitations that the compiler 225 will attempt to satisfy when synthesizing the integrated circuit design. Constraints 205 can also include non-performance related constraints such as structural and routing constraints. Compiler 225 consists of a generic compiler 203 (also called an HDL compiler, RTL synthesizer, or architectural optimizer) that inputs the HDL 201 description and generates therefrom a technology independent or "generic" netlist 207 which is also dependent on the constraints 205. As discussed above, the netlist 207 is a list of technology independent components or operators and the interconnections between them.

The generic netlist 207 is then input to a design compiler 209 that includes a computer implemented logic optimization procedure and a mapping procedure which interfaces with a technology dependent cell library 230 (e.g., from LSI, VLSI, TI or Xilinx technologies, etc.). The cell library 230 contains specific information regarding the cells of the specific technology selected such as the cell logic, number of gates, area consumption, power consumption, pin descriptions, etc., for each cell in the library 230. Logic optimization procedure of block 209 includes structuring and flattening procedures. The mapping procedure of block 209 generates a gate level mapped netlist 211 that is technology dependent having cells specifically selected to satisfy the constraints 205. This gate level netlist 211 consists at this point of "mission mode" circuitry.

At block 212 of FIG. 1, DFT process 213 performs a particular test insertion process (here a scan) to implement testability cells or "test mode" cells into the overall integrated circuit design. In this process 213, memory cells of the mapped netlist 211 are replaced with memory cells that are specially designed to apply and observe test vectors or panems to and from portions of the integrated circuit. In one particular DFT process, these memory cells specially designed for test are called scannable memory cells. The test vector patterns can be derived from combinational or sequential automatic test pattern generation (ATPG) processes depending on whether or not a full or partial scan is performed by the scan insertion process 213. Process 213 also performs linking groups of scannable memory cells into scan chains so that the test vectors can be cycled into and out of the integrated circuit design. The output of the scan insertion process 213 is a scannable netlist 215 that contains both mission and test mode circuitry.

A problem occurs in the prior art process of FIG. 1 in that the scan insertion process 213 does not take into account its impact on the mission mode design. Specifically, the addition of the testability cells (scannable cells), and interconnections there between (chaining resources), and the addition of other dedicated connections required for operation of the scan chains (e.g., scan clock routing and scan enable signal routing) can cause the overall design to violate one or more of the defined constraints 205.

Therefore, a second compile process 217 of FIG. 1 (full or incremental compile) is invoked by the prior art process 200 in order to more effectively optimize the scannable netlist 215 to the constraints 205. An incremental compile 217 does not process all existing structure as in a full compile, it only applies high level logical optimization to the unmapped portions of the design. Those unmapped portions are then mapped using a technology dependent library. During a process iteration, an incremental compile 217 always processes to decrease the circuit cost. However, although this second compile process 217 is only an incremental compile process, it applies mapping optimizations iteratively on the entire scatmable netlist 215. As a result, processing time to perform the second compile process 217 can be on the order of weeks given conventional CAD technology and circuit complexity.

Altematively, many prior systems utilize a full compile as the second compile process 217. The full compile process is similar to process 225 in that the full compile process at 217 applies mapping and logic optimizations to the entire design, not just the unmapped portions.

After the second compile process 217 of FIG. 1 completes, a scannable netlist 219 is again generated that contains the testability cells but that may or may not meet the original performance constraints 205. Therefore, at block 221, the prior art then performs a test to determine if the scannable netlist 219 meets the constraints 205. If the netlist 219 meets the constraints, then at block 235, other circuit synthesis procedures continue until the integrated circuit design can be fabricated onto a substrate and tested.

However, as is often the case, the addition of the testability cells by the scan insertion process 213 does not allow the second compile process 217 to meet constraints 205 without a design modification to the original HDL program 201. In such case, the overall process 200 flows from block 221 back to the HDL 201 where the architect modifies the HDL program 201 so that the addition of the testability cells and other resources will eventually satisfy, when possible, the given constraints 205 after the incremental compile step 217 is again executed.

The prior art process 200 of FIG. 1 has several disadvantages. It is disadvantageous to execute a second substantial compile process 217 in an attempt to match the testability cells and linking resources to the given set of constraints. Although this process can be an incremental compile step in that much of the gate level connections are not removed, mapping optimization portions of this compile process still operate in an iterative fashion over the entire design. The addition of this second compile process, using conventional technology, delays the overall integrated circuit synthesis process by as much as one to two weeks. Even after this long delay, there are no guarantees that the incremental compile process 217 will generate a scannable netlist satisfying the constraints 205. In this case, a time consuming task of returning to the HDL for redesign is required. This process involves the chip architect designers once more and, therefore, it is unclear under the prior art system when a designer can sign off on his or her work in the design process.

What is needed is a system that can reduce the time required to perform circuit synthesis while providing effective DFT processes. The present invention offers such advantageous functionality.

Accordingly, it is an object of the present invention to provide a time efficient design synthesis system operable within a computer implemented CAD system that includes effective DFT processes. It is further an object of the present invention to provide the above with the elimination of the second substantial compile process that is used in the prior art. It is yet another object of the present invention to provide the compile process with information relating to the impact of testability cells and resources to the overall design so that this information can be accounted for during the initial compilation phase. It is further an object of the present invention to provide specific aspects of the initial compile process to a modified scan insertion process so that the added testability cells and resources can be processed to likely meet the constraints without requiring a substantial second compilation process. To this end, it is an object of the present invention to provide optimization procedures in a modified scan insertion procedure that operate only on the test cells and resources. These and other objects and advantages of the present invention not specifically recited above will become clear within discussions of the present invention herein.

SUMMARY OF THE INVENTION

A computer implemented process and system are described for providing an test ready (TR) compiler with specific information regarding the impact of added scannable test cells and resources on its mission mode design. In so doing, the TR compiler optimizes with increased efficiency for the added test resources so that predetermined performance and design related constraints of the mission mode circuitry are maintained after addition of the test resources. The TR compiler translates generic sequential cells into technology dependent non-scan sequential cells. In the TR compiler, during replacement, scannable memory cells are used in place of these non-scan memory cells specified within the mission mode design and therefore the TR compiler is informed of the characteristics of the scannable memory cells and their links. For test, the scannable memory celth are chained to each other to form scan chains. To account for this chaining during compile, the TR compiler provides output driven loopback connections to simulate the electrical characteristics of this chaining during compile. In the above implementation, the TR compiler can efficiently provide translation of an TR description having test implementations into a gate level netlist. With the addition of certain information regarding the test implementation (e.g., scan replacement is done and loopback connections are added), the TR compiler of the present invention better optimizes the overall design for the addition of the test resources which are linked together for testability.

Specifically, embodiments of the present invention include, in a computer implemented synthesis system, a method of generating a netlist having the computer implemented steps of: receiving an HDL specification representing a design to be realized in physical form and storing the HDL specification in a computer memory unit; receiving constraints applicable to the design; compiling the HDL specification with a compiler to produce a netlist description of the design wherein the netlist comprises functional logic blocks and connections there between including sequential cells and combinational logic, the step of compiling further comprising the steps of: translating generic non-scan cells to technology dependent non-scan cells; replacing the non-scan sequential cells with scannable cells specially adapted to apply test vectors to combinational logic of the design; and installing a loopback connection between an output and an input of each scannable sequential cell; and storing the nefiist description into the computer memory unit, the netlist description including the scannable sequential cells and the loopback connection associated with each scannable sequential cell.

Embodiments of the present invention include the above and wherein the non-scan sequential cells are D flip-flops and wherein the scannable sequential cells are multiplexed input D flip-flops and wherein the step of installing a loopback connection between an output and input of each scannable sequential cell installs a loopback connection between the output and a multiplexed scan-in input of each scannable sequential cell. Embodiments of the present invention further include a system implemented in accordance with the above.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a flow diagram illustrating a prior art process for logic synthesis with design for test implementations.

FIG. 2 is an exemplary computer system used in accordance with the present invention as a CAD system for design synthesis.

FIG. 3A is a diagram of a logic model including combinational logic and memory cells used by the present invention to represent the design of a synthesized integrated circuit.

FIG. 3B illustrates replacement performed by the present invention from non-scan memory cells specified by or inferred from the original HDL description into scannable memory cells used for DFT implementation.

FIG. 4 illustrates a procedure of the present invention (Design Rule Checker) that determines valid scan chains and marks as violated any scannable memory cell not pan of a valid scan chain.

FIG. 5A illustrates an exemplary edge triggered D flip-flop used in the HDL description in an embodiment of the present invention.

FIG. 5B illustrates an exemplary scannable memory cell version of the memory cell presented in FIG. 5A according to an embodiment of the present invention.

FIG. 5C illustrates an exemplary edge triggered memory cell used in the HDL description that also contains other combinational logic in addition to the memory cell circuitry.

FIG. 5D illustrates an exemplary scannable memory cell version of the memory cell presented in FIG. 5C according to an embodiment of the present invention including other combinational logic present.

FIG. 6A illustrates an exemplary circuit implementation of a loopback line added by the test ready (TR) compiler of the present invention to simulate a linked scan chain where the loopback is taken from the output (Q).

FIG. 6B illustrates an exemplary circuit implementation of a loopback line added by the TR compiler of the present invention to simulate a linked scan chain where the loopback is taken from the inverted output (/Q).

FIG. 7 illustrates a task performed by the modified scan insertion process of the present invention where the scan chain is buffered in links that span more than one module allowing the loopback lines to accurately simulate this condition.

FIG. 8 is an overall flow diagram of the embodiments of the present invention starting from HDL description to the generation of test vectors having a scannable gate level netlist.

FIG. 9 is a flow diagram illustrating processes of the test ready (TR) compiler of the present invention.

FIG. 10 is an overall flow diagram illustrating processes of the modified scan insertion process of the present invention including the constraint driven compile process.

FIG. 11A and FIG. 11B represent a flow diagram illustrating processes of the constraint driven compile process of the modified scan insertion process of the present invention.

FIG. 12 is a flow diagram illustrating processes of the size design process of the constraint driven compile process of the present invention.

FIG. 13A and FIG. 13B illustrate an exemplary circuit transition performed by the phasing subprocess of the size design process shown in FIG. 12.

FIG. 14A and FIG. 14B illustrate an exemplary circuit transition performed by the buffering subprocess of the size design process shown in FIG. 12.

FIG. 15A and FIG. 15B illustrate an exemplary circuit transition performed by the downsizing subprocess of the size design process shown in FIG. 12.

FIG. 16A and FIG. 16B illustrate an exemplary circuit transition performed by the isolation subprocess of the size design process shown in FIG. 12.

FIG. 17A and FIG. 17B illustrate an exemplary circuit transition performed by the offloading subprocess of the size design process shown in FIG. 12.

FIG. 18A and FIG. 18B illustrate an exemplary circuit transition performed by the balancing subprocess of the size design process shown in FIG. 12.

FIG. 19A and FIG. 19B illustrate an exemplary circuit transition performed by the splitting subprocess of the size design process shown in FIG. 12.

FIG. 20 illustrates the present invention test ready (TR) compiler and modified scan insertion process within a hierarchical design illustrating the practical nature of the present invention on a chip level netlist.

DETAILED DESCRIPTION OF THE INVENTION

In the following detailed description of the present invention numerous specific details are set forth in order to provide a thorough understanding of the present invention. However, it will be obvious to one skilled in the art that the present invention may be practiced without these specific details. In other instances well known processes, methods, procedures, components, and circuits have not been described in detail as not to unnecessarily obscure aspects of the present invention.

Some portions of the detailed descriptions which follow are presented in terms of procedures, processes, and symbolic representations of operations on data bits within a computer memory. These procedure descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. A procedure, process, or logic block is here, and generally, conceived to be a self-consistent sequence of steps leading to a desired result. The steps are those requiting physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like.

It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise as apparent from the following discussions, it is appreciated that throughout the present invention, discussions utilizing terms such as "processing" or "computing" or "calculating" or "determining" or "displaying" or executing a procedure or the like, refer to the action and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (electronic) quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission or display devices.

Specific aspects of the present invention are operable within a programmed computer aided design (CAD) system. A CAD system operable to implement the elements of the present invention is shown in FIG. 2. In general, the CAD system of the present invention includes a computer system 112 which includes a bus 100 for communicating information including address, data, and control signals, a central processor 101 coupled with the bus 100 for processing information and instructions, a random access memory 102 coupled with the bus 100 for storing information and instructions for the central processor 101, a read only memory 103 coupled with the bus 100 for storing static information and instructions for the processor 101, a data storage device 104 such as a magnetic or optical disk and disk drive coupled with the bus 100 for storing information and instructions, a display device 105 coupled to the bus 100 for displaying information to the computer user, an alphanumeric input device 106 including alphanumeric and function keys coupled to the bus 100 for communicating information and command selections to the central processor 101, a cursor control device 107 coupled to the bus for communicating user input information and command selections to the central processor 101, and a signal generating device 108 coupled to the bus 100 for communicating signals that are input and output from the system 112.

Program instructions executed by the CAD system can be stored in RAM 102, ROM 103, or in the storage device 104 and when executed in a group can be referred to as logic blocks or procedures. It is appreciated that data produced at the various logic synthesis stages of the present invention, including representations of the different levels of abstraction of the integrated circuit design, can also be stored in RAM 102, ROM 103 or the storage device 104 as shown in FIG. 2.

The display device 105 of FIG. 2 utilized with the computer system 112 of the present invention may be a liquid crystal device, cathode ray tube, or other display device suitable for creating graphic images and alphanumeric characters recognizable to the user. The cursor control device 107 allows the computer user to dynamically signal the two dimensional movement of a visible pointer on a display screen of the display device 105. Many implementations of the cursor control device are known in the art including a trackball, mouse, joystick or special keys on the alphanumeric input device 105 capable of signaling movement of a given direction or manner of displacement.

FIG. 3A illustrates a circuit model 300 utilized by the present invention to represent a logic unit of an integrated circuit. The model 300 includes a memory cell block 301 that outputs signals over line 311 to a combinational logic block 305. Combinational logic 305 also outputs signals over line 313 to drive inputs of the memory cells 301. Memory 301 receives a primary input signal 3