Employing intelligent logical models to enable concise logic representations for clarity of design description and for rapid design capture

Information

  • Patent Grant
  • 6721925
  • Patent Number
    6,721,925
  • Date Filed
    Tuesday, December 18, 2001
    23 years ago
  • Date Issued
    Tuesday, April 13, 2004
    20 years ago
Abstract
Representing a logic device generally includes creating a model of a logic device, where the model represents a collection of variants of the logic device. A representation of the model may be used in a logic design and a particular variant of the logic device may be selected automatically based on connections made to the representation. Connection errors may be detected automatically and a first indication may be displayed automatically when the connection errors are detected. A second indication that differs from the first indication may be displayed automatically when the connection errors are corrected.
Description




TECHNICAL FIELD




This invention relates to employing intelligent logical models to enable concise logic representations for clarity of design description and for rapid design capture.




BACKGROUND




Logic designs for computer chips typically include combinatorial elements and state elements. Combinatorial elements, such as AND gates and OR gates, combine two or more logic states to produce an output. State elements, such as latches and flip-flops (FFs), hold a logic state for a period of time, usually until receipt of an external clock signal. The combinatorial and state elements may be represented in a logic design using a conventional schematic or 2-dimensional design. Conventional schematic designs, however, do not provide the flexibility desired by many logic designers.











DESCRIPTION OF DRAWINGS





FIG. 1

is a block diagram of a computer system.





FIG. 2

is a flow chart of a process of representing a logic device.





FIG. 3A

is a block diagram of a model of a register.





FIG. 3B

is a block diagram of a model of a register including a clock input.





FIG. 4

is a block diagram of a model of a multiplexer.





FIG. 5

is a block diagram of a model of an AND gate.





FIG. 6

is a block diagram of a model of a FIFO memory.





FIG. 7

is a block diagram of a model of a memory gate.





FIG. 8



a


is a block diagram of a model of a binary operator gate.





FIG. 8



b


is a block diagram of a model of a binary operator gate.





FIG. 8



c


is a block diagram of a model of a binary operator gate.











Like reference symbols in the various drawings indicate like elements.




DETAILED DESCRIPTION





FIG. 1

illustrates an exemplary system


100


such as a computer system that may be used in the logic design process. The system


100


may include various input/output (I/O) devices (e.g., mouse


103


, keyboard


105


, and display


107


) and a general purpose computer


110


having central processor unit (CPU)


120


, I/O unit


130


, memory


140


, and storage


150


. Storage


150


may store machine-executable instructions, data, and various programs such as an operating system


152


, one or more application programs


154


, and one or more logic design programs


156


, all of which may be processed by CPU


120


.




System


100


also may include a communications card or device


160


(e.g., a modem and/or a network adapter) for exchanging data with a network


170


using a communications link


175


(e.g., a telephone line, a wireless network link, a wired network link, or a cable network). Other examples of system


100


may include a handheld device, a workstation, a server, a device, a component, other equipment, or some combination of these capable of responding to and executing instructions in a defined manner.




System


100


may be arranged to operate in concert with one or more similar systems to facilitate the logic design process. The logic design process may include different tasks, such as, for example, design, capture, documentation, compilation, simulation, and debug. The system


100


includes a logic design program


156


stored in storage


150


and used during the logic design process. The logic design program


156


includes a library module


157


that stores models of logic devices that are used to create logic designs. Models of logic devices may include, for example, state elements (e.g., flip-flops and latches), combinatorial elements (e.g., AND gates, NAND gates, OR gates, binary operator gates, and multiplexers), tri-state devices and drivers, data buses (e.g., tri-state buses), memory components (e.g., first-in/first-out (FIFO) memory), clocks, and other elements commonly found in a logic design.




A single model of a logic device may represent a collection of variants of the logic device. For instance, a single model of a register gate may represent the variants of a flip-flop. The model of the register gate may be changed into any variants of a flip-flop, such as, for example, resetable, settable, enableable, rising edge, falling edge, input inverting, and output inverting flip-flops. By using a single model to represent the variants of a logic device, the number of models required in the library module


157


is reduced. This may allow for more efficient management and simplification of the number of models of logic devices used in the library module


157


.




The logic design program


156


also includes a design capture module


158


that uses a representation of a model of a logic device from the library module


157


in a logic design. A particular variant of the logic device may be selected automatically based on connections made to the representation. Connections made to the representation may include proximity wiring, which includes dragging a representation of a wire near the representation of the logic device. The logic model automatically selects the particular type of connection and/or variant of the logic device based on the location of the proximity wiring in relation to the representation of the logic model. For example, if the proximity wiring is performed on the input side of the representation, then an input to the logic device is created. The proximity wiring of an input to the logic device may create other connections that are needed as a result of creating the input for that particular logic device.




Additionally or alternatively, the particular variant of the logic device may be selected based on an action that cycles through various pin properties. For instance, selecting a particular pin property of the representation may include toggling the pin property among various pin properties and/or selecting a particular pin property may result in production of a menu from which the various pin properties may be selected.




The model of the logic device may automatically detect connection errors without requiring any additional action (e.g., an action from a user). The automatic detection of connection errors may occur when a representation of the logic device is inserted in a logic design and/or when one or more connections to the representation of the logic device are modified. Connections to the representation of the logic device may be modified by adding new connections, removing connections, and/or changing properties of existing connections. An indication may be automatically displayed to indicate that one or more connection errors exist. When the connection errors are corrected, a different indication may be automatically displayed to indicate that the connection errors have been corrected. For example, devices for which connection errors exist may be displayed using a first color while devices for which connection errors do not exist are displayed using a second color.





FIG. 2

illustrates an exemplary process


200


for representing a logic device. Process


200


typically includes creating a model of a logic device (


210


). The model of the logic device represents a collection of variants of the logic device. A representation of the model is used in a logic design (


220


) and a particular variant of the logic device is automatically selected based on connections made to the representation (


230


). For instance, the particular variant of the logic device may be automatically selected based on connecting a representation of a wire to the representation of the logic model (


230


). As connections are modified, the particular variant of the logic device may be automatically changed.




Process


200


further includes selecting the particular variant of the logic device by an action that selects pin properties of the representation (


240


). For instance, the action that selects the pin properties may include clicking on a portion of the representation and selecting a particular pin property from a menu that is presented (


240


).




Process


200


also includes automatically detecting one or more connection errors (


250


). For instance, a connection error may include a bit-width discrepancy between one or more inputs and one or more outputs of the representation of the logic model (


250


). A connection error also may include an unconnected pin that requires a connection. An indication (e.g., visual, audio, or otherwise) may be displayed to indicate that a connection error exists. For example, the representation of the logic model may use colors to indicate the presence of a connection error (e.g., red to indicate a connection error). If the connection error is corrected, then the representation of the logic model may change indications (e.g., by changing from one color to another color) to indicate that the error has been corrected.




If multiple connection errors are indicated, then the representation of the logic model may change indications once all of the connections errors have been corrected. Additionally or alternatively, if multiple connection errors are indicated, then the representation of the logic model may change indications to indicate that one or more of the correction errors have been corrected, but that at least one correction error still exists.




Process


200


may further include generating a C++ model and/or a Verilog model of the logic design. The representation of a logic model used in the logic design may be represented as a C++ model and/or a Verilog model.




Illustrated below are exemplary implementations of various models of logic devices capable of being used as part of the library module


157


and the design capture module


158


of FIG.


1


and in process


200


of

FIG. 2

, as described above.





FIG. 3A

illustrates an exemplary block diagram of a model of a register gate


300


. In this example, the register gate


300


includes a first D/Q input/output pair


305


and a second D/Q input/output pair


310


. The register gate


300


may represent a flip-flop (e.g., an edge-triggered state element) or a latch (e.g., a level-sensitive state element), and all of the variants of flip-flops and latches. The variants of the register gate


300


may be automatically selected based on connections made to the register gate


300


. Additionally or alternatively, variants of the register gate


300


may be selected by an action applied to the pin properties of the representation.




When the register gate represents a flip-flop, the variants may include a resetable, settable, enableable, rising edge, falling edge, input inverting, and output inverting flip-flop. The single model of the register gate


300


may be changed into any of these variants automatically based on connections made to the representation of the logic model or by an action such as mouse clicking on the representation and/or on the appropriate pin on the representation and cycling through a menu of the variants. A default representation of the register gate


300


may include a predetermined number of pairs of D/Q input/output pins.




Each D/Q input/output pair


305


,


310


may have an independent bit width. Additional inputs and outputs may be added to the register gate and the register gate automatically checks for and detects connection errors, such as, for example, comparing the input bit width against the output bit width and detecting whether the number of inputs match the number of outputs. An input/output pair may be automatically created when a wire connection is made to either the input or the output side of the register gate. The register gate may be sized (e.g., by stretching from a default size) to accommodate more input/output pairs. For instance, if a new input is added, the model of the register gate may add a corresponding output or may indicate that a corresponding output is needed.




In the case of register gate


300


, the inputs and outputs may be inverted. The register gate


300


may use a default clock associated with the logic design or associated with a particular portion of the logic design. A clock that differs from the default clock may be added to the register gate by proximity wiring to the clock input on the representation of the register gate.

FIG. 3B

illustrates a register gate


350


using a non-default clock


360


. In one implementation, a register gate to which a clock input is not explicitly connected may be implicitly connected as a positive edge flip-flop to the net associated with the default clock input port.




Various pin properties of the register gate may be selected and changed. For example, the assertion/edge value may be modified by mouse clicking on the clock pin and cycling thru a menu of assertion choices without having to delete the representation of the register model, go back to the library module, and find the model of the register gate that includes all of the specific properties that are required for a particular logic design. When the register gate represents a flip-flop, the flip-flop may be enabled by proximity wiring to the enable portion of the flip-flop. An indication of the enable may be displayed on the representation. Additionally, the assertion level for the enable may be changed by selecting the enable and selecting the desired assertion level from a menu of assertion level choices.




More specifically, for example, proximity wiring to the central three positions on either of the sides perpendicular to the data input and output sides may create a control input. The clock control pin property may be edited using pin implementation properties to select the pin as either edge or level sensitive to create a flip-flop or latch respectively. An indication may be displayed to distinguish graphically between a flip-flop and a latch. In one implementation, for instance, an flip-flop may be designated by displaying a “V” near the clock pin to indicate an edge-triggered device.





FIG. 4

illustrates a block diagram of an exemplary model of a multiplexer


400


. In this example, the multiplexer


400


includes a set of inputs


405


, an output


410


, and select inputs


415


. Any input


405


may be inverted by toggling the polarity of the input pin. In this example, Input_b


405


and Input_e


405


each include a bubble to indicate that the inputs are inverted. In one implementation, the model of the multiplexer


400


may be used to represent a collection of variants of multiplexer devices. For instance, the model of the multiplexer may represent a multiplexer or a priority gate encode. The model of the multiplexer


400


may be stretched to accommodate additional connections. Additional inputs may be made to the multiplexer by proximity wiring to the data input side


405


of the multiplexer.




The pin property of each input


405


may be used to specify the select condition for the corresponding data input. The select condition may be specified as a Verilog constant.




The model of the multiplexer automatically checks for connection errors. For example, the model automatically checks to ensure that the data inputs and the data output have the same bit width. The multiplexer model also automatically checks for connection errors between the width of the select input


415


and the number of data inputs


405


. The multiplexer model also automatically checks for errors when more than one input has the same select value associated with it.




The multiplexer model may be selected to enable or disable different select directives. In one implementation, for instance, a “full case” synthesis directive may be enabled, in which case a logic designer is not required to designate a data input for each select input. Any non-designated select inputs may be treated as defaults or “don't cares.” Thus, in the case of a three-bit select input, it is not necessary to have all eight inputs. If the full case synthesis directive is not enabled, then the logic designer must specify the terms that cover the entire Boolean space specified by the width of the select input. In the case of a three-bit select input, then it would be necessary to specify terms that cover eight inputs.




Additionally or alternatively, for example, a “parallel case” synthesis directive may be enabled, in which case no overlap may occur in select inputs.





FIG. 5

illustrates a block diagram of an exemplary AND gate


500


. In this example, the AND gate


500


includes a set of inputs


505


and an output


510


. Variants of the AND gate


500


may be automatically selected based on connections to the AND gate. For instance, additional inputs may be added by proximity wiring to the input side


505


of the AND gate. Any input pin or output pin may be inverted by toggling the polarity of the pin. The logic model of the AND gate


500


automatically checks for connection errors. For instance, a connection error may occur when an input bit width does not match the output bit width. An indication may be displayed to indicate that a connection error exists. When a connection error is resolved, the indication may change to indicate that the connection error has been corrected.





FIG. 6

illustrates a block diagram of an exemplary model of a FIFO memory


600


. In this example, the FIFO memory


600


includes an input


605


, an output


610


, and a set of pins representing a number of valid entries


615


. As with the other logic models described, additional inputs and outputs may be added to the FIFO memory


600


by proximity wiring. The model of the FIFO memory


600


also automatically detects connection errors and displays an indication that a connection error exists. In the case of a FIFO memory, a connection error may indicate when the input bit width


605


does not match the output bit width


610


.




In this example, the logic model of the FIFO memory


600


also includes a set of pins for the number of valid entries


615


. The FIFO memory model automatically adjusts the bit width of this pin based on the size of the FIFO memory. In this implementation, the FIFO memory


600


is an eight-entry FIFO meaning that the number of valid pins needs to have a bit width of four bits to represent the eight entries. If the number of FIFO entries is modified, then the logic model of the FIFO memory automatically determines if the bit width of the number of valid entries pin needs to be changed and automatically changes the bit width if necessary.





FIG. 7

illustrates a block diagram of an exemplary model of a memory gate


700


. In this example, the memory gate


700


represents a 256-entry memory that includes a 32-bit data input


705


, a 32-bit data output


710


, and an eight-bit address line


715


. The model of the memory gate


700


automatically sets the address to correspond to the number of entries for the memory. In this case, a 256-entry memory requires an eight-bit address line


715


, so the memory gate model automatically selects an eight-bit address line.




Numerous variants of a memory gate are possible. For example, read and write ports for a memory gate may be dynamically configurable. The read ports and the write ports may be included with or without enables. The model of the memory gate automatically determines the appropriate pins to display on the representation of the memory gate based on the port configuration.




Binary operator gates typically have different pin widths depending on the binary operator type. The logic model of a binary operator gate automatically sizes the output based on the binary operation being performed by the gate. The logic model of the binary operator gate automatically checks for connection errors, such as, for example, bit width errors between inputs and outputs.





FIG. 8



a


illustrates an exemplary model of a binary operator gate


800


that includes a first input


802


, a second input


804


, and an output


806


. In this example, the binary operator gate


800


compares two 32-bit inputs


802


,


804


to produce a single-bit output


806


.





FIG. 8



b


illustrates an exemplary model of a binary operator gate


810


that includes a first input


812


, a second input


814


, and an output


816


. In this example, the binary operator gate


810


multiplies two 32-bit inputs


812


,


814


to produce a 32-bit output


816


.





FIG. 8



c


illustrates an exemplary model of a binary operator gate


820


that includes a first input


822


, a second input


824


, an output


826


, and a carry out bit


828


. In this example, the binary operator gate


820


adds two 32-bit quantity inputs


822


,


824


to produce a 32-bit output


826


and a carry out bit


828


.




The described systems, methods, and techniques may be implemented in digital electronic circuitry, computer hardware, firmware, software, or in combinations of these elements. Apparatus embodying these techniques may include appropriate input and output devices, a computer processor, and a computer program product tangibly embodied in a machine-readable storage device for execution by a programmable processor.




A process embodying these techniques may be performed by a programmable processor executing a program of instructions to perform desired functions by operating on input data and generating appropriate output data. The techniques may be implemented in one or more computer programs that are executable on a programmable system including at least one programmable processor coupled to receive data and instructions from, and to transmit data and instructions to, a data storage system, at least one input device, and at least one output device. Each computer program may be implemented in a high-level procedural or object-oriented programming language, or in assembly or machine language if desired; and in any case, the language may be a compiled or interpreted language. Suitable processors include, by way of example, both general and special purpose microprocessors. Generally, a processor will receive instructions and data from a read-only memory and/or a random access memory. Storage devices suitable for tangibly embodying computer program instructions and data include all forms of non-volatile memory, including by way of example semiconductor memory devices, such as Erasable Programmable Read-only Memory (EPROM), Electrically Erasable Programmable Read-Only Memory (EEPROM), and flash memory devices; magnetic disks such as internal hard disks and removable disks; magneto-optical disks; and Compact Disc Read-Only Memory (CD-ROM). Any of the foregoing may be supplemented by, or incorporated in, specially-designed ASICs (application-specific integrated circuits).




It will be understood that various modifications may be made. For example, advantageous results still could be achieved if steps of the disclosed techniques were performed in a different order and/or if components in the disclosed systems were combined in a different manner and/or replaced or supplemented by other components. Accordingly, other implementations are within the scope of the following claims.



Claims
  • 1. A method of graphically representing a logic device, the method comprising:creating a single graphical model of a logic device, the single graphical model representing a collection of variants of the logic device; using an instance of the single graphical model in a schematic logic design; and automatically selecting a particular variant of the logic device from the collection of variants based on connections made to the instance of the single graphical model.
  • 2. The method of claim 1 further comprising selecting the particular variant of the logic device based on an action that cycles through pin properties of the instance of the single graphical model.
  • 3. The method of claim 1 further comprising automatically detecting one or more connection errors.
  • 4. The method of claim 3 wherein automatically detecting one or more connection errors includes automatically detecting one or more bit width errors.
  • 5. The method of claim 3 wherein automatically detecting one or more connection errors includes automatically detecting one or more unconnected pin errors.
  • 6. The method of claim 3 further comprising automatically displaying a first indication of the one or more connection errors when the one or more connection errors are detected.
  • 7. The method of claim 6 further comprising:correcting the one or more connection errors; and automatically displaying a second indication that differs from the first indication to indicate when the one or more connection errors are corrected.
  • 8. The method of claim 1 further comprising:modifying a connection made to the instance of the single graphical model; and automatically detecting connection errors.
  • 9. The method of claim 8 further comprising automatically displaying an indication when connection errors are detected.
  • 10. The method of claim 1 further comprising generating a C++ model of the logic design.
  • 11. The method of claim 1 further comprising generating a Verilog model of the logic design.
  • 12. The method of claim 1 wherein:creating the single graphical model of the logic device includes creating the single graphical model of a state logic device, and automatically selecting the particular variant of the logic device includes automatically selecting the particular variant of the state logic device based on connections made to an instance of the single graphical model of the state logic device.
  • 13. The method of claim 12 wherein:creating the single graphical model of the state logic device includes creating a single graphical model of a flip-flop, and automatically selecting the particular variant of the state logic device includes automatically selecting the particular variant of the flip-flop based on connections made to an instance of the single graphical model of the flip-flop.
  • 14. The method of claim 12 wherein:creating the single graphical model of the state logic device includes creating a single graphical model of a latch, and automatically selecting the particular variant of the state logic device includes automatically selecting the particular variant of the latch based on connections made to an instance of the single graphical model of the latch.
  • 15. The method of claim 1 wherein:creating the single graphical model of the logic device includes creating a single graphical model of a combinatorial logic device, and automatically selecting the particular variant of the logic device includes automatically selecting the particular variant of the combinatorial logic device based on connections made to an instance of the single graphical model of the combinatorial logic device.
  • 16. The method of claim 15 wherein:creating the single graphical model of the combinatorial logic device includes creating a single graphical model of a multiplexer, and automatically selecting the particular variant of the combinatorial logic device includes automatically selecting the particular variant of the multiplexer based on connections made to an instance of the single graphical model of the multiplexer.
  • 17. The method of claim 15 wherein:creating the single graphical model of the combinatorial logic device includes creating a single graphical model of an AND gate, and automatically selecting the particular variant of the combinatorial logic device includes automatically selecting the particular variant of the AND gate based on connections made to an instance of the single graphical model of the AND gate.
  • 18. The method of claim 15 wherein:creating the single graphical model of the combinatorial logic device includes creating a single graphical model of a binary operator gate, and automatically selecting the particular variant of the combinatorial logic device includes automatically selecting the particular variant of the binary operator gate based on connections made to an instance of the single graphical model of the binary operator gate.
  • 19. The method of claim 1 wherein:creating the single graphical model of the logic device includes creating a single graphical model of a FIFO memory, and automatically selecting the particular variant of the logic device includes automatically selecting the particular variant of the FIFO memory based on connections made to an instance of the single graphical model of the FIFO memory.
  • 20. A machine-accessible medium, which when accessed results in a machine performing operations comprising:creating a single graphical model of a logic device, the single graphical model representing a collection of variants of the logic device; using an instance of the single graphical model in a schematic logic design; and automatically selecting a particular variant of the logic device from the collection of variants based on connections made to the instance of the single graphical model.
  • 21. The machine-accessible medium of claim 20, the operations further comprising selecting the particular variant of the logic device based on an action that cycles through pin properties of the instance of the single graphical model.
  • 22. The machine-accessible medium of claim 20, the operations further comprising automatically detecting one or more connection errors.
  • 23. The machine-accessible medium of claim 22 wherein automatically detecting one or more connection errors includes automatically detecting one or more bit width errors.
  • 24. The machine-accessible medium of claim 22 wherein automatically detecting one or more connection errors includes automatically detecting one or more unconnected pin errors.
  • 25. The machine-accessible medium of claim 22, the operations further comprising automatically displaying a first indication of the one or more connection errors when the one or more connection errors are detected.
  • 26. The machine-accessible medium of claim 25, the operations further comprising:correcting the one or more connection errors; and automatically displaying a second indication that differs from the first indication to indicate when the one or more connection errors are corrected.
  • 27. The machine-accessible medium of claim 20, the operations further comprising:modifying a connection made to the instance of the single graphical model; and automatically detecting connection errors.
  • 28. The machine-accessible medium of claim 27, the operations further comprising automatically displaying an indication when connection errors are detected.
  • 29. A system for graphically representing a logic device comprising:a library module that is structured and arranged to include a single graphical model of a logic device, the single graphical model representing a collection of variants of the logic device; and a design capture module that is structured and arranged to use an instance of the single graphical model in a schematic logic design and to select automatically a particular variant of the logic device from the collection of variants based on connections made to the instance of the single graphical model.
  • 30. The system of claim 29 wherein the design capture module is structured and arranged to select the particular variant of the logic device based on an action that cycles through pin properties of the instance of the single graphical model.
  • 31. The system of claim 29 wherein the design capture module is structured and arranged to automatically detect one or more connection errors.
  • 32. The system of claim 31 wherein the design capture module is structured and arranged to display automatically a first indication of the one or more connection errors when the one or more connection errors are detected.
  • 33. The system of claim 32 wherein the design capture module is structured and arranged to display automatically a second indication that differs from the first indication to indicate when the connection errors are corrected.
  • 34. The system of claim 29 wherein the design capture module is structured and arranged to modify a connection made to the instance of the single graphical model and to detect automatically for connection errors.
  • 35. The system of claim 34 wherein the design capture module is structured and arranged to display automatically an indication when connection errors are detected.
CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims priority from U.S. Provisional Application No. 60/315,852, filed Aug. 29, 2001, and titled “Visual Modeling and Design Capture Environment,” which is incorporated by reference.

US Referenced Citations (88)
Number Name Date Kind
4703435 Darringer et al. Oct 1987 A
4970664 Kaiser et al. Nov 1990 A
5128871 Schmitz Jul 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
5287289 Kageyama et al. Feb 1994 A
5297053 Pease et al. Mar 1994 A
5475605 Lin Dec 1995 A
5493507 Shinde et al. Feb 1996 A
5506788 Cheng et al. Apr 1996 A
5513119 Moore et al. Apr 1996 A
5553002 Dangelo et al. Sep 1996 A
5568397 Yamashita et al. Oct 1996 A
5598347 Iwasaki Jan 1997 A
5629857 Brennan May 1997 A
5663662 Kurosawa Sep 1997 A
5666289 Watkins Sep 1997 A
5685006 Shiraishi Nov 1997 A
5724250 Kerzman et al. Mar 1998 A
5828581 Matumura Oct 1998 A
5841663 Sharma et al. Nov 1998 A
5852564 King et al. Dec 1998 A
5889677 Yasuda et al. Mar 1999 A
5892678 Tokunoh et al. Apr 1999 A
5892682 Hasley et al. Apr 1999 A
5933356 Rostoker et al. Aug 1999 A
5963724 Mantooth et al. Oct 1999 A
6044211 Jain Mar 2000 A
6053947 Parson Apr 2000 A
6066179 Allan May 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
6205573 Hasegawa Mar 2001 B1
6216256 Inoue et al. Apr 2001 B1
6219822 Gristede et al. Apr 2001 B1
6233540 Schaumont et al. May 2001 B1
6233723 Pribetich 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
6366874 Lee et al. Apr 2002 B1
6378115 Sakurai Apr 2002 B1
6381565 Nakamura Apr 2002 B1
6401230 Ahanessians et al. Jun 2002 B1
6421816 Ishikura Jul 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
6505341 Harris et al. Jan 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
20010018758 Tanaka et al. Aug 2001 A1
20020023256 Seawright Feb 2002 A1
20020042904 Ito et al. Apr 2002 A1
20020046386 Skoll et al. Apr 2002 A1
20020049957 Hosono et al. Apr 2002 A1
20020112221 Ferreri et al. Aug 2002 A1
20020166100 Meding Nov 2002 A1
20030005396 Chen et al. Jan 2003 A1
20030016206 Taitel Jan 2003 A1
20030016246 Singh Jan 2003 A1
20030177455 Kaufman et al. Sep 2003 A1
Foreign Referenced Citations (6)
Number Date Country
720233 Jul 1996 EP
58060559 Apr 1983 JP
03225523 Oct 1991 JP
07049890 Feb 1995 JP
08314892 Nov 1996 JP
2001068994 Mar 2001 JP
Non-Patent Literature Citations (12)
Entry
NN7807629, “Functional Oriented Symbolic Macromodeling Algorithm”, IBM Technical Disclosure Bulletin, vol. 21, No. 2, Jul. 1978, pp. 629-631 (5 pages).*
NN9407481, “Functional Modeling using Object Collaboration Diagram”, IBM Technical Disclosure Bulletin, vol. 37, No. 7, Jul. 1994, pp. 481-486 (6 pages).*
NB84035598, “Binary Relational Schema to Model Structured LSI Design”, IBM Technical Disclosure Bulletin, vol. 26, No. 10B Mar. 1984, pp. 5598-5601 (5 pages).*
NN8006341, “Macro Physical-To-Logical Checking LSI Chip Design”, IBM Technical Disclosure Bulletin, vol. 23, No. 1, Jun. 1980, pp. 341-345 (7 pages).*
Kutzschebauch, “Efficient logic optimization using regularity extraction”, Proceedings of 2000 International Conference on Computer Design, Sep. 17, 2000, pp. 487-493.*
Foley et al., “An Object Based Graphical User Interface for Power Systems”, IEEE Transactions on Power Systems, vol. 8, No. 1, Feb. 1993, pp. 97-104.
Pedram et al., “Floorplanning with Pin assignment”, 1990 IEEE International Conference on Computer-Aided Design, Nov. 11, 1990, pp. 98-101.
Mentor Graphics Corporation, Renoir™ With HDL2Graphics™, pp. 1-6, 1998, Oregon.
Mentor Graphics Corporation, Renoir HDL Design Datasheet, pp. 1-2, 1999, Oregon.
Computer Design, “After Hard Knocks, Cycle-Based Simulators Stand Their Ground”. http://www.computer-design.com/Editorial/1996/10/ASIC/after.html, accessed on Aug. 23, 2001, pp. 1-5.
Mentor Graphics Corporation, Renoir™ With HDL2Graphics™, 1998, Oregon, 6 pages.
Mentor Graphics Corporation, Renoir HDL Design Datasheet, 1999, Oregon, 2 pages.
Provisional Applications (1)
Number Date Country
60/315852 Aug 2001 US