Isolated debugging in an FPGA based emulation environment
First Claim
1. A non-transitory computer readable storage medium storing instructions, the instructions when executed by one or more processors cause the one or more processors to:
- receive, from an emulator, a plurality of interface signals, the emulator including a plurality of field-programmable gate arrays (FPGAs), the plurality of interface signals generated by tracing interfaces from the plurality of FPGAs during a first emulation of a design under test (DUT);
after the first emulation of the DUT, transmit to the emulator instructions to run a second emulation of at least a portion of the DUT using a subset of FPGAs from the plurality of FPGAs and one or more interface signals from the plurality of interface signals; and
receive from the emulator traced signals traced during the second emulation by running of the subset of FPGAs based on the one or more interface signals from the plurality of interface signals.
1 Assignment
0 Petitions
Accused Products
Abstract
For a design under test (DUT) that is to be emulated, a host system partitions the DUT into multiple partitions and maps each partition to an FPGA of an emulator which will emulate the partition. The host system stores information describing to which FPGAs each component of the DUT has been mapped. Additionally, mapped to each FPGA is trace and injection logic that traces signals exchanged by the FPGA with other FPGAs during emulation of the DUT. After the emulation of the DUT is complete, if a user wishes to debug a component of the DUT, the FPGAs that are configured to emulate the component are identified. For each identified FPGA, the trace and injection logic injects previously traced signals into the logic of the FPGA in order to reemulate the component. The host system generates waveforms for the user that include signals traced during the reemulation of the component.
60 Citations
20 Claims
-
1. A non-transitory computer readable storage medium storing instructions, the instructions when executed by one or more processors cause the one or more processors to:
-
receive, from an emulator, a plurality of interface signals, the emulator including a plurality of field-programmable gate arrays (FPGAs), the plurality of interface signals generated by tracing interfaces from the plurality of FPGAs during a first emulation of a design under test (DUT); after the first emulation of the DUT, transmit to the emulator instructions to run a second emulation of at least a portion of the DUT using a subset of FPGAs from the plurality of FPGAs and one or more interface signals from the plurality of interface signals; and receive from the emulator traced signals traced during the second emulation by running of the subset of FPGAs based on the one or more interface signals from the plurality of interface signals. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A non-transitory computer readable storage medium storing instructions that configure an emulator to:
-
trace interface signals exchanged between a first FPGA and one or more additional FPGAs during a first emulation of a design under test (DUT), the first FPGA configured to emulate an element of the DUT; and after the first emulation of the DUT, run the first FPGA during a second emulation using the traced interface signals based on a request to emulate the element. - View Dependent Claims (11, 12, 13, 14)
-
-
15. A method comprising:
-
receiving, from an emulator, a plurality of interface signals, the emulator including a plurality of reconfigurable logic blocks, the plurality of interface signals generated by tracing interfaces from the plurality of reconfigurable logic blocks during a first emulation of a design under test (DUT); after the first emulation of the DUT, requesting that during a second emulation of at least a portion of the DUT the emulator run a subset of blocks from the plurality of reconfigurable logic blocks based on one or more interface signals from the plurality of interface signals; and receiving from the emulator traced signals traced during the second emulation by running the subset of blocks based on the one or more interface signals from the plurality of interface signals. - View Dependent Claims (16, 17, 18, 19)
-
-
20. A method comprising:
-
tracing interface signals exchanged between a first reconfigurable logic block and one or more additional reconfigurable logic blocks during a first emulation of a design under test (DUT), the first block configured to emulate an element of the DUT; and after the first emulation of the DUT, running the first block during a second emulation using the traced interface signals based on a request to emulate the element.
-
Specification