IP Library Granted Patent US 10,565,335
Granted Patent B2
US 10,565,335 · App. 15/920,804 · Granted Feb 18, 2020

Event-driven design simulation

Inventors: Vivian Chou (Rancho Palos Verdes, CA); Sherman Lee (Rancho Palos Verdes, CA)
Assignee: Montana Systems Inc.
G06F17/5036G06F9/30076G06F17/5027G06F17/5068
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,565,335
App. No.
15/920,804
Granted
Feb 18, 2020
Kind
B2
Abstract

An event-driven simulation system is provided. The simulation system includes an accelerator that executes event-driven instructions based on a testbench of a design. The accelerator uses an event table to keep track of pending input events and to identify instructions that need to be executed. The instructions are group-sorted into groups of logically independent instructions, and the simulation accelerator determines which group of instructions to fetch and execute based on which groups of instructions have pending events. The event table has an instruction event table and a group event table. Each group has one respective corresponding bit in the group event table for indicating whether the group has at least one pending event in the current time step. Each instruction of each group has a corresponding bit in the instruction event table for indicating whether the instruction has at least one pending event in the current time step.

Claims (29)

1. A method comprising:

storing a plurality of groups of instructions for simulating a testbench of a design at an instruction memory, wherein instructions in each group are logically independent of other instructions in the group;

identifying instructions in the instruction memory for execution by identifying one or more instructions having a pending input event by using an instruction event table and a group event table,

wherein each group has one respective corresponding bit in the group event table for indicating whether the group has at least one pending event in a current time step,

wherein each instruction of each group has a corresponding bit in the instruction event table for indicating whether the instruction has at least one pending event in the current time step; and

executing the identified instructions.

2. The method of claim 1 , wherein each instruction has one bit in the instruction event table for indicating whether the instruction has a pending event at any of its inputs.

3. The method of claim 1 , wherein each instruction has a corresponding bit in the instruction event table for each input of the instruction.

4. The method of claim 1 , wherein the instruction event table is stored in a dynamic random access memory (DRAM).

5. The method of claim 1 , wherein the group event table is stored in a storage having lower access latency and lower capacity than the instruction event table.

6. A method comprising:

storing a plurality of groups of instructions for simulating a testbench of a design at an instruction memory, wherein instructions in each group are logically independent of other instructions in the group;

using a group event table to identify a group of instructions in the instruction memory that has at least one pending event, wherein each group has one respective corresponding bit in the group event table for indicating whether the group has at least one pending event in a current time step;

using an instruction event table to identify instructions having at least one pending event in the identified group, wherein each instruction of each group has a corresponding bit in the instruction event table for indicating whether the instruction has at least one pending event in the current time step; and

executing the identified instructions.

7. The method of claim 6 , wherein each instruction has one bit in the instruction event table for indicating whether the instruction has a pending event at any of its inputs.

8. The method of claim 6 , wherein each instruction has a corresponding bit in the instruction event table for each input of the instruction.

9. The method of claim 6 , wherein the instruction event table is stored in a dynamic random access memory (DRAM).

10. The method of claim 6 , wherein the group event table is stored in a same storage device as the instruction event table.

11. The method of claim 6 , wherein the group event table is stored in a storage having lower access latency and lower capacity than the instruction event table.

12. An electronic apparatus comprising:

an instruction memory configured to store a plurality of groups of instructions for simulating a testbench of a design at an instruction memory, wherein instructions in each group are logically independent of other instructions in the group;

an event table storage configured to store an instruction event table and a group event table,

wherein each group has one respective corresponding bit in the group event table for indicating whether the group has at least one pending event in a current time step,

wherein each instruction of each group has a corresponding bit in the instruction event table for indicating whether the instruction has at least one pending event in the current time step; and

an instruction fetching circuit configured to identify one or more instructions having a pending input event by using the event table storage and retrieve the identified instructions from the instruction memory for execution.

13. The electronic apparatus of claim 12 , wherein each instruction has one bit in the instruction event table for indicating whether the instruction has a pending event at any of its inputs.

14. The electronic apparatus of claim 12 , wherein each instruction has a corresponding bit in the instruction event table for each input of the instruction.

15. The electronic apparatus of claim 12 , wherein the group event table is stored in a storage having lower access latency and lower capacity than the instruction event table.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 11, 2026
From: ALTAIR ENGINEERING CANADA, LTD
To: SIEMENS INDUSTRY SOFTWARE INC.
Reel/Frame 074923/0278 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 7, 2025
From: METRICS DESIGN AUTOMATION INC.
To: ALTAIR ENGINEERING CANADA, LTD.
Reel/Frame 069776/0967 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 26, 2022
From: MONTANA SYSTEMS, INC.
To: METRICS DESIGN AUTOMATION INC.
Reel/Frame 061212/0290 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 14, 2018
From: CHOU, VIVIAN; LEE, SHERMAN
To: MONTANA SYSTEMS, INC.
Reel/Frame 045208/0324 →
Continuity (3)
Continuation In Part 15399982 · Jan 6, 2017
Provisional Application 62304110 · Mar 4, 2016
Related Publication 20190286775A1 · Sep 19, 2019
Cited By (1)
US 12,657,360