IP Library Granted Patent US 10,084,476
Granted Patent B1
US 10,084,476 · App. 15/847,604 · Granted Sep 25, 2018

Adaptive lossless compression in analog mixed signal environments

Inventors: Jianzhou Zhao (Concord, CA); Daniel de Fonseca Munford Argollo (Santa Clara, CA); Vuk Borich (San Jose, CA); Hongzhou Liu (Sewickley, PA)
Assignee: CANDENCE DESIGN SYSTEMS, INC.
H03M7/30H03M7/3084
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,084,476
App. No.
15/847,604
Granted
Sep 25, 2018
Kind
B1
Abstract

A method including separating multiple signal waveforms into multiple blocks forming a sequence is provided. Each of the blocks includes at least a portion of each of the multiple signal waveforms. The method includes identifying a shared time portion and a shared signal portion for the signal waveforms within a first block from the multiple blocks and selecting a format for the first block based on a block size of the first block and a block read time of the first block. The method also includes compressing data in the first block based on the shared time portion, the shared signal portion, a preceding block and a subsequent block in the sequence, and storing the first block in a memory based on the format selected for the first block.

Claims (43)

1. A computer-implemented method, comprising:

separating multiple signal waveforms into multiple blocks forming a sequence, each of the blocks comprising at least a portion of each of the multiple signal waveforms;

identifying a shared time portion and a shared signal portion for the signal waveforms within a first block from the multiple blocks;

selecting a format for the first block based on a block size of the first block and a block read time of the first block;

compressing data in the first block based on the shared time portion, the shared signal portion, a preceding block and a subsequent block in the sequence; and

storing the first block in a memory based on the format selected for the first block.

2. The computer-implemented method of claim 1 , wherein separating multiple signal waveforms into multiple blocks forming a sequence comprises receiving multiple signals from a simulation engine, the multiple signals associated with simulated output signals from a system on a chip.

3. The computer-implemented method of claim 1 , wherein separating multiple signal waveforms into multiple blocks forming a sequence comprises:

estimating a compression ratio for the sequence and estimating a read time for the sequence, wherein the sequence comprises a partition of multiple signals from a simulation engine, and

selecting the partition of multiple signals based on the compression ratio for the sequence and the read time for the sequence.

4. The computer-implemented method of claim 1 , wherein separating multiple signal waveforms into multiple blocks forming a sequence comprises performing a linear regression with parameters associated with each of a plurality of randomly selected partitions, and wherein the parameters comprise a block size, a block format, a block compression ratio, and a block read out time.

5. The computer-implemented method of claim 1 , wherein selecting a format for the first block comprises selecting a format comprising a single metadata register, the shared time portion, and multiple signal portions associated with the shared time portion.

6. The computer-implemented method of claim 1 , wherein selecting a format for the first block comprises selecting a format comprising multiple metadata registers with a shared time portion and multiple signal portions associated with the shared time portion when the preceding block comprises a single metadata register and the subsequent block comprises multiple time portions.

7. The computer-implemented method of claim 1 , wherein selecting a format for the first block comprises selecting a format comprising multiple metadata registers with multiple time portions and multiple signal portions, wherein each metadata register is associated with a time portion and a signal portion.

8. The computer-implemented method of claim 1 , wherein selecting the format for the first block comprises forming the sequence such that a hybrid block is placed between a single time portion block and a multiple time portion block, and wherein the hybrid block comprises multiple metadata registers associated with multiple signal portions.

9. The computer-implemented method of claim 1 , wherein storing the first block in a memory based on the format selected for the block comprises inserting a metadata register for the shared time portion and for the shared signal portion, wherein the metadata register comprises a memory address and a length for a location of the shared time portion and the shared signal portion in the sequence.

10. The computer-implemented method of claim 1 , further comprising including a metadata register for a first block matching a metadata register for a preceding block.

11. A system, comprising:

a memory, storing computer code; and

at least one processor that executes the computer code to:

separate multiple signal waveforms into multiple blocks forming a sequence, each of the blocks comprising at least a portion of each of the multiple signal waveforms;

identify a shared time portion and a shared signal portion for the signal waveforms within a first block from the multiple blocks;

select a format for the first block based on a block size of the first block and a block read time of the first block;

compress data in the first block based on the shared time portion, the shared signal portion, a preceding block and a subsequent block in the sequence; and

store the first block in a memory based on the format.

12. The system of claim 11 , wherein to separate multiple signal waveforms into multiple blocks forming a sequence, the at least one processor executes commands to receive multiple signals from a simulation engine, the multiple signals associated with simulated output signals from a system on a chip.

13. The system of claim 11 , wherein to separate multiple signal waveforms into multiple blocks forming a sequence, the at least one processor executes commands to:

estimate a compression ratio for the sequence and estimating a read time for the sequence, wherein the sequence comprises a partition of multiple signals from a simulation engine, and

select the partition of multiple signals based on the compression ratio for the sequence and the read time for the sequence.

14. The system of claim 11 , wherein to select a format for the first block, the at least one processor executes commands to select a format comprising a single metadata register, the shared time portion, and multiple signal portions associated with the shared time portion.

15. The system of claim 11 , wherein to separate multiple signal waveforms into multiple blocks forming a sequence the at least one processor executes instructions to perform a linear regression with parameters associated with each of a plurality of randomly selected partitions, and wherein the parameters comprise a block size, a block format, a block compression ratio, and a block read out time.

16. The system of claim 11 , wherein to select a format for the first block the at least one processor executes instructions to select a format comprising multiple metadata registers with a shared time portion and multiple signal portions associated with the shared time portion when the preceding block comprises a single metadata register and the subsequent block comprises multiple time portions.

17. A non-transitory, computer-readable medium comprising instructions stored in a memory which, when executed by a processor cause a computer to perform a method, the method comprising:

separating multiple signal waveforms into multiple blocks forming a sequence, each of the blocks comprising at least a portion of each of the multiple signal waveforms;

identifying a shared time portion and a shared signal portion for the signal waveforms within a first block from the multiple blocks;

selecting a format for the first block based on a block size of the first block and a block read time of the first block;

compressing data in the first block based on the shared time portion, the shared signal portion, a preceding block and a subsequent block in the sequence; and

storing the first block in a memory based on the format selected for the first block.

18. The non-transitory, computer readable medium of claim 17 , wherein separating multiple signal waveforms into multiple blocks forming a sequence comprises receiving multiple signals from a simulation engine, the multiple signals associated with simulated output signals from a system on a chip.

19. The non-transitory, computer readable medium of claim 17 , wherein separating multiple signal waveforms into multiple blocks forming a sequence comprises:

estimating a compression ratio for the sequence and estimating a read time for the sequence, wherein the sequence comprises a partition of multiple signals from a simulation engine, and

selecting the partition of multiple signals based on the compression ratio for the sequence and the read time for the sequence.

20. The non-transitory, computer readable medium of claim 17 , wherein separating multiple signal waveforms into multiple blocks forming a sequence comprises performing a linear regression with parameters associated with each of a plurality of randomly selected partitions, and wherein the parameters comprise a block size, a block format, a block compression ratio, and a block read out time.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 3, 2018
From: ZHAO, JIANZHOU; DA FONSECA MUNFORD ARGOLLO, DANIEL; BORICH, VUK; LIU, HONGZHOU
To: CADENCE DESIGN SYSTEMS, INC.
Reel/Frame 044527/0586 →
Cited By (1)
US 12,387,386