# US 12,001,317 B2 · Waveform based reconstruction for emulation

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

- Number: US 12,001,317 B2
- Document ID: US12001317B2
- Status: Granted
- Kind: B2
- Application number: 18/342,361
- Filed: 2023-06-27
- Published: 2023-10-26
- Granted: 2024-06-04
- Earliest claimed: 2016-11-11
- Assignees: Synopsys, Inc.
- Applicants: Synopsys, Inc.
- Inventors: Gagan Vishal Jain; Johnson Adaikalasamy; Alexander John Wakefield; Ritesh Mittal; Solaiman Rahim; Olivier Coudert
- Web page: https://patentgrep.com/patent/US12001317B2

## CPC

- G06F 11/3652: {in-circuit-emulation [ICE] arrangements}
- G06F 11/3636: {by tracing the execution of the program}
- G06F 11/3656: {using a specific debug interface}
- G06F 30/331: with hardware acceleration, e.g. by using field programmable gate array [FPGA] or emulation
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A process is disclosed to identify the minimal set of sequential and combinational signals needed to fully reconstruct the combinational layout after emulation is complete. A minimal subset of sequential and combinational elements is output from the emulator to maximize the emulator speed and limit the utilization of emulator resources, e.g., FPGA resources. An efficient reconstruction of combinational waveforms or SAIF data is performed using a parallel computing grid.

## Claims

### Claim 1

A non-transitory computer readable medium comprising stored instructions, the instructions that when executed by a processor cause the processor to:
determine a first portion of a first waveform from waveforms of signals of a plurality of logic circuits, the first waveform associated with a first signal of the signals, the first portion of the first waveform having at least a predetermined number of toggles during predetermined clock cycles of a plurality of clock cycles during emulation of the plurality of logic circuits;
convert the first portion of the first waveform into a plurality of bits, each bit of the plurality of bits representing a state of the first signal during a corresponding clock cycle;
simulate electronically one or more logic circuits of the plurality of logic circuits for first clock cycles of the plurality of clock cycles, the first clock cycles of the plurality of clock cycles corresponding to a second portion of the first waveform;
omit simulation of the one or more logic circuits for second clock cycles of the plurality of clock cycles corresponding to a third portion of the first waveform;
simulate electronically the one or more logic circuits based on the plurality of bits for third clock cycles of the plurality of clock cycles, the third clock cycles of the plurality of clock cycles corresponding to the first portion of the first waveform; and
generate an output waveform of an output signal of a logic circuit from the one or more logic circuits for the plurality of clock cycles based on the simulation of the one or more logic circuits for the first clock cycles and the third clock cycles.

### Claim 2 (depends on 1)

The non-transitory computer readable medium of claim 1, wherein the instructions that cause the processor to simulate the one or more logic circuits based on the plurality of bits for the third clock cycles of the plurality of clock cycles further cause a processing unit to obtain a portion of the output signal corresponding to the third clock cycles through a single opcode based on the plurality of bits.

### Claim 3 (depends on 1)

The non-transitory computer readable medium of claim 1, wherein the instructions to generate the output waveform of the output signal of the logic circuit for the plurality of clock cycles further comprise instructions that when executed cause the processor to:
detect a periodic pattern in an input waveform of an input signal of the logic circuit for the first clock cycles;
determine a number of periodic patterns repeated in the input waveform of the input signal for the first clock cycles; and
generate the output waveform of the output signal of the logic circuit for the plurality of clock cycles based on the periodic pattern and the number of the periodic patterns repeated.

### Claim 4 (depends on 3)

The non-transitory computer readable medium of claim 3, wherein the instructions to cause the processor to generate the output waveform of the output signal of the logic circuit for the plurality of clock cycles further comprise instructions that when executed cause the processor to:
generate the output waveform of the output signal of the logic circuit for the second clock cycles to be in a predetermined state.

### Claim 5 (depends on 1)

The non-transitory computer readable medium of claim 1, further comprising instructions that when executed by the processor cause the processor to:
determine a signal to be used as a reference signal of the logic circuit;
determine the first clock cycles of the plurality of clock cycles at which the reference signal is in a first state; and
determine the second clock cycles of the plurality of clock cycles at which the reference signal is in a second state different from the first state.

### Claim 6 (depends on 1)

The non-transitory computer readable medium of claim 1, wherein the waveforms of the signals are received from an emulator and are represented in switching activity interface format (SAIF), a waveform of a signal represented in the SAIF describing a number of toggles of the signal, a number of clock cycles during which the signal is in a low state, and a number of clock cycles during which the signal is in a high state.

### Claim 7 (depends on 1)

The non-transitory computer readable medium of claim 1, further comprising instructions that when executed by the processor cause the processor to:
receive, from an emulator, the waveforms of signals of the plurality of logic circuits, the signals traced by the emulator for the plurality of clock cycles during emulation of the plurality of logic circuits; and
obtain a computerized model of one or more logic circuits of the plurality of logic circuits.

### Claim 8 (depends on 7)

The non-transitory computer readable medium of claim 7, wherein, the output signal of the logic circuit is not traced by the emulator.

### Claim 9

A method comprising:
determining a first portion of a first waveform from waveforms of signals of a plurality of logic circuits, the first waveform associated with a first signal of the signals, the first portion of the first waveform having at least a predetermined number of toggles during predetermined clock cycles of a plurality of clock cycles during emulation of the plurality of logic circuits;
converting the first portion of the first waveform into a plurality of bits, each bit of the plurality of bits representing a state of the first signal during a corresponding clock cycle;
simulating electronically one or more logic circuits of the plurality of logic circuits for first clock cycles of the plurality of clock cycles, the first clock cycles of the plurality of clock cycles corresponding to a second portion of the first waveform;
omitting simulation of the one or more logic circuits for second clock cycles of the plurality of clock cycles corresponding to a third portion of the first waveform;
simulating electronically the one or more logic circuits based on the plurality of bits for third clock cycles of the plurality of clock cycles, the third clock cycles of the plurality of clock cycles corresponding to the first portion of the first waveform; and
generating an output waveform of an output signal of a logic circuit from the one or more logic circuits for the plurality of clock cycles based on the simulation of the one or more logic circuits for the first clock cycles and the third clock cycles.

### Claim 10 (depends on 9)

The method of claim 9, wherein simulating the one or more logic circuits based on the plurality of bits for the third clock cycles of the plurality of clock cycles comprises obtaining a portion of the output signal corresponding to the third clock cycles through a single opcode based on the plurality of bits.

### Claim 11 (depends on 9)

The method of claim 9, wherein generating the output waveform of the output signal of the logic circuit for the plurality of clock cycles comprises:
detecting a periodic pattern in an input waveform of an input signal of the logic circuit for the first clock cycles;
determining a number of periodic patterns repeated in the input waveform of the input signal for the first clock cycles; and
generating the output waveform of the output signal of the logic circuit for the plurality of clock cycles based on the periodic pattern and the number of the periodic patterns repeated.

### Claim 12 (depends on 11)

The method of claim 11, wherein generating the output waveform of the output signal of the logic circuit for the plurality of clock cycles comprises:
generating the output waveform of the output signal of the logic circuit for the second clock cycles to be in a predetermined state.

### Claim 13 (depends on 9)

The method of claim 9, further comprising:
determining a signal to be used as a reference signal of the logic circuit;
determining the first clock cycles of the plurality of clock cycles at which the reference signal is in a first state; and
determining the second clock cycles of the plurality of clock cycles at which the reference signal is in a second state different from the first state.

### Claim 14 (depends on 9)

The method of claim 9, wherein the waveforms of the signals received from the emulator are represented in switching activity interface format (SAIF), a waveform of a signal represented in the SAIF describing a number of toggles of the signal, a number of clock cycles during which the signal is in a low state, and a number of clock cycles during which the signal is in a high state.

### Claim 15

A system comprising:
a memory storing instructions; and
a processor, coupled with the memory and to execute the instructions, the instructions when executed cause the processor to:
determine a first portion of a first waveform from waveforms of signals of a plurality of logic circuits, the first waveform associated with a first signal of the signals, the first portion of the first waveform having at least a predetermined number of toggles during predetermined clock cycles of a plurality of clock cycles during emulation of the plurality of logic circuits;
convert the first portion of the first waveform into a plurality of bits, each bit of the plurality of bits representing a state of the first signal during a corresponding clock cycle;
simulate electronically one or more logic circuits of the plurality of logic circuits for first clock cycles of the plurality of clock cycles, the first clock cycles of the plurality of clock cycles corresponding to a second portion of the first waveform;
omit simulation of the one or more logic circuits for second clock cycles of the plurality of clock cycles corresponding to a third portion of the first waveform;
simulate electronically the one or more logic circuits based on the plurality of bits for third clock cycles of the plurality of clock cycles, the third clock cycles of the plurality of clock cycles corresponding to the first portion of the first waveform; and
generate an output waveform of an output signal of a logic circuit from the one or more logic circuits for the plurality of clock cycles based on the simulation of the one or more logic circuits for the first clock cycles and the third clock cycles.

### Claim 16 (depends on 15)

The system of claim 15, wherein the instructions that cause the processor to simulate the one or more logic circuits based on the plurality of bits for the third clock cycles of the plurality of clock cycles further cause a processing unit to obtain a portion of the output signal corresponding to the third clock cycles through a single opcode based on the plurality of bits.

### Claim 17 (depends on 15)

The system of claim 15, wherein the instructions to generate the output waveform of the output signal of the logic circuit for the plurality of clock cycles further comprise instructions that when executed cause the processor to:
detect a periodic pattern in an input waveform of an input signal of the logic circuit for the first clock cycles;
determine a number of periodic patterns repeated in the input waveform of the input signal for the first clock cycles; and
generate the output waveform of the output signal of the logic circuit for the plurality of clock cycles based on the periodic pattern and the number of the periodic patterns repeated.

### Claim 18 (depends on 17)

The system of claim 17, wherein the instructions to cause the processor to generate the output waveform of the output signal of the logic circuit for the plurality of clock cycles further comprise instructions that when executed cause the processor to:
generate the output waveform of the output signal of the logic circuit for the second clock cycles to be in a predetermined state.

### Claim 19 (depends on 15)

The system of claim 15, further comprising instructions that when executed by the processor cause the processor to:
determine a signal to be used as a reference signal of the logic circuit;
determine the first clock cycles of the plurality of clock cycles at which the reference signal is in a first state; and
determine the second clock cycles of the plurality of clock cycles at which the reference signal is in a second state different from the first state.

### Claim 20 (depends on 15)

The system of claim 15, wherein the waveforms of the signals received from the emulator are represented in switching activity interface format (SAIF), a waveform of a signal represented in the SAIF describing a number of toggles of the signal, a number of clock cycles during which the signal is in a low state, and a number of clock cycles during which the signal is in a high state.
