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

desynchroniza on
SMART_READER_LITE
LIVE PREVIEW

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


slide-1
SLIDE 1

Desynchroniza-on: ¡ ¡ Design ¡For ¡Verifica-on ¡

¡ ¡

Sudarshan ¡K. ¡Srinivasan ¡and ¡Raj ¡S. ¡Ka0 ¡

North ¡Dakota ¡State ¡University ¡ ¡ FMCAD ¡2011 ¡ ¡ ¡

slide-2
SLIDE 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 ¡

slide-3
SLIDE 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) ¡ ¡

slide-4
SLIDE 4

PC ¡ Logic ¡ IM ¡ ¡Decode ¡ RF ¡ ¡FL ¡ DM ¡ CLK ¡

Desynchroniza-on ¡

slide-5
SLIDE 5

PC ¡ Logic ¡ IM ¡ ¡Decode ¡ RF ¡ ¡FL ¡ DM ¡

Desynchroniza-on ¡

slide-6
SLIDE 6

PC ¡ Logic ¡ IM ¡ ¡Decode ¡ RF ¡ ¡FL ¡ DM ¡

Desynchroniza-on ¡

slide-7
SLIDE 7

Desynchroniza-on ¡

PC ¡ Logic ¡ IM ¡ ¡Decode ¡ RF ¡ ¡FL ¡ DM ¡

slide-8
SLIDE 8

C ¡ C ¡ D ¡ PC ¡ Logic ¡ D ¡ IM ¡ D ¡ ¡Decode ¡ RF ¡ ¡FL ¡ C ¡ D ¡ C ¡ C ¡ D ¡ DM ¡ C ¡ D ¡ D ¡ D ¡

Desynchroniza-on ¡

slide-9
SLIDE 9

Desynchroniza-on ¡Protocol ¡

F1 ¡

¡

B2 ¡

¡

Rob1 ¡ Rof1 ¡ Rob2 ¡ Af1 ¡ Af2 ¡ Ab2 ¡ Af1 ¡ C ¡ C ¡ D ¡

CombinaGonal ¡ ¡ Logic ¡

Rib2 ¡ Aof1 ¡ Ab2 ¡

slide-10
SLIDE 10

Desynchroniza-on ¡Protocol ¡

F1 ¡

¡

B2 ¡

¡

Rob1 ¡ Rof1 ¡ Rob2 ¡ Af1 ¡ Af2 ¡ Ab2 ¡ Af1 ¡ C ¡ C ¡ D ¡

CombinaGonal ¡ ¡ Logic ¡

Rib2 ¡ Aof1 ¡ Ab2 ¡

τ2 ¡ τ1 ¡

slide-11
SLIDE 11

Desynchroniza-on ¡Protocol ¡

F1 ¡

¡

B2 ¡

¡

Rob1 ¡ Rof1 ¡ Rob2 ¡ Af1 ¡ Af2 ¡ Ab2 ¡ Af1 ¡ C ¡ C ¡ D ¡

CombinaGonal ¡ ¡ Logic ¡

Rib2 ¡ Aof1 ¡ Ab2 ¡

τ2 ¡

slide-12
SLIDE 12

Desynchroniza-on ¡Protocol ¡

F1 ¡

¡

B2 ¡

¡

Rob1 ¡ Rof1 ¡ Rob2 ¡ Af1 ¡ Af2 ¡ Ab2 ¡ Af1 ¡ C ¡ C ¡ D ¡

CombinaGonal ¡ ¡ Logic ¡

Rib2 ¡ Aof1 ¡ Ab2 ¡

τ2 ¡ τ2 ¡

slide-13
SLIDE 13

Desynchroniza-on ¡Protocol ¡

F1 ¡

¡

B2 ¡

¡

Rob1 ¡ Rof1 ¡ Rob2 ¡ Af1 ¡ Af2 ¡ Ab2 ¡ Af1 ¡ C ¡ C ¡ D ¡

CombinaGonal ¡ ¡ Logic ¡

Rib2 ¡ Aof1 ¡ Ab2 ¡

τ2 ¡

slide-14
SLIDE 14

Equivalence ¡Verifica-on ¡

  • Well ¡Founded ¡Equivalence ¡BisimulaGons ¡

(WEBs) ¡Refinement ¡

– PanagioGs ¡(Pete) ¡Manolios: ¡Correctness ¡of ¡ Pipelined ¡Machines ¡(FMCAD’00) ¡

  • Refinement ¡Map ¡

¡

slide-15
SLIDE 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: ¡> ¡220 ¡

slide-16
SLIDE 16

PC ¡ Logic ¡ IM ¡ ¡Decode ¡ RF ¡ ¡FL ¡ DM ¡ CLK ¡ PC ¡ Logic ¡ IM ¡ ¡Decode ¡ RF ¡ ¡FL ¡ DM ¡

≅ ¡

slide-17
SLIDE 17

C ¡ C ¡ D ¡ PC ¡ Logic ¡ D ¡ IM ¡ D ¡ ¡Decode ¡ RF ¡ ¡FL ¡ C ¡ D ¡ C ¡ C ¡ D ¡ DM ¡ C ¡ D ¡ D ¡ D ¡

Desynchroniza-on ¡

slide-18
SLIDE 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 ¡

¡

slide-19
SLIDE 19

DFVD ¡Controller ¡

B ¡ F

C C Rib ¡ Rob ¡ Rof ¡ Ab ¡ Aof ¡ Af ¡ Ri1 ¡ Rim ¡ Ao1 ¡ Aon ¡ Ab ¡

slide-20
SLIDE 20

DFVD ¡Controller ¡

B ¡ F

C C Rib ¡ Rob ¡ Rof ¡ Ab ¡ Aof ¡ Af ¡ Ri1 ¡ Rim ¡ Ao1 ¡ Aon ¡ Ab ¡

slide-21
SLIDE 21

DFVD ¡Controller ¡

B ¡ F

C C Rib ¡ Rob ¡ Rof ¡ Ab ¡ Aof ¡ Af ¡ Ri1 ¡ Rim ¡ Ao1 ¡ Aon ¡ Ab ¡

  • P1: ¡ ¡Ab∨ ¡Af ¡

¡

¡

¡ ¡

slide-22
SLIDE 22

DFVD ¡Controller ¡

B ¡ F

C C Rib ¡ Rob ¡ Rof ¡ Ab ¡ Aof ¡ Af ¡ Ri1 ¡ Rim ¡ Ao1 ¡ Aon ¡ Ab ¡

  • P1: ¡ ¡Ab∨ ¡Af ¡
  • P2: ¡[Ab∧Af∧Rof]→(¬Rob) ¡
  • P3: ¡[Ab ¡∧Af ¡∧(¬Rof ¡)] ¡→ ¡(¬Aof ¡) ¡
  • P4: ¡[(¬Ab)∧Af ¡∧Rof ¡] ¡→ ¡(¬Aof ¡) ¡
  • P5: ¡[Ab∧(¬Af)]→Aof ¡
  • P6: ¡[Ab ¡∧(¬Af ¡)∧(¬Rof ¡)] ¡→ ¡Rib ¡ ¡
  • P7: ¡[(¬Ab)∧Af ¡∧(¬Rof ¡)] ¡→ ¡(¬Rib) ¡ ¡
  • P8: ¡[Ab∧Af∧Rof]→Rib ¡

¡

¡

¡ ¡

slide-23
SLIDE 23

DFVD ¡Controller ¡

B ¡ F

C C Rib ¡ Rob ¡ Rof ¡ Ab ¡ Aof ¡ Af ¡ Ri1 ¡ Rim ¡ Ao1 ¡ Aon ¡ Ab ¡

  • P1: ¡ ¡Ab∨ ¡Af ¡
  • P2: ¡[Ab∧Af∧Rof]→(¬Rob) ¡
  • P3: ¡[Ab ¡∧Af ¡∧(¬Rof ¡)] ¡→ ¡(¬Aof ¡) ¡
  • P4: ¡[(¬Ab)∧Af ¡∧Rof ¡] ¡→ ¡(¬Aof ¡) ¡
  • P5: ¡[Ab∧(¬Af)]→Aof ¡
  • P6: ¡[Ab ¡∧(¬Af ¡)∧(¬Rof ¡)] ¡→ ¡Rib ¡ ¡
  • P7: ¡[(¬Ab)∧Af ¡∧(¬Rof ¡)] ¡→ ¡(¬Rib) ¡ ¡
  • P8: ¡[Ab∧Af∧Rof]→Rib ¡
  • The ¡conjuncGon ¡of ¡properGes ¡P1–

P8 ¡forms ¡an ¡inducGve ¡invariant ¡

¡

¡

slide-24
SLIDE 24

DFVD ¡Controller ¡

F1 ¡

¡

B2 ¡

¡

Rob1 ¡ Rof1 ¡ Rob2 ¡ Af1 ¡ Af2 ¡ Ab2 ¡ Af1 ¡ C ¡ C ¡ D ¡

CombinaGonal ¡ ¡ Logic ¡ P9: ¡ ¡ ¡[(¬Af1)∧(¬Ab2)] ¡→ ¡(¬Rib2) ¡ ¡ P10: ¡[(¬Af1)∧Rof1] ¡→ ¡Rib2 ¡ ¡ P11: ¡[Af1 ¡∧(¬Ab2)∧(¬Rof1)⟩] ¡→ ¡(¬Rib2) ¡ ¡ P12: ¡[Af1 ¡∧Ab2 ¡∧Rof1] ¡→ ¡Rib2 ¡ ¡ P13: ¡[Af1 ¡∧Ab2 ¡∧(¬Rof1)] ¡→ ¡Aof1 ¡ ¡ P14: ¡[Af1 ¡∧(¬Ab2)∧Rof1] ¡→ ¡(¬Aof1) ¡ ¡ P15: ¡[(¬Af1)∧Ab2] ¡→ ¡Aof1 ¡

Rib2 ¡ Aof1 ¡ Ab2 ¡

slide-25
SLIDE 25

C ¡ C ¡ D ¡ PC ¡ Logic ¡ D ¡ IM ¡ C ¡ C ¡ D ¡ ¡Decode ¡ RF ¡ ¡FL ¡ C ¡ C ¡ D ¡ C ¡ C ¡ D ¡ DM ¡ C ¡ C ¡ D ¡ D ¡ D ¡

Desynchronized ¡5-­‑Stage ¡Pipeline ¡

slide-26
SLIDE 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) ¡
slide-27
SLIDE 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 ¡

¡

slide-28
SLIDE 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 ¡

¡

slide-29
SLIDE 29

Verifica-on ¡

  • Models ¡and ¡properGes ¡described ¡using ¡ACL2 ¡
  • Translated ¡to ¡SMT ¡(QF_AUFLIA) ¡
  • VerificaGon ¡performed ¡using ¡Yices ¡decision ¡

procedure ¡(version ¡1.0.10) ¡

slide-30
SLIDE 30

Verifica-on ¡Results ¡

Desynchronized ¡ Model ¡

  • No. ¡of ¡lines ¡of ¡ ¡

ACL2 ¡Code ¡ Verifica-on ¡Time ¡ (Seconds) ¡ DPM5-­‑1 ¡ 687 ¡ 1.19 ¡ DPM5-­‑2 ¡ 708 ¡ 1.98 ¡ DPM5-­‑5 ¡ 783 ¡ 4.37 ¡ DPM6-­‑6 ¡ 866 ¡ 53.21 ¡ DPM7-­‑7 ¡ 949 ¡ 2417.74 ¡ DPM-­‑B1-­‑5-­‑2 ¡ ¡ 708 ¡ 1.91 ¡ DPM-­‑B2-­‑5-­‑2 ¡ 708 ¡ 1.74 ¡

slide-31
SLIDE 31

Verifica-on ¡Results ¡

Desynchronized ¡ Model ¡ SMT ¡Sta-s-cs ¡

Conflicts ¡ Decisions ¡ Bool ¡Vars ¡ Memory ¡ Used ¡(MB) ¡

DPM5-­‑1 ¡ 6,292 ¡ 1,202 ¡ 2,723 ¡ 9.41 ¡ DPM5-­‑2 ¡ 5,558 ¡ ¡ 1,548 ¡ ¡ 2,798 ¡ ¡ 11.56 ¡ ¡ DPM5-­‑5 ¡ 70,662 ¡ ¡ 16,950 ¡ ¡ 3,456 ¡ ¡ 13.09 ¡ ¡ DPM6-­‑6 ¡ 834,187 ¡ 219,160 ¡ ¡ 4,542 ¡ ¡ 17.97 ¡ ¡ DPM7-­‑7 ¡ 25,231,948 ¡ ¡ 7,304,751 ¡ ¡ 5,940 ¡ ¡ 32.49 ¡ ¡ DPM-­‑B1-­‑5-­‑2 ¡ ¡ 5,665 ¡ ¡ 1,058 ¡ ¡ 2,940 ¡ 11.62 ¡ ¡ DPM-­‑B2-­‑5-­‑2 ¡ 358 ¡ 49 ¡ 1,529 ¡ 11.01 ¡

slide-32
SLIDE 32

Conclusions ¡

  • Design ¡for ¡verificaGon: ¡Compromise ¡to ¡

improve ¡verifiability ¡

  • Performance ¡penalty: ¡4 ¡muller-­‑C ¡element ¡

delay ¡in ¡pipeline ¡throughput ¡

  • VerificaGon ¡Scalability: ¡ExponenGal ¡in ¡number ¡
  • f ¡stages ¡
slide-33
SLIDE 33

Future ¡Work ¡

  • Reduce ¡performance ¡penalty ¡
  • Equivalence ¡Checking: ¡Desynchronized ¡circuit ¡

and ¡synchronous ¡parent ¡

  • Explore ¡design ¡for ¡verificaGon ¡strategies ¡for ¡
  • ther ¡asynchronous ¡design ¡paradigms ¡
slide-34
SLIDE 34

Desynchroniza-on: ¡ ¡ Design ¡For ¡Verifica-on ¡

¡ ¡

Sudarshan ¡K. ¡Srinivasan ¡and ¡Raj ¡S. ¡Ka0 ¡

North ¡Dakota ¡State ¡University ¡ ¡ FMCAD ¡2011 ¡ ¡ ¡