IP Library Granted Patent US 10,747,930
Granted Patent B2
US 10,747,930 · App. 15/920,968 · Granted Aug 18, 2020

Event-driven design simulation

Inventors: Vivian Chou (Rancho Palos Verdes, CA); Sherman Lee (Rancho Palos Verdes, CA)
Assignee: Montana Systems Inc.
G06F30/367G06F9/355G06F9/3802G06F15/76G06F30/33G06F30/331G06F30/39
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,747,930
App. No.
15/920,968
Granted
Aug 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 (24)

1. An electronic apparatus comprising:

an instruction memory configure to store a plurality of groups of instructions, wherein instructions in each group are logically independent of other instructions in the group, at least two instructions stored in the instruction memory occupying different number of address locations in the instruction memory;

an event table storage configured to store pending event status of the plurality of groups of instructions;

a current group event register configured to store pending event status of a current group of instructions being executed, wherein each address location of each instruction of the current group has a corresponding bit in the current group event register for indicating whether an instruction starting at the address location has at least one pending event in a current time step; and

an instruction fetching circuit configured to produce a physical address for retrieving content from a set of address locations from the instruction memory based on an identifier of the current group and content of the current group event register.

2. The electronic apparatus of claim 1 , wherein the event table storage comprises a dynamic random access memory (DRAM).

3. The electronic apparatus of claim 1 , wherein a bit that corresponds to an address location at which an instruction starts is used to indicate whether the instruction has a pending event and bits that correspond to other address locations occupied by the instruction are not used to indicate whether the instruction has a pending event.

4. The electronic apparatus of claim 1 , wherein the instruction fetching circuit is further configured to use a bit position of each pending event in the current group event register to identify a starting address location occupied by an instruction having the pending event.

5. The electronic apparatus of claim 1 , wherein the retrieved content of the set of address locations includes at least one instruction, wherein the physical address is further for retrieving input data for the instruction included in the retrieved content.

6. The electronic apparatus of claim 1 , wherein each instruction of each group has a corresponding bit in the event table storage for indicating whether the instruction has at least one pending event in the current time step.

7. The electronic apparatus of claim 1 , wherein each address location of each group has a corresponding bit in the event table storage for indicating whether an instruction having at least one pending event in the current time step starts at the address location.

8. The electronic apparatus of claim 1 , wherein at least one instruction occupies one address location but not more in the instruction memory.

9. A method comprising:

storing a plurality of groups of instructions at an instruction memory, wherein instructions in each group are logically independent of other instructions in the group, at least two instructions stored in the instruction memory occupying different number of address locations in the instruction memory;

selecting a group of instructions for execution as a current group for a current time step;

generating a physical address based on an identifier of the current group and content of a current group event register, wherein each address location of each instruction of the current group in the instruction memory has a corresponding bit in the current group event register for indicating whether an instruction starting at the address location has at least one pending event in the current time step; and

using the physical address to retrieve content from a set of address locations from the instruction memory.

10. The method of claim 9 , wherein selecting a group of instructions for execution as the current group comprises retrieving content from an event table storage storing pending event status of the groups of instructions.

11. The method of claim 10 , wherein each instruction of each group has a corresponding bit in the event table storage for indicating whether the instruction has at least one pending event in the current time step.

12. The method of claim 10 , wherein each address location of each group has a corresponding bit in the event table storage for indicating whether an instruction having at least one pending event in the current time step starts at the address location.

13. The method of claim 9 , wherein a bit that corresponds to an address location at which an instruction starts is used to indicate whether the instruction has a pending event and bits that correspond to other address locations occupied by the instruction are not used to indicate whether the instruction has a pending event.

14. The method of claim 9 , wherein a bit position of each pending event in the current group event register is used to identify a starting address location occupied by an instruction having the pending event.

15. The method of claim 9 , wherein the retrieved content of the set of address locations includes at least one instruction, the method further comprises using the physical address to retrieve input data for the instruction.

16. The method of claim 9 , wherein at least one instruction occupies one address location but not more in the instruction memory.

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/0709 →
Continuity (3)
Continuation 15399982 · Jan 6, 2017
Provisional Application 62304110 · Mar 4, 2016
Related Publication 20180203967A1 · Jul 19, 2018