desynchroniza on
play

Desynchroniza-on: Design For Verifica-on Sudarshan K. - PowerPoint PPT Presentation

Desynchroniza-on: Design For Verifica-on Sudarshan K. Srinivasan and Raj S. Ka0 North Dakota State University FMCAD 2011 Desynchroniza-on


  1. Desynchroniza-on: ¡ ¡ Design ¡For ¡Verifica-on ¡ ¡ ¡ Sudarshan ¡K. ¡Srinivasan ¡and ¡Raj ¡S. ¡Ka0 ¡ North ¡Dakota ¡State ¡University ¡ ¡ FMCAD ¡2011 ¡ ¡ ¡

  2. Desynchroniza-on ¡ • Synthesis ¡of ¡asynchronous ¡circuits ¡from ¡ synchronous ¡circuits ¡ • Advantages: ¡ – Locally ¡generated ¡Gming ¡signals ¡in ¡place ¡of ¡global ¡ clocks ¡ – Robustness ¡towards ¡variability ¡in ¡the ¡ manufacturing ¡process ¡and ¡operaGng ¡condiGons ¡ – Provides ¡a ¡soluGon ¡to ¡wire-­‑delay ¡challenge ¡ – Use ¡of ¡exisGng ¡EDA ¡CAD ¡flows ¡

  3. Desynchroniza-on ¡ • Micropipelines ¡ – Ivan ¡Sutherland ¡( Communica)ons ¡of ¡the ¡ACM ¡ 1989 ) ¡ • 4-­‑Phase ¡Semi-­‑Decoupled ¡Latch ¡Controller ¡ – Furber ¡and ¡Day ¡(IEEE ¡TVLSI ¡1996) ¡ • DesynchronizaGon ¡ – Cortadella ¡et ¡al. ¡( IEEE ¡TCAD ¡2006 ) ¡ ¡

  4. Desynchroniza-on ¡ DM ¡ RF ¡ PC ¡ IM ¡ ¡Decode ¡ ¡FL ¡ Logic ¡ CLK ¡

  5. Desynchroniza-on ¡ DM ¡ RF ¡ PC ¡ IM ¡ ¡Decode ¡ ¡FL ¡ Logic ¡

  6. Desynchroniza-on ¡ DM ¡ RF ¡ PC ¡ IM ¡ ¡Decode ¡ ¡FL ¡ Logic ¡

  7. Desynchroniza-on ¡ DM ¡ RF ¡ PC ¡ IM ¡ ¡Decode ¡ ¡FL ¡ Logic ¡

  8. Desynchroniza-on ¡ DM ¡ RF ¡ PC ¡ IM ¡ ¡Decode ¡ ¡FL ¡ Logic ¡ D ¡ D ¡ C ¡ D ¡ D ¡ C ¡ D ¡ C ¡ D ¡ C ¡ C ¡ C ¡ D ¡ D ¡

  9. Desynchroniza-on ¡Protocol ¡ CombinaGonal ¡ ¡ Logic ¡ A b2 ¡ A f1 ¡ R of1 ¡ R ob1 ¡ R ob2 ¡ R ib2 ¡ ¡ D ¡ C ¡ F 1 ¡ B 2 ¡ A f2 ¡ A f1 ¡ A of1 ¡ A b2 ¡ C ¡ ¡

  10. Desynchroniza-on ¡Protocol ¡ τ 1 ¡ τ 2 ¡ CombinaGonal ¡ ¡ Logic ¡ A b2 ¡ A f1 ¡ R of1 ¡ R ob1 ¡ R ob2 ¡ R ib2 ¡ ¡ D ¡ C ¡ F 1 ¡ B 2 ¡ A f2 ¡ A f1 ¡ A of1 ¡ A b2 ¡ C ¡ ¡

  11. Desynchroniza-on ¡Protocol ¡ τ 2 ¡ CombinaGonal ¡ ¡ Logic ¡ A b2 ¡ A f1 ¡ R of1 ¡ R ob1 ¡ R ob2 ¡ R ib2 ¡ ¡ D ¡ C ¡ F 1 ¡ B 2 ¡ A f2 ¡ A f1 ¡ A of1 ¡ A b2 ¡ C ¡ ¡

  12. Desynchroniza-on ¡Protocol ¡ τ 2 ¡ τ 2 ¡ CombinaGonal ¡ ¡ Logic ¡ A b2 ¡ A f1 ¡ R of1 ¡ R ob1 ¡ R ob2 ¡ R ib2 ¡ ¡ D ¡ C ¡ F 1 ¡ B 2 ¡ A f2 ¡ A f1 ¡ A of1 ¡ A b2 ¡ C ¡ ¡

  13. Desynchroniza-on ¡Protocol ¡ τ 2 ¡ CombinaGonal ¡ ¡ Logic ¡ A b2 ¡ A f1 ¡ R of1 ¡ R ob1 ¡ R ob2 ¡ R ib2 ¡ ¡ D ¡ C ¡ F 1 ¡ B 2 ¡ A f2 ¡ A f1 ¡ A of1 ¡ A b2 ¡ C ¡ ¡

  14. Equivalence ¡Verifica-on ¡ • Well ¡Founded ¡Equivalence ¡BisimulaGons ¡ (WEBs) ¡Refinement ¡ – PanagioGs ¡(Pete) ¡Manolios: ¡Correctness ¡of ¡ Pipelined ¡Machines ¡(FMCAD’00) ¡ • Refinement ¡Map ¡ ¡

  15. Equivalence ¡Verifica-on ¡ ¡ • Synchronous ¡Pipeline ¡ – 5 ¡Stages ¡(5 ¡pipeline ¡registers) ¡ – D ¡Flip ¡Flops ¡ – No. ¡Of ¡Pipeline ¡Controller ¡States ¡= ¡16 ¡ – Stages ¡synchronized ¡ • Desynchronized ¡Pipeline ¡ – 5 ¡Stages: ¡10 ¡pipeline ¡latches ¡ – 2 ¡D ¡latches ¡for ¡every ¡D ¡Flip ¡Flop ¡ ¡ – Stages ¡not ¡synchronized ¡ – No. ¡of ¡States ¡of ¡DesynchronizaGon ¡Controller: ¡> ¡ 2 20 ¡

  16. DM ¡ RF ¡ PC ¡ IM ¡ ¡Decode ¡ ¡FL ¡ Logic ¡ CLK ¡ ≅ ¡ DM ¡ RF ¡ PC ¡ IM ¡ ¡Decode ¡ ¡FL ¡ Logic ¡

  17. Desynchroniza-on ¡ DM ¡ RF ¡ PC ¡ IM ¡ ¡Decode ¡ ¡FL ¡ Logic ¡ D ¡ D ¡ C ¡ D ¡ D ¡ C ¡ D ¡ C ¡ D ¡ C ¡ C ¡ C ¡ D ¡ D ¡

  18. Refinement-­‑Based ¡Verifica-on ¡ • SpecificaGon: ¡Single-­‑stage ¡synchronous ¡ machine ¡ • Reachability ¡Analysis ¡ – To ¡eliminate ¡spurious ¡counterexamples ¡ – Symbolic ¡simulaGon ¡ • Very ¡large ¡number ¡of ¡steps ¡ • Infeasible ¡ – High-­‑level ¡Invariants ¡ • Hard ¡to ¡find ¡ ¡

  19. DFVD ¡Controller ¡ A f ¡ A b ¡ R i1 ¡ R of ¡ R ib ¡ R ob ¡ A o1 ¡ C B ¡ F A of ¡ A b ¡ C R im ¡ A on ¡

  20. DFVD ¡Controller ¡ A f ¡ A b ¡ R i1 ¡ R of ¡ R ib ¡ R ob ¡ A o1 ¡ C B ¡ F A of ¡ A b ¡ C R im ¡ A on ¡

  21. DFVD ¡Controller ¡ • P 1 : ¡ ¡ A b ∨ ¡ A f ¡ ¡ ¡ ¡ ¡ A f ¡ A b ¡ R i1 ¡ R of ¡ R ib ¡ R ob ¡ A o1 ¡ C B ¡ F A of ¡ A b ¡ C R im ¡ A on ¡

  22. DFVD ¡Controller ¡ • P 1 : ¡ ¡ A b ∨ ¡ A f ¡ P 2 : ¡[ A b ∧ A f ∧ R of ]→(¬ R ob ) ¡ • P 3 : ¡[ A b ¡ ∧ A f ¡ ∧ (¬ R of ¡ )] ¡→ ¡(¬ A of ¡) ¡ • P 4 : ¡[(¬ A b ) ∧ A f ¡ ∧ R of ¡] ¡→ ¡(¬ A of ¡) ¡ • A f ¡ A b ¡ R i1 ¡ P 5 : ¡[ A b ∧ (¬ A f )]→ A of ¡ • R of ¡ R ib ¡ R ob ¡ P 6 : ¡[ Ab ¡ ∧ (¬ Af ¡) ∧ (¬ Rof ¡)] ¡→ ¡ Rib ¡ ¡ • A o1 ¡ C P 7 : ¡[(¬ Ab ) ∧ Af ¡ ∧ (¬ Rof ¡)] ¡→ ¡(¬ Rib ) ¡ ¡ • B ¡ F A of ¡ A b ¡ P 8 : ¡[ Ab ∧ Af ∧ Rof ]→ Rib ¡ • C R im ¡ ¡ A on ¡ ¡ ¡ ¡

  23. DFVD ¡Controller ¡ • P 1 : ¡ ¡ A b ∨ ¡ A f ¡ P 2 : ¡[ A b ∧ A f ∧ R of ]→(¬ R ob ) ¡ • P 3 : ¡[ A b ¡ ∧ A f ¡ ∧ (¬ R of ¡ )] ¡→ ¡(¬ A of ¡) ¡ • P 4 : ¡[(¬ A b ) ∧ A f ¡ ∧ R of ¡] ¡→ ¡(¬ A of ¡) ¡ • A f ¡ A b ¡ R i1 ¡ P 5 : ¡[ A b ∧ (¬ A f )]→ A of ¡ • R of ¡ R ib ¡ R ob ¡ P 6 : ¡[ Ab ¡ ∧ (¬ Af ¡) ∧ (¬ Rof ¡)] ¡→ ¡ Rib ¡ ¡ • A o1 ¡ C P 7 : ¡[(¬ Ab ) ∧ Af ¡ ∧ (¬ Rof ¡)] ¡→ ¡(¬ Rib ) ¡ ¡ • B ¡ F A of ¡ A b ¡ P 8 : ¡[ Ab ∧ Af ∧ Rof ]→ Rib ¡ • C R im ¡ The ¡conjuncGon ¡of ¡properGes ¡P 1 – • A on ¡ P 8 ¡forms ¡an ¡inducGve ¡invariant ¡ ¡ ¡

  24. DFVD ¡Controller ¡ P9: ¡ ¡ ¡[(¬ A f1 ) ∧ (¬ A b2 )] ¡→ ¡(¬ R ib2 ) ¡ ¡ CombinaGonal ¡ ¡ P10: ¡[(¬ A f1 ) ∧ R of1 ] ¡→ ¡ R ib2 ¡ ¡ Logic ¡ P11: ¡[ A f1 ¡ ∧ (¬ A b2 ) ∧ (¬ R of1 ) ⟩ ] ¡→ ¡(¬ R ib2 ) ¡ ¡ P12: ¡[ A f1 ¡ ∧ A b2 ¡ ∧ R of1 ] ¡→ ¡ R ib2 ¡ ¡ A b2 ¡ A f1 ¡ P13: ¡[ A f1 ¡ ∧ A b2 ¡ ∧ (¬ R of1 )] ¡→ ¡ A of1 ¡ ¡ R of1 ¡ R ob1 ¡ R ob2 ¡ R ib2 ¡ P14: ¡[ A f1 ¡ ∧ (¬ A b2 ) ∧ R of1 ] ¡→ ¡(¬ A of1 ) ¡ ¡ ¡ D ¡ C ¡ P15: ¡[(¬ A f1 ) ∧ A b2 ] ¡→ ¡ A of1 ¡ F 1 ¡ B 2 ¡ A f2 ¡ A b2 ¡ A f1 ¡ A of1 ¡ C ¡ ¡

  25. Desynchronized ¡5-­‑Stage ¡Pipeline ¡ DM ¡ RF ¡ PC ¡ IM ¡ ¡Decode ¡ ¡FL ¡ Logic ¡ D ¡ D ¡ C ¡ D ¡ C ¡ D ¡ C ¡ D ¡ C ¡ D ¡ C ¡ C ¡ C ¡ C ¡ C ¡ C ¡ D ¡ D ¡

  26. Desynchronized ¡Models ¡ • DPM5-­‑1: ¡5(10) ¡stages, ¡1 ¡controller ¡ • DPM5-­‑2: ¡5(10) ¡stages, ¡2 ¡controllers ¡ • DPM5-­‑5: ¡5(10) ¡stages, ¡5 ¡controllers ¡ • DPM6-­‑6: ¡6(12) ¡stages, ¡6 ¡controllers ¡ • DPM7-­‑7: ¡7(14) ¡stages, ¡7 ¡controllers ¡ • DPM-­‑B1-­‑5-­‑2: ¡Buggy ¡DPM5-­‑2 ¡(datapath ¡bug) ¡ • DPM-­‑B2-­‑5-­‑2: ¡Buggy ¡DPM5-­‑2 ¡(controller ¡bug) ¡

  27. WEB ¡Refinement ¡ ⟨ ∀ w ∈ IMPL ¡:: ¡ s = r ( w ) ¡ ∧ ¡ u =SStep( s ) ¡ ∧ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡v ¡= ¡IStep( w ) ¡ ∧ ¡ ¡ u ¡≠ ¡ r ( v ) ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡→ ¡ ¡ ¡ s ¡= ¡ r ( v ) ¡ ∧ ¡ ¡ rank ( v ) ¡< ¡ rank ( w ) ⟩ ¡ ¡ • IMPL: ¡ImplementaGon ¡States ¡ • IStep: ¡ImplementaGon ¡Step ¡ • SSetp: ¡SpecificaGon ¡Step ¡ • r : ¡Refinement ¡Map ¡ • CompleGon ¡funcGons ¡to ¡construct ¡refinement ¡map ¡ ¡

  28. WEB ¡Refinement ¡ ⟨ ∀ w ∈ IMPL ¡:: ¡ s = r ( w ) ¡ ∧ ¡ u =SStep( s ) ¡ ∧ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡v ¡= ¡IStep( w ) ¡ ∧ ¡ ¡ u ¡≠ ¡ r ( v ) ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡→ ¡ ¡ ¡ s ¡= ¡ r ( v ) ¡ ∧ ¡ ¡ rank ( v ) ¡< ¡ rank ( w ) ⟩ ¡ ¡ • IMPL: ¡ImplementaGon ¡States ¡ • IStep: ¡ImplementaGon ¡Step ¡ • SSetp: ¡SpecificaGon ¡Step ¡ • r : ¡Refinement ¡Map ¡ • CompleGon ¡funcGons ¡to ¡construct ¡refinement ¡map ¡ ¡

Recommend


More recommend