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

Simulation server system and method

Assignee: Cadence Design Systems Inc
•
Filing: 1998-02-05
•
Granted: 2000-10-17
•
Expires: 2018-02-05
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

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.

Inventors

  • 👤 Steven Wang
  • 👤 Ping-sheng Tseng
  • 👤 Sharon Sheau-Pyng Lin
  • 👤 Ren-Song Tsay
  • 👤 Richard Yachyang Sun
  • 👤 Quincy Kun-Hsu Shen
  • 👤 Mike Mon Yen Tsai

Bibliographic Details

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

Claims Analysis

Total Claims: 33
Claim 1
Independent Claim 179 words
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.
Claim 2
Independent Claim 179 words
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.
Claim 3
Dependent Claim 47 words
The method of claim 1 wherein the preemption state is selected from the group consisting of a new simulation job with a higher priority than the priority of the first simulation job, a predetermined time period, a time-out timer period, and completion of the first simulation job.
Claim 4
Dependent Claim 29 words
The method of claim 1 further comprising: executing the second simulation job for a predetermined time period after the predetermined time for executing the first simulation job has elapsed.
Claim 5
Dependent Claim 53 words
The method of claim 3 wherein the step of executing the second simulation job further comprises: preempting the first simulation job after the predetermined time has elapsed; swapping the first simulation job with the second simulation job in the reconfigurable hardware unit; and executing the second simulation job for the predetermined time period.
Claim 6
Dependent Claim 70 words
The method of claim 4 wherein the step of swapping jobs further comprises: saving state information of the first simulation job; configuring the reconfigurable hardware unit with at least a portion of the second user design associated with the second simulation job; loading any saved software model associated with the second simulation job; and loading any saved hardware state values and software state values associated with the second simulation job.
Claim 7
Dependent Claim 40 words
The method of claim 5 wherein the step of saving state information of the first simulation job further comprises: saving hardware memory state values for the first simulation job; and saving software model state values for the first simulation job.
Claim 8
Dependent Claim 52 words
The method of claim 4 wherein the first user design is the same as the second user design and wherein the step of swapping jobs further comprises: saving state information of the first simulation job; and loading any saved hardware state values and software state values associated with the second simulation job.
Claim 9
Dependent Claim 33 words
The method of claim 1 wherein the step of executing further comprises: executing the first simulation job until its completion if the first simulation job has a higher priority than the second priority.
Claim 10
Dependent Claim 30 words
The method of claim 1 further comprising: executing a third simulation job if the priority of the third simulation job is higher than the priority of the first simulation job.
Claim 11
Dependent Claim 48 words
The method of claim 8 wherein the step of executing the third simulation job further comprises: preempting the first simulation job; swapping the first simulation job with the third simulation job in the reconfigurable hardware unit; and executing the third simulation job until a preemption state is reached.
Claim 12
Independent Claim 170 words
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.
Claim 13
Independent Claim 170 words
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.
Claim 14
Dependent Claim 133 words
The method of claim 11 wherein the step of providing access to either the first simulation job or the second simulation job further comprises: preempting the first simulation job with the second simulation job if the second simulation job has a higher priority than the priority of the first simulation job; continue executing the first simulation job if the second simulation job has a lower priority than the priority of the first simulation job; continue executing the first simulation job if the second simulation job has the same priority as the first simulation job and the predetermined time period has not elapsed; and preempting the first simulation job with'the second simulation job if the second simulation job has the same priority as the first simulation job and the predetermined time period has elapsed.
Claim 15
Dependent Claim 33 words
The method of claim 12 wherein the step of preempting further comprises: swapping the first simulation job with the second simulation job; and executing the second simulation job for the predetermined time period.
Claim 16
Dependent Claim 70 words
The method of claim 13 wherein the step of swapping jobs further comprises: saving state information of the first simulation job; configuring the reconfigurable hardware unit with at least a portion of the second user design associated with the second simulation job; loading any saved software model associated with the second simulation job; and loading any saved hardware state values and software state values associated with the second simulation job.
Claim 17
Dependent Claim 40 words
The method of claim 14 wherein the step of saving state information of the first simulation job further comprises: saving hardware memory state values for the first simulation job; and saving software model state values for the first simulation job.
Claim 18
Dependent Claim 149 words
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.
Claim 19
Dependent Claim 149 words
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.
Claim 20
Dependent Claim 16 words
The server of claim 16 wherein the scheduler is based on a preemptive round robin algorithm.
Claim 21
Dependent Claim 74 words
The server of claim 16 wherein the scheduler further comprises: simulation job queue table that maintains a list of at least one simulation job request associated with an outstanding simulation job; a priority sorter for determining which outstanding simulation job to execute based on a predetermined priority; and a job swapper for temporarily replacing one simulation job associated with one user for another simulation job associated with another user based on the predetermined priority.
Claim 22
Independent Claim 120 words
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.
Claim 23
Independent Claim 120 words
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.
Claim 24
Dependent Claim 38 words
The method of claim 19, further comprising steps: loading state values for the second hardware model to initially advance the second simulation session to a desired test point; simulating the second user design in a second client workstation.
Claim 25
Dependent Claim 56 words
The method of claim 20, further comprising step: accelerating the second simulation session from a first test point to a second test point for the second user design with the second hardware model in the reconfigurable hardware unit; and returning to simulating the second user design in the second client workstation from the second test point.
Claim 26
Dependent Claim 76 words
The method of claim 19, further comprising step: reconfiguring the reconfigurable hardware unit with the first hardware model of the first user design for the first simulation session; accelerating the first simulation session from a first test point to a second test point for the first user design with the first hardware model in the reconfigurable hardware unit; and returning to simulating the first user design in the first client workstation from the second test point.
Claim 27
Dependent Claim 18 words
The method of claim 19, further comprising step: simulating the second user design in the first client workstation.
Claim 28
Independent Claim 148 words
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.
Claim 29
Independent Claim 148 words
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.
Claim 30
Dependent Claim 122 words
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.
Claim 31
Dependent Claim 122 words
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.
Claim 32
Dependent Claim 61 words
The simulation system of claim 25, wherein the simulation server further comprises: a reconfigurable hardware unit for modeling at least a portion of each user design as a hardware model; and a scheduler for granting access to the reconfigurable hardware unit to each client computing station for a predetermined time period for simulation of each client computing station's respective user design.
Claim 33
Dependent Claim 33 words
The simulation system of claim 26, wherein the simulation system further comprises: at least one device driver coupled to the bus system for enabling communication between the scheduler and the reconfigurable hardware unit.

References Cited (Backward Citations)

US3106698A Cited
US3287702A Cited
US3287703A Cited
US3473160A Cited
US4020469A Cited
US4306286A Cited
US4386403A Cited
US4488354A Cited
US4503386A Cited
US4656580A Cited
US4541071A Cited
US4578761A Cited
US4791602A Cited
US4612618A Cited
US4621339A Cited
US4593363A Cited
US4577276A Cited
US4675832A Cited
US4656592A Cited
US4870302A Cited
US4695999A Cited
US4949275A Cited
US4642487A Cited
US5023775A Cited
US4706216A Cited
US4758985A Cited
US4752887A Cited
US4697241A Cited
US4747102A Cited
US4819150A Cited
US4942536A Cited
US4740919A Cited
US4935734A Cited
US4882690A Cited
US4803636A Cited
US4700187A Cited
US4918594A Cited
US4835705A Cited
US4744084A Cited
US4823276A Cited
US4862347A Cited
US4777606A Cited
US4787061A Cited
US5126966A Cited
US4736338A Cited
US4945503A Cited
US4768196A Cited
US4918440A Cited
US4811214A Cited
US4786904A Cited
US4682440A Cited
US4849928A Cited
US4942615A Cited
US4924429A Cited
US4827427A Cited
US4965739A Cited
US4908772A Cited
US4815003A Cited
US4849904A Cited
US5093920A Cited
US4872125A Cited
US4951220A Cited
US4901260A Cited
US4876466A Cited
US5046017A Cited
US4922432A Cited
US5197016A Cited
US4931946A Cited
US5053980A Cited
US4914612A Cited
US5003487A Cited
US4901259A Cited
US5041986A Cited
US5661662A Cited
US5657241A Cited
US5796623A Cited
US5612891A Cited
US5452231A Cited
US5036473A Cited
US5448496A Cited
US5329470A Cited
US5109353A Cited
US5644515A Cited
US5477475A Cited
US5140526A Cited
US5253181A Cited
US5051938A Cited
US5343406A Cited
US5233539A Cited
US5231588A Cited
US5661409A Cited
US5377124A Cited
US5260881A Cited
US5081602A Cited
US5231589A Cited
US5375074A Cited
US5146460A Cited
US5128871A Cited
US5263149A Cited
US5084824A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2003-10-17 2004-04-17 2004-10-17 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2007-10-17 2008-04-17 2008-10-17 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2011-10-17 2012-04-17 2012-10-17 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag