# US 10,372,576 B2 · Simulation reproduction apparatus, simulation reproduction method, and computer readable medium

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,372,576 B2
- Document ID: US10372576B2
- Status: Granted
- Kind: B2
- Application number: 15/559,776
- Filed: 2015-05-11
- Published: 2018-03-08
- Granted: 2019-08-06
- Earliest claimed: 2015-05-11
- Assignees: Mitsubishi Electric Corporation
- Applicants: Mitsubishi Electric Corporation
- Inventors: Hirokazu Suzuki
- Web page: https://patentgrep.com/patent/US10372576B2

## CPC

- G06F 11/28: by checking the correct order of processing (G06F11/08 - G06F11/26 take precedence; monitoring patterns of pulse trains H03K5/19)
- G06F 11/3461: {Trace driven simulation}
- G06F 11/3612: {by runtime analysis (performance monitoring G06F11/3466)}
- G06F 11/3636: {by tracing the execution of the program}
- G06F 11/3648: {using additional hardware}
- G06F 11/3698: Environments for analysis, debugging or testing of software
- G06F 30/20: Design optimisation, verification or simulation (optimisation, verification or simulation of circuit designs G06F30/30)
- G05B 17/02: electric
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G05B: CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS (systems for controlling or regulating non-electric variables G05D; systems for regulating electric or magnetic variables G05F; control devices or systems insofar as characterised by mechanical features only G05G)

## Abstract

A storage unit stores a trace file obtained by simulating an operation of an object. A reception unit receives a forward direction reproduction instruction. A reproduction unit reads each piece of trace data from the trace file. The reproduction unit determines a timing for updating a graphic display, based on a new display time corresponding to an occurrence time included in new trace data read this time and an old display time corresponding to an occurrence time included in old trace data read last time. A display unit changes a state of the object displayed by the graphic display to a state indicated by a new state value included in the new trace data, at the determined timing.

## Claims

### Claim 1

A simulation reproduction apparatus to debug software in an embedded system by simulating an operation of a hardware object in the embedded system responsive to execution of instructions of the software, the simulation reproduction apparatus comprising:
a graphic display on which the simulated operations of the hardware object are reproduced; and
processing circuitry to:
store a trace file obtained by simulating the operation of the object and having one or more pieces of trace data recorded therein, each piece of the trace data including an occurrence time at which a change in a state of the object has occurred and a new state value indicating a state after the state has changed;
receive a forward direction reproduction instruction to cause the operation of the object to be reproduced in an order of times, a temporary stop instruction to cause the operation of the object to be temporarily stopped, and a reverse direction frame feed instruction to cause the state of the object to be changed once in a reverse order of the times;
read, from the trace file, each piece of the trace data in an order of the occurrence time when the forward direction reproduction instruction is received, and to read one piece of the trace data from the trace file in a reverse order of the occurrence time when the reverse direction frame feed instruction is received;
determine a timing for updating the graphic display based on a new display time corresponding to the occurrence time included in new trace data being the trace data read at a time and an old display time corresponding to the occurrence time included in old trace data being the trace data read at a previous time; and
change the state of the object displayed by the graphic display to the state indicated by the new state value included in the new trace data, at the determined timing, wherein the displaying is performed to reproduce the simulated operations of the hardware object to allow a user to identify a state of the hardware object when a wrong operation occurs while debugging the software.

### Claim 2 (depends on 1)

The simulation reproduction apparatus according to claim 1,
wherein the processing circuitry receives a forward direction frame feed instruction to cause the state of the object to be changed once in the order of the times; and
wherein when the forward direction frame feed instruction is received, the processing circuitry reads one piece of the trace data from the trace file in the order of the occurrence time.

### Claim 3 (depends on 1)

The simulation reproduction apparatus according to claim 1,
wherein the processing circuitry receives a reverse direction reproduction instruction to cause the operation of the object to be reproduced in the reverse order of the times; and
wherein when the reverse direction reproduction instruction is received, the processing circuitry reads, from the trace file, each piece of the trace data in the reverse order of the occurrence time.

### Claim 4 (depends on 1)

The simulation reproduction apparatus according to claim 1,
wherein when an interval between the new display time and the old display time is shorter than a lower limit period, the timing is a time shifted from the old display time by the lower limit period.

### Claim 5 (depends on 1)

The simulation reproduction apparatus according to claim 1,
wherein when an interval between the new display time and the old display time is longer than an upper limit period, the timing is a time shifted from the old display time by the upper limit period.

### Claim 6 (depends on 1)

The simulation reproduction apparatus according to claim 1,
wherein each piece of the trace data includes a delay period that has occurred at a time of a change in the graphic display displaying the state of the object during the simulation; and
wherein the processing circuitry determines the timing, based on the new display time, the old display time, and the delay period.

### Claim 7 (depends on 1)

The simulation reproduction apparatus according to claim 1,
wherein the graphic display includes a reproduction time being a time at which a time in a time zone where the operation of the object has been simulated is reproduced; and
wherein when the reverse direction frame feed instruction is received, the processing circuitry updates the reproduction time to a time traced back from the occurrence time included in the new trace data by a correction period.

### Claim 8 (depends on 7)

The simulation reproduction apparatus according to claim 7,
wherein the processing circuitry receives a reverse direction reproduction instruction to cause the operation of the object to be reproduced in the reverse order of the times; and
wherein when the reverse direction reproduction instruction is received, the processing circuitry updates the reproduction time to a time traced back from the occurrence time included in the new trace data by the correction period.

### Claim 9 (depends on 1)

The simulation reproduction apparatus according to claim 1,
wherein the processing circuitry functions as a clock indicating a reproduction time being a time at which a time in a time zone where the operation of the object has been simulated is reproduced;
wherein when the forward direction reproduction instruction is received, the processing circuitry causes the reproduction time to proceed in the order of the times; and
wherein the processing circuitry determines the timing based on the new display time, the old display time, and the reproduction time.

### Claim 10 (depends on 9)

The simulation reproduction apparatus according to claim 9,
wherein the processing circuitry receives a reverse direction reproduction instruction to cause the operation of the object to be reproduced in the reverse order of the times; and
wherein when the reverse direction reproduction instruction is received, the processing circuitry causes the reproduction time to proceed in the reverse order of the times.

### Claim 11 (depends on 9)

The simulation reproduction apparatus according to claim 9,
wherein the processing circuitry receives a forward direction frame feed instruction to cause the state of the object to be changed once in the order of the times; and
wherein when the forward direction frame feed instruction or the reverse direction frame feed instruction is received, the processing circuitry updates the reproduction time to the new display time.

### Claim 12 (depends on 1)

The simulation reproduction apparatus according to claim 1,
wherein the processing circuitry functions as a clock indicating a reproduction time being a time at which a time in a time zone where the operation of the object has been simulated is reproduced;
computes a display interval being an interval between the new display time and the old display time; and
computes a waiting period until the state of the object is changed;
wherein when the forward direction reproduction instruction is received, the processing circuitry causes the reproduction time to proceed in the order of the times;
wherein when the forward direction reproduction instruction is received, the processing circuitry computes an interval from the old display time to the new display time being the occurrence time included in the new trace data as the display interval;
wherein when the display interval computed is longer than an upper limit period, the processing circuitry computes an interval between the reproduction time indicated and a time at which the upper limit period elapses from the old display time, as the waiting period;
wherein the processing circuitry changes the state of the object, using a time at which the computed waiting period has elapsed, as the timing; and
wherein when the computed waiting period has elapsed, the processing circuitry updates the reproduction time to the new display time.

### Claim 13 (depends on 12)

The simulation reproduction apparatus according to claim 12,
wherein each piece of the trace data includes an old state value indicating a state before the change in the state;
wherein the processing circuitry receives a reverse direction reproduction instruction to cause the operation of the object to reproduce in the reverse order of the times;
wherein when the reverse direction reproduction instruction is received, the processing circuitry causes the reproduction time to proceed in the reverse order of the times;
wherein when the reverse direction reproduction instruction is received, the processing circuitry reads each piece of the trace data in the reverse order of the occurrence time;
wherein when the reverse direction reproduction instruction is received, the processing circuitry computes the interval from the new display time to the old display time as the display interval, the new display time being a time traced back from the occurrence time included in the new trace data by a correction period;
wherein when the computed display interval is longer than the upper limit period, the processing circuitry computes an interval between the reproduction time indicated and a time traced back from the old display time by the upper limit period, as the waiting period;
wherein when the computed waiting period elapses, the processing circuitry changes the state of the object to the state indicated by the new state value included in the new trace data; and
wherein when the computed waiting period elapses, the processing circuitry updates the reproduction time to the new display time.

### Claim 14

A simulation-reproduction method of debugging software in an embedded system by simulating an operation of a hardware object in the embedded system responsive to execution of instructions of the software, the simulation reproduction method comprising:
storing a trace file obtained by simulating the operation of the hardware object and having one or more pieces of trace data recorded therein, each piece of the trace data including an occurrence time at which a change in a state of the object has occurred and a new state value indicating a state after the state has changed;
receiving a forward direction reproduction instruction to cause the operation of the object to be reproduced in an order of times, a temporary stop instruction to cause the operation of the hardware object to be temporarily stopped, and a reverse direction frame feed instruction to cause the state of the hardware object to be changed once in a reverse order of the times;
reading, from the trace file, each piece of the trace data in an order of the occurrence time when the forward direction reproduction instruction is received, and reading one piece of the trace data from the trace file in a reverse order of the occurrence time when the reverse direction frame feed instruction is received;
determining a timing for updating the graphic display based on a new display time corresponding to the occurrence time included in new trace data being the trace data read at a time and an old display time corresponding to the occurrence time included in old trace data being the trace data read last time; and
changing the state of the object displayed by a graphic display to the state indicated by the new state value included in the new trace data, at the determined timing, causing the graphic display to reproduce simulated operations of the hardware object to allow a user to identify a state of the hardware object when a wrong operation occurs while debugging the software.

### Claim 15

A non-transitory computer-readable medium storing a simulation reproduction program using a trace file obtained by simulating an operation of a hardware object in an embedded system responsive to execution of instructions of software in the embedded system, the trace file having one or more pieces of trace data recorded therein, each piece of the trace data including an occurrence time at which a change in a state of the hardware object has occurred and a new state value indicating a state after the state has changed, the simulation reproduction program when executed by a computer to perform:
a reception process of receiving a forward direction reproduction instruction to cause the operation of the hardware object to be reproduced in an order of times, a temporary stop instruction to cause the operation of the hardware object to be temporarily stopped, and a reverse direction frame feed instruction to cause the state of the object to be changed once in a reverse order of the times;
a trace data reading process of reading, from the trace file, each piece of the trace data in an order of the occurrence time when the forward direction reproduction instruction is received, and reading one piece of the trace data from the trace file in a reverse order of the occurrence time when the reverse direction frame feed instruction is received;
a timing control process of determining a timing for updating the graphic display based on a new display time corresponding to the occurrence time included in new trace data being the trace data read at a time and an old display time corresponding to the occurrence time included in old trace data being the trace data read last time; and
a display process of changing the state of the hardware object displayed by the graphic display to the state indicated by the new state value included in the new trace data,
wherein the display process is performed to reproduce simulated operations of the hardware object to allow a user to identify a state of the hardware object when a wrong operation occurs while debugging the software.
