IP Library › Granted Patent US 12,242,783
Granted Patent B1
US 12,242,783 · App. 17/683,216 · Granted Mar 4, 2025

Data-driven clock port and clock signal recognition

Inventors: Gung-Yu Pan (Baoshan Township, TW); Ssu-Hsien Li (Hsinchu, TW); Che-Hua Shih (Hsinchu, TW); Yi-An Chen (Hsinchu, TW); Chia-Chih Yen (Taipei, TW)
Assignee: Synopsys, Inc.
G06F30/3308G06F30/20G06F30/27G06F30/367G06F30/396G06F30/398
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,242,783
App. No.
17/683,216
Granted
Mar 4, 2025
Kind
B1
Abstract

Operations to recognize clock ports within a simulation circuit component and/or recognize a clock signal within simulation waveforms are described. One or more of the operations include generating a plurality of output values at an output port of a circuit simulation component by applying, during a simulation, a plurality of input values to a first input port of the circuit simulation component. The operations also include calculating a correlation vector based on bit sequences in the input values and bit sequences in the output values. The first input port is determined to be a clock port by applying a machine learning model to the correlation vector. One or more of the operations include determining a waveform file comprising signals from a simulation, determining a subset of the signals are bit-level signals, calculating toggle metrics for the subset of the signals, identifying a signal from the subset with a toggle metric satisfying a toggle threshold, calculating, by a processor, multiple duty cycles for the signal, and determining the signal is a clock signal based on the multiple duty cycles.

Claims (44)

1. A method, comprising:

generating a plurality of output values at an output port of a circuit simulation component by applying, during a simulation, a plurality of input values to a first input port of the circuit simulation component;

calculating a correlation vector based on bit sequences in the plurality of input values and bit sequences in the plurality of output values; and

determining, by a processor, the first input port is a clock port by applying a machine learning model to the correlation vector.

2. The method of claim 1 , further comprising:

determining a second input port of the circuit simulation component is a power port and a power value for the second input port, wherein the second input port is fixed at the power value during the simulation.

3. The method of claim 2 , wherein the determining further comprises:

inputting a random pattern into the second input port that changes the corresponding output port value to a one or a zero.

4. The method of claim 1 , further comprising:

training the machine learning model using clock ports and correlation vector corresponding to a well-known sequential module.

5. The method of claim 1 , wherein the calculating the correlation vector further comprising:

extracting features corresponding to the plurality input values, wherein the features include on or more of a number of value changes, a number of value changes to one, and a duration of zero.

6. The method of claim 1 , comprising:

determining an input port of a circuit simulation component is a power port and a power value for the input port.

7. The method of claim 1 , wherein the correlation vector comprises correlation values that range from zero to one.

8. A method, comprising:

accessing a waveform file comprising signals from a simulation;

determining a subset of the signals are bit-level signals;

calculating toggle metrics for the subset of the signals;

identifying a signal from the subset with a toggle metric satisfying a toggle threshold;

calculating, by a processor, multiple duty cycles for the signal; and

determining the signal is a clock signal based on the multiple duty cycles.

9. The method of claim 8 , wherein the bit-level signals are binary level signals corresponding to binary bit strings.

10. The method of claim 8 , wherein the calculating toggle metrics further comprises:

calculating a number of rising and falling edges of a signal of the subset of signals in a unit of time.

11. The method of claim 8 , wherein the toggle threshold is a maximum toggle value multiplied by a value between 0 and 1.

12. The method of claim 8 , wherein a duty cycle of the multiple duty cycle corresponds to a cycle with 0-1-0-1 or 1-0-1-0 signal transitions.

13. The method of claim 8 , wherein the calculating the multiple duty cycles further comprises:

calculating a ratio of on-portion and off-portion of a cycle of the signal.

14. The method of claim 8 , wherein the determining the signal is the clock signal further comprises:

determining that the signal maintains a consistent duty cycle value over a duration of time.

15. A non-transitory computer readable medium (CRM) comprising stored instructions, which when executed by a processor, cause the processor to perform operations comprising:

generating a plurality of output values at an output port of a circuit simulation component by applying, during a simulation, a plurality of input values to a first input port of the circuit simulation component;

calculating a correlation vector based on bit sequences in the plurality of input values and bit sequences in the plurality of output values; and

determining the first input port is a clock port by applying a machine learning model to the correlation vector.

16. The non-transitory CRM of claim 15 , wherein the stored instructions, when executed by the processor, cause the processor to perform operations further comprising:

determining a second input port of the circuit simulation component is a power port and a power value for the second input port, wherein the second input port is fixed at the power value during the simulation.

17. The non-transitory CRM of claim 16 , wherein the determining the second input port of the circuit simulation component is a power port further comprises:

inputting a random pattern into the second input port that changes the corresponding output port value to a one or a zero.

18. The non-transitory CRM of claim 15 , wherein the stored instructions, when executed by the processor, cause the processor to perform operations further comprising:

training the machine learning model using clock ports and correlation vector corresponding to a well-known sequential module.

19. The non-transitory CRM of claim 15 , wherein the calculating the correlation vector further comprises:

extracting features corresponding to the plurality input values, wherein the features include on or more of a number of value changes, a number of value changes to one, and a duration of zero.

20. The non-transitory CRM of claim 15 , wherein the correlation vector comprises correlation values that range from zero to one.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 16, 2023
From: PAN, GUNG-YU; LI, SSU-HSIEN; SHIH, CHE-HUA; CHEN, YI-AN; YEN, CHIA-CHIH
To: SYNOPSYS, INC.
Reel/Frame 063660/0630 →
Continuity (1)
Provisional Application 63154420 · Feb 26, 2021
References Cited (27)
US 4358848A · Patel · 1982 [cited by examiner]
US 5010573A · Musyck · 1991 [cited by examiner]
US 6014510A · Burks · 2000 [cited by examiner]
US 6285806B1 · Kersey · 2001 [cited by examiner]
US 7555417B2 · Greenberg · 2009 [cited by examiner]
US 7865348B1 · Au · 2011 [cited by examiner]
US 7899659B2 · Tester · 2011 [cited by examiner]
US 8626483B2 · Vermeersch · 2014 [cited by examiner]
US 9582619B1 · Liddell · 2017 [cited by examiner]
US 9628095B1 · Liveris · 2017 [cited by examiner]
US 10423740B2 · Rabinovitch · 2019 [cited by examiner]
US 10599881B1 · Mehrotra · 2020 [cited by examiner]
US 11221613B2 · Cella · 2022 [cited by examiner]
US 11366455B2 · Cella · 2022 [cited by examiner]
US 20040202244A1 · Pappalardo · 2004 [cited by examiner]
US 20080072197A1 · Ja · 2008 [cited by examiner]
US 20100318342A1 · Tamiya · 2010 [cited by examiner]
US 20130207702A1 · Bulzacchelli · 2013 [cited by examiner]
US 20130332137A1 · Balasubramanian · 2013 [cited by examiner]
US 20160020821A1 · Derby · 2016 [cited by examiner]
US 20180337816A1 · Herath · 2018 [cited by examiner]
US 20210282154A1 · So · 2021 [cited by examiner]
BR 102017026856A2 · 2019 [cited by examiner]
CN 105138774B · 2018 [cited by examiner]
CN 112036106A · 2020 [cited by examiner]
EP 0508620B1 · 1998 [cited by examiner]
Xie, Chinese Patent Document No. CN-102412929-A, published Apr. 11, 2012, 3 pages including abstract and 1 drawing. (Year: 2012). [cited by examiner]