Approximate functional matching in electronic systems
AssigneeSynopsys, Inc.
InventorsIgor L. Markov, Kenneth S. McElvain
Life of this patent
Estimating the term…
Abstract
Methods and apparatuses for approximate functional matching are described including identifying functionally similar subsets of an integrated circuit design or software program, distinguishing control inputs of the subsets from data inputs, and assigning combinations of logic values to the input control signals to capture co-factors for functional matching.
Claims23
A method to update a description of an integrated circuit design or software program, the method comprising:
- determining, using a processor, whether an input of one or more subsets of the description or software program is a control input by
- assigning combinations of logic values to one or more side inputs of the one or more subsets of the description or software program
- determining a first number of outputs sensitized by a logic transition of the input for each combination of values of the one or more side inputs,
- determining if the first number is greater than a predetermined number, and identifying the input as a control input if the first number of outputs sensitized by the input is greater than the predetermined number;
- determining a first plurality of co-factors for the one or more subsets of the description or software program, each co-factor determined by toggling combinations of values for the control inputs;
- identifying matches in the description or software program or a template by a comparison of co-factors;
- determining one or more updated subsets based on one or more matches;
- and
- updating the description or software program with the updated subset.
A non-transitory computer-readable storage medium that provides instruction, which when executed by a computer, performs a method to update a description of an integrated circuit design or software program , the method comprising:
- determining, using a processor, whether an input of one or more subsets of the description or software program is a control input by
- assigning combinations of logic values to one or more side inputs of the one or more subsets of the description or software program
- determining a first number of outputs sensitized by a logic transition of the input for each combination of values of the one or more side inputs,
- determining if the first number is greater than a predetermined number, and identifying the input as a control input if the first number of outputs sensitized by the input is greater than the predetermined number;
- determining a first plurality of co-factors for the one or more subsets of the description or software program, each co-factor determined by toggling combinations of values for the control inputs;
- identifying matches in the description or software program or a template by a comparison of co-factors;
- determining one or more updated subsets based on one or more matches;
- and
- updating the description or software program with the updated subset.
A data processing system comprising:
- a memory;
- and
- a processor coupled to the memory, the processor configured to, upon receipt of a description of an integrated circuit design or software program, determine whether an input of one or more subsets of the description or software program is a control input by assigning combinations of logic values to one or more side inputs of the one or more subsets of the description or software program, determine a first number of outputs sensitized by a logic transition of the input for each combination of values of the one or more side inputs, determine if the first number is greater than a predetermined number, and identify the input as a control input if the first number of outputs sensitized by the input is greater than the predetermined number;
- the processor further configured to determine a first plurality of co-factors for the one or more subsets of the description or software program, each co-factor determined by toggling combinations of values for the control inputs;
- identify matches in the description or software program or a template by a comparison of co-factors;
- determine one or more updated subsets based on one or more matches;
- and update the description or software program with the updated subset.
Dependencies are inferred from the claim text.