Simulation server system and method
First Claim
1. A method of executing a plurality of simulation jobs in a simulation system network, the simulation system network including a plurality of client workstations, a bus subsystem, and a simulation server which includes a reconfigurable hardware unit which contains a hardware model of at least a portion of the user design, comprising:
- queueing a first simulation job associated with a first user design and a second simulation job associated with a second user design;
determining priority between the first simulation job and the second simulation job; and
providing access to the reconfigurable hardware unit to the first simulation job and the second simulation job in a time-shared manner based on the priority determination and for a time duration until a preemption state is reached, includingloading a software model of the first simulation job in at least one client workstation if the priority determination resolves in favor of the first simulation job; and
configuring the reconfigurable hardware unit with the hardware model of the first user design if the priority determination resolves in favor of the first simulation job.
3 Assignments
0 Petitions
Accused Products
Abstract
The SEmulation system provides four modes of operation: (1) Software Simulation, (2) Simulation via Hardware Acceleration, (3) In-Circuit Emulation (ICE), and (4) Post-Simulation Analysis. At a high level, the present invention may be embodied in each of the above four modes or various combinations of these modes. At the core of these modes is a software kernel which controls the overall operation of this system. The main control loop of the kernel executes the following steps: initialize system, evaluate active test-bench processes/components, evaluate clock components, detect clock edge, update registers and memories, propagate combinational components, advance simulation time, and continue the loop as long as active test-bench processes are present. A Simulation server in accordance with an embodiment of the present invention allows multiple users to access the same reconfigurable hardware unit to effectively simulate and accelerate the same or different user designs in a time-shared manner in both a network and a non-network environment. The server provides the multiple users or processes to access the reconfigurable hardware unit for acceleration and hardware state swapping purposes. The Simulation server includes the scheduler, one or more device drivers, and the reconfigurable hardware unit. The scheduler in the Simulation server is based on a preemptive round robin algorithm. The server scheduler includes a simulation job queue table, a priority sorter, and a job swapper.
312 Citations
27 Claims
-
1. A method of executing a plurality of simulation jobs in a simulation system network, the simulation system network including a plurality of client workstations, a bus subsystem, and a simulation server which includes a reconfigurable hardware unit which contains a hardware model of at least a portion of the user design, comprising:
-
queueing a first simulation job associated with a first user design and a second simulation job associated with a second user design; determining priority between the first simulation job and the second simulation job; and providing access to the reconfigurable hardware unit to the first simulation job and the second simulation job in a time-shared manner based on the priority determination and for a time duration until a preemption state is reached, including loading a software model of the first simulation job in at least one client workstation if the priority determination resolves in favor of the first simulation job; and configuring the reconfigurable hardware unit with the hardware model of the first user design if the priority determination resolves in favor of the first simulation job. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A method of serving a plurality of simulation jobs in a time-shared manner in a simulation computing system, the simulation computing system including a first client workstation and a second client workstation, a bus subsystem, and a simulation server which includes a reconfigurable hardware unit which contains a hardware model of at least a portion of the user design, comprising:
-
loading in the first client workstation a software model of a first user design which is associated with a first simulation job; configuring the reconfigurable hardware unit with a hardware model of the first user design; executing the first simulation job in the reconfigurable hardware unit and the first client workstation for a predetermined time period; requesting access to the reconfigurable hardware unit by a second simulation job associated with the second client workstation; determining priority between the first simulation job and the second simulation job; and providing access of the reconfigurable hardware unit to either the first simulation job or the second simulation job based on the priority determination. - View Dependent Claims (12, 13, 14, 15)
-
-
16. A simulation server for allowing multiple client stations to configure, load, and execute multiple simulation jobs, where each simulation job is associated with a user design, comprising:
-
a reconfigurable hardware unit coupled to a bus subsystem and including a bus controller, at least one logic device for modeling at least portion of the user design in hardware, and at least one memory device; a scheduler for granting access to the reconfigurable hardware unit to each client station for a predetermined time period; configuration logic for configuring the reconfigurable hardware unit with a hardware model of each client station'"'"'s respective user design and loading state values of each client station'"'"'s respective user design; execution logic for executing each client station'"'"'s respective user design job in a time-shared manner; and at least one device driver coupled to the bus subsystem for enabling communication between the scheduler and the reconfigurable hardware unit. - View Dependent Claims (17, 18)
-
-
19. A method of serving a plurality of simulation sessions in a time-shared manner in a simulation computing system, the simulation computing system including a reconfigurable hardware unit, a plurality of client workstations, and a bus system for coupling the plurality of client workstations and the reconfigurable hardware unit, comprising:
-
configuring the reconfigurable hardware unit with a first hardware model of a first user design for a first simulation session; loading state values for the first hardware model to initially advance the first simulation session to a desired test point; simulating the first user design in a first client workstation; and configuring the reconfigurable hardware unit with a second hardware model of a second user design for a second simulation session. - View Dependent Claims (20, 21, 22, 23)
-
-
24. A method of serving a plurality of simulation sessions in a time-shared manner in a simulation computing system, the simulation computing system including a reconfigurable hardware unit which contains a hardware model of at least a portion of a user design, a plurality of client workstations, and a bus system for coupling the plurality of client workstations and the reconfigurable hardware unit, comprising:
-
configuring the reconfigurable hardware unit with a first hardware model of the user design; loading a set of state values for the first hardware model to initially advance a first simulation session to a desired test point; simulating the user design in a first client workstation for a first set of test points; and simulating the same user design in a second client workstation for a second set of test points concurrently with the first client workstation'"'"'s simulation of the first set of test points.
-
-
25. A simulation system for debugging and simulating at least one user design and allowing a plurality of users to access their respective user designs, comprising:
-
a plurality of client computing stations, each client computing station associated with at least one user design; a simulation server for modeling at least a portion of a user design for access by a first client computing station during a first simulation session and for modeling at least a portion of another user design for access by a second client computing station during a second simulation session, wherein the first simulation session and the second simulation session are contiguous in time; and a bus system for coupling the plurality of client computing stations and the simulation server. - View Dependent Claims (26, 27)
-
Specification