Desynchroniza-on: ¡ ¡ Design ¡For ¡Verifica-on ¡
¡ ¡
Sudarshan ¡K. ¡Srinivasan ¡and ¡Raj ¡S. ¡Ka0 ¡
North ¡Dakota ¡State ¡University ¡ ¡ FMCAD ¡2011 ¡ ¡ ¡
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
Sudarshan ¡K. ¡Srinivasan ¡and ¡Raj ¡S. ¡Ka0 ¡
North ¡Dakota ¡State ¡University ¡ ¡ FMCAD ¡2011 ¡ ¡ ¡
synchronous ¡circuits ¡
– 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 ¡
– Ivan ¡Sutherland ¡(Communica)ons ¡of ¡the ¡ACM ¡ 1989) ¡
– Furber ¡and ¡Day ¡(IEEE ¡TVLSI ¡1996) ¡
– Cortadella ¡et ¡al. ¡(IEEE ¡TCAD ¡2006) ¡ ¡
PC ¡ Logic ¡ IM ¡ ¡Decode ¡ RF ¡ ¡FL ¡ DM ¡ CLK ¡
PC ¡ Logic ¡ IM ¡ ¡Decode ¡ RF ¡ ¡FL ¡ DM ¡
PC ¡ Logic ¡ IM ¡ ¡Decode ¡ RF ¡ ¡FL ¡ DM ¡
PC ¡ Logic ¡ IM ¡ ¡Decode ¡ RF ¡ ¡FL ¡ DM ¡
C ¡ C ¡ D ¡ PC ¡ Logic ¡ D ¡ IM ¡ D ¡ ¡Decode ¡ RF ¡ ¡FL ¡ C ¡ D ¡ C ¡ C ¡ D ¡ DM ¡ C ¡ D ¡ D ¡ D ¡
F1 ¡
B2 ¡
Rob1 ¡ Rof1 ¡ Rob2 ¡ Af1 ¡ Af2 ¡ Ab2 ¡ Af1 ¡ C ¡ C ¡ D ¡
CombinaGonal ¡ ¡ Logic ¡
Rib2 ¡ Aof1 ¡ Ab2 ¡
F1 ¡
B2 ¡
Rob1 ¡ Rof1 ¡ Rob2 ¡ Af1 ¡ Af2 ¡ Ab2 ¡ Af1 ¡ C ¡ C ¡ D ¡
CombinaGonal ¡ ¡ Logic ¡
Rib2 ¡ Aof1 ¡ Ab2 ¡
F1 ¡
B2 ¡
Rob1 ¡ Rof1 ¡ Rob2 ¡ Af1 ¡ Af2 ¡ Ab2 ¡ Af1 ¡ C ¡ C ¡ D ¡
CombinaGonal ¡ ¡ Logic ¡
Rib2 ¡ Aof1 ¡ Ab2 ¡
F1 ¡
B2 ¡
Rob1 ¡ Rof1 ¡ Rob2 ¡ Af1 ¡ Af2 ¡ Ab2 ¡ Af1 ¡ C ¡ C ¡ D ¡
CombinaGonal ¡ ¡ Logic ¡
Rib2 ¡ Aof1 ¡ Ab2 ¡
F1 ¡
B2 ¡
Rob1 ¡ Rof1 ¡ Rob2 ¡ Af1 ¡ Af2 ¡ Ab2 ¡ Af1 ¡ C ¡ C ¡ D ¡
CombinaGonal ¡ ¡ Logic ¡
Rib2 ¡ Aof1 ¡ Ab2 ¡
(WEBs) ¡Refinement ¡
– PanagioGs ¡(Pete) ¡Manolios: ¡Correctness ¡of ¡ Pipelined ¡Machines ¡(FMCAD’00) ¡
¡
¡
– 5 ¡Stages ¡(5 ¡pipeline ¡registers) ¡ – D ¡Flip ¡Flops ¡ – No. ¡Of ¡Pipeline ¡Controller ¡States ¡= ¡16 ¡ – Stages ¡synchronized ¡
– 5 ¡Stages: ¡10 ¡pipeline ¡latches ¡ – 2 ¡D ¡latches ¡for ¡every ¡D ¡Flip ¡Flop ¡ ¡ – Stages ¡not ¡synchronized ¡ – No. ¡of ¡States ¡of ¡DesynchronizaGon ¡Controller: ¡> ¡220 ¡
PC ¡ Logic ¡ IM ¡ ¡Decode ¡ RF ¡ ¡FL ¡ DM ¡ CLK ¡ PC ¡ Logic ¡ IM ¡ ¡Decode ¡ RF ¡ ¡FL ¡ DM ¡
C ¡ C ¡ D ¡ PC ¡ Logic ¡ D ¡ IM ¡ D ¡ ¡Decode ¡ RF ¡ ¡FL ¡ C ¡ D ¡ C ¡ C ¡ D ¡ DM ¡ C ¡ D ¡ D ¡ D ¡
machine ¡
– To ¡eliminate ¡spurious ¡counterexamples ¡ – Symbolic ¡simulaGon ¡
– High-‑level ¡Invariants ¡
¡
C C Rib ¡ Rob ¡ Rof ¡ Ab ¡ Aof ¡ Af ¡ Ri1 ¡ Rim ¡ Ao1 ¡ Aon ¡ Ab ¡
C C Rib ¡ Rob ¡ Rof ¡ Ab ¡ Aof ¡ Af ¡ Ri1 ¡ Rim ¡ Ao1 ¡ Aon ¡ Ab ¡
C C Rib ¡ Rob ¡ Rof ¡ Ab ¡ Aof ¡ Af ¡ Ri1 ¡ Rim ¡ Ao1 ¡ Aon ¡ Ab ¡
¡
¡
¡ ¡
C C Rib ¡ Rob ¡ Rof ¡ Ab ¡ Aof ¡ Af ¡ Ri1 ¡ Rim ¡ Ao1 ¡ Aon ¡ Ab ¡
¡
¡
¡ ¡
C C Rib ¡ Rob ¡ Rof ¡ Ab ¡ Aof ¡ Af ¡ Ri1 ¡ Rim ¡ Ao1 ¡ Aon ¡ Ab ¡
P8 ¡forms ¡an ¡inducGve ¡invariant ¡
¡
¡
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 ¡
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 ¡
¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡v ¡= ¡IStep(w) ¡∧ ¡ ¡u ¡≠ ¡r(v) ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡→ ¡ ¡ ¡s ¡= ¡r(v) ¡∧ ¡ ¡rank(v) ¡< ¡rank(w)⟩ ¡
¡
¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡v ¡= ¡IStep(w) ¡∧ ¡ ¡u ¡≠ ¡r(v) ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡→ ¡ ¡ ¡s ¡= ¡r(v) ¡∧ ¡ ¡rank(v) ¡< ¡rank(w)⟩ ¡
¡
procedure ¡(version ¡1.0.10) ¡
Desynchronized ¡ Model ¡
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 ¡
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 ¡
improve ¡verifiability ¡
delay ¡in ¡pipeline ¡throughput ¡
and ¡synchronous ¡parent ¡
Sudarshan ¡K. ¡Srinivasan ¡and ¡Raj ¡S. ¡Ka0 ¡
North ¡Dakota ¡State ¡University ¡ ¡ FMCAD ¡2011 ¡ ¡ ¡