IP Library Patent Application 11692949
Patent Application
App. No. 11/692,949

METHOD FOR ACCELERATING THE GENERATION OF AN OPTIMIZED GATE-LEVEL REPRESENTATION FROM A RTL REPRESENTATION

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 None
App. No.
11/692,949
Abstract

A method for accelerating the generation of an optimized netlist from a RTL representation is provided. The method optimizes a given RTL description of an integrated circuit (IC) design by: generating a static single assignment (SSA) graph; creating value range propagation for each variable in the SSA graph; and, applying one or more of a set of optimization algorithms on the SSA graph. The optimization algorithms include, but are not limited to, dead-code elimination, bitwidth analysis, redundancy elimination, iteration loop optimization, algebraic simplification and so on. These algorithms operate on a word-level description to enable fast optimization. Furthermore, the optimized RTL accelerates the overall flow of an IC design.

Claims (53)

1 . A computer implemented method for optimizing a register transfer level (RTL) description of an integrated circuit (IC) design, comprising:

assigning a unique definition for each variable in the RTL description;

for each variable having the unique definition, generating value range propagation;

performing one or more value-based optimization procedures on the RTL description, taking into account the value range propagation;

eliminating redundancy code in the RTL description;

optimizing algebraic and Boolean expressions in the RTL description; and

storing the resulting optimized RTL description in a memory.

2 . The method of claim 1 , wherein the RTL description includes a hardware description language (HDL) code.

3 . The method of claim 1 , wherein assigning the unique definition to each variable comprises generating a static single assignment (SSA) graph.

4 . The method of claim 3 , wherein generating the SSA graph comprises:

traversing a control data flow graph (CDFG);

replacing a variable of a left hand side (LHS) of each assignment in the RTL description with a new variable name; and

inserting a phi function, when encountering multiple definitions of a variable, reaching a use of a variable.

5 . The method of claim 4 , wherein the value range propagation detects the minimum and maximum values for each variable.

6 . The method of claim 5 , wherein generating the value range propagation comprises;

forward traversing the SSA graph to compute the value range propagation for the variable before an operation using the variable is encountered;

backward traversing the SSA graph to determine whether a variable of a LHS of an assignment constrains a right hand side (RHS) of the assignment; and

performing constant propagation to determine whether the variable has a constant value.

7 . The method of claim 1 , wherein the value-based optimization procedures comprise one or more of: bitwidth analysis, dead-code elimination, and loop structure optimization.

8 . The method of claim 1 , wherein eliminating the redundancy code comprises performing one or more of: value numbering to eliminate redundant computations, detection of common sub expressions (CSE), loop invariant code motion, and code hoisting.

9 . The method of claim 3 , wherein optimizing the algebraic and Boolean expressions comprises:

traversing the SSA graph;

applying a set of predefined rules on each expression in the SSA graph; and

replacing the expression with a respective simplified expression when one of the rules is satisfied.

10 . The method of claim 9 , wherein optimizing the Boolean expressions further comprises performing Shannon expansion optimization.

11 . The method of claim 1 , further comprising generating an optimized netlist, from the optimized RTL description, with a synthesis tool.

12 . The method of claim 1 , implemented in one of a computer aided design (CAD) system and a CAD program.

13 . A computer program product for enabling a computer system to perform operations for an integrated circuit (IC) design method, intended for optimizing a register transfer level (RTL) description of the IC design, the computer program product having computer instructions on a computer readable medium, the operations comprising:

assigning a unique definition for each variable in the RTL description;

for each variable having the unique definition, generating value range propagation;

performing one or more value-based optimization procedures on the RTL description, taking into account the value range propagation;

eliminating redundancy code in the RTL description; and

optimizing algebraic and Boolean expressions in the RTL description.

14 . The computer program product of claim 13 , wherein the RTL description includes a hardware description language (HDL) code.

15 . The computer program product of claim 13 , wherein assigning the unique definition to each variable comprises generating a static single assignment (SSA) graph.

16 . The computer program product of claim 15 , wherein generating the SSA graph comprises:

traversing a control data flow graph (CDFG);

replacing a variable of a left hand side (LHS) of each assignment in the RTL description with a new variable name; and

inserting a phi function when encountering multiple definitions of a variable, reaching a use of a variable.

17 . The computer program product of claim 16 , wherein the value range propagation detects the minimum and maximum values for each variable.

18 . The computer program product of claim 17 , wherein generating the value range propagation comprises;

forward traversing the SSA graph to compute the value range propagation for the variable before an operation using the variable is encountered;

backward traversing the SSA graph to determine whether a variable of a LHS of an assignment constrains a right hand side (RHS) of the assignment; and

performing constant propagation to determine whether the variable has a constant value.

19 . The computer program product of claim 18 , wherein the value-based optimization procedures comprise one or more of bitwidth analysis, dead-code elimination, and loop structure optimization.

20 . The computer program product of claim 13 , wherein eliminating the redundancy code comprises performing any of value numbering to eliminate redundant computations, detection of common sub expressions (CSE), loop invariant code motion, and code hoisting.

21 . The computer program product of claim 15 , wherein optimizing the algebraic and Boolean expressions comprises:

traversing the SSA graph;

applying a set of predefined rules on each expression in the SSA graph; and

replacing the expression with a respective simplified expression when one of the rules is satisfied.

22 . The computer program product of claim 21 , wherein optimizing the Boolean expressions further comprises performing Shannon expansion optimization.

23 . The computer program product of claim 13 , further comprising generating an optimized netlist, from the optimized RTL description, with a synthesis tool.

24 . The computer program product of claim 13 , implemented in one of a computer aided design (CAD) system and a CAD program.

Assignments (4)
RELEASE OF SECURITY INTEREST Recorded Apr 17, 2009
From: HERCULES TECHNOLOGY GROWTH CAPITAL, INC.
To: ATRENTA INC.
Reel/Frame 022552/0639 →
SECURITY AGREEMENT Recorded Apr 15, 2009
From: ATRENTA INC.
To: SILICON VALLEY BANK
Reel/Frame 022542/0570 →
SECURITY AGREEMENT Recorded Jul 10, 2008
From: ATRENTA, INC.
To: HERCULES TECHNOLOGY GROWTH CAPITAL, INC.
Reel/Frame 021222/0668 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 29, 2007
From: NAYAK, ANSHUMAN; CHAKRABARTI, SAMANTAK; PAL, SATRAJIT; DEWAN, HITANSHU
To: ATRENTA, INC.
Reel/Frame 019081/0112 →