13.07.2015 Views

Verifying a Synthesized Implementation of IEEE-754 Floating-Point ...

Verifying a Synthesized Implementation of IEEE-754 Floating-Point ...

Verifying a Synthesized Implementation of IEEE-754 Floating-Point ...

SHOW MORE
SHOW LESS
  • No tags were found...

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Verification <strong>of</strong> <strong>IEEE</strong>-<strong>754</strong> <strong>Floating</strong>-<strong>Point</strong> Exponential Function 21FIGURE A6. Powers <strong>of</strong> Two block diagram.In HOL we modeled this algorithm as follows:⊢ def GET_J_RTL s1 e1 m1 j =∃ expo magn.(BNVAL expo = BNVAL e1 − 127) ∧(magn = WCAT (WORD [F;F;F;F;T],m1)) ∧(if expo = WORD [F;F;F;F;F;T;F;F] thenj = WSEG 5 19 magnelse(if expo = WORD [F;F;F;F;F;F;T;T] thenj = WSEG 5 20 magnelse(if expo = WORD [F;F;F;F;F;F;T;F] thenj = WSEG 5 21 magnelse(if expo = WORD [F;F;F;F;F;F;F;T] thenj = WSEG 5 22 magnelse(if expo = WORD [F;F;F;F;F;F;F;F] thenj = WSEG 5 23 magnelsej = WORD (REPLICATE 5 F))))))The correctness <strong>of</strong> the algorithmic to RTL transition <strong>of</strong> theget J block is established in HOL as follows:FIGURE A7. Get J block diagram.rewriting on the definition <strong>of</strong> the function GET_J, case analysison the input exponent and valuations on floating-point numbersand machine integers.Lemma 11: GET_J_RTL_TO_ALGORITHM_Correct⊢ GET_J s1 e1 m1 j =⇒ (Int (BNVAL j) =Toint (float (BV s1,BNVAL e1,BNVAL m1)))where Int is the bijection function that converts a naturalnumber to the machine integer type. The pro<strong>of</strong> is done byAPPENDIX B. DETAILS OF GATE LEVEL TO RTLVERIFICATIONVerification <strong>of</strong> n-bit Adder. The n-bit Adder in the RTLlevel is specified as follows:The Computer Journal, 2009

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!