Claims Analysis
Total Claims: 8
Claim 1
Independent Claim
320 words
A method executed by a computer under the control of a program, said computer including a memory for storing said program, said method comprising the steps of: receiving in said computer a hardware description language description of an electronic circuit, said hardware description language description of said electronic circuit including circuit element descriptions and circuit connection descriptions, said circuit element descriptions defining datapath functions performed by said electronic circuit; storing in said memory a library with a plurality of hardware description language datapath library elements that perform specified datapath operations; parsing said circuit element descriptions of said hardware description language description of said electronic circuit into circuit element intermediate register transfer level (RTL) descriptions, each of said circuit element intermediate RTL descriptions including a first list of pointers to data structures with multiple input and output ports and a second list of pointers to data structures representing logical or mathematical expressions, and said hardware description language datapath library elements into datapath library element intermediate RTL descriptions, each of said datapath library element intermediate RTL descriptions including a first list of pointers to data structures representing input and output ports and a second list of pointers to data structures representing logical or mathematical expressions; transforming each of said circuit element intermediate RTL descriptions into a corresponding circuit element directed acyclic graph, thereby generating a set of circuit element directed acyclic graphs, each of said dampath library element intermediate RTL descriptions into a corresponding datapath library element directed acyclic graph, thereby generating a set of datapath library element directed acyclic graphs; synthesizing a datapath structure representing said electronic circuit, said synthesizing step including the step of matching said circuit element directed acyclic graphs with said datapath library element directed acyclic graphs to identify matched datapath library elements which perform said datapath functions defined by said circuit element descriptions; and generating a netlist of circuit elements selected from said matched datapath library elements.
Claim 2
Independent Claim
320 words
A method executed by a computer under the control of a program, said computer including a memory for storing said program, said method comprising the steps of: receiving in said computer a hardware description language description of an electronic circuit, said hardware description language description of said electronic circuit including circuit element descriptions and circuit connection descriptions, said circuit element descriptions defining datapath functions performed by said electronic circuit; storing in said memory a library with a plurality of hardware description language datapath library elements that perform specified datapath operations; parsing said circuit element descriptions of said hardware description language description of said electronic circuit into circuit element intermediate register transfer level (RTL) descriptions, each of said circuit element intermediate RTL descriptions including a first list of pointers to data structures with multiple input and output ports and a second list of pointers to data structures representing logical or mathematical expressions, and said hardware description language datapath library elements into datapath library element intermediate RTL descriptions, each of said datapath library element intermediate RTL descriptions including a first list of pointers to data structures representing input and output ports and a second list of pointers to data structures representing logical or mathematical expressions; transforming each of said circuit element intermediate RTL descriptions into a corresponding circuit element directed acyclic graph, thereby generating a set of circuit element directed acyclic graphs, each of said dampath library element intermediate RTL descriptions into a corresponding datapath library element directed acyclic graph, thereby generating a set of datapath library element directed acyclic graphs; synthesizing a datapath structure representing said electronic circuit, said synthesizing step including the step of matching said circuit element directed acyclic graphs with said datapath library element directed acyclic graphs to identify matched datapath library elements which perform said datapath functions defined by said circuit element descriptions; and generating a netlist of circuit elements selected from said matched datapath library elements.
Claim 3
Dependent Claim
72 words
The method of claim 1 wherein said matching step includes the steps of identifying a circuit element directed acyclic graph that cannot be matched with said datapath library element directed acyclic graphs and thereby forms an unmatched directed acyclic graph; transforming said unmatched directed acyclic graph into an algebraically equivalent substitute directed acyclic graph; and matching said algebraically equivalent substitute directed acyclic graph with a corresponding dampath library element directed acyclic graph.
Claim 4
Dependent Claim
79 words
The method of claim 1 wherein said synthesizing step includes the steps of: receiving a spacial area value associated with each of several predefined multiplexers having different numbers of ports; representing multiplexers utilized in said synthesized datapath structure; and transforming a multiple port multiplexer into an equivalent tree structure of multiplexers in said synthesized datapath structure, said tree structure of multiplexers having an associated circuit layout area which is smaller than said multiple port multiplexer's associated circuit layout area.
Claim 5
Dependent Claim
51 words
The method of claim 1 further including the step of merging selected ones of said circuit element descriptions defining said datapath functions into combined functions in accordance with predefined optimization criteria, wherein each combined function is performed by at least one of said plurality of hardware description language datapath library elements.
Claim 6
Dependent Claim
29 words
The method of claim 4 wherein said merging step includes the step of merging single output datapath functions defined by said circuit element descriptions into multiple output datapath functions.
Claim 7
Dependent Claim
300 words
A computer readable memory that can be used to direct a computer to function in a specified manner, comprising: circuit data stored in said memory, said circuit data including: a hardware description language description of an electronic circuit, said hardware description language description of said electronic circuit including circuit element descriptions and circuit connection descriptions, and a library of hardware description language dampath circuit elements that perform specified datapath operations; and executable instructions stored in said memory, said executable instructions including: instructions to parse said circuit element descriptions of said hardware description language of said electronic circuit into circuit element intermediate register transfer level (RTL) descriptions, each of said circuit element intermediate RTL descriptions including a first list of pointers to data structures with multiple input and output ports and a second list of pointers to data structures representing logical or mathematical expressions, instructions to parse said hardware description language datapath circuit elements into datapath library element intermediate RTL descriptions, each of said datapath library element intermediate RTL descriptions including a first list of pointers to data structures representing input and output ports and a second list of pointers to data structures representing logical or mathematical expressions, instructions to transform each of said circuit element intermediate RTL descriptions into a corresponding circuit element directed acyclic graph, thereby generating a set of circuit element directed acyclic graphs, instructions to transform each of said datapath library element intermediate RTL descriptions into a corresponding datapath library element directed acyclic graph, thereby generating a set of datapath library element directed acyclic graphs, instructions to match said circuit element directed acyclic graphs with said datapath library element directed acyclic graphs to produce matched datapath library elements, and instructions to synthesize a datapath circuit netlist having datapath library elements corresponding to said matched datapath library elements.
Claim 8
Dependent Claim
300 words
A computer readable memory that can be used to direct a computer to function in a specified manner, comprising: circuit data stored in said memory, said circuit data including: a hardware description language description of an electronic circuit, said hardware description language description of said electronic circuit including circuit element descriptions and circuit connection descriptions, and a library of hardware description language dampath circuit elements that perform specified datapath operations; and executable instructions stored in said memory, said executable instructions including: instructions to parse said circuit element descriptions of said hardware description language of said electronic circuit into circuit element intermediate register transfer level (RTL) descriptions, each of said circuit element intermediate RTL descriptions including a first list of pointers to data structures with multiple input and output ports and a second list of pointers to data structures representing logical or mathematical expressions, instructions to parse said hardware description language datapath circuit elements into datapath library element intermediate RTL descriptions, each of said datapath library element intermediate RTL descriptions including a first list of pointers to data structures representing input and output ports and a second list of pointers to data structures representing logical or mathematical expressions, instructions to transform each of said circuit element intermediate RTL descriptions into a corresponding circuit element directed acyclic graph, thereby generating a set of circuit element directed acyclic graphs, instructions to transform each of said datapath library element intermediate RTL descriptions into a corresponding datapath library element directed acyclic graph, thereby generating a set of datapath library element directed acyclic graphs, instructions to match said circuit element directed acyclic graphs with said datapath library element directed acyclic graphs to produce matched datapath library elements, and instructions to synthesize a datapath circuit netlist having datapath library elements corresponding to said matched datapath library elements.