Desynchroniza-on: ¡ ¡ Design ¡For ¡Verifica-on ¡ ¡ ¡ Sudarshan ¡K. ¡Srinivasan ¡and ¡Raj ¡S. ¡Ka0 ¡ North ¡Dakota ¡State ¡University ¡ ¡ FMCAD ¡2011 ¡ ¡ ¡
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 ¡
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 ) ¡ ¡
Desynchroniza-on ¡ DM ¡ RF ¡ PC ¡ IM ¡ ¡Decode ¡ ¡FL ¡ Logic ¡ CLK ¡
Desynchroniza-on ¡ DM ¡ RF ¡ PC ¡ IM ¡ ¡Decode ¡ ¡FL ¡ Logic ¡
Desynchroniza-on ¡ DM ¡ RF ¡ PC ¡ IM ¡ ¡Decode ¡ ¡FL ¡ Logic ¡
Desynchroniza-on ¡ DM ¡ RF ¡ PC ¡ IM ¡ ¡Decode ¡ ¡FL ¡ Logic ¡
Desynchroniza-on ¡ DM ¡ RF ¡ PC ¡ IM ¡ ¡Decode ¡ ¡FL ¡ Logic ¡ D ¡ D ¡ C ¡ D ¡ D ¡ C ¡ D ¡ C ¡ D ¡ C ¡ C ¡ C ¡ D ¡ D ¡
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 ¡ ¡
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 ¡ ¡
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 ¡ ¡
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 ¡ ¡
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 ¡ ¡
Equivalence ¡Verifica-on ¡ • Well ¡Founded ¡Equivalence ¡BisimulaGons ¡ (WEBs) ¡Refinement ¡ – PanagioGs ¡(Pete) ¡Manolios: ¡Correctness ¡of ¡ Pipelined ¡Machines ¡(FMCAD’00) ¡ • Refinement ¡Map ¡ ¡
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 ¡
DM ¡ RF ¡ PC ¡ IM ¡ ¡Decode ¡ ¡FL ¡ Logic ¡ CLK ¡ ≅ ¡ DM ¡ RF ¡ PC ¡ IM ¡ ¡Decode ¡ ¡FL ¡ Logic ¡
Desynchroniza-on ¡ DM ¡ RF ¡ PC ¡ IM ¡ ¡Decode ¡ ¡FL ¡ Logic ¡ D ¡ D ¡ C ¡ D ¡ D ¡ C ¡ D ¡ C ¡ D ¡ C ¡ C ¡ C ¡ D ¡ D ¡
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 ¡ ¡
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 ¡
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 ¡
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 ¡
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 ¡ ¡ ¡ ¡
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 ¡ ¡ ¡
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 ¡ ¡
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 ¡
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) ¡
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 ¡ ¡
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