Verification of hardware designs to implement floating point power functions

US10229236B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10229236-B2
Application numberUS-201715492205-A
CountryUS
Kind codeB2
Filing dateApr 20, 2017
Priority dateApr 27, 2016
Publication dateMar 12, 2019
Grant dateMar 12, 2019

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 method of exhaustively verifying a property of a hardware design to implement a floating point power function. The method includes, formally verifying that the hardware design is recurrent over sets of β input exponents, wherein β is an integer that is a multiple of the reciprocal of the exponent of the power function; and for each recurrent input range of the hardware design, exhaustively simulating the hardware design over a simulation range to verify the property is true over the simulation range, wherein the simulation range comprises only β input exponents.

First claim

Opening claim text (preview).

The invention claimed is: 1. A computer-implemented method of exhaustively verifying a property of a hardware design to implement a floating point power function defined by an exponent, the hardware design being configured to, in response to receiving a floating point input that has an input mantissa and an input exponent, produce a corresponding floating point output that has an output mantissa and an output exponent, the method comprising, in one or more processors: formally verifying, using one or more formal assertions, that the hardware design is recurrent over sets of β input exponents, the hardware design being recurrent over sets of β input exponents if for any two non-exception floating point inputs in a recurrent input range that have the same input mantissa and have input exponents X and Y that are related by an integer multiple of β the corresponding floating point outputs produced by the hardware design have the same output mantissa and have output exponents X′ and Y′ that satisfy the equation X′−t·X=Y′−t·Y, wherein t is the exponent of the floating point power function and β is an integer that is a multiple of 1/t; and for each recurrent input range of the hardware design, exhaustively simulating the hardware design over a simulation range to verify the property over the simulation range, wherein the simulation range comprises floating point inputs based on a set of β input exponents in the recurrent input range. 2. The method of claim 1 , wherein the set of β input exponents comprises an input exponent from each of a plurality of exponent classes, each exponent class comprising input exponents with a same value modulo β. 3. The method of claim 1 , wherein the hardware design has a single recurrent input range that comprises positive and negative floating point inputs and formally verifying the hardware design is recurrent over sets of β input exponents comprises: formally verifying that the hardware design maintains a predetermined relationship between positive and negative floating point inputs; and formally verifying that for any two non-exception positive floating point inputs, or for any two non-exception negative floating points inputs, that have the same input mantissa and have input exponents X and Y that differ by an integer multiple of β the corresponding floating point outputs produced by the hardware design have the same output mantissa and have output exponents X′ and Y′ that satisfy the equation X′−t·X=Y′−t·Y. 4. The method of claim 1 , wherein the hardware design has a first recurrent input range comprising positive floating point inputs and a second recurrent input range comprising negative floating point inputs and formally verifying the hardware design is recurrent over sets of β input exponents comprises: formally verifying that for any two non-exception positive floating point inputs that have the same input mantissa and have input exponents X and Y that differ by an integer multiple of β the corresponding floating point outputs have the same output mantissa and have output exponents X′ and Y′ that are satisfy the equation X′−t·X=Y′−t·Y; and formally verifying that for any two non-exception negative floating points inputs that have the same input mantissa and have input exponents A and C that differ by an integer multiple of β the corresponding floating point outputs have the same output mantissa and have output exponents A′ and C′ that satisfy the equation A′−t·A=C′−t·C. 5. The method of claim 1 , further comprising formally verifying that the hardware design generates expected outputs in response to exception inputs. 6. The method of claim 1 , further comprising formally verifying that the hardware design produces exception outputs in response to certain non-exception inputs. 7. The method of claim 1 , wherein formally verifying that the hardware design is recurrent over sets of β input exponents comprises verifying, using a formal verification tool, the one or more formal assertions. 8. The method of claim 1 , wherein the property of the hardware design is a unit of last precision error requirement. 9. The method of claim 1 , wherein the property of the hardware design is a relative error requirement. 10. The method of claim 1 , wherein the property of the hardware design is a particular rounding mode. 11. The method of claim 1 , wherein the property of the hardware design is monotonicity. 12. The method of claim 1 , wherein the property of the hardware design is that the hardware design is equivalent to another hardware design to implement the floating point power function. 13. The method of claim 1 , wherein when the hardware design is processed at an integrated circuit manufacturing system, the hardware design configures the integrated circuit manufacturing system to manufacture an integrated circuit to implement the floating point power function. 14. A method of generating a hardware implementation of a floating point power function comprising: receiving a hardware design to implement the floating point power function; verifying a property of the hardware design according to the method as set forth in claim 1 ; and generating a hardware implementation of the floating point power function based on the hardware design. 15. A method of generating a hardware implementation of a floating point power function comprising: receiving a hardware design to implement the floating point power function; verifying a property of the hardware design according to the method as set forth in claim 1 ; in response to the property of the hardware design not being verified, amending the hardware design; and generating a hardware implementation of the floating point power function based on the amended hardware design. 16. A system to exhaustively verify a property of a hardware design to implement a floating point power function defined by an exponent, the hardware design being configured to, in response to receiving a floating point input that has an input mantissa and an input exponent, produce a corresponding floating point output that has an output mantissa and an output exponent, the system comprising: a formal verification tool configured to formally verify that the hardware design is recurrent over sets of β input exponents, the hardware design being recurrent over sets of β input exponents if for any two non-exception floating point inputs in a recurrent input range that have the same input mantissa and have input exponents X and Y that differ by an integer multiple of β the corresponding floating point outputs produced by the hardware design have the same output mantissa and have output exponents X′ and Y′ that satisfy the equation X′−t·X=Y′−t·Y, wherein t is the exponent of the floating point power function and β is an integer that is a multiple of 1/t; and a simulation engine configured to, for each recurrent input range of the hardware design, exhaustively simulate the hardware design over a simulation range to verify the property over the simulation range, wherein the simulation range comprises floating point inputs based on a set of β input exponents in the recurrent input range. 17. The system of claim 16 , wherein the set of β input exponents comprises an input exponent from each of a plurality of exponent classes, each exponent class comprising input exponents with a same value modulo β. 18. The system of claim 16 , wherein the hardware design has a single recurrent input range that comprises positive and negative floating point inputs and the formal verification tool is configured to formally verify the hardware des

Assignees

Inventors

Classifications

  • Manufacturability analysis or optimisation for manufacturability · CPC title

  • Design optimisation, verification or simulation (optimisation, verification or simulation of circuit designs G06F30/30) · CPC title

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

  • Logarithmic or exponential functions · CPC title

  • G06F7/483Primary

    Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers {(G06F7/4806, G06F7/4824, G06F7/49, G06F7/491, G06F7/544 take precedence)} · 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 US10229236B2 cover?
A method of exhaustively verifying a property of a hardware design to implement a floating point power function. The method includes, formally verifying that the hardware design is recurrent over sets of β input exponents, wherein β is an integer that is a multiple of the reciprocal of the exponent of the power function; and for each recurrent input range of the hardware design, exhaustively si…
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 Mar 12 2019 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 3 related publications on this page (citations in our corpus or others sharing the same primary CPC).