IP Library Granted Patent US 7,299,461
Granted Patent B2
US 7,299,461 · App. 10/738,281 · Granted Nov 20, 2007

Expansion syntax

Assignee: Intrinsity, Inc.
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,299,461
App. No.
10/738,281
Granted
Nov 20, 2007
Kind
B2
Abstract

An expansion syntax that creates a set of expressions in software code is disclosed. The syntax includes one or more expansion constructs embedded within a software code expression, interpreted by an expansion function to create a set of expanded expressions. Each construct includes an expansion syntax indicator and a plurality of list parameters, which may be start, end, step, and skip integers, or strings of non-white space. Both constructs may include either default or expressly assigned list names, which serve as iterators during the expansion process. Each expanded expression created includes a list member from each embedded construct. The expansion methodology, and the resulting set of expanded expressions, depends upon the number of unique iterators present in the software code expression and whether any of the embedded constructs include the stride parameter.

Claims (24)

1. A method to create an expansion syntax for semiconductor design software that allows a single complex software code expression that represents multiple logic gates to be expanded into one or more simple software code expressions that individually represent a single logic gate, comprising:

embedding a list construct within a software code expression wherein said list construct includes an expansion syntax indicator comprising a pair of brackets enclosing a plurality of list parameters wherein said list parameters identify list members and wherein said list members comprise ordered integers within the range of integers identified by a start integer, an end integer, and optionally a count integer, a step integer and or a skip integer to indicate a count of integers to step or skip during expansion, wherein said list construct further comprises one or more iterators used as an operator acting upon a parameter list to expand the list members, and wherein the list is grouped as a default list name or a explicit list name;

interpreting said list construct within said software code expression according to one of said iterator and said list member expansion syntax using an expansion function; and

expanding using said expansion function said list construct within said software code expression to create a set of expanded expressions, said expanding further comprising:

where one of said software code expressions contains only one unique iterator, said one code expression is expanded as the list size associated with said one unique iterator; or

where said software code expression contains more than one unique iterator, said one code expression is expanded as the cross product of the list sizes associated with each unique iterator;

wherein the cross product is defined according to the relationships between the skip and stride definitions of said iterators, if any, or as a full cross product otherwise.

2. The claim according to claim 1 wherein said list construct further comprises an expansion list construct and or an explicit list construct.

3. A method to use an expansion syntax for semiconductor design software that allows a single complex software code expression that represents multiple logic gates to be expanded into one or more simple software code expressions that individually represent a single logic gate, comprising:

embedding a list construct within a software code expression wherein said list construct includes an expansion syntax indicator comprising a pair of brackets enclosing a plurality of list parameters wherein said list parameters identify list members and wherein said list members comprise ordered integers within the range of integers identified by a start integer, an end integer, and optionally a count integer, a step integer and or a skip integer to indicate a count of integers to step or skip during expansion, wherein said list construct further comprises one or more iterators used as an operator acting upon a parameter list to expand the list members, and wherein the list is grouped as a default list name or a explicit list name;

interpreting said list construct within said software code expression according to one of said iterator and said list member expansion syntax using an expansion function; and

expanding using said expansion function said list construct within said software code expression to create a set of expanded expressions; said expanding further comprising:

where one of said software code expressions contains only one unique iterator, said one code expression is expanded as the list size associated with said one unique iterator; or

where said software code expression contains more than one unique iterator, said one code expression is expanded as the cross product of the list sizes associated with each unique iterator;

wherein the cross product is defined according to the relationships between the skip and stride definitions of said iterators, if any, or as a full cross product otherwise.

4. The claim according to claim 3 wherein said list construct further comprises an expansion list construct and or an explicit list construct.

5. A program storage device readable by a computer that tangibly embodies a program of instructions executable by the computer to perform a method to use an expansion syntax for semiconductor design software that allows a single complex software code expression that represents multiple logic gates to be expanded into one or more simple software code expressions that individually represent a single logic gate, comprising:

embedding a list construct within a software code expression wherein said list construct includes an expansion syntax indicator comprising a pair of brackets enclosing a plurality of list parameters wherein said list parameters identify list members and wherein said list members comprise ordered integers within the range of integers identified by a start integer, an end integer, and optionally a count integer, a step integer and or a skip integer to indicate a count of integers to step or skip during expansion, wherein said list construct further comprises one or more iterators used as an operator acting upon a parameter list to expand the list members, and wherein the list is grouped as a default list name or a explicit list name

interpreting said list construct within said software code expression according to one of said iterator and said list member expansion syntax using an expansion function; and

expanding using said expansion function said list construct within said software code expression to create a set of expanded expressions, said expanding further comprising:

where one of said software code expressions contains only one unique iterator, said one code expression is expanded as the list size associated with said one unique iterator; or

where said software code expression contains more than one unique iterator, said one code expression is expanded as the cross product of the list sizes associated with each unique iterator;

wherein the cross product is defined according to the relationships between the skip and stride definitions of said iterators, if any, or as a full cross product otherwise.

6. The claim according to claim 5 wherein said list construct further comprises an expansion list construct and or an explicit list construct.

Assignments (7)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 13, 2010
From: INTRINSITY, INC.
To: APPLE INC.
Reel/Frame 024380/0329 →
RELEASE OF SECURITY INTEREST Recorded Jan 11, 2008
From: SILICON VALLEY BANK
To: INTRINSITY, INC
Reel/Frame 020525/0485 →
GRANT OF SECURITY INTEREST Recorded Dec 13, 2007
From: INTRINSITY INC.
To: PATENT SKY LLC
Reel/Frame 020234/0365 →
RELEASE OF SECURITY INTEREST Recorded Dec 7, 2007
From: ADAMS CAPITAL MANAGEMENT III, L.P.
To: INTRINSITY, INC.
Reel/Frame 020206/0340 →
SECURITY AGREEMENT Recorded Apr 17, 2007
From: INTRINSITY, INC.
To: ADAMS CAPITAL MANAGEMENT III, L.P.
Reel/Frame 019161/0661 →
SECURITY AGREEMENT Recorded Feb 12, 2007
From: INTRINSITY, INC.
To: SILICON VALLEY BANK
Reel/Frame 018923/0404 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 30, 2004
From: BOEHM, FRITZ A.; POTTER, TERENCE M.; BLOMGREN, JAMES S.
To: INTRINSITY, INC.
Reel/Frame 014293/0597 →
Continuity (2)
Provisional Application 6043380300 · Dec 16, 2002
Related Publication 20040139423A1 · Jul 15, 2004