IP Library Granted Patent US 7,287,235
Granted Patent B1
US 7,287,235 · App. 10/912,985 · Granted Oct 23, 2007

Method of simplifying a circuit for equivalence checking

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 7,287,235
App. No.
10/912,985
Granted
Oct 23, 2007
Kind
B1
Abstract

A method of simplifying a logic circuit for enabling cycle-by-cycle equivalence checking is provided. To accomplish this, first, a logic circuit is identified to be a variable delay circuit or a fixed delay circuit. If the logic circuit is a variable delay circuit, it is converted to a fixed delay circuit by using additional circuitry to obtain a fixed delay circuit. If the fixed delay circuit is a logic circuit that performs multiple cycle computations, it is converted to a logic circuit that performs the same computation in a single cycle. Circuit acceleration includes concatenating multiple copies of the fixed delay circuit. After performing circuit acceleration on all sub-circuits in the fixed delay circuit, a combined accelerated circuit is obtained. Thereafter, redundant flip-flops are identified and removed from the combined accelerated circuit and the combined accelerated circuit is optimized.

Claims (27)

1. A method of simplifying a logic circuit, the simplification being performed for achieving cycle-by-cycle equivalence checking between the logic circuit and a second logic circuit, the logic circuit being a sequential logic circuit or a combinational logic circuit, the method comprising the steps of:

a. identifying whether the logic circuit is a variable delay circuit;

b. if the logic circuit is a variable delay circuit, then converting the variable delay behavior to fixed delay behavior by adding an extra circuitry in the logic circuit;

c. accelerating the logic circuit to produce an accelerated circuit for each output of the logic circuit, the acceleration being a circuit transform achieved by mapping the multi-cycle behavior of the logic circuit to one cycle behavior;

d. combining all the accelerated circuits to get a combined accelerated circuit;

e. identifying constant valued flip-flops in the combined accelerated circuit, the constant valued flip-flops being those flip-flops that do not change their values in any state of the combined accelerated circuit; and

f. removing constant valued flip-flops from the combined accelerated circuit, the remaining circuit being termed as a simplified accelerated circuit.

2. The method as recited in claim 1 further comprising the step of obtaining a simplified second accelerated circuit from the second logic circuit by performing steps a to f recited in claim 1 .

3. The method as recited in claim 2 further comprising the step of performing equivalence checking on the simplified accelerated circuit and the simplified second accelerated circuit.

4. The method as recited in claim 1 wherein the step of identifying constant valued flip-flops comprises the step of determining the values of flip-flops in the combined accelerated circuit during each clock cycle.

5. The method as recited in claim 1 wherein the constant valued flip-flops are identified using the process of iterative relaxation.

6. The method as recited in claim 5 wherein the process of iterative relaxation comprises the steps of:

a. initializing a RESET list that includes the flip-flops with known reset values in the accelerated logic circuit;

b. starting all flip-flops in the accelerated logic circuit;

c. computing the next state equations of these flip-flops;

d. identifying a subset of flip-flops in the RESET list, which do not reach reset values;

e. if the subset of flip-flops is not empty, then removing the flip-flops belonging to the subset from the RESET list; and

f. repeating steps b-e until the subset of flip-flops becomes empty.

7. The method as recited in claim 1 wherein the step of removing constant valued flip-flops comprises the step of performing constant propagation in the combined accelerated circuit.

8. The method as recited in claim 1 further comprises the step of performing dead code elimination in the combined accelerated circuit.

9. A computer program product for use with a computer, the computer program product comprising a computer usable medium having a computer readable program code embodied therein for simplifying a logic circuit, the simplification being performed for achieving cycle-by-cycle equivalence checking between the logic circuit and a second logic circuit, the computer program product performing the steps of:

a. identifying whether the logic circuit is a variable delay circuit;

b. if the logic circuit is a variable delay circuit, then converting the variable delay behavior to fixed delay behavior by adding an extra circuitry in the logic circuit;

c. accelerating the logic circuit to produce an accelerated circuit for each output of the logic circuit, the acceleration being a circuit transform achieved by mapping the multi-cycle behavior of the logic circuit to one cycle behavior;

d. combining all the accelerated circuits to get a combined accelerated circuit;

e. identifying constant valued flip-flops in the combined accelerated circuit, the constant valued flip-flops being those flip-flops that do not change their values in any state of the combined accelerated circuit; and

f. removing constant valued flip-flops from the combined accelerated circuit, the remaining circuit being termed as a simplified accelerated circuit.

Assignments (3)
RELEASE Recorded Aug 24, 2011
From: SILICON VALLEY BANK
To: CALYPTO DESIGN SYSTEMS, INC.
Reel/Frame 026803/0962 →
SECURITY AGREEMENT Recorded Nov 3, 2008
From: CALYPTO DESIGN SYSTEMS, INC.
To: SILICON VALLEY BANK
Reel/Frame 021773/0206 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 6, 2004
From: HASTEER, GAGAN; GOYAL, DEEPAK
To: CALYPTO DESIGN SYSTEMS
Reel/Frame 015671/0553 →