IP Library Granted Patent US 9,058,452
Granted Patent B1
US 9,058,452 · App. 14/193,748 · Granted Jun 16, 2015

Systems and methods for tracing and fixing unknowns in gate-level simulation

Inventors: Kai-Hui Chang (North Andover, MA); Yen-Ting Liu (Kaohsiung, TW); Christopher S. Browy (Boston, MA); Chi-Lai Huang (Andover, MA)
Assignee: Avery Design Systems, Inc.
G06F17/505G06F17/5081G06F17/5022
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 9,058,452
App. No.
14/193,748
Granted
Jun 16, 2015
Kind
B1
Abstract

A computer executable tool analyzes unknowns (Xs) in gate-level simulation and traces their sources to determine if the Xs are generated due to X-pessimism. For Xs generated due to X-pessimism, fixes are generated to correct simulation results. Corrected simulation results match real hardware behavior and greatly reduce the analysis effort of engineers.

Claims (26)

1. A system for tracing and fixing unknowns (Xs) in gate-level simulation, the system comprising:

an X-tracing simulation processing component that receives a waveform from a first logic simulation, a design netlist and variables with Xs and time and performs an X-tracing analysis by tracing at least one X backward, and outputting zero or one or more X-pessimism fixes as an auxiliary code;

a resimulation processing component that implements the zero or one or more X-pessimism fixes and performs a second logic simulation based upon the implemented X-pessimism fixes, wherein the logic simulation indicated at least one of: the X-tracing analysis is complete, and further X-tracing analysis is needed.

2. The system as set forth in claim 1 wherein the auxiliary code is in Verilog, SystemVerilog, VHDIC Hardware Description Language (VHDL) or a language that controls logic simulation comprising at least one of Tcl, Perl, C, SystemC or C++.

3. The system as set forth in claim 1 wherein the X-tracing analysis performs the tracing of at least one X backward by tracing sequential fan-in cones of the variables based on the waveform and generating fixes when false Xs exist in the fan-in cones.

4. The system as set forth in claim 1 further comprising a storage element that stores variables and simulation times when the variables have unexpected Xs.

5. The system as set forth in claim 4 wherein the storage element comprises a priority queue.

6. The system as set forth in claim 4 wherein the storage element comprises a regular queue that uses a breadth-first-search based on a number of cycles.

7. A computer-implemented method for tracing and fixing unknowns (Xs) in gate-level simulation, the method comprising the steps of:

performing a first logic simulation of a test trace of a waveform, resulting in test failure due to Xs;

specifying one or more variables to be analyzed and a time those variables have unexpected Xs;

tracing, via a processor, sequential fan-in cones of the variables based on the waveform and generating fixes when false Xs exist in the fan-in cones;

performing a second logic simulation of the test trace with the generated fixes as an auxiliary code;

determining whether Xs in the variables are eliminated; and;

indicating at least one of: the tracing analysis is complete and further tracing analysis is required.

8. The method as set forth in claim 7 wherein the step of tracing sequential fan-in cones of the variables is performed by:

adding variables to be analyzed and a simulation time that the variables have unexpected Xs into a storage element;

obtaining a variable and the associated simulation time from the storage element, and setting a current waveform time to the associated simulation time;

tracing the fan-in cone of the variable until predetermined cutpoints are reached;

reading values of cutpoint variables from the waveform at the waveform time, and depositing values into the simulator;

analyzing fan-in cone of the variable and determine if the X is false, and generate fixes when the X is false;

tracing the Xs, if the Xs is real, starting from the variable, to locate registers in the fan-in cone that contain Xs; and

for each register found in tracing the Xs:

If a found X comes from synchronous input, determine a clock pin and a clock edge that latched the found X, add the register's input and the clock edge time into the storage element; and

If a found X comes from an asynchronous input, locate a time an input changed to X, and add the input and the time into the storage element.

9. The method as set forth in claim 7 wherein the auxiliary code is in Verilog, SystemVerilog, VHDIC Hardware Description Language (VHDL) or a languages that controls logic simulation comprising at least one of Tcl, Perl, C, SystemC or C++.

Assignments (3)
MERGER AND CHANGE OF NAME Recorded Jul 21, 2023
From: AVERY DESIGN SYSTEMS, INC-DE; SIEMENS INDUSTRY SOFTWARE INC.
To: SIEMENS INDUSTRY SOFTWARE INC.
Reel/Frame 064340/0230 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE'S NAME PREVIOUSLY RECORDED AT REEL: 034193 FRAME: 0739. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jul 10, 2023
From: CHANG, KAI-HUI; LIU, YEN-TING; BROWY, CHRISTOPHER S.; HUANG, CHI-LAI
To: AVERY DESIGN SYSTEMS, INC-DE
Reel/Frame 064236/0519 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 7, 2014
From: CHANG, KAI-HUI; LIU, YEN-TING; BROWY, CHRISTOPHER S.; HUANG, CHI-LAI
To: AVERY DESIGN SYSTEMS, INC.
Reel/Frame 034193/0739 →
Continuity (2)
Provisional Application 61814833 · Apr 23, 2013
Provisional Application 61861385 · Aug 1, 2013