IP Library Granted Patent US 10,726,180
Granted Patent B1
US 10,726,180 · App. 16/280,163 · Granted Jul 28, 2020

Systems and methods for fixing X-pessimism from uninitialized latches in gate-level simulation

Inventors: Kai-Hui Chang (North Andover, MA); Andrew Stein (Tewksbury, MA); Hong-zu Chou (Taipei, TW); Christopher S. Browy (Boston, MA); Chi-Lai Huang (Andover, MA)
Assignee: Avery Design Systems, Inc.
G06F30/331G06F30/30G06F30/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 10,726,180
App. No.
16/280,163
Granted
Jul 28, 2020
Kind
B1
Abstract

A computer executable processing component analyzes unknown (X) propagation from uninitialized latches in gate-level simulation and determines if the Xs cause false Xs to be generated due to X-pessimism. For Xs generated due to X-pessimism, simulation results are corrected and fixes are generated. Corrected simulation results match real hardware behavior and greatly reduces engineers' analysis effort on debugging X issues. A computer executable processing component analyzes unknown (X) propagation from sequential cells in gate-level logic simulation and determines if the Xs cause false Xs to be generated due to X-pessimism. For Xs generated due to X-pessimism, simulation results are corrected and fixes are generated. Corrected simulation results match real hardware behavior and greatly reduces engineers' analysis effort on debugging X issues.

Claims (37)

1. A method of identifying false Xs due to sequential cell modeling inaccuracy, comprising:

monitoring at least one input and at least one output of a sequential element;

if the at least one output changes from non-X to X, then:

replacing the Xs at the at least one input with 0 and 1 values;

replacing the Xs in states of the sequential element with 0 and 1 values; and

performing exhaustive logic combinations to simulate all combinations of 0 and 1 values for the Xs; and

if the exhaustive logic simulations produce a consistent value of non-X, then identifying the X as false and restore the output to the non-X value.

2. The method of claim 1 , wherein the monitoring of the at least one input comprises monitoring a clock input.

3. The method of claim 1 , further comprising:

monitoring all downstream flip-flop inputs and outputs.

4. The method of claim 1 , wherein monitoring at least one output of the sequential element comprises monitoring the output of a latch if the output of the latch is X at an initial circuit state time.

5. The method of claim 1 , wherein the sequential element comprises at least one of a flip-flop (FF) or a clock gater.

6. The method of claim 1 , wherein the exhaustive logic simulation is aborted early.

7. The method of claim 1 , wherein monitoring is performed during simulation.

8. A method of identifying false Xs due to sequential cell modeling inaccuracy, comprising:

monitoring at least one output of a sequential element;

if the at least one output changes from non-X to X, then:

replacing the Xs at the at least one input with 0 and 1 values;

replacing the Xs in states of the sequential element with 0 and 1 values; and

performing exhaustive logic combinations to simulate all combinations of 0 and 1 values for the Xs; and

if the exhaustive logic simulations produce a consistent value of non-X, then identifying the X as false and restore the output to the non-X value.

9. A system for identifying false Xs due to sequential cell modeling inaccuracy comprising:

a processor; and

a memory having executable instructions stored there on such that, when executed by the processor, result in the processor being configured to:

monitor at least one input and at least one output of a sequential element;

if the at least one output changes from non-X to X, then:

replace the Xs at the at least one input with 0 and 1 values;

replace the Xs in states of the sequential element with 0 and 1 values; and

perform exhaustive logic combinations to simulate all combinations of 0 and 1 values for the Xs; and

if the exhaustive logic simulations produce a consistent value of non-X, then identify the X as false and restore the output to the non-X value.

10. The system of claim 9 , wherein the processor being configured to monitor the at least one input comprises being configured to monitor a clock input.

11. The system of claim 9 , the processor being further configured to:

monitor all downstream flip-flop inputs and outputs.

12. The system of claim 9 , wherein the processor being configured to monitor at least one output of the sequential element comprises being configured to monitor the output of a latch if the output of the latch is X at an initial circuit state time.

13. The system of claim 9 , wherein the sequential element comprises at least one of a flip-flop (FF) or a clock gater.

14. The system of claim 9 , wherein the exhaustive logic simulation is aborted early.

15. The system of claim 9 , wherein the monitor the at least one input and the at least one output of the sequential element is configured to be performed during simulation.

Assignments (3)
MERGER AND CHANGE OF NAME Recorded Sep 5, 2023
From: AVERY DESIGN SYSTEMS, INC-DE; SIEMENS INDUSTRY SOFTWARE INC.
To: SIEMENS INDUSTRY SOFTWARE INC.
Reel/Frame 064796/0774 →
CORRECTIVE ASSIGNMENT TO CORRECT THE THE ASSIGNEE NAME PREVIOUSLY RECORDED AT REEL: 063963 FRAME: 0837. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jul 27, 2023
From: CHANG, KAI-HUI; STEIN, ANDREW; CHOU, HONG-ZU; BROWY, CHRISTOPHER S.; HUANG, CHI-LAI
To: AVERY DESIGN SYSTEMS, INC-DE
Reel/Frame 064781/0619 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 15, 2023
From: CHANG, KAI-HUI; STEIN, ANDREW; CHOU, HONG-ZU; BROWY, CHRISTOPHER S.; HUANG, CHI-LAI
To: AVERY DESIGN SYSTEMS, INC.
Reel/Frame 063963/0837 →
Continuity (3)
Division 15130912 · Apr 15, 2016
Provisional Application 62175563 · Jun 15, 2015
Provisional Application 62159670 · May 11, 2015