Patent US5862361A successfully refreshed from Google Patents.
← Back to Patent Explorer
US5862361A Expired / Lapsed US ⏱️ 0.0 years remaining

Sliced synchronous simulation engine for high speed simulation of integrated circuit behavior

Assignee: ADVANCED DATA CONTROLS Corp
•
Filing: 1995-09-07
•
Granted: 1999-01-19
•
Expires: 2015-09-07
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A custom simulation engine is provided which operates upon a set of statically scheduled events. The simulation engine is automatically created from a functional description of the integrated circuit design. Each element of each partition within the functional description is analyzed and events related to the element are scheduled. The statically scheduled events are used to produce scheduled source code, which is then compiled to produce the simulation engine. VHDL or Verilog descriptions are similarly automatically created from the functional description. Subsequently, the VHDL or Verilog descriptions are synthesized into a netlist describing a final design of an integrated circuit. The entire process is automatic, and so the simulation engine and the netlist are functionally equivalent by construction. No simulation of the VHDL or Verilog descriptions is required as the present simulation engine correctly represents the design. Manual development of a custom simulation engine is eliminated. Additionally, the current simulation engine may enable software intended to be run upon the modeled integrated circuit to be executed prior to receiving hardware. Software and hardware may be concurrently designed and verified.

Inventors

  • 👤 Prem P. Jain

Bibliographic Details

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

Claims Analysis

Total Claims: 27
Claim 1
Independent Claim 130 words
A method for creating a simulation engine from a functional description of an integrated circuit, comprising: statically scheduling events associated with said functional description, said statically scheduling comprising analyzing each one of a plurality of partitions within said functional description to determine each time at which an event occurs, wherein each time is measured with respect to a clock associated with said one of said plurality of partitions, and wherein at least one of a phase and a period of said clock associated with a first one of said plurality of partitions differs from a corresponding feature of said clock associated with a second one of said plurality of partitions; forming scheduled source code according to said step of statically scheduling; and compiling said source code into said simulation engine.
Claim 2
Independent Claim 130 words
A method for creating a simulation engine from a functional description of an integrated circuit, comprising: statically scheduling events associated with said functional description, said statically scheduling comprising analyzing each one of a plurality of partitions within said functional description to determine each time at which an event occurs, wherein each time is measured with respect to a clock associated with said one of said plurality of partitions, and wherein at least one of a phase and a period of said clock associated with a first one of said plurality of partitions differs from a corresponding feature of said clock associated with a second one of said plurality of partitions; forming scheduled source code according to said step of statically scheduling; and compiling said source code into said simulation engine.
Claim 3
Dependent Claim 20 words
The method as recited in claim 1 wherein said statically scheduling comprises selecting a master clock for said simulation engine.
Claim 4
Dependent Claim 33 words
The method as recited in claim 2 wherein said master clock has a period equal to the least common multiple of the periods of a plurality of clocks associated within said functional description.
Claim 5
Dependent Claim 32 words
The method as recited in claim 1 wherein said statically scheduling comprises recalibrating said events with respect to a master clock, wherein said master clock is the clock for said simulation engine.
Claim 6
Dependent Claim 18 words
The method as recited in claim 1 wherein said scheduled source code is formulated in a programming language.
Claim 7
Dependent Claim 16 words
The method as recited in claim 5 wherein said programming language is the C programming language.
Claim 8
Dependent Claim 31 words
The method as recited in claim 1 further comprising executing said simulation engine to determine if said functional description of said integrated circuit substantially fulfills a specification of said integrated circuit.
Claim 9
Dependent Claim 17 words
The method as recited in claim 1 wherein said statically scheduling comprises forming a global scheduling table.
Claim 10
Dependent Claim 35 words
The method as recited in claim 8 wherein said global scheduling table defines which ones of a plurality of partitions within said functional description include events within each time slice identified during said statically scheduling.
Claim 11
Dependent Claim 26 words
The method as recited in claim 1 further comprising forming an event-driven simulation model, wherein said simulation engine and said event-driven simulation model are functionally equivalent.
Claim 12
Dependent Claim 45 words
The method as recited in claim 1 further comprising executing said simulation engine, wherein executing said simulation engine comprises, during each clock cycle as defined by a master clock selected during said statically scheduling, evaluating, at least once, each event identified during said statically scheduling.
Claim 13
Independent Claim 62 words
A method for creating a custom simulation engine from a functional description of an integrated circuit, comprising: statically scheduling events associated with said functional description; deriving scheduled source code from said step of statically scheduling; and compiling said source code, thereby creating said custom simulation engine, wherein said custom simulation engine comprises an executable program module derived from said scheduled source code.
Claim 14
Independent Claim 62 words
A method for creating a custom simulation engine from a functional description of an integrated circuit, comprising: statically scheduling events associated with said functional description; deriving scheduled source code from said step of statically scheduling; and compiling said source code, thereby creating said custom simulation engine, wherein said custom simulation engine comprises an executable program module derived from said scheduled source code.
Claim 15
Dependent Claim 52 words
The method as recited in claim 12 wherein said statically scheduling comprises analyzing each one of a plurality of partitions within said functional description to determine each time at which an event occurs, wherein each time is measured with respect to a clock associated with said one of said plurality of partitions.
Claim 16
Dependent Claim 20 words
The method as recited in claim 13 wherein said statically scheduling comprises selecting a master clock for said simulation engine.
Claim 17
Dependent Claim 33 words
The method as recited in claim 14 wherein said master clock has a period equal to the least common multiple of the periods of a plurality of clocks associated within said functional description.
Claim 18
Dependent Claim 34 words
The method as recited in claim 14 wherein said master clock is divided into a plurality of time slices, and wherein each one of said plurality of time slices includes at least one event.
Claim 19
Dependent Claim 56 words
The method as recited in claim 16 wherein a particular event corresponding to a particular one of said plurality of partitions is included within a plurality of said plurality of time slices if said clock associated with said particular one of said plurality of partitions has a period shorter than a period of said master clock.
Claim 20
Dependent Claim 45 words
The method as recited in claim 16 wherein a particular one of said plurality of time slices includes a first event corresponding to a first one of said plurality of partitions and a second event corresponding to a second one of said plurality of partitions.
Claim 21
Dependent Claim 52 words
The method as recited in claim 2 wherein said statically scheduling comprises repeatedly scheduling a particular event detected within said one of said plurality of partitions if a first period of said clock associated with said one of said plurality of partitions is shorter than a second period of said master clock.
Claim 22
Dependent Claim 30 words
The method as recited in claim 19 wherein a number of times said particular event is scheduled is equal to a ratio of said second period to said first period.
Claim 23
Dependent Claim 127 words
The method as recited in claim 2 wherein said scheduled source code corresponding to each one of said plurality of partitions comprises: (i) a first plurality of functions, wherein each of said first plurality of functions corresponds to one of said events within said one of said plurality of partitions; (ii) a second plurality of functions, wherein each one of said second plurality of functions corresponds to a time slice within a period of said master clock in which at least one of said first plurality of functions is scheduled according to said statically scheduling; (iii) a partition routine configured to call each one of said second plurality of functions according to an order of said time slices; and (iv) a set of constant and function definitions.
Claim 24
Dependent Claim 60 words
The method as recited in claim 21 wherein said scheduled source code further comprises a main routine configured to call each of said second plurality of functions corresponding to each of said plurality of partitions according to a time slice in which said each of said second plurality of functions corresponding to each of said plurality of partitions is scheduled.
Claim 25
Dependent Claim 55 words
The method as recited in claim 1 wherein said scheduled source code comprises a plurality of functions, one for each time slice in which at least one event occurs in at least one of said plurality of partitions, and a main routine which repetitively calls each of said plurality of functions in time slice order.
Claim 26
Dependent Claim 74 words
The method as recited in claim 1 wherein said phase of said clock associated with said first one of said plurality of partitions differs from said phase of said clock associated with said second one of said plurality of partitions while said period of said clock associated with said first one of said plurality of partitions is equal to said period of said clock associated with said second one of said plurality of partitions.
Claim 27
Dependent Claim 40 words
The method as recited in claim 1 wherein said period of said clock associated with said first one of said plurality of partitions differs from said phase of said clock associated with said second one of said plurality of partitions.

USPTO Annuity & Maintenance Windows

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

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag