IP Library › Granted Patent US 12,730,949
Granted Patent B2
US 12,730,949 · App. 17/893,156 · Granted Sep 8, 2026

System and method for electronic circuit emulation

Inventor: Steven F. Hoover (Shrewsbury, MA)
G06F30/323G06F30/3308G06F30/327
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 12,730,949
App. No.
17/893,156
Granted
Sep 8, 2026
Kind
B2
Abstract

A system and method transforms a model of electronic circuit to improve emulation speed and/or reduce emulation area. The model may be divided into partitions; a sequence of storage elements may be created on a partition boundary to allow a partition to process the contents of the storage elements. The disposition of the sequence may correspond to a connection between hardware emulation elements to compensate for latencies therebetween.

Claims (35)

1 . A computer-implemented method comprising:

receiving first data representing a hardware-description language (HDL) description of an electronic circuit;

identifying, using the first data, a first description of a first storage element configured to process, during a first time period, an input signal to store data associated with the input signal and to output, during a second time period, an output signal representing the data;

determining a memory structure configured to store the data;

determining a second description of a second storage element configured to store a reference value indicating a location of the data in the computer-memory structure, a topology of the second storage element corresponding to a topology of the first storage element;

determining, using the first data and the second description, a circuit model corresponding to the HDL description and the second storage element;

storing, using a first portion of the circuit model corresponding to the second storage element, the reference value; and

processing, by the memory structure during the second time period, the reference value to output the data.

2 . A computer-implemented method for modeling circuit behavior, the method comprising:

receiving first data representing a hardware-description language (HDL) description of a first electronic circuit;

identifying in the first data, a first representation of a first group of circuit elements corresponding to a circuit-element transformation technique;

determining a second representation of a second group of circuit elements by applying the circuit-element transformation technique to the first group of circuit elements;

identifying a second electronic circuit determined by replacing the first group of circuit elements in the first data with the second group of circuit elements;

simulating operation of the second electronic circuit to determine second data representing values of signals in the second electronic circuit;

determining a first signal corresponding to the first group of circuit elements;

determining a first time period corresponding to a first value of the first signal;

determining, using the circuit-element transformation technique, at least one second signal corresponding to the second group of circuit elements, wherein the second signal, at a second time period, corresponds to a representation of the first value; and

determining using at least one value of the at least one second signal during the second time period and the circuit-element transformation technique, the first value,

wherein the circuit-element transformation technique records a correspondence between the first group of circuit elements and the second group of circuit elements, the correspondence enabling a reverse transform to derive the first value from simulated values of signals of the second electronic circuit.

3 . The computer-implemented method of claim 2 , wherein the circuit-element transformation technique is reversible.

4 . The computer-implemented method of claim 2 , wherein the second group of circuit elements have an equivalent behavior to the first group of circuit elements.

5 . The computer-implemented method of claim 2 , wherein the circuit-element transformation technique corresponds to retiming of operation of at least one data-preserving element.

6 . The computer-implemented method of claim 2 , wherein the circuit-element transformation technique corresponds to migration of logic across at least one data-preserving element.

7 . The computer-implemented method of claim 6 , wherein the at least one data-preserving element comprises:

a multiplexer; and

a flip-flop including:

an input driven by an output of the multiplexer, and

an output connected to an input of the multiplexer.

8 . The computer-implemented method of claim 6 , wherein the data-preserving element comprises an array.

9 . The computer-implemented method of claim 6 , wherein the data-preserving element comprises a queue.

10 . The computer-implemented method of claim 6 , wherein the data-preserving element comprises a ring.

11 . The computer-implemented method of claim 2 , wherein the circuit-element transformation technique comprises time-domain multiplexing.

12 . The computer-implemented method of claim 2 , wherein the circuit-element transformation technique comprises storing data values in a storage array and configures a storage element to refer to a value stored in the storage array.

13 . The computer-implemented method of claim 2 , wherein the circuit-element transformation technique absorbs a storage element into a first-in-first-out (FIFO) component.

14 . The computer-implemented method of claim 2 , wherein the circuit-element transformation technique absorbs a storage element into a queue.

Continuity (3)
Provisional Application 63235287 · Aug 20, 2021
Provisional Application 63235283 · Aug 20, 2021
Related Publication 20230059335A1 · Feb 23, 2023
References Cited (21)
US 5872953A · Bailey · 1999 [cited by examiner]
US 7506286B2 · Beardslee · 2009 [cited by examiner]
US 8082530B1 · Ou · 2011 [cited by examiner]
US 8667449B2 · Gunasekar · 2014 [cited by examiner]
US 8769450B1 · Tian · 2014 [cited by examiner]
US 9305126B2 · Selvidge · 2016 [cited by examiner]
US 9817931B1 · Gu · 2017 [cited by examiner]
US 10586003B1 · Suresh · 2020 [cited by examiner]
US 20060195822A1 · Beardslee · 2006 [cited by examiner]
US 20110307233A1 · Tseng · 2011 [cited by examiner]
US 20220108056A1 · Biswas · 2022 [cited by examiner]
US 20230060111A1 · Hoover · 2023 [cited by examiner]
Jeong, et al. “A Time Division Multiplexing (TDM) Logic Mapping Method for Computational Applications”, ICCSA 2007, LNCS 4705, Part I, pp. 1096-1106. [cited by applicant]
Hoover, et al. “Top-Down Transaction-Level Design with TL-Verilog”, Nov. 5, 2018, arXiv:1811.01780. [cited by applicant]
Hoover, “Timing-Abstract Circuit Design in Transaction-Level Verilog”, 2017 IEEE International Conference on Computer Design (ICCD), 2017, pp. 525-532, doi: 10.1109/ICCD.2017.91. [cited by applicant]
D. Rosenband, J. Schwartz and Arvind, “Modular scheduling of guarded atomic actions”, 41st Design Automation Conference (DAC), 2004. [cited by applicant]
F. Gruian and M. Westmijze, “VHDL vs. Bluespec system verilog: a case study on a Java embedded architecture”, Proc. of the 2008 ACM Symposium on Applied Computing, pp. 1492-1497, Mar. 2008. [cited by applicant]
J. Bachrach et al., “Chisel: Constructing Hardware in a Scala Embedded Language”, Proc. of the 49th Design Automation Conference, Jun. 2012. [cited by applicant]
C. E. Leiserson, F. Rose and J. B. Saxe, “Optimizing synchronous circuitry by retiming”, Proc. of the 3rd Caltech Conference on VLSI, Mar. 1983. [cited by applicant]
B. Lockyear and C. Ebeling, “Optimal Retiming of Multi-Phase Level-Clocked Circuits”, Advanced Research in VLSI and Parallel Systems: Proc. of the Brown/MIT Conference, pp. 265-280, 1992. [cited by applicant]
E. Nurvitadhi, Automatic Pipeline Synthesis and Formal Verification from Transactional Datapath Specifications, 2010. [cited by applicant]