This invention relates to integrated circuit design tools.
Logic designs for integrated circuits (IC) typically include either schematic design or text design. A schematic design shows a computer chip with logic elements as a two-dimension diagram. Logic elements are either state elements (e.g., flip-flops, latches, etc.) or combinatorial elements (e.g. AND gates, NOR gates, etc.). Various geometric figures represent the logic elements. Lines drawn into or out of the logic elements generally represent input, output, clock, or enabling signals. Lines connecting such geometric shapes indicate a functional logic relationship between the logic elements.
A textual representation describes the logic elements of the computer chip using one-dimensional text lines. Textual representations are used in hardware description languages (HDLs) which allow designers to simulate logic designs prior to forming the logic on silicon. Examples of such languages include Verilog and Very High Speed Integrated Circuit (VHSIC) Hardware Description Language (VHDL). Using these languages, a designer can write code to simulate a logic design and execute the code in order to determine if the logic design performs properly.
Standard computer languages may also be used to simulate a logic design. One example of a standard computer language that may be used is C++.
Referring to
The unified database is represented in Register Transfer Diagrams (RTDs), which are two-dimensional representations of the IC design. RTDs are hierarchical diagrams that illustrate all state elements of an IC design while allowing a user to abstract the combinatorial logic into simple boxes. RTDs concisely convey (1) all state elements, (2) the partitioning of work to be accomplished between the state elements, (3) the flow of data through state elements, (4) the partitioning and logical organization of the design within and between levels of hierarchy, (5) the intent of the design and (6) signal information.
In operation, process 10 generates the combinatorial data block (12). The IC designer determines that in a particular portion of the IC design a combinatorial element is required. A textual description is used, to represent the combinatorial element. The textual description is preferable in a simplified form to avoid complexities introduced by complex textual descriptions that otherwise need to be accounted for in the design process. Thus, the combinatorial data block includes a textual description that is in a simplified form in order to ease integration into two-dimensional or graphics level scheme. The simplification follows a set of design capture rules. For an example, a combinatorial data block is represented in Verilog as follows:
The design capture rules used to simplify the combinatorial data block in this example include: (1) avoiding the use of declarations and (2) avoiding entries in a sensitivity list. If declarations and entries were used, these fields would need to be changed if the IC design changes and the combinatorial block were affected. By not allowing declarations or entries in the sensitivity list in the combinatorial data block, process 10 eliminates the need for the IC designer to update these fields during the IC development process. In other words, as changes occur in the IC design, there are no manual updates needed by the IC designer to account for these changes. By setting-up these restrictions, there is less opportunity for human error when design changes occur. Other design capture rules may be implemented to simplify the combinatorial data block and eliminate unnecessary updates as the design develops.
Process 10 imports the combinatorial data block (14). In this embodiment, this is performed on a computer system as described below through an input/output interface (e.g., mouse, keyboard). When the combinatorial data block is imported to the logic design system, process 10 checks to ensure that the design capture rules for generating the combinatorial data block were followed from 12 (16). Process 10 notifies the designer if an error has occurred (18). For example, an error message is displayed on the IC designer's computer screen.
Process 10 uses a set of abstractions to facilitate the development of the unified database (20). The set of abstractions are abbreviated representations of various logic components. For example, a comparator has thousands of transistors. The creation of each and every transistor in the IC design or carrying the data associated with each transistor would be cumbersome. The abbreviated representation would be a block diagram with an input and an output. Abstractions can be instantiated from a library so that creating a logical component from an abstraction is fast and easy for a designer to do. For example, the IC design tools employing process 10 reside on a personal computer and the tools operate in a MS-Windows® environment. If the IC designer determines a comparator is needed in the design, the designer pulls-down a menu in the application and selects a comparator. Subsequent boxes appear and the designer checks-off blocks as to the parameters (e.g., inputs) needed for the comparator. After the designer chooses the logic component by using the set of abstractions, it is saved in the unified database.
Process 10 embeds the combinatorial data block into the two-dimensional schematic presentation to complete the unified data base (22). Thus, the unified data base is a complete representation of the IC and can be represented in RTDs.
Normally, during an IC design process, designers implement block diagrams at the start of the design process and develop the design using RTL code, a one-dimensional text description. Often the block diagrams are not kept up-to-date because the designer makes all the changes to the RTL so that the RTL becomes the design code. The unified database generated by process 10 ensures configuration management of the IC design by keeping all the design information in one location throughout the design process. Thus, this logic design scheme eliminates traditional ambiguities that occur between previous implementation and design models because of the constant iterations of reconciling both the schematic and textual design schemes. Having a unified database, process allows for the generation of C++ and Verilog from one location. It also allows for generation of synthesizable Verilog from textual and visual elements.
Process 10, however, is not limited to use with the hardware and software of
Each such program may be implemented in a high level procedural or object-oriented programming language to communicate with a computer system. However, the programs can be implemented in assembly or machine language. The language may be a compiled or an interpreted language.
Each computer program may be stored on an article of manufacture, such as a storage medium or device (e.g., CD-ROM, hard disk, or magnetic diskette), that is readable by a general or special purpose programmable machine for configuring and operating the machine when the storage medium or device is read by the machine to perform process 10. Process 10 may also be implemented as a machine-readable storage medium, configured with a computer program, where, upon execution, instructions in the computer program cause the machine to operate in accordance with process 10.
The invention is not limited to the specific embodiments set forth above. For example, process 10 is not limited to embedding one-dimensional design into a two-dimensional design. Process can be any n-dimensional design embedded into a (n+m)-dimensional design, where n≧1 and m≧1. Process 10 is not limited to the computer languages set forth above, e.g., Verilog, C++, and VHDL. It may be implemented using any appropriate computer language. Process 10 is also not limited to the order set forth in
Other embodiments not described herein are also within the scope of the following claims.
| Number | Name | Date | Kind |
|---|---|---|---|
| 4703435 | Darringer et al. | Oct 1987 | A |
| 4970664 | Kaiser et al. | Nov 1990 | A |
| 5128871 | Schmitz | Jul 1992 | A |
| 5164911 | Juran et al. | Nov 1992 | A |
| 5212650 | Hooper et al. | May 1993 | A |
| 5220512 | Watkins et al. | Jun 1993 | A |
| 5258919 | Yamanouchi et al. | Nov 1993 | A |
| 5267175 | Hooper | Nov 1993 | A |
| 5278769 | Bair et al. | Jan 1994 | A |
| 5287289 | Kageyama et al. | Feb 1994 | A |
| 5297053 | Pease et al. | Mar 1994 | A |
| 5301318 | Mittal | Apr 1994 | A |
| 5384710 | Lam et al. | Jan 1995 | A |
| 5475605 | Lin | Dec 1995 | A |
| 5491640 | Sharma et al. | Feb 1996 | A |
| 5493507 | Shinde et al. | Feb 1996 | A |
| 5506788 | Cheng et al. | Apr 1996 | A |
| 5513119 | Moore et al. | Apr 1996 | A |
| 5544067 | Rostoker et al. | Aug 1996 | A |
| 5553002 | Dangelo et al. | Sep 1996 | A |
| 5555201 | Dangelo et al. | Sep 1996 | A |
| 5568397 | Yamashita et al. | Oct 1996 | A |
| 5598347 | Iwasaki | Jan 1997 | A |
| 5603015 | Kurosawa et al. | Feb 1997 | A |
| 5604894 | Pickens et al. | Feb 1997 | A |
| 5629857 | Brennan | May 1997 | A |
| 5663662 | Kurosawa | Sep 1997 | A |
| 5666289 | Watkins | Sep 1997 | A |
| 5673198 | Lawman et al. | Sep 1997 | A |
| 5685006 | Shiraishi | Nov 1997 | A |
| 5694579 | Razdan et al. | Dec 1997 | A |
| 5706476 | Giramma | Jan 1998 | A |
| 5717928 | Campmas et al. | Feb 1998 | A |
| 5724250 | Kerzman et al. | Mar 1998 | A |
| 5757655 | Shih et al. | May 1998 | A |
| 5809283 | Vaidyanathan et al. | Sep 1998 | A |
| 5828581 | Matumura | Oct 1998 | A |
| 5831869 | Ellis et al. | Nov 1998 | A |
| 5841663 | Sharma et al. | Nov 1998 | A |
| 5852564 | King et al. | Dec 1998 | A |
| 5883814 | Luk et al. | Mar 1999 | A |
| 5889677 | Yasuda et al. | Mar 1999 | A |
| 5892678 | Tokunoh et al. | Apr 1999 | A |
| 5892682 | Hasley et al. | Apr 1999 | A |
| 5903469 | Ho | May 1999 | A |
| 5933356 | Rostoker et al. | Aug 1999 | A |
| 5937190 | Gregory et al. | Aug 1999 | A |
| 5963724 | Mantooth et al. | Oct 1999 | A |
| 5974242 | Damarla et al. | Oct 1999 | A |
| 6044211 | Jain | Mar 2000 | A |
| 6053947 | Parson | Apr 2000 | A |
| 6066179 | Allan | May 2000 | A |
| 6077304 | Kasuya | Jun 2000 | A |
| 6106568 | Beausang et al. | Aug 2000 | A |
| 6117183 | Teranishi et al. | Sep 2000 | A |
| 6120549 | Goslin et al. | Sep 2000 | A |
| 6132109 | Gregory et al. | Oct 2000 | A |
| 6135647 | Balakrishnan et al. | Oct 2000 | A |
| 6152612 | Liao et al. | Nov 2000 | A |
| 6161211 | Southgate | Dec 2000 | A |
| 6178541 | Joly et al. | Jan 2001 | B1 |
| 6205573 | Hasegawa | Mar 2001 | B1 |
| 6208954 | Houtchens | Mar 2001 | B1 |
| 6216256 | Inoue et al. | Apr 2001 | B1 |
| 6219822 | Gristede et al. | Apr 2001 | B1 |
| 6226780 | Bahra et al. | May 2001 | B1 |
| 6233540 | Schaumont et al. | May 2001 | B1 |
| 6233723 | Pribetich | May 2001 | B1 |
| 6234658 | Houldsworth | May 2001 | B1 |
| 6236956 | Mantooth et al. | May 2001 | B1 |
| 6260179 | Ohsawa et al. | Jul 2001 | B1 |
| 6272671 | Fakhry | Aug 2001 | B1 |
| 6275973 | Wein | Aug 2001 | B1 |
| 6292931 | Dupenloup | Sep 2001 | B1 |
| 6298468 | Zhen | Oct 2001 | B1 |
| 6311309 | Southgate | Oct 2001 | B1 |
| 6324678 | Dangelo et al. | Nov 2001 | B1 |
| 6327693 | Cheng et al. | Dec 2001 | B1 |
| 6353806 | Gehlot | Mar 2002 | B1 |
| 6353915 | Deal et al. | Mar 2002 | B1 |
| 6360355 | Nishida et al. | Mar 2002 | B1 |
| 6360356 | Eng | Mar 2002 | B1 |
| 6366874 | Lee et al. | Apr 2002 | B1 |
| 6367064 | Brown | Apr 2002 | B1 |
| 6378115 | Sakurai | Apr 2002 | B1 |
| 6381563 | O'Riordan et al. | Apr 2002 | B1 |
| 6381565 | Nakamura | Apr 2002 | B1 |
| 6401230 | Ahanessians et al. | Jun 2002 | B1 |
| 6421816 | Ishikura | Jul 2002 | B1 |
| 6438729 | Ho | Aug 2002 | B1 |
| 6438731 | Segal | Aug 2002 | B1 |
| 6440780 | Kimura et al. | Aug 2002 | B1 |
| 6449762 | McElvain | Sep 2002 | B1 |
| 6457164 | Hwang et al. | Sep 2002 | B1 |
| 6473885 | Wallace | Oct 2002 | B1 |
| 6477683 | Killian et al. | Nov 2002 | B1 |
| 6477688 | Wallace | Nov 2002 | B1 |
| 6477689 | Mandell et al. | Nov 2002 | B1 |
| 6480985 | Reynolds et al. | Nov 2002 | B1 |
| 6487698 | Andreev et al. | Nov 2002 | B1 |
| 6490545 | Peng | Dec 2002 | B1 |
| 6505328 | Van Ginneken et al. | Jan 2003 | B1 |
| 6505341 | Harris et al. | Jan 2003 | B1 |
| 6516456 | Garnett et al. | Feb 2003 | B1 |
| 6519742 | Falk | Feb 2003 | B1 |
| 6519755 | Anderson | Feb 2003 | B1 |
| 6523156 | Cirit | Feb 2003 | B2 |
| 6539536 | Singh et al. | Mar 2003 | B1 |
| RE38059 | Yano et al. | Apr 2003 | E |
| 6546528 | Sasaki et al. | Apr 2003 | B1 |
| 6574787 | Anderson | Jun 2003 | B1 |
| 6591407 | Kaufman et al. | Jul 2003 | B1 |
| 6675359 | Gilford et al. | Jan 2004 | B2 |
| 6728945 | Wang | Apr 2004 | B1 |
| 6862563 | Hakewill et al. | Mar 2005 | B1 |
| 20010018758 | Tanaka et al. | Aug 2001 | A1 |
| 20020023256 | Seawright | Feb 2002 | A1 |
| 20020038447 | Kim et al. | Mar 2002 | A1 |
| 20020042904 | Ito et al. | Apr 2002 | A1 |
| 20020046386 | Skoll et al. | Apr 2002 | A1 |
| 20020049957 | Hosono et al. | Apr 2002 | A1 |
| 20020059054 | Bade et al. | May 2002 | A1 |
| 20020112221 | Ferreri et al. | Aug 2002 | A1 |
| 20020138244 | Meyer | Sep 2002 | A1 |
| 20020166100 | Meding | Nov 2002 | A1 |
| 20030004699 | Choi et al. | Jan 2003 | A1 |
| 20030005396 | Chen et al. | Jan 2003 | A1 |
| 20030016206 | Taitel | Jan 2003 | A1 |
| 20030016246 | Singh | Jan 2003 | A1 |
| 20030036871 | Fuller et al. | Feb 2003 | A1 |
| 20030177455 | Kaufman et al. | Sep 2003 | A1 |
| Number | Date | Country |
|---|---|---|
| 0 404 482 | Dec 1990 | EP |
| 0 433 066 | Jun 1991 | EP |
| 0 720 233 | Jul 1996 | EP |
| 0 901 088 | Mar 1999 | EP |
| 1 065 611 | Jan 2001 | EP |
| 58-060559 | Apr 1983 | JP |
| 03-225523 | Oct 1991 | JP |
| 07-049890 | Feb 1995 | JP |
| 08-314892 | Nov 1996 | JP |
| 2001-068994 | Mar 2001 | JP |
| WO9837475 | Aug 1998 | WO |
| WO 9855879 | Dec 1998 | WO |
| WO 9939268 | Aug 1999 | WO |
| WO 0065492 | Nov 2000 | WO |
| Number | Date | Country | |
|---|---|---|---|
| 20030046640 A1 | Mar 2003 | US |