methodical approximate hardware design and reuse
play

Methodical Approximate Hardware Design and Reuse Amir - PowerPoint PPT Presentation

Methodical Approximate Hardware Design and Reuse Amir Yazdanbakhsh Bradley Thwaites Jongse Park Hadi Esmaeilzadeh Georgia InsBtute of Technology


  1. Methodical ¡Approximate ¡ Hardware ¡Design ¡and ¡Reuse ¡ Amir ¡Yazdanbakhsh ¡ Bradley ¡Thwaites ¡ ¡ Jongse ¡Park ¡ ¡ ¡ ¡Hadi ¡Esmaeilzadeh ¡ ¡ ¡ Georgia ¡InsBtute ¡of ¡Technology ¡

  2. Outline ¡ Design ¡of ¡approximate ¡modules ¡ IntegraBon ¡and ¡reuse ¡of ¡approximate ¡modules ¡ Safety ¡analysis ¡ Output ¡quality ¡analysis ¡ QuesBons ¡

  3. Design ¡Phase ¡ • How ¡does ¡the ¡designer ¡specify ¡what ¡can ¡be ¡ approximate? ¡ – Marking ¡individual ¡gates ¡is ¡burdensome. ¡ – Mark ¡only ¡output ¡wires ¡as ¡approximate ¡signals. ¡ • Maintain ¡SeparaBon ¡ • ApproximaBon ¡Plan ¡and ¡Interfacing ¡

  4. ApproximaBon ¡Plan ¡ module fa(a, b, c_in, c_out, s); w0 input a, b, c_in; a x0 output c_out; (* A *) s x1 b ( ∗ A ∗ ) output s; c_in wire w0, w1, w2, w3; w1 xor x0(w0, a, b); xor x1(s, w0, c_in); w2 c_out and u2(w1, a, b); and u2(w2, a, c_in); w3 and u2(w3, b, c_in); or u4(c_out, w1, w2, w3); endmodule

  5. Module ¡Interfacing ¡ module DualStateMemory( (*C*) wrt_en clk, wrt_en, address, data_in, approx_in, data_out, approx_out); (*C*) addr DualState ( ∗ C ∗ ) input clk; (*A*) data_out data_in ( ∗ C ∗ ) input wrt_en; Memory ( ∗ C ∗ ) input[N-1:0] address; (*C*) approx_in approx_out input[M-1:0] data_in; ( ∗ C ∗ ) input approx_in; ( ∗ A ∗ ) output[N-1:0] data_out; output approx_out; (*C*) clk ... endmodule

  6. Reuse ¡Phase ¡ • Avoid ¡rewriBng ¡modules ¡from ¡scratch ¡ – Ease ¡of ¡development ¡ • Reuse ¡of ¡IP ¡cores ¡ – MoBvaBon ¡for ¡innovaBon ¡and ¡entrepreneurship ¡ • Scalability ¡for ¡very ¡large ¡designs ¡

  7. Overriding ¡ b[7] a[7] b[2] a[2] b[1] a[1] b[0] a[0] c_out c[2] c[1] c[0] c_in Full Adder Full Adder Full Adder Full Adder (*C*) z[7] (*C*) z[2] z[1] z[0] Precise Modules Approximate Modules

  8. Overriding ¡within ¡a ¡Module ¡ (*C*) clk (*C*) rst d0 d1 d2 d3 x b0 b1 b2 b3 m2 m3 m0 m1 * * * * * (*A*) w1 (*A*) w2 (*A*) w3 + + + (*A*) y (*C*) y a1 a2 a3 (*A*) w0 w4 w5

  9. Bridging ¡ (*C*) wrt_en addr DualState (*A*) data_out data_in Memory (*C*) approx_in approx_out (*C*) clk

  10. ApproximaBon ¡Safety ¡Analysis ¡ • ApproximaBon ¡bridge ¡ Algorithm 1 Backward slicing to find precise wires. Inputs: K : Circuit vs. ¡criBcal ¡wire? ¡ Θ : Set of precise outputs Ψ : Set of critical wire overrides Y: Set of approximate wires overrides • Deciding ¡final ¡precision ¡ Output: ℜ : Set of precise wires of ¡all ¡gates. ¡ Initialize ℜ / 0 Initialize Q / 0 for each w i 2 ( Θ [ Ψ ) do • Backward ¡Slicing ¡ enqueue( Q , w i ) end for Algorithm ¡ while ( Q 6 = / 0) do w i dequeue( Q ) Φ In K , find input wires of the gate that drives w i for each w j 2 Φ do if ( w j / 2 Y and w j / 2 ℜ ) then ¡ ℜ ℜ [ w j enqueue( Q , w j ) end if ¡ end for end while

  11. Cone ¡Analysis ¡ (*A*) w0 (*A*) y (*C*) y (*A*) y (*A*) w1 (*C*) w2 z

  12. Quality ¡Analysis ¡ • Constraining ¡approximaBon ¡ • Safety ¡vs. ¡Quality ¡ • (*A: ¡f() ¡< ¡ε*) ¡ • Profiling ¡with ¡test ¡inputs ¡ • Global ¡confidence ¡metric ¡

  13. QuesBons? ¡

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend