Contemporary integrated circuit (IC) design typically beings with a behavioral description of an IC. For instance, a register transfer level (RTL) description of the IC can be used. Logic synthesis is performed on the RTL description in combination with various constraints, e.g., timing, area and/or power requirements of the IC. Logic synthesis of the RTL and associated constraints results in a Boolean description of the IC. Using the Boolean description, a netlist can be generated that specifies the logic gates and various interconnections of the IC. Based upon the structural characteristics, i.e., size and shape, of the gates and the specified gate interconnectivity of the netlist, the gates can be placed and routing of the various interconnections can be determined. This process is commonly known as “place and route.” Once the gates and interconnections have been placed and routed, functionality of the IC can be verified. For example, timing requirements of the IC can be checked to ensure that the IC will function as intended.
Once functionality has been verified, it is common to add components to the IC to facilitate test. However, adding components required for testing can significantly alter various aspects of the IC, e.g., functional and/or structural aspects, and can potentially cause an otherwise properly designed IC to fail to meet one or more of its design criteria. This typically results in one or more iterations of the above-described process that includes consideration of the components that need to be added to the IC for test.
In this regard,
Each major block includes sub-blocks or sub-circuits, e.g., sub-blocks 14A and 14B, outlined by lines of medium thickness. Each of the sub-blocks includes sub-sub-blocks, e.g., sub-sub-blocks 14BA and 14BB, outlined by thin lines. Also note that the hierarchy can be repeated all the way down to the logic gate level.
In
Systems and methods for designing integrated circuits (ICs) are provided. In this regard, a representative embodiment of a method comprises: providing a netlist; determining components required to implement test of at least a portion of the integrated circuit defined by the netlist; provide a revised netlist including the components determined; and performing a place and route operation with respect to the revised netlist.
Computer-readable media also are provided that store information for performing computer-implemented methods. In this regard, a representative computer-readable medium has stored thereon information for performing a computer-implemented method, the method comprising: providing a netlist; determining components required to implement test of at least a portion of the integrated circuit defined by the netlist; provide a revised netlist including the components determined; and performing a place and route operation with respect to the revised netlist.
A representative embodiment of a system for designing an integrated circuit comprises a processor operative to execute instructions; and a memory communicating with the processor and storing instructions for: providing a netlist; determining components required to implement test of at least a portion of the integrated circuit defined by the netlist; providing a revised netlist including the components determined; and performing a place and route operation with respect to the revised netlist.
Other systems, methods, features and/or advantages will be or may become apparent to one with skill in the art upon examination of the following drawings and detailed description. It is intended that all such additional systems, methods, features and/or advantages be included within this description and be protected by the accompanying claims.
The components in the drawings are not necessarily to scale relative to each other. Like reference numerals designate corresponding parts throughout the several views.
As will be described in detail here, systems and methods for designing integrated circuits (ICs) can be used to design ICs that meet desired design criteria, even after incorporating components, e.g., logic gates, registers, and corresponding interconnectivity, required for facilitating IC test. In this regard, embodiments of the systems and methods account for additional components that are used to facilitate test functionality earlier in the design process than is implemented in the prior art. Thus, timing, area and/or power requirements, for example, of these additional components can be considered during an early place and route operation and can potentially alleviate one or more iterations of a conventional IC design process.
Referring again to the drawings,
Each major block includes sub-blocks or sub-circuits, e.g., sub-blocks 140A and 140B, outlined by lines of medium thickness. Each of the sub-blocks includes sub-sub-blocks, e.g., sub-sub-block 14BAB, outlined by thin lines. In contrast to the IC of
Note, in contrast to the IC of
As should be understood, various components can be provided in an IC to facilitate various tests. Examples of these components include but are not limited to test points, Built-In-Self-Test structures, isolation wrappers, clock control logic, analog-to-digital and digital-to-analog converters, and circuitry, wires, and connections that implement selected test methodologies. Analysis of the netlist in block 504 results in the determination of which components need to be added at which points in the original circuit, and the revised circuit, with the associated modifications, is produced in block 506. The netlist modifications include but are not limited to the alteration of circuit hierarchy, the addition or deletion of ports, the addition or deletion of logic gates or flip-flops, the addition or deletion of wiring and connections, and the insertion of additional circuits.
As shown in
The organization of flip-flops into a plurality of scan chains of desired lengths, along with the associated addition of scan input and output ports at appropriate points in the hierarchical netlist and perhaps even the addition of new flip-flops to balance scan chain lengths, constitute an illustrative example of the action performed in block 606. The exact interconnection of these elements (i.e., the ordering of the scan flip-flops) may be deferred until after the physical placement step (referred to in block 508), as is well known in the art, but the presence of these elements should be specified, as in block 606.
Note that the functionality associated with embodiments of methods for designing ICs can be embodied in systems that are implemented in software, hardware and/or combinations thereof. When implemented in hardware, embodiments of systems for designing ICs can be implemented with one or a combination of various technologies. By way of example, the following technologies, which are each well known in the art, can be used: a discrete logic circuit(s) having logic gates for implementing logic functions upon data signals, an application specific integrated circuit(s) (ASIC) having appropriate combinational logic gates, a programmable gate array(s) (PGA), and a field programmable gate array(s) (FPGA).
When implemented in software, embodiments of such a system can be stored on any computer-readable medium for use by or in connection with any computer-related system. In the context of this document, a computer-readable medium is an electronic, magnetic, optical, or other physical device or means that can contain or store a computer program for use by or in connection with a computer-related system. For example, a computer-readable medium can be any means that can store, communicate, propagate, or transport a computer program for use by or in connection with an instruction execution system, apparatus or device. The computer-readable medium can be, for example but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, device or propagation medium.
An embodiment of a system for designing ICs that is implemented in software is depicted schematically in
It should be emphasized that variations and modifications may be made to the above-described embodiments. For example, although the flowcharts described above have been limited to describing particular aspects of several select embodiments, it should be understood that one or more additional functions associated with the design of ICs also can be implemented in other embodiments. For instance, logic synthesis and/or generation of netlists can be facilitated by some embodiments. All such modifications and variations are intended to be included herein within the scope of this disclosure and protected by the following claims.
This application is a utility application that claims the benefit of and priority to U.S. Provisional patent application Ser. No. 60/637913, which was filed on Dec. 21, 2004, and which is incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
60637913 | Dec 2004 | US |