Verification of hardware design for component that evaluates an algebraic expression using decomposition and recombination

US11829694B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11829694-B2
Application numberUS-202218076338-A
CountryUS
Kind codeB2
Filing dateDec 6, 2022
Priority dateOct 14, 2020
Publication dateNov 28, 2023
Grant dateNov 28, 2023

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A hardware design for a component that evaluates a main algebraic expression comprising at least two variables is verified, the main algebraic expression being representable as a lossless combination of a plurality of sub-algebraic expressions, and one or more of the at least two variables can be constrained to cause an instantiation of the hardware design to evaluate each of the sub-algebraic expressions. An instantiation of the hardware design is verified as correctly evaluating each of the plurality of sub-algebraic expressions, and the instantiation of the hardware design is formally evaluated as correctly evaluating one or more combinations of sub-algebraic expressions, wherein the one or more combinations comprises a combination that is equivalent to the main algebraic expression.

First claim

Opening claim text (preview).

What is claimed is: 1. A computer-implemented method of verifying a hardware design for a component that evaluates a main algebraic expression comprising at least two variables, the main algebraic expression being representable as a lossless combination of a plurality of sub-algebraic expressions, and one or more of the at least two variables can be constrained to cause an instantiation of the hardware design to evaluate each of the sub-algebraic expressions, the method comprising, at one or more processors: verifying that an instantiation of the hardware design correctly evaluates each of the plurality of sub-algebraic expressions; and formally verifying that an instantiation of the hardware design correctly evaluates one or more combinations of sub-algebraic expressions, wherein the one or more combinations comprises a combination that is equivalent to the main algebraic expression. 2. The method of claim 1 , wherein formally verifying that an instantiation of the hardware design correctly evaluates a combination of the one or more combinations comprises comparing instantiations of the hardware design under different constraints. 3. The method of claim 1 , wherein the formal verification that an instantiation of the hardware design correctly evaluates a combination of the one or more combinations is based on an instantiation of the hardware design constrained to evaluate the combination and an instantiation of the hardware design constrained to evaluate a sub-algebraic expression or another combination of the one or more combinations. 4. The method of claim 1 , wherein verifying that an instantiation of the hardware design correctly evaluates a certain sub-algebraic expression of the plurality of sub-algebraic expressions comprises, for each valid value of each variable in the certain sub-algebraic expression: determining a first output of an instantiation of the hardware design constrained to evaluate the certain sub-algebraic expression; determining a second output of a high-level model of the hardware design constrained to evaluate the certain sub-algebraic expression and constrained to use the same values for the variables of the certain sub-algebraic expression that were used to generate the first output; and verifying that the first output matches the second output. 5. The method of claim 1 , wherein a specific sub-algebraic expression of the plurality of sub-algebraic expressions is polynomial of degree k in a variable x for all values of x in a set of values of x, and verifying that an instantiation of the hardware design correctly evaluates the specific sub-algebraic expression comprises: formally verifying that an instantiation of the hardware design constrained to evaluate the specific sub-algebraic expression implements an expression that is polynomial of degree k in x by formally verifying that, for all values of x in the set of values of x, an instantiation of the hardware design has a constant k th difference; and verifying that an instantiation of the hardware design constrained to evaluate the specific sub-algebraic expression generates an expected output in response to each of at least e different values of x in the set of values of x, wherein e is equal to k when a value of the k th difference is predetermined and e is equal to k+1 when the value of the k th difference is not predetermined. 6. The method of claim 1 , wherein the main algebraic expression is permutation invariant with respect to a particular sub-algebraic expression and a particular algebraic expression that is verified in the method, and verifying that an instantiation of the hardware design correctly evaluates the particular sub-algebraic expression comprises, for all valid values of the variables of the particular algebraic expression: determining a first output of an instantiation of the hardware design constrained to evaluate the particular algebraic expression; determining a second output of an instantiation of the hardware design constrained to evaluate the particular sub-algebraic expression when the values of the variables of the particular sub-algebraic expression are the same as the values of the variables of the particular algebraic expression used to generate the first output; and verifying that the first output matches the second output. 7. The method of claim 1 , wherein each combination of the one or more combinations is a combination of a first algebraic expression and a second algebraic expression, and each of the first and second algebraic expressions is one of: a sub-algebraic expression and another combination of the one or more combinations. 8. The method of claim 7 , wherein formally verifying that an instantiation of the hardware design correctly evaluates a specific combination of the one or more combinations comprises, for valid values of each variable of the first algebraic expression and the second algebraic expression of the specific combination: determining a first output of an instantiation of the hardware design constrained to evaluate the first algebraic expression; determining a second output of an instantiation of the hardware design constrained to evaluate the second algebraic expression; determining a third output of an instantiation of the hardware design constrained to evaluate the specific combination, wherein the variables of the first algebraic expression have the same values as the variables of the first algebraic expression used to generate the first output, and the variables of the second algebraic expression have the same values as the variables of the second algebraic expression used to generate the second output; and verifying that the third output matches the combination of the first and second outputs. 9. The method of claim 7 , wherein a particular combination of the one or more combinations combines the first algebraic expression and the second algebraic expression through an addition operation, and formally verifying that an instantiation of the hardware design correctly evaluates the particular combination comprises: formally verifying that an instantiation of the hardware design constrained to evaluate the particular combination implements an expression that is polynomial of degree k in the first algebraic expression by formally verifying that, for all values of the first algebraic expression, an instantiation of the hardware design constrained to evaluate the particular combination has a constant k th difference; and verifying that an instantiation of the hardware design constrained to evaluate the particular combination generates an expected output in response to each of at least e different values of the first algebraic expression, wherein e is equal to k when a value of the k th difference is predetermined and e is equal to k+1 when the value of the k th difference is not predetermined. 10. The method of claim 9 , wherein formally verifying that, for all values of the first algebraic expression, an instantiation of the hardware design constrained to evaluate the particular combination has a constant k th difference comprises, during the formal verification, identifying values of the variables of the first algebraic expression that result in consecutive values of the first algebraic expression, and comparing outputs of an instantiation of the hardware design constrained to evaluate the particular combination in response to values of the variables of the first algebraic expression that result in consecutive values of the first algebraic expression. 11. The method of claim 10 , wherein identifying values of the variables of the first algebraic expression that result in consecutive values of the first algebraic expression comprises: determinin

Assignees

Inventors

Classifications

  • using formal methods, e.g. equivalence checking or property checking · CPC title

  • Floor-planning or layout, e.g. partitioning or placement · CPC title

  • Constraint-based CAD · CPC title

  • G06F30/33Primary

    Design verification, e.g. functional simulation or model checking · CPC title

  • System on chip [SoC] design · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US11829694B2 cover?
A hardware design for a component that evaluates a main algebraic expression comprising at least two variables is verified, the main algebraic expression being representable as a lossless combination of a plurality of sub-algebraic expressions, and one or more of the at least two variables can be constrained to cause an instantiation of the hardware design to evaluate each of the sub-algebraic …
Who is the assignee on this patent?
Imagination Tech Ltd
What technology area does this patent fall under?
Primary CPC classification G06F30/3323. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Nov 28 2023 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 1 related publication on this page (citations in our corpus or others sharing the same primary CPC).