A method of generating a function within a logic design of a circuit, includes representing the function using an operator. The function has n operands, where n>1. The method also includes presenting the function within a schematic representation of the logic design. Other features may include displaying a dialog box and inputting data that corresponds to the function.

Patent
   6708321
Priority
Aug 29 2001
Filed
Jan 04 2002
Issued
Mar 16 2004
Expiry
Jul 15 2022
Extension
192 days
Assg.orig
Entity
Large
4
56
EXPIRED
1. A method of generating a function within a logic design of a circuit, comprising:
displaying a dialog box used to define the function;
representing the function using an operator, the function having n operands, where n>1; and
presenting the function within a schematic representation of the logic design.
10. An article comprising a machine-readable medium which stores executable instructions to generate a function within a logic design of a circuit, the instructions causing a machine to:
display a dialog box used to define the function;
represent the function using an operator, the function having n operands, where n>1; and
present the function within a schematic representation of the logic design.
19. An apparatus for generating a function within a logic design of a circuit, comprising:
a memory that stores executable instructions; and
a processor that executes the instructions to:
display a dialog box used to define the function;
represent the function using an operator, the function having n operands, where n>1; and
present the function within a schematic representation of the logic design.
2. The method of claim 1, wherein n=2.
3. The method of claim 2, wherein one of the two operands comprises a constant value.
4. The method of claim 2, wherein one of the two operands corresponds to a signal.
5. The method of claim 2, wherein the two operands correspond to signals.
6. The method of claim 1, wherein the operator comprises a binary operator.
7. The method of claim 6, wherein the binary operator comprises a logical operator.
8. The method of claim 1, further comprising inputting data that corresponds to the function.
9. The method of claim 1, further comprising highlighting the dialog box when one of the n operands is a constant.
11. The article of claim 10, wherein n=2.
12. The article of claim 11, wherein one of the two operands comprises a constant value.
13. The article of claim 11, wherein one of the two operands corresponds to a signal.
14. The article of claim 11, wherein the two operands correspond to signals.
15. The article of claim 10, wherein the operator comprises a binary operator.
16. The article of claim 15, wherein the binary operator comprises a logical operator.
17. The article of claim 10, further comprising instructions causing the machine to input data that corresponds to the function.
18. The article of claim 10, further comprising instructions causing the machine to highlight the dialog box when one of the n operands is a constant.
20. The apparatus of claim 19, wherein n=2.
21. The apparatus of claim 19, wherein one of the two operands comprises a constant value.
22. The apparatus of claim 21, wherein one of the two operands corresponds to a signal.
23. The apparatus of claim 20, wherein the two operands correspond to signals.
24. The apparatus of claim 19, wherein the operator comprises a binary operator.
25. The apparatus of claim 24, wherein the binary operator comprises a logical operator.
26. The apparatus of claim 19, wherein the processor executes instructions to input data that corresponds to the function.
27. The apparatus of claim 19, wherein the processor executes instructions to highlight the dialog box when one of the n operands is a constant.

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.

This invention relates to circuit simulation.

Logic designs for circuits typically include either schematic design or text design. A schematic design shows a circuit design with logic elements as a two-dimensional diagram. Logic elements are either state elements (e.g., flip-flops, latches, etc.) or combinatorial elements (e.g., AND gates, NOR gates, etc.). State elements provide storage from one cycle of operation to the next cycle of operation. Combinatorial elements are used to perform operations on two or more signals.

A textual representation describes the logic elements of a circuit 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-Level Design 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++.

FIG. 1 is a flowchart showing a process for generating a logic design using programmable binary operators.

FIG. 2 is a screenshot of a dialog box for generating a logic design having a binary operator.

FIG. 3 is a schematic representation of a function generated from the dialog box in FIG. 2.

FIG. 4 is a block diagram of a computer system on which the process of FIG. 1 may be performed.

Referring to FIG. 1, a process 10 is used in generating a logic design to generate a configurable binary operator gate by using programmable binary operators. The configurable binary operator gate is a generalized gate structure designed to model a user-defined function comprised of a binary operator acting on two operands. Thus, the gate structure can be designed to be an adder, a shifter, a comparator, an incrementor, etc.

Process 10 may be implemented using a computer program running on a computer 50 (FIG. 4) or other type of machine, as described in more detail below. As explained below, by using binary operators, complex logic models can be presented to a user (not shown) that have a simple readable body element comprised of the gate structure and a software code representing the gate structure displayed within the gate structure.

Referring to FIG. 2, process 10 accesses and displays (12) a dialog box 22 in response to a user input. The user may use any input/output (I/O) device to access and display (12) dialog box 22. For example, design tools employing process 10 may reside on a personal computer and the tools may operate in a MS-Windows® environment. If the user determines that a function having a binary operator is needed in the design, the user pulls-down a menu (not shown) or right-clicks a mouse button to access dialog box 22. In response, process 10 displays dialog box 22 is displayed on a computer monitor.

Process 10 receives input (14) from dialog box 22. In this regard, dialog box 22 may be a graphical user interface (GUI) into which the user inputs data to generate a gate structure (see, e.g., FIG. 3 described below). For example, using a mouse, the user may choose either a signal input or a constant input for a left operand 24 and for a right operand 28 by clicking on a circle 25 next to the desired choice. If a constant is chosen, dialog box 22 is highlighted indicating to the user a constant has been chosen. Using a keyboard, the user types-in a left pin name 26, a right pin name 30, and an output pin name 36. The user further accesses a pull-down menu 32 to choose a desired binary operator. By clicking on "OK" button 34, the user has provided the inputs from dialog box 22 to process 10.

Process 10 uses the binary operator selected from pull-down menu 32 to represent (16) the corresponding function. For example, if the binary operator chosen is "==", a gate 40 (FIG. 3) representing a comparator function is displayed. Binary operator symbols can be a logical operator or a non-logical operator. The binary operator symbol "==" is a logical operator. Logical operators produce an output of either a `1` or a `0` or a bit width of 1. For non-logical operators (e.g., "+", ">>", etc.), the bit width of the output is equal to the bit width of each input. For example, if the function, a+b, is chosen and an input signal a is 4 bits wide and input signal b is a 4 bits wide, then the resulting output signal is 4 bits wide.

Other functions can be represented by using the following binary operator symbols:

Binary Operator Symbols Function Notation
+ Addition a + b = c
- Subtraction a - b = c
* Multiplication a × b = c
/ Division a ÷ b = c
% Modulo a modulo b
&& Logical AND a AND b
Logical OR a OR b
>> Shift Right Take a and shift
right by b
<< Shift Left Take a and shift
left by b
< Less than Is a < b?
<= Less than or Is a ≦ b?
equal
== Equal Is a = b?
!= Not equal Is a ≠ b?
> Greater than Is a > b?
>= Greater than or Is a ≧ b?
equal
=== Three state Is a = b?
equal
!== Three state not Is a ≠ b?
equal

Referring to FIGS. 2 and 3, process 10 displays (18) the function selected as a gate 40 using a Verilog code 42. In other words, process 10 embeds a textual combinatorial data block into a two-dimensional schematic presentation. The information depicted in FIG. 2 is represented in FIG. 3, e.g., "a==b (?)" is the Verilog code for a comparator. In this example, input signal a is represented by "opA[3:0]" and input signal b is represented by "opB[3:0]." Also, input signal a and input signal b are each 4 bits wide. Process 10 automatically (i.e., without user intervention) generates an output signal "out" represented as "opOut[0:0]," as a one bit wide signal. Thus, process 10 reduces the need to have large libraries based on bit-width size by automatically calculating an appropriate bit-width size.

FIG. 4 shows computer 50 for generating a logic design using process 10. Computer 50 includes a processor 52, a memory 54, and a storage medium 56 (e.g., a hard disk). Storage medium 56 stores data 62 which defines a logic design, a graphics library 60 used in implementing the logic design, and machine-executable instructions 58, which are executed by processor 52 out of memory 54 to perform process 10 on data 62.

Process 10, however, is not limited to use with the hardware and software of FIG. 4; it may find applicability in any computing or processing environment. Process 10 may be implemented in hardware, software, or a combination of the two. Process 10 may be implemented in computer programs executing on programmable computers or other machines that each includes a processor, a storage medium readable by the processor (including volatile and non-volatile memory and/or storage elements), at least one input device, and one or more output devices. Program code may be applied to data entered using an input device, such as a mouse or a keyboard, to perform process 10 and to generate a simulation.

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. Process 10 is not limited to using two operands. Process 10 can be used with k operands, where k>1. Process 10 is not limited to binary operators but may be any x-state operators, where x≧2. Also, 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 FIG. 1. That is, the blocks of process 10 may be executed in a different order than that shown to produce an acceptable result.

Other embodiments not described herein are also within the scope of the following claims.

Wheeler, William R., Fennell, Timothy J., Adiletta, Mathew J.

Patent Priority Assignee Title
7107201, Aug 29 2001 Intel Corporation Simulating a logic design
7562328, Jan 14 2005 Altera Corporation Navigation tool for connectors
7620942, May 20 2004 XILINX, Inc. Method and system for parameterization of imperative-language functions intended as hardware generators
8854067, Aug 24 2012 Intermolecular, Inc.; Globalfoundries, Inc. Circular transmission line methods compatible with combinatorial processing of semiconductors
Patent Priority Assignee Title
5128871, Mar 07 1990 Lattice Semiconductor Corporation Apparatus and method for allocation of resoures in programmable logic devices
5220512, Apr 19 1990 LSI Logic Corporation System for simultaneous, interactive presentation of electronic circuit diagrams and simulation data
5258919, Jun 28 1990 NATIONAL SEMICONDUCTOR CORPORATION, A CORP OF DE Structured logic design method using figures of merit and a flowchart methodology
5506788, Jan 13 1994 LSI Logic Corporation Similarity-extraction force-oriented floor planner
5513119, Aug 10 1993 RENESAS ELECTRONICS AMERICA INC Hierarchical floorplanner for gate array design layout
5553002, Apr 06 1990 LSI Logic Corporation Method and system for creating and validating low level description of electronic design from higher level, behavior-oriented description, using milestone matrix incorporated into user-interface
5629857, Nov 15 1994 International Business Machines Corporation Method and system for indicating a status of a circuit design
5666289, Oct 07 1992 Bell Semiconductor, LLC Flexible design system
5828581, Apr 14 1995 NEC Electronics Corporation Automatic layout system
5852564, Apr 21 1992 The Boeing Company Method and apparatus for interactively displaying signal information during computer simulation of an electrical circuit
5889677, Apr 07 1995 Fujitsu Limited Circuit designing apparatus of an interactive type
5892678, Mar 24 1994 Matsushita Electric Industrial Co., Ltd. LSI design automation system
5933356, Apr 06 1990 LSI Logic Corporation Method and system for creating and verifying structural logic model of electronic design from behavioral description, including generation of logic and timing models
5963724, Feb 16 1996 Synopsys, Inc Component-based analog and mixed-signal simulation model development
5974242, Sep 25 1997 The United States of America as represented by the Secretary of the Army Methods and computer programs for minimizing logic circuit design using identity cells
6044211, Mar 14 1994 ADVANCED DATA CONTROLS CORPORATION Method for graphically representing a digital device as a behavioral description with data and control flow elements, and for converting the behavioral description to a structural description
6053947, May 31 1997 Bell Semiconductor, LLC Simulation model using object-oriented programming
6066179, Jun 13 1997 University of Edinburgh Property estimation of an integrated circuit
6106568, Aug 28 1996 Synopsys, Inc. Hierarchical scan architecture for design for test applications
6117183, Jan 08 1996 Fujitsu Limited Interactive CAD apparatus for designing packaging of logic circuit design
6120549, Jan 06 1997 XILINX, Inc.; Xilinx, Inc Method and apparatus for generating optimized functional macros
6132109, Apr 12 1994 Synopsys, Inc Architecture and methods for a hardware description language source level debugging system
6135647, Oct 23 1997 Bell Semiconductor, LLC System and method for representing a system level RTL design using HDL independent objects and translation to synthesizable RTL code
6152612, Jun 09 1997 Synopsys, Inc System and method for system level and circuit level modeling and design simulation using C++
6205573, Oct 22 1997 NEC Corporation Delay analysis result display device
6219822, Aug 05 1998 International Business Machines Corporation Method and system for tuning of components for integrated circuits
6233540, Mar 13 1998 INTERUNIVERSITAIR MICRO-ELEKTRONICA CENTRUM IMEC VZW Design environment and a method for generating an implementable description of a digital system
6233723, Aug 28 1997 VLSI Technology, Inc. Circuit behavioral information analysis apparatus and a method of analyzing behavioral information of a circuit
6234658, Jun 07 1996 POWERPRECISE SOLUTIONS, INC Method and apparatus for producing signal processing circuits in the delta sigma domain
6236956, Feb 16 1996 Synopsys, Inc Component-based analog and mixed-signal simulation model development including newton step manager
6260179, Oct 23 1997 Columbus Steel Castings Company Cell arrangement evaluating method, storage medium storing cell arrangement evaluating program, cell arranging apparatus and method, and storage medium storing cell arranging program
6272671, Sep 11 1998 Bell Semiconductor, LLC Extractor and schematic viewer for a design representation, and associated method
6298468, May 04 1999 PROSPER DESIGN SYSTEMS PTE, LTD Placement-based pin optimization method and apparatus for computer-aided circuit design
6311309, Oct 28 1996 Altera Corporation Methods and apparatus for simulating a portion of a circuit design
6324678, Apr 06 1990 LSI Logic Corporation Method and system for creating and validating low level description of electronic design
6366874, May 24 1999 Synopsys, Inc System and method for browsing graphically an electronic design based on a hardware description language specification
6378115, Jun 19 1998 SOCIONEXT INC LSI manufacturing method and recording medium for storing layout software
6401230, Dec 04 1998 ALTERA CORPORATIN Method of generating customized megafunctions
6449762, Oct 07 1999 SYNOPSYS, INC , A DELAWARE CORPORATION Maintaining correspondence between text and schematic representations of circuit elements in circuit synthesis
6457164, Mar 27 1998 XILINX, Inc. Hetergeneous method for determining module placement in FPGAs
6477683, Feb 05 1999 TENSILICA, INC Automated processor generation system for designing a configurable processor and method for the same
6477689, Jun 13 2001 Gula Consulting Limited Liability Company Architectural structure of a process netlist design tool
6480985, Aug 26 1998 Mentor Graphics Corporation Method and apparatus for graphically presenting an integrated circuit design
6487698, May 04 2001 Bell Semiconductor, LLC Process, apparatus and program for transforming program language description of an IC to an RTL description
6505341, Nov 10 1998 SCIENTRONIX, INC System and method for programming a logic control unit
6519742, Mar 06 2000 SYNOPSYS, INC , A DELAWARE CORPORATION Local naming for HDL compilation
6519755, Aug 16 1999 APACHE DESIGN SOLUTIONS, INC Method and apparatus for logic synthesis with elaboration
20010018758,
20020023256,
20020042904,
20020046386,
20020049957,
20020166100,
20030005396,
20030016206,
20030016246,
////
Executed onAssignorAssigneeConveyanceFrameReelDoc
Dec 12 2001WHEELER, WILLIAM R Intel CorporationASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS 0124790309 pdf
Dec 13 2001ADILETTA, MATTHEW J Intel CorporationASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS 0124790309 pdf
Dec 13 2001FENNELL, TIMOTHY J Intel CorporationASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS 0124790309 pdf
Jan 04 2002Intel Corporation(assignment on the face of the patent)
Date Maintenance Fee Events
Sep 15 2005ASPN: Payor Number Assigned.
Sep 15 2005RMPN: Payer Number De-assigned.
Sep 14 2007M1551: Payment of Maintenance Fee, 4th Year, Large Entity.
Sep 07 2011M1552: Payment of Maintenance Fee, 8th Year, Large Entity.
Oct 23 2015REM: Maintenance Fee Reminder Mailed.
Mar 16 2016EXP: Patent Expired for Failure to Pay Maintenance Fees.


Date Maintenance Schedule
Mar 16 20074 years fee payment window open
Sep 16 20076 months grace period start (w surcharge)
Mar 16 2008patent expiry (for year 4)
Mar 16 20102 years to revive unintentionally abandoned end. (for year 4)
Mar 16 20118 years fee payment window open
Sep 16 20116 months grace period start (w surcharge)
Mar 16 2012patent expiry (for year 8)
Mar 16 20142 years to revive unintentionally abandoned end. (for year 8)
Mar 16 201512 years fee payment window open
Sep 16 20156 months grace period start (w surcharge)
Mar 16 2016patent expiry (for year 12)
Mar 16 20182 years to revive unintentionally abandoned end. (for year 12)