IP Library Granted Patent US 8,265,920
Granted Patent B1
US 8,265,920 · App. 10/937,068 · Granted Sep 11, 2012

Determining large-scale finite state machines using constraint relaxation

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 8,265,920
App. No.
10/937,068
Granted
Sep 11, 2012
Kind
B1
Abstract

A computer-implemented method of finite state machine using constraint relaxation. A first expression having a plurality of variables is accessed. A second expression is accessed that describes a constraint with respect to a first variable of the plurality of variables. At least one of the variables from the second expression is eliminated to create a third expression with the constraint relaxed. The third expression is applied to the first expression to determine a finite state machine for the first expression.

Claims (47)

1. A computer-implemented method of finite state machine creation using a processor comprising:

a) accessing a first expression comprising a plurality of variables for which a finite state machine is desired;

b) accessing a second expression that is derived independently of a modification or a reduction of said first expression that describes a constraint with respect to a first variable of said plurality of variables of said first expression;

c) eliminating at least one variable from said second expression to create a third expression with said constraint modified;

d) determining an individual finite state machine for said first expression using said third expression wherein a set of rules identify said at least one variable for removal from said second expression; and

e) using said processor creating said individual finite state machine by collapsing multiple states of said individual finite state machine to a single state by merging states that transition to a common state for which inputs and outputs are identical.

2. The method of claim 1 , wherein said d) comprises eliminating at least one input combination of possible input combinations to said individual finite state machine.

3. The method of claim 1 , wherein said c) comprises normalizing said second expression to produce a normalized expression.

4. The method of claim 3 , wherein said c) comprises applying a set of rules to said normalized expression to remove a variable from said normalized expression.

5. The method of claim 4 , wherein said variable is a Boolean variable.

6. The method of claim 4 , wherein said variable is an integer variable.

7. The method of claim 1 , further comprising traversing said individual finite state machine from end to start to collapse additional states.

8. A computer-implemented method of relaxing an expression using a processor, comprising:

a) accessing a first expression;

b) identifying a variable in said first expression for removal wherein said first expression is derived independently of a modification or a reduction of a second expression;

c) normalizing said first expression to produce a normalized expression therefrom wherein said normalized expression comprises modified terms;

d) removing said variable by applying a set of rules to said normalized expression wherein said set of rules identify said variable for removal, wherein said normalized expression is used to determine an individual finite state machine for said second expression after said set of rules are applied to said normalized expression; and

e) using said processor creating said individual finite state machine by collapsing multiple states of said individual finite state machine to a single state by merging states that transition to a common state for which inputs and outputs are identical.

9. The method of claim 8 , wherein said c) comprises applying extensions of De Morgan's laws to said first expression.

10. The method of claim 9 , wherein said c) further comprises converting an if-then-else in said first expression to Boolean operators.

11. The method of claim 10 , wherein said c) further comprises manipulating arithmetic and relational operators in said first expression.

12. The method of claim 8 , wherein said c) comprises converting an if-then-else in said first expression to Boolean operators.

13. The method of claim 12 , wherein said c) further comprises manipulating arithmetic and relational operators in said first expression.

14. The method of claim 8 , wherein said c) comprises manipulating arithmetic and relational operators in said first expression.

15. A system comprising a processor and a computer readable medium coupled to a bus, wherein said computer readable medium has stored thereon instructions that when executed on said processor implement a method of finite state machine creation, said system executing a method comprising:

a) accessing a first expression comprising a plurality of variables for which a finite state machine is desired;

b) accessing a second expression that is derived independently of a modification or a reduction of said first expression that describes a constraint with respect to a first variable of said plurality of variables of said first expression;

c) eliminating at least one variable from said second expression to create a third expression with said constraint modified;

d) determining an individual finite state machine for said first expression using said third expression wherein a set of rules identify said at least one variable in said second expression for removal; and

e) using said processor, creating said individual finite state machine by collapsing multiple states of said individual finite state machine to a single state by merging states that transition to a common state for which inputs and outputs are identical.

16. The system of claim 15 , wherein said d) of said method comprises eliminating at least one input combination of possible input combinations to said finite state machine.

17. The system of claim 15 , wherein said c) of said method comprises normalizing said second expression to produce a normalized expression.

18. The system of claim 17 , wherein said c) of said method comprises applying a set of rules to said normalized expression to remove a variable from said normalized expression.

19. The system of claim 18 , wherein said variable is a Boolean variable.

20. The system of claim 18 , wherein said variable is an integer variable.

21. The system of claim 15 , wherein said method further comprises traversing said finite state machine from end to start to collapse additional states.

22. A non-transitory computer-readable storage medium having computer-executable instructions, comprising:

a) accessing a first expression; b) identifying a variable in said first expression for removal wherein said first expression is derived independently of a modification or a reduction of a second expression;

c) normalizing said first expression to produce a normalized expression therefrom wherein said normalized expression comprises modified terms;

d) removing said variable by applying a set of rules to said normalized expression wherein said set of rules identify said variable for removal, wherein said normalized expression is used to determine an individual finite state machine for said second expression after said set of rules are applied to said normalized expression; and

e) using a processor creating said individual finite state machine by collapsing multiple states of said individual finite state machine to a single state by merging states that transition to a common state for which inputs and outputs are identical.

23. The method of claim 22 , wherein said c) comprises applying extensions of De Morgan's laws to said first expression.

24. The method of claim 23 , wherein said c) further comprises converting an if-then-else in said first expression to Boolean operators.

25. The method of claim 23 , wherein said c) further comprises manipulating arithmetic and relational operators in said first expression.

26. The method of claim 22 , wherein said c) comprises converting an if-then-else in said first expression to Boolean operators.

27. The method of claim 26 , wherein said c) further comprises manipulating arithmetic and relational operators in said first expression.

28. The method of claim 22 , wherein said c) comprises manipulating arithmetic and relational operators in said first expression.

Assignments (6)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 19, 2012
From: COWARE, LLC
To: SYNOPSYS, INC.
Reel/Frame 029159/0466 →
CHANGE OF NAME Recorded Jan 26, 2011
From: COWARE, INC.
To: COWARE, LLC
Reel/Frame 025703/0401 →
SECURITY AGREEMENT Recorded Jan 2, 2008
From: COWARE, INC.
To: SILICON VALLEY BANK
Reel/Frame 020308/0157 →
SECURITY AGREEMENT Recorded Jan 2, 2008
From: COWARE, INC.
To: GOLD HILL VENTURE LENDING 03, L.P.; SILICON VALLEY BANK
Reel/Frame 020308/0236 →
SECURITY AGREEMENT Recorded Jan 3, 2005
From: COWARE, INC.
To: VENTURE LENDING & LEASING IV, INC.
Reel/Frame 016116/0011 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 8, 2004
From: VANSPAUWEN, NIELS
To: COWARE, INC.
Reel/Frame 015784/0104 →