← Back to Patent Explorer
US5870585A Expired / Lapsed US ⏱️ 0.0 years remaining

Design for a simulation module using an object-oriented programming language

Assignee: Advanced Micro Devices Inc
•
Filing: 1996-01-26
•
Granted: 1999-02-09
•
Expires: 2016-01-26
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A register transfer level (RTL) model is created using an object-oriented programming language. In that RTL model, a logic circuit can be represented by a hierarchy of objects ("modules") each having representation of state elements, input signals, output signals and internal signals. Each object is also provided member functions for initializing, for loading a new state and for generating a next state. These modules are collected in a linked list. In the beginning of simulation, each object is initialized as the linked list is traversed. Then, a consistent next state for the RTL model is obtained by generating a state next based on the initial state. Simulation proceeds by alternately traversing the linked list to load a new state into each module, and traversing the linked list to generate the next state for each module. The step of traversing the linked list to generate the next state of each module may require multiple executions to ensure convergence.

Inventors

  • 👤 Warren G. Stapleton

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-08 00:39
CPC Classifications
G; G06; G06F; G06F8/00; G06F8/30; G06F30/00; G06F30/30; G06F30/32; G06F30/33

Claims Analysis

Total Claims: 16
Claim 1
Independent Claim 123 words
A method for simulating a logic circuit using an RTL model, comprising the steps of: using an object-oriented programming language to create a class of objects each representing a logic circuit, each object of said class having representations for input signals, output signals, state elements and internal signals; for each of said objects, providing a function for initialization, a function for loading a new state, and a function for generating a next state; representing said logic circuit by creating a plurality of instantiations of said objects; initializing said instantiations by executing, for each of said instantiations said function for initialization; and for each of said instantiations, alternately executing said function for loading a new state, and said function for generating a next state.
Claim 2
Independent Claim 123 words
A method for simulating a logic circuit using an RTL model, comprising the steps of: using an object-oriented programming language to create a class of objects each representing a logic circuit, each object of said class having representations for input signals, output signals, state elements and internal signals; for each of said objects, providing a function for initialization, a function for loading a new state, and a function for generating a next state; representing said logic circuit by creating a plurality of instantiations of said objects; initializing said instantiations by executing, for each of said instantiations said function for initialization; and for each of said instantiations, alternately executing said function for loading a new state, and said function for generating a next state.
Claim 3
Dependent Claim 16 words
A method as in claim 1, wherein said object-oriented programming language is the C++ programming language.
Claim 4
Dependent Claim 51 words
A method as in claim 1, wherein said step of representing said logic circuit comprises the steps of: creating a source program using said class of objects; transforming said source program into executable program capable of being executed in a computer system; and running said executable program in said computer system.
Claim 5
Dependent Claim 34 words
A method as in claim 1, wherein said representations for input signals, output signals, state elements and internal signals comprises objects derived from a second class of objects created in said object-oriented programming language.
Claim 6
Dependent Claim 26 words
A method as in claim 4, wherein said second class of objects includes a data type, said data type provided for representing one or more signals.
Claim 7
Dependent Claim 32 words
A method as in claim 5, further including the step of providing, for each object in said second class of objects, a function for extracting a value of each of said signals.
Claim 8
Dependent Claim 33 words
A method as in claim 5, further including the step of providing, for each object in said second class of objects, a function for extracting values of a selected group of said signals.
Claim 9
Dependent Claim 32 words
A method as in claim 5, further including the step of providing, for each object in said second class of objects, operators for assigning, comparing, and summing objects in said second class.
Claim 10
Dependent Claim 22 words
A method as in claim 1, said function for loading a new state comprises the step of assigning values to state elements.
Claim 11
Dependent Claim 28 words
A method as in claim 1, said function for generating a next state comprises the step of assigning values to input signals, output signals, and internal signals values.
Claim 12
Dependent Claim 24 words
A method as in claim 1, wherein said step of representing said logic circuit provides said instantiations of said object in a linked list.
Claim 13
Dependent Claim 31 words
A method as in claim 1, wherein said function of generating a next state is executed multiple times for each new state loaded by said function for loading a new state.
Claim 14
Independent Claim 144 words
A method for simulating a logic circuit, comprising the steps of: representing said logic circuit by a collection of register transfer level (RTL) models, each RTL model being provided a function for initializing said RTL model, a function for loading a new state into said RTL model and a function for generating a next state for said RTL model; initializing, in a predetermined order, each of said RTL models, each RTL model being initialized using said function for initializing for said RTL model; applying, in said predetermined order, said function for generating a next state to each of said RTL models; and repeatedly applying the steps of: applying, in said predetermined order, said function for loading a new state to each of said RTL models; and applying, in said predetermined order, said function for generating a next state to each of said RTL models.
Claim 15
Independent Claim 144 words
A method for simulating a logic circuit, comprising the steps of: representing said logic circuit by a collection of register transfer level (RTL) models, each RTL model being provided a function for initializing said RTL model, a function for loading a new state into said RTL model and a function for generating a next state for said RTL model; initializing, in a predetermined order, each of said RTL models, each RTL model being initialized using said function for initializing for said RTL model; applying, in said predetermined order, said function for generating a next state to each of said RTL models; and repeatedly applying the steps of: applying, in said predetermined order, said function for loading a new state to each of said RTL models; and applying, in said predetermined order, said function for generating a next state to each of said RTL models.
Claim 16
Dependent Claim 43 words
A method as in claim 13, wherein said step of applying said function for generating a next state applies said function for generating a next state repeatedly, in said predetermined order, in order to achieve convergence of signal values among said RTL models.

References Cited (Backward Citations)

US5668732A Cited
US5537330A Cited
US5600579A Cited
US5546562A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2002-02-08 2002-08-10 2003-02-09 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2006-02-08 2006-08-10 2007-02-09 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2010-02-08 2010-08-10 2011-02-09 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag