Presentation is loading. Please wait.

Presentation is loading. Please wait.

Darmstadt University of Technology- 1 - Sequential Verification by Symbolic Simulation Darmstadt University of Technology Dept. of Electrical and Computer.

Similar presentations


Presentation on theme: "Darmstadt University of Technology- 1 - Sequential Verification by Symbolic Simulation Darmstadt University of Technology Dept. of Electrical and Computer."— Presentation transcript:

1 Darmstadt University of Technology- 1 - Sequential Verification by Symbolic Simulation Darmstadt University of Technology Dept. of Electrical and Computer Engineering Germany Gerd Ritter

2 Darmstadt University of Technology- 2 - (if 78 rf[adrB] b, x mem[adr2]);twert ( mem[adr2]); (if adrA adrBertetioerptkerotk8iperot then rf[adrA] a;erteroterj[o ermjgi7ethbe erweir we rwe reri we ewroiw weioruwerijw oewri efwerwerwethen rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 mem[adr1] val); x mem[adr2]); l); then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 mem[adr1] val); x mem[adr2]); mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 (if adr1=adr2etyer54 78768 7776 8676 i68i 778 then z val+rf[adrR werwerweroewihgoerijhgbe mem[adr2]);twersfawetwerwerweroewihgoerijhgbe (if adrA adrBertetioerptkerotk8iperot then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr1] val); (if adr1=adr2etyer54 78768 7776 8676 i68i 778 then z val+rf[adrR]7 878 i78 i87 i else z x+rf[adrR]);7i 7878 78 then z val+rf[adrR]7 878 i78 i87 i else z x+rf[adrR]);7i 7878 (if adr1=adr2 78 mem[adr1] vawerwesr waer wear werwerwerawerawerwarwearl); then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 mem[adr1] val); x mem[adr2]); l);werwerweoiruwepoir,pweiurcmpouopeiwurw rwerw erweir we rwe reri we ewroiw weioruwerijw oewri efwerwerwethen rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 mem[adr1] val); x mem[adr2]); l); then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 mem[adr1] val); x mem[wwerwerwerwaerwdr2]); wrwerwerl);erwr werwer werwe rwet5erioustgnfodsegkjerogtkjerogtkjerogtkmeorkegmrkhmge then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 mem[adr1] val); x mem[adr2]); (if adrA adrB then rf[adrA] a; mem[adr1] val); then z val+rf[adrR] else z x+rf[adrR]); mem[adr1] val); (if adr1=adr2etyer54 78768 7776 8676 i68i 778 then z val+rf[adrR ( mem[adr2]);twerweroewihg (if adrA adrBertetioerptkerotk8iperot then rf[adrA] a;erteroterj[o ermjgi7ethbe (if adrA adrBertetioerptkerotk8iperot then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr1] val); (if adr1=adr2etyer54 78768 7776 8676 i68i 778 ewrwerawer ewvtroiejwcro[iwehjnr[occwn3r[oweict weticwopjer tijeroginhreisgvb sdrpgvjnsdprigjzseriogjerogh;serozighzr;ongvosrzegmnseirog regoerijngerzos[goxdrijzdghnb;zdriozdjoger geroigtjer[ognifd;lindzgher[tjiser eartoearjiopgb;zjndfl/gmnio;dlzkhrje;oyhinser[ohinmstophtrfsh srtyoeaijyeoritisoert tijeroginhreisgvb sdrpgvjnsdprigjzseriogjerogh;serozighzr;ongvosrzegmnseirog regoerijngerzos[goxdrijzdghnb;zdriozdjoger geroigtjer[ognifd;lindzgher[tjiser eartoearjiopgb;zjndfl/gmnio;dlzkhrje;oyhinser[ohinmstophtrfsh srtyoeaijyeoritisoert (if 78 r adr1=adr2etyer54 78768 7776 8676 i68i 778 then z val+rf[adrR werwerweroewihgoerijhgbe mem[adr2]);twersfawetwerwerweroewihgoerijhgbe (if adrA adrBertetioerptkerotk8iperot then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr1] val); (if adr1=adr2etyer54 78768 7776 8676 f[adrB] b, x mem[adr2]);twert ( mem[adr2]); (if adrA adrBertetioerptkerotk8iperot then rf[adrA] a;erteroterj[o ermjgi7ethbe erweir we rwe reri we ewroiw weioruwerijw oewri efwerwerwethen rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 mem[adr1] val); x mem[adr2]); l); then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 mem[adr1] val); x mem[adr2]); mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 (if i68i 778 then z val+rf[adrR]7 878 i78 i87 i else z x+rf[adrR]);7i 7878 78 then z val+rf[adrR]7 878 i78 i87 i else z x+rf[adrR]);7i 7878 (if adr1=adr2 adr1=adr2etyer54 78768 7776 8676 i68i 778 then z val+rf[adrR werwerweroewihgoerijhgbe mem[adr2]);twersfawetwerwerweroewihgoerijhgbe (if adrA adrBertetioerptkerotk8iperot then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr1] val); (if adr1=adr2etyer54 78768 7776 8676 ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 mem[adr1] val); x mem[adr2]); l); then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 mem[adr1] val); x mem[adr2]); l); then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 mem[adr1] val); x mem[wwerwerwerwaerwdr2]); wrwerwerl);erwr werwer werwe rwet5erioustgnfodsegkjerogtkjerogtkjerogtkmeorkegmrkhmge then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 mem[adr1] val); x mem[adr2]); (if adrA adrB then rf[adrA] a; mem[adr1] val); then z val+rf[adrR] else z x+rf[adrR]); mem[adr1] val); (if adr1=adr2etyer54 78768 7776 8676 i68i 778 then z val+rf[adrR ( mem[adr2]);twerweroewihg [adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 mem[adr1] val); x mem[adr2]); l);werwerweoiruwepoir,pweiurcmpouopeiwurw rwerw erweir we rwe reri we ewroiw weioruwerijw oewri efwerwerwethen rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 mem[adr1] val); x mem[adr2]); l); then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 mem[adr1] val); x mem[adr2]); l); then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 mem[adr1] val); (if adrA adrBertetioerptkerotk8iperot (if 78 rf[adrB] b, x mem[adr2]);twert ( mem[adr2]); (if adrA adrBertetioerptkerotk8iperot then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 (if adr1=adr2etyer54 78768 7776 8676 i68i 778 then z val+rf[adrR werwerweroewihgoerijhgbe mem[adr2]);twersfawetwerwerweroewihgoerijhgbe (if adrA adrBertetioerptkerotk8iperot then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr1] val); (if adr1=adr2etyer54 78768 7776 8676 i68i 778 then z val+rf[adrR]7 878 i78 i87 i else z x+rf[adrR]);7i 7878 78 then z val+rf[adrR]7 878 i78 i87 i else z x+rf[adrR]);7i 7878 (if adr1=adr2 78 mem[adr1] vawerwesr waer wear werwerwerawerawerwarwearl); then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 mem[adr1] val); x mem[adr2]); l);werwerweoiruwepoir,pweiurcmpouopeiwurw rwerw erweir we rwe reri we ewroiw weioruwerijw oewri efwerwerwethen rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 mem[adr1] val); x mem[adr2]); l); then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 mem[adr1] val); x mem[adr2]); l); then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 mem[adr1] val); x mem[wwerwerwerwaerwdr2]); wrwerwerl);erwr werwer werwe rwet5erioustgnfodsegkjerogtkjerogtkjerogtkmeorkegmrkhmge then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 mem[adr1] val); x mem[adr2]); (if adrA adrB then rf[adrA] a; mem[adr1] val); then z val+rf[adrR] else z x+rf[adrR]); mem[adr1] val); (if adr1=adr2etyer54 78768 7776 8676 i68i 778 then z val+rf[adrR ( mem[adr2]);twerweroewihg (if adrA adrBertetioerptkerotk8iperot then rf[adrA] a;erteroterj[o ermjgi7ethbe (if adrA adrBertetioerptkerotk8iperot then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr1] val); (if adr1=adr2etyer54 78768 7776 8676 i68i 778 ewrwerawer ewvtroiejwcro[iwehjnr[occwn3r[oweict weticwopjer tijeroginhreisgvb sdrpgvjnsdprigjzseriogjerogh;serozighzr;ongvosrzegmnseirog regoerijngerzos[goxdrijzdghnb;zdriozdjoger geroigtjer[ognifd;lindzgher[tjiser eartoearjiopgb;zjndfl/gmnio;dlzkhrje;oyhinser[ohinmstophtrfsh srtyoeaijyeoritisoert (if 78 rf[adrB] b, if adrA adrBertetioerptkerotk8iperot then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 (if adr1=adr2etyer54 78768 7776 8676 i68i 778 then z val+rf[adrR werwerweroewihgoerijhgbe mem[adr2]);twersfawetwerwerweroewihgoerijhgbe (if adrA adrBertetioerptkerotk8iperot x mem[adr2]);twert ( mem[adr2]); (then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr1] val); (if adr1=adr2etyer54 78768 7776 8676 i68i 778 the adr1] vawerwesr waer wear werwerwerawerawerwarwearl); then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 mem[adr1] val); x mem[adr2]); l);werwerweoiruwepoir,pweiurcmpouopeiwurw rwerw erweir we rwe reri we ewroiw weioruwerijw oewri efwerwerwethen rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 mem[adr1] val); x mem[adr2]); l); then rf[adrA] a;erteroterj[o ermjgi7ethbe ni87 i else z x+rf[adrR]);7i 7878 78 then z val+rf[adrR]7 878 i78 i87 i else z x+rf[adrR]);7i 7878 (if adr1=adr2 78 mem[ mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 mem[adr1] val); x mem[adr2]); l); then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 mem[adr1] val); x mem[wwerwerwerwaerwdr2]); wrwerwerl);erwr werwer (if adr1=adr2etyer54 78768 7776 8676 i68i 778 then z val+rf[adrR ( mem[adr2]);twerweroewihg (if adrA adrBertetioerptkerotk8iperot then rf[adrA] a;erteroterj[o ermjgi7ethbe (if adrA adrBertetioerptkerotk8iperot then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr1] val); (if adr1=adr2etyer54 78768 7776 8676 i68i 778 ewrwerawer ewvtroiejwcro[iwehjnr[occwn3r[oweict weticwopjer tijeroginhreisgvb sdrpgvjnsdprigjzseriogjerogh;serozighzr;ongvosrzegmnseirog regoerijngerzos[goxdrijzdghnb;zdriozdjoger werwe rwet5erioustgnfodsegkjerogtkjerogtkjerogtkmeorkegmrkhmge then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 mem[adr1] val); x mem[adr2]); (if adrA adrB then rf[adrA] a; mem[adr1] val); then z val+rf[adrR] else z x+rf[adrR]); mem[adr1] val); geroigtjer[ognifd;lindzgher[tjiser earjiopgb;zjndfl/gmnio;dlzkhrje;oyhinser[oh inmstophtrfsh srtyoeaijyeoritisoert x a; if opcode(m) = 101 thenr b x; elser b x; (x a, y b); z opcode(m); if z = 101 thenr x y; else r (x y);

3 Darmstadt University of Technology- 3 - (if 78 rf[adrB] b, x mem[adr2]);twert ( mem[adr2]); (if adrA adrBertetioerptkerotk8iperot then rf[adrA] a;erteroterj[o ermjgi7ethbe erweir we rwe reri we ewroiw weioruwerijw oewri efwerwerwethen rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 mem[adr1] val); x mem[adr2]); l); then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 mem[adr1] val); x mem[adr2]); mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 (if adr1=adr2etyer54 78768 7776 8676 i68i 778 then z val+rf[adrR werwerweroewihgoerijhgbe mem[adr2]);twersfawetwerwerweroewihgoerijhgbe (if adrA adrBertetioerptkerotk8iperot then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr1] val); (if adr1=adr2etyer54 78768 7776 8676 i68i 778 then z val+rf[adrR]7 878 i78 i87 i else z x+rf[adrR]);7i 7878 78 then z val+rf[adrR]7 878 i78 i87 i else z x+rf[adrR]);7i 7878 (if adr1=adr2 78 mem[adr1] vawerwesr waer wear werwerwerawerawerwarwearl); then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 mem[adr1] val); x mem[adr2]); l);werwerweoiruwepoir,pweiurcmpouopeiwurw rwerw erweir we rwe reri we ewroiw weioruwerijw oewri efwerwerwethen rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 mem[adr1] val); x mem[adr2]); l); then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 mem[adr1] val); x mem[wwerwerwerwaerwdr2]); wrwerwerl);erwr werwer werwe rwet5erioustgnfodsegkjerogtkjerogtkjerogtkmeorkegmrkhmge then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 mem[adr1] val); x mem[adr2]); (if adrA adrB then rf[adrA] a; mem[adr1] val); then z val+rf[adrR] else z x+rf[adrR]); mem[adr1] val); (if adr1=adr2etyer54 78768 7776 8676 i68i 778 then z val+rf[adrR ( mem[adr2]);twerweroewihg (if adrA adrBertetioerptkerotk8iperot then rf[adrA] a;erteroterj[o ermjgi7ethbe (if adrA adrBertetioerptkerotk8iperot then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr1] val); (if adr1=adr2etyer54 78768 7776 8676 i68i 778 ewrwerawer ewvtroiejwcro[iwehjnr[occwn3r[oweict weticwopjer tijeroginhreisgvb sdrpgvjnsdprigjzseriogjerogh;serozighzr;ongvosrzegmnseirog regoerijngerzos[goxdrijzdghnb;zdriozdjoger geroigtjer[ognifd;lindzgher[tjiser eartoearjiopgb;zjndfl/gmnio;dlzkhrje;oyhinser[ohinmstophtrfsh srtyoeaijyeoritisoert tijeroginhreisgvb sdrpgvjnsdprigjzseriogjerogh;serozighzr;ongvosrzegmnseirog regoerijngerzos[goxdrijzdghnb;zdriozdjoger geroigtjer[ognifd;lindzgher[tjiser eartoearjiopgb;zjndfl/gmnio;dlzkhrje;oyhinser[ohinmstophtrfsh srtyoeaijyeoritisoert (if 78 r adr1=adr2etyer54 78768 7776 8676 i68i 778 then z val+rf[adrR werwerweroewihgoerijhgbe mem[adr2]);twersfawetwerwerweroewihgoerijhgbe (if adrA adrBertetioerptkerotk8iperot then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr1] val); (if adr1=adr2etyer54 78768 7776 8676 f[adrB] b, x mem[adr2]);twert ( mem[adr2]); (if adrA adrBertetioerptkerotk8iperot then rf[adrA] a;erteroterj[o ermjgi7ethbe erweir we rwe reri we ewroiw weioruwerijw oewri efwerwerwethen rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 mem[adr1] val); x mem[adr2]); l); then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 mem[adr1] val); x mem[adr2]); mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 (if i68i 778 then z val+rf[adrR]7 878 i78 i87 i else z x+rf[adrR]);7i 7878 78 then z val+rf[adrR]7 878 i78 i87 i else z x+rf[adrR]);7i 7878 (if adr1=adr2 adr1=adr2etyer54 78768 7776 8676 i68i 778 then z val+rf[adrR werwerweroewihgoerijhgbe mem[adr2]);twersfawetwerwerweroewihgoerijhgbe (if adrA adrBertetioerptkerotk8iperot then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr1] val); (if adr1=adr2etyer54 78768 7776 8676 ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 mem[adr1] val); x mem[adr2]); l); then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 mem[adr1] val); x mem[adr2]); l); then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 mem[adr1] val); x mem[wwerwerwerwaerwdr2]); wrwerwerl);erwr werwer werwe rwet5erioustgnfodsegkjerogtkjerogtkjerogtkmeorkegmrkhmge then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 mem[adr1] val); x mem[adr2]); (if adrA adrB then rf[adrA] a; mem[adr1] val); then z val+rf[adrR] else z x+rf[adrR]); mem[adr1] val); (if adr1=adr2etyer54 78768 7776 8676 i68i 778 then z val+rf[adrR ( mem[adr2]);twerweroewihg [adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 mem[adr1] val); x mem[adr2]); l);werwerweoiruwepoir,pweiurcmpouopeiwurw rwerw erweir we rwe reri we ewroiw weioruwerijw oewri efwerwerwethen rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 mem[adr1] val); x mem[adr2]); l); then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 mem[adr1] val); x mem[adr2]); l); then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 mem[adr1] val); (if adrA adrBertetioerptkerotk8iperot (if 78 rf[adrB] b, x mem[adr2]);twert ( mem[adr2]); (if adrA adrBertetioerptkerotk8iperot then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 (if adr1=adr2etyer54 78768 7776 8676 i68i 778 then z val+rf[adrR werwerweroewihgoerijhgbe mem[adr2]);twersfawetwerwerweroewihgoerijhgbe (if adrA adrBertetioerptkerotk8iperot then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr1] val); (if adr1=adr2etyer54 78768 7776 8676 i68i 778 then z val+rf[adrR]7 878 i78 i87 i else z x+rf[adrR]);7i 7878 78 then z val+rf[adrR]7 878 i78 i87 i else z x+rf[adrR]);7i 7878 (if adr1=adr2 78 mem[adr1] vawerwesr waer wear werwerwerawerawerwarwearl); then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 mem[adr1] val); x mem[adr2]); l);werwerweoiruwepoir,pweiurcmpouopeiwurw rwerw erweir we rwe reri we ewroiw weioruwerijw oewri efwerwerwethen rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 mem[adr1] val); x mem[adr2]); l); then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 mem[adr1] val); x mem[adr2]); l); then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 mem[adr1] val); x mem[wwerwerwerwaerwdr2]); wrwerwerl);erwr werwer werwe rwet5erioustgnfodsegkjerogtkjerogtkjerogtkmeorkegmrkhmge then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 mem[adr1] val); x mem[adr2]); (if adrA adrB then rf[adrA] a; mem[adr1] val); then z val+rf[adrR] else z x+rf[adrR]); mem[adr1] val); (if adr1=adr2etyer54 78768 7776 8676 i68i 778 then z val+rf[adrR ( mem[adr2]);twerweroewihg (if adrA adrBertetioerptkerotk8iperot then rf[adrA] a;erteroterj[o ermjgi7ethbe (if adrA adrBertetioerptkerotk8iperot then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr1] val); (if adr1=adr2etyer54 78768 7776 8676 i68i 778 ewrwerawer ewvtroiejwcro[iwehjnr[occwn3r[oweict weticwopjer tijeroginhreisgvb sdrpgvjnsdprigjzseriogjerogh;serozighzr;ongvosrzegmnseirog regoerijngerzos[goxdrijzdghnb;zdriozdjoger geroigtjer[ognifd;lindzgher[tjiser eartoearjiopgb;zjndfl/gmnio;dlzkhrje;oyhinser[ohinmstophtrfsh srtyoeaijyeoritisoert (if 78 rf[adrB] b, if adrA adrBertetioerptkerotk8iperot then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 (if adr1=adr2etyer54 78768 7776 8676 i68i 778 then z val+rf[adrR werwerweroewihgoerijhgbe mem[adr2]);twersfawetwerwerweroewihgoerijhgbe (if adrA adrBertetioerptkerotk8iperot x mem[adr2]);twert ( mem[adr2]); (then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr1] val); (if adr1=adr2etyer54 78768 7776 8676 i68i 778 the adr1] vawerwesr waer wear werwerwerawerawerwarwearl); then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 mem[adr1] val); x mem[adr2]); l);werwerweoiruwepoir,pweiurcmpouopeiwurw rwerw erweir we rwe reri we ewroiw weioruwerijw oewri efwerwerwethen rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 mem[adr1] val); x mem[adr2]); l); then rf[adrA] a;erteroterj[o ermjgi7ethbe ni87 i else z x+rf[adrR]);7i 7878 78 then z val+rf[adrR]7 878 i78 i87 i else z x+rf[adrR]);7i 7878 (if adr1=adr2 78 mem[ mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 mem[adr1] val); x mem[adr2]); l); then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 mem[adr1] val); x mem[wwerwerwerwaerwdr2]); wrwerwerl);erwr werwer (if adr1=adr2etyer54 78768 7776 8676 i68i 778 then z val+rf[adrR ( mem[adr2]);twerweroewihg (if adrA adrBertetioerptkerotk8iperot then rf[adrA] a;erteroterj[o ermjgi7ethbe (if adrA adrBertetioerptkerotk8iperot then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr1] val); (if adr1=adr2etyer54 78768 7776 8676 i68i 778 ewrwerawer ewvtroiejwcro[iwehjnr[occwn3r[oweict weticwopjer tijeroginhreisgvb sdrpgvjnsdprigjzseriogjerogh;serozighzr;ongvosrzegmnseirog regoerijngerzos[goxdrijzdghnb;zdriozdjoger werwe rwet5erioustgnfodsegkjerogtkjerogtkjerogtkmeorkegmrkhmge then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 mem[adr1] val); x mem[adr2]); (if adrA adrB then rf[adrA] a; mem[adr1] val); then z val+rf[adrR] else z x+rf[adrR]); mem[adr1] val); geroigtjer[ognifd;lindzgher[tjiser earjiopgb;zjndfl/gmnio;dlzkhrje;oyhinser[oh inmstophtrfsh srtyoeaijyeoritisoert x a; if opcode(m) = 101 thenr b x; elser b x; a r x b en_aen_rf

4 Darmstadt University of Technology- 4 - r r+1; if m = 0 thenr r+1; else r 000; r[2] clk & r[1] & r[0] & r & & clk ctrl m

5 Darmstadt University of Technology- 5 - Verification Scope automatic interpreted sequential Verification no significant user interaction no insight into the verification process automatic

6 Darmstadt University of Technology- 6 - Verification Scope automatic interpreted sequential Verification demonstrating the verification goal requires an interpretation of functions not necessary for some problems where specialized approaches perform better

7 Darmstadt University of Technology- 7 - Verification Scope automatic interpreted sequential Verification not only logic verification several control steps/cycles to demonstrate verification goal è different numbers of steps in specification and implementation

8 Darmstadt University of Technology- 8 - Outline introduction essentials of our symbolic simulation approach example of gate-level verification experimental results application areas & conclusion

9 Darmstadt University of Technology- 9 - techniques denoted symbolic simulation or symbolic evaluation developed since the 1970s the following four essentials è distinguish our symbolic simulation approach è permit sequential verification at different levels of abstraction Essentials

10 Darmstadt University of Technology- 10 - terms are never manipulated, e.g., by canonizing or rewriting them 1. Essential a b = a (b c) b a Suppose = 0c

11 Darmstadt University of Technology- 11 - terms are never manipulated, e.g., by canonizing or rewriting them 1. Essential relationships are notified at equivalence classes instead a c 0 a (b c)b a a (b c) b

12 Darmstadt University of Technology- 12 - ac+e+x[6:15]+y; 2. Essential ac+e+x[6:15]+y+ac+e+x[6:15]+y; Problem:term-size explosion possible if rewriting register with expression assigned to it ac ac+e; bc x[6:15]+y; if ir=000111 then ac ac + bc ; res ac + ac ; else...

13 Darmstadt University of Technology- 13 - ac ac+e; bc x[6:15]+y; if ir=000111 then ac ac + bc ; res ac + ac ; else... 2. Essential ac 1 ac+e; bc 1 x[6:15]+y; if ir=000111 then ac 2 ac 1 + bc 1 ; res 1 ac 2 + ac 2 ; else... Problem:term-size explosion possible if rewriting register with expression assigned to it Solution:several register assignments along a valid path are explicitly distinguished

14 Darmstadt University of Technology- 14 - ac ac+e; bc x[6:15]+y; if ir=000111 then ac ac + bc ; res ac + ac ; else... 2. Essential ac 1 ac+e ac 1 ac+e; bc 1 x[6:15]+y; if ir=000111 then ac 2 ac 1 + bc 1 ; res 1 ac 2 + ac 2 ; else... ac ac 2 ac 1 +bc 1 Problem:term-size explosion possible if rewriting register with expression assigned to it Solution:several register assignments along a valid path are explicitly distinguished

15 Darmstadt University of Technology- 15 - the verfication problem is not reduced to a single formula which is checked afterwards 3. Essential Verification Problem Formula checker if z=101 then a¬ b d elsif a¬ b d then if(a+b)<(c+e)........ TRUE or FALSE

16 Darmstadt University of Technology- 16 - 3)a b the verfication problem is not reduced to a single formula which is checked afterwards simulation is guided along valid, i.e., logical consistent paths instead 3. Essential... if a = b then c y+5; else c a; if a = c then res...; else res...; 3 valid paths 1)a = b =c 2)a = b c

17 Darmstadt University of Technology- 17 - equivalence of subterms is sufficient in most cases to reveal equivalences of terms 4. Essential a a (b c)b a a (b c) b c 0

18 Darmstadt University of Technology- 18 - Challenges equivalence detection of symbolic terms consistent case splits during simulation è must consider sequential behaviour è avoid false paths

19 Darmstadt University of Technology- 19 - Equivalence detection flexible use of an open library of different equivalence detection techniques during symbolic simulation on the fly è good compromise between accuracy and speed è not focus of this talk decision diagram based techniques reveal special equivalences which occur seldom or are hard to detect Make the common case fast

20 Darmstadt University of Technology- 20 - r r+1; if m = 0 thenr r+1; else r 000; r[2] clk & r[1] & r[0] & r & & clk ctrl m

21 Darmstadt University of Technology- 21 - (if 78 rf[adrB] b, x mem[adr2]);twert ( mem[adr2]); (if adrA adrBertetioerptkerotk8iperot then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 (if adr1=adr2etyer54 78768 7776 8676 i68i 778 then z val+rf[adrR werwerweroewihgoerijhgbe mem[adr2]);twersfawetwerwerweroewihgoerijhgbe (if adrA adrBertetioerptkerotk8iperot then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr1] val); (if adr1=adr2etyer54 78768 7776 8676 i68i 778 then z val+rf[adrR]7 878 i78 i87 i else z x+rf[adrR]);7i 7878 78 then z val+rf[adrR]7 878 i78 i87 i else z x+rf[adrR]);7i 7878 (if adr1=adr2 78 mem[adr1] vawerwesr waer wear werwerwerawerawerwarwearl); then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 mem[adr1] val); x mem[adr2]); l);werwerweoiruwepoir,pweiurcmpouopeiwurw rwerw erweir we rwe reri we ewroiw weioruwerijw oewri efwerwerwethen rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 mem[adr1] val); x mem[adr2]); l); then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 mem[adr1] val); x mem[adr2]); l); then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 mem[adr1] val); x mem[wwerwerwerwaerwdr2]); wrwerwerl);erwr werwer werwe rwet5erioustgnfodsegkjerogtkjerogtkjerogtkmeorkegmrkhmge then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 mem[adr1] val); x mem[adr2]); (if adrA adrB then rf[adrA] a; mem[adr1] val); then z val+rf[adrR] else z x+rf[adrR]); mem[adr1] val); (if adr1=adr2etyer54 78768 7776 8676 i68i 778 then z val+rf[adrR ( mem[adr2]);twerweroewihg (if adrA adrBertetioerptkerotk8iperot then rf[adrA] a;erteroterj[o ermjgi7ethbe (if adrA adrBertetioerptkerotk8iperot then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr1] val); (if adr1=adr2etyer54 78768 7776 8676 i68i 778 ewrwerawer ewvtroiejwcro[iwehjnr[occwn3r[oweict weticwopjer tijeroginhreisgvb sdrpgvjnsdprigjzseriogjerogh;serozighzr;ongvosrzegmnseirog regoerijngerzos[goxdrijzdghnb;zdriozdjoger geroigtjer[ognifd;lindzgher[tjiser eartoearjiopgb;zjndfl/gmnio;dlzkhrje;oyhinser[ohinmstophtrfsh srtyoeaijyeoritisoert (if 78 rf[adrB] b, if adrA adrBertetioerptkerotk8iperot then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 (if adr1=adr2etyer54 78768 7776 8676 i68i 778 then z val+rf[adrR werwerweroewihgoerijhgbe mem[adr2]);twersfawetwerwerweroewihgoerijhgbe (if adrA adrBertetioerptkerotk8iperot x mem[adr2]);twert ( mem[adr2]); (then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr1] val); (if adr1=adr2etyer54 78768 7776 8676 i68i 778 the adr1] vawerwesr waer wear werwerwerawerawerwarwearl); then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 mem[adr1] val); x mem[adr2]); l);werwerweoiruwepoir,pweiurcmpouopeiwurw rwerw erweir we rwe reri we ewroiw weioruwerijw oewri efwerwerwethen rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 mem[adr1] val); x mem[adr2]); l); then rf[adrA] a;erteroterj[o ermjgi7ethbe ni87 i else z x+rf[adrR]);7i 7878 78 then z val+rf[adrR]7 878 i78 i87 i else z x+rf[adrR]);7i 7878 (if adr1=adr2 78 mem[ mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 mem[adr1] val); x mem[adr2]); l); then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 mem[adr1] val); x mem[wwerwerwerwaerwdr2]); wrwerwerl);erwr werwer (if adr1=adr2etyer54 78768 7776 8676 i68i 778 then z val+rf[adrR ( mem[adr2]);twerweroewihg (if adrA adrBertetioerptkerotk8iperot then rf[adrA] a;erteroterj[o ermjgi7ethbe (if adrA adrBertetioerptkerotk8iperot then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr1] val); (if adr1=adr2etyer54 78768 7776 8676 i68i 778 ewrwerawer ewvtroiejwcro[iwehjnr[occwn3r[oweict weticwopjer tijeroginhreisgvb sdrpgvjnsdprigjzseriogjerogh;serozighzr;ongvosrzegmnseirog regoerijngerzos[goxdrijzdghnb;zdriozdjoger werwe rwet5erioustgnfodsegkjerogtkjerogtkjerogtkmeorkegmrkhmge then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 mem[adr1] val); x mem[adr2]); (if adrA adrB then rf[adrA] a; mem[adr1] val); then z val+rf[adrR] else z x+rf[adrR]); mem[adr1] val); geroigtjer[ognifd;lindzgher[tjiser earjiopgb;zjndfl/gmnio;dlzkhrje;oyhinser[oh inmstophtrfsh srtyoeaijyeoritisoert r r+1; if m = 0 then r r +1; else r 000; r 1 r+1; if m 1 = 0 then r 2 r 1 +1; else r 2 000; s ss s

22 Darmstadt University of Technology- 22 - (if 78 rf[adrB] b, x mem[adr2]);twert ( mem[adr2]); (if adrA adrBertetioerptkerotk8iperot then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 (if adr1=adr2etyer54 78768 7776 8676 i68i 778 then z val+rf[adrR werwerweroewihgoerijhgbe mem[adr2]);twersfawetwerwerweroewihgoerijhgbe (if adrA adrBertetioerptkerotk8iperot then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr1] val); (if adr1=adr2etyer54 78768 7776 8676 i68i 778 then z val+rf[adrR]7 878 i78 i87 i else z x+rf[adrR]);7i 7878 78 then z val+rf[adrR]7 878 i78 i87 i else z x+rf[adrR]);7i 7878 (if adr1=adr2 78 mem[adr1] vawerwesr waer wear werwerwerawerawerwarwearl); then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 mem[adr1] val); x mem[adr2]); l);werwerweoiruwepoir,pweiurcmpouopeiwurw rwerw erweir we rwe reri we ewroiw weioruwerijw oewri efwerwerwethen rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 mem[adr1] val); x mem[adr2]); l); then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 mem[adr1] val); x mem[adr2]); l); then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 mem[adr1] val); x mem[wwerwerwerwaerwdr2]); wrwerwerl);erwr werwer werwe rwet5erioustgnfodsegkjerogtkjerogtkjerogtkmeorkegmrkhmge then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 mem[adr1] val); x mem[adr2]); (if adrA adrB then rf[adrA] a; mem[adr1] val); then z val+rf[adrR] else z x+rf[adrR]); mem[adr1] val); (if adr1=adr2etyer54 78768 7776 8676 i68i 778 then z val+rf[adrR ( mem[adr2]);twerweroewihg (if adrA adrBertetioerptkerotk8iperot then rf[adrA] a;erteroterj[o ermjgi7ethbe (if adrA adrBertetioerptkerotk8iperot then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr1] val); (if adr1=adr2etyer54 78768 7776 8676 i68i 778 ewrwerawer ewvtroiejwcro[iwehjnr[occwn3r[oweict weticwopjer tijeroginhreisgvb sdrpgvjnsdprigjzseriogjerogh;serozighzr;ongvosrzegmnseirog regoerijngerzos[goxdrijzdghnb;zdriozdjoger geroigtjer[ognifd;lindzgher[tjiser eartoearjiopgb;zjndfl/gmnio;dlzkhrje;oyhinser[ohinmstophtrfsh srtyoeaijyeoritisoert (if 78 rf[adrB] b, if adrA adrBertetioerptkerotk8iperot then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 (if adr1=adr2etyer54 78768 7776 8676 i68i 778 then z val+rf[adrR werwerweroewihgoerijhgbe mem[adr2]);twersfawetwerwerweroewihgoerijhgbe (if adrA adrBertetioerptkerotk8iperot x mem[adr2]);twert ( mem[adr2]); (then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr1] val); (if adr1=adr2etyer54 78768 7776 8676 i68i 778 the adr1] vawerwesr waer wear werwerwerawerawerwarwearl); then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 mem[adr1] val); x mem[adr2]); l);werwerweoiruwepoir,pweiurcmpouopeiwurw rwerw erweir we rwe reri we ewroiw weioruwerijw oewri efwerwerwethen rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 mem[adr1] val); x mem[adr2]); l); then rf[adrA] a;erteroterj[o ermjgi7ethbe ni87 i else z x+rf[adrR]);7i 7878 78 then z val+rf[adrR]7 878 i78 i87 i else z x+rf[adrR]);7i 7878 (if adr1=adr2 78 mem[ mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 mem[adr1] val); x mem[adr2]); l); then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 mem[adr1] val); x mem[wwerwerwerwaerwdr2]); wrwerwerl);erwr werwer (if adr1=adr2etyer54 78768 7776 8676 i68i 778 then z val+rf[adrR ( mem[adr2]);twerweroewihg (if adrA adrBertetioerptkerotk8iperot then rf[adrA] a;erteroterj[o ermjgi7ethbe (if adrA adrBertetioerptkerotk8iperot then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr1] val); (if adr1=adr2etyer54 78768 7776 8676 i68i 778 ewrwerawer ewvtroiejwcro[iwehjnr[occwn3r[oweict weticwopjer tijeroginhreisgvb sdrpgvjnsdprigjzseriogjerogh;serozighzr;ongvosrzegmnseirog regoerijngerzos[goxdrijzdghnb;zdriozdjoger werwe rwet5erioustgnfodsegkjerogtkjerogtkjerogtkmeorkegmrkhmge then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 mem[adr1] val); x mem[adr2]); (if adrA adrB then rf[adrA] a; mem[adr1] val); then z val+rf[adrR] else z x+rf[adrR]); mem[adr1] val); geroigtjer[ognifd;lindzgher[tjiser earjiopgb;zjndfl/gmnio;dlzkhrje;oyhinser[oh inmstophtrfsh srtyoeaijyeoritisoert r 1 r+1; if m 1 = 0 then r 2 r 1 +1; else r 2 000; r 1 r+1; if m 1 = 0 then r 2 r 1 +1; else r 2 000; s ss s r1r1 r+1 m1m1 0 r2r2 r 1 +1 s ss

23 Darmstadt University of Technology- 23 - è duplicate according to number of cycles (here: 2 cycles) Gate-level design describes only one cycle... r[2] clk & r[1] & r[0] & r & & clk ctrl m

24 Darmstadt University of Technology- 24 - r[2] clk & r[1] & r[0] & r & & clk ctrl m Break feed-back of registers... r[2] clk & r[1] & r[0] & r & & clk ctrl m

25 Darmstadt University of Technology- 25 - r[2] clk & r[1] & r[0] & r & & clk ctrl m r[2] clk & r[1] & r[0] & r & & clk ctrl m r[2] r[1] r[0] Register-outputs of previous cycle are inputs of next cycle ctrl

26 Darmstadt University of Technology- 26 - r[2] clk & r[1] & r[0] & r & & clk ctrl m r[2] clk & r[1] & r[0] & r & & clk ctrl m r[2] r[1] r[0] cycle 1cycle 2 initial symbolic values final symbolic values ctrl

27 Darmstadt University of Technology- 27 - Assumption about initialization of ctrl -register r[2] clk & r[1] & r[0] & r & & clk ctrl m1m1 r[2] clk & r[1] & r[0] & r & & clk ctrl m r[2] r[1] r[0] ctrl

28 Darmstadt University of Technology- 28 - r[2] clk & r[1] & r[0] & r & & clk ctrl m1m1 r[2] clk & r[1] & r[0] & r & & clk ctrl m r[2] r[1] r[0] 0 ctrl clk ctrl Assumption about initialization of ctrl -register

29 Darmstadt University of Technology- 29 - Indexing the different register values r[2] clk & r[1] & r[0] & r & & clk ctrl m1m1 r[2] clk & r[1] & r[0] & r & & clk ctrl m r[2] r[1] r[0] ctrl 0 clk ctrl

30 Darmstadt University of Technology- 30 - r 2 [2] clk & r 2 [1] & r 2 [0] & r & & clk ctrl m1m1 r 1 [2] clk & r 1 [1] & r 1 [0] & r & & clk ctrl m r[2] r[1] r[0] ctrl 2 ctrl 3 0 clk ctrl ctrl 1 Indexing the different register values

31 Darmstadt University of Technology- 31 - 1ctrl 1 nand m r 2 [2] clk & r 2 [1] & r 2 [0] & r & & clk ctrl m1m1 r 1 [2] clk r 1 [1] r 1 [0] r & clk ctrl m r[2] r[1] r[0] ctrl 2 ctrl 3 0 ctrl 1 0 0 1 clk ctrl & & & &

32 Darmstadt University of Technology- 32 - (not r[0])r 1 [0] (ctrl 1 nand m) and (not r[0]) r 2 [2] clk & r 2 [1] & r 2 [0] & r & & clk ctrl m1m1 r 1 [2] r 1 [1] r 1 [0] & clk ctrl m r[2] r[1] r[0] ctrl 2 ctrl 3 0 ctrl 1 & clk ctrl r clk 1 & & &

33 Darmstadt University of Technology- 33 - (r[1] xor r[0])r 1 [1] (ctrl 1 nand m) and (r[1] xor r[0]) r 2 [2] clk & r 2 [1] & r 2 [0] & r & & clk ctrl m1m1 r 1 [2] r 1 [1] r 1 [0] & & clk ctrl m r[2] r[1] r[0] ctrl 2 ctrl 3 0 clk ctrl ctrl 1 r clk 1 & & &

34 Darmstadt University of Technology- 34 - r 2 [2] clk & r 2 [1] & r 2 [0] & r & & clk ctrl m1m1 r 1 [2] clk & r 1 [1] & r 1 [0] & r & & clk ctrl m r[2] r[1] r[0] ctrl 2 ctrl 3 0 clk ctrl ctrl 1

35 Darmstadt University of Technology- 35 - (if 78 rf[adrB] b, x mem[adr2]);twert ( mem[adr2]); (if adrA adrBertetioerptkerotk8iperot then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 (if adr1=adr2etyer54 78768 7776 8676 i68i 778 then z val+rf[adrR werwerweroewihgoerijhgbe mem[adr2]);twersfawetwerwerweroewihgoerijhgbe (if adrA adrBertetioerptkerotk8iperot then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr1] val); (if adr1=adr2etyer54 78768 7776 8676 i68i 778 then z val+rf[adrR]7 878 i78 i87 i else z x+rf[adrR]);7i 7878 78 then z val+rf[adrR]7 878 i78 i87 i else z x+rf[adrR]);7i 7878 (if adr1=adr2 78 mem[adr1] vawerwesr waer wear werwerwerawerawerwarwearl); then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 mem[adr1] val); x mem[adr2]); l);werwerweoiruwepoir,pweiurcmpouopeiwurw rwerw erweir we rwe reri we ewroiw weioruwerijw oewri efwerwerwethen rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 mem[adr1] val); x mem[adr2]); l); then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 mem[adr1] val); x mem[adr2]); l); then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 mem[adr1] val); x mem[wwerwerwerwaerwdr2]); wrwerwerl);erwr werwer werwe rwet5erioustgnfodsegkjerogtkjerogtkjerogtkmeorkegmrkhmge then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 mem[adr1] val); x mem[adr2]); (if adrA adrB then rf[adrA] a; mem[adr1] val); then z val+rf[adrR] else z x+rf[adrR]); mem[adr1] val); (if adr1=adr2etyer54 78768 7776 8676 i68i 778 then z val+rf[adrR ( mem[adr2]);twerweroewihg (if adrA adrBertetioerptkerotk8iperot then rf[adrA] a;erteroterj[o ermjgi7ethbe (if adrA adrBertetioerptkerotk8iperot then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr1] val); (if adr1=adr2etyer54 78768 7776 8676 i68i 778 ewrwerawer ewvtroiejwcro[iwehjnr[occwn3r[oweict weticwopjer tijeroginhreisgvb sdrpgvjnsdprigjzseriogjerogh;serozighzr;ongvosrzegmnseirog regoerijngerzos[goxdrijzdghnb;zdriozdjoger geroigtjer[ognifd;lindzgher[tjiser eartoearjiopgb;zjndfl/gmnio;dlzkhrje;oyhinser[ohinmstophtrfsh srtyoeaijyeoritisoert (if 78 rf[adrB] b, if adrA adrBertetioerptkerotk8iperot then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 (if adr1=adr2etyer54 78768 7776 8676 i68i 778 then z val+rf[adrR werwerweroewihgoerijhgbe mem[adr2]);twersfawetwerwerweroewihgoerijhgbe (if adrA adrBertetioerptkerotk8iperot x mem[adr2]);twert ( mem[adr2]); (then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr1] val); (if adr1=adr2etyer54 78768 7776 8676 i68i 778 the adr1] vawerwesr waer wear werwerwerawerawerwarwearl); then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 mem[adr1] val); x mem[adr2]); l);werwerweoiruwepoir,pweiurcmpouopeiwurw rwerw erweir we rwe reri we ewroiw weioruwerijw oewri efwerwerwethen rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 mem[adr1] val); x mem[adr2]); l); then rf[adrA] a;erteroterj[o ermjgi7ethbe ni87 i else z x+rf[adrR]);7i 7878 78 then z val+rf[adrR]7 878 i78 i87 i else z x+rf[adrR]);7i 7878 (if adr1=adr2 78 mem[ mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 mem[adr1] val); x mem[adr2]); l); then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 mem[adr1] val); x mem[wwerwerwerwaerwdr2]); wrwerwerl);erwr werwer (if adr1=adr2etyer54 78768 7776 8676 i68i 778 then z val+rf[adrR ( mem[adr2]);twerweroewihg (if adrA adrBertetioerptkerotk8iperot then rf[adrA] a;erteroterj[o ermjgi7ethbe (if adrA adrBertetioerptkerotk8iperot then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr1] val); (if adr1=adr2etyer54 78768 7776 8676 i68i 778 ewrwerawer ewvtroiejwcro[iwehjnr[occwn3r[oweict weticwopjer tijeroginhreisgvb sdrpgvjnsdprigjzseriogjerogh;serozighzr;ongvosrzegmnseirog regoerijngerzos[goxdrijzdghnb;zdriozdjoger werwe rwet5erioustgnfodsegkjerogtkjerogtkjerogtkmeorkegmrkhmge then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 mem[adr1] val); x mem[adr2]); (if adrA adrB then rf[adrA] a; mem[adr1] val); then z val+rf[adrR] else z x+rf[adrR]); mem[adr1] val); geroigtjer[ognifd;lindzgher[tjiser earjiopgb;zjndfl/gmnio;dlzkhrje;oyhinser[oh inmstophtrfsh srtyoeaijyeoritisoert r 1 r+1; if m 1 = 0 then r 2 r 1 +1; else r 2 000; s ss s r1r1 r+1 m1m1 0 r2r2 r 1 +1 s ss

36 Darmstadt University of Technology- 36 - r1r1 r+1 s r 2 [2] clk & r 2 [1] & r 2 [0] & r & & clk ctrl m1m1 r 1 [2] clk & r 1 [1] & r 1 [0] & r & & clk ctrl m r[2] r[1] r[0] ctrl 2 ctrl 3 0 clk ctrl ctrl 1 ?

37 Darmstadt University of Technology- 37 - Decision Diagram based Techniques reveal special equivalences which occur seldom or are hard to detect build formula for equivalence è use results of other equivalence detection techniques on the fly è information notified at equivalence classes check formula by vectors of OBDDs

38 Darmstadt University of Technology- 38 - Formula checked in this example r+1 r 1 [2] clk & r 1 [1] & r 1 [0] & r & & m r[2] r[1] r[0] 0 clk ctrl

39 Darmstadt University of Technology- 39 - Formula checked in this example a+1 & a[2] a[1] a[0]

40 Darmstadt University of Technology- 40 - ? r1r1 r+1 s r 2 [2] clk & r 2 [1] & r 2 [0] & r & & clk ctrl m1m1 r 1 [2] clk & r 1 [1] & r 1 [0] & r & & clk ctrl m r[2] r[1] r[0] ctrl 2 ctrl 3 0 clk ctrl ctrl 1

41 Darmstadt University of Technology- 41 - r 2 [2] clk r 2 [1] r 2 [0] r & clk ctrl m1m1 r 1 [2] clk & r 1 [1] & r 1 [0] & r & clk m r[2] r[1] r[0] ctrl 2 ctrl 3 0 ctrl 1 0 clk ctrl & 1 1 & & & 0 &

42 Darmstadt University of Technology- 42 - r 2 [2] r 2 [1] & clk ctrl m1m1 r 1 [2] clk & r 1 [1] & & r & & clk m r[2] r[1] r[0] ctrl 2 ctrl 3 0 clk ctrl ctrl 1 & r 1 [0] ctrl r 2 [0] 1 & & & r clk

43 Darmstadt University of Technology- 43 - (if 78 rf[adrB] b, x mem[adr2]);twert ( mem[adr2]); (if adrA adrBertetioerptkerotk8iperot then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 (if adr1=adr2etyer54 78768 7776 8676 i68i 778 then z val+rf[adrR werwerweroewihgoerijhgbe mem[adr2]);twersfawetwerwerweroewihgoerijhgbe (if adrA adrBertetioerptkerotk8iperot then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr1] val); (if adr1=adr2etyer54 78768 7776 8676 i68i 778 then z val+rf[adrR]7 878 i78 i87 i else z x+rf[adrR]);7i 7878 78 then z val+rf[adrR]7 878 i78 i87 i else z x+rf[adrR]);7i 7878 (if adr1=adr2 78 mem[adr1] vawerwesr waer wear werwerwerawerawerwarwearl); then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 mem[adr1] val); x mem[adr2]); l);werwerweoiruwepoir,pweiurcmpouopeiwurw rwerw erweir we rwe reri we ewroiw weioruwerijw oewri efwerwerwethen rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 mem[adr1] val); x mem[adr2]); l); then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 mem[adr1] val); x mem[adr2]); l); then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 mem[adr1] val); x mem[wwerwerwerwaerwdr2]); wrwerwerl);erwr werwer werwe rwet5erioustgnfodsegkjerogtkjerogtkjerogtkmeorkegmrkhmge then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 mem[adr1] val); x mem[adr2]); (if adrA adrB then rf[adrA] a; mem[adr1] val); then z val+rf[adrR] else z x+rf[adrR]); mem[adr1] val); (if adr1=adr2etyer54 78768 7776 8676 i68i 778 then z val+rf[adrR ( mem[adr2]);twerweroewihg (if adrA adrBertetioerptkerotk8iperot then rf[adrA] a;erteroterj[o ermjgi7ethbe (if adrA adrBertetioerptkerotk8iperot then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr1] val); (if adr1=adr2etyer54 78768 7776 8676 i68i 778 ewrwerawer ewvtroiejwcro[iwehjnr[occwn3r[oweict weticwopjer tijeroginhreisgvb sdrpgvjnsdprigjzseriogjerogh;serozighzr;ongvosrzegmnseirog regoerijngerzos[goxdrijzdghnb;zdriozdjoger geroigtjer[ognifd;lindzgher[tjiser eartoearjiopgb;zjndfl/gmnio;dlzkhrje;oyhinser[ohinmstophtrfsh srtyoeaijyeoritisoert (if 78 rf[adrB] b, if adrA adrBertetioerptkerotk8iperot then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 (if adr1=adr2etyer54 78768 7776 8676 i68i 778 then z val+rf[adrR werwerweroewihgoerijhgbe mem[adr2]);twersfawetwerwerweroewihgoerijhgbe (if adrA adrBertetioerptkerotk8iperot x mem[adr2]);twert ( mem[adr2]); (then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr1] val); (if adr1=adr2etyer54 78768 7776 8676 i68i 778 the adr1] vawerwesr waer wear werwerwerawerawerwarwearl); then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 mem[adr1] val); x mem[adr2]); l);werwerweoiruwepoir,pweiurcmpouopeiwurw rwerw erweir we rwe reri we ewroiw weioruwerijw oewri efwerwerwethen rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 mem[adr1] val); x mem[adr2]); l); then rf[adrA] a;erteroterj[o ermjgi7ethbe ni87 i else z x+rf[adrR]);7i 7878 78 then z val+rf[adrR]7 878 i78 i87 i else z x+rf[adrR]);7i 7878 (if adr1=adr2 78 mem[ mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 mem[adr1] val); x mem[adr2]); l); then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 mem[adr1] val); x mem[wwerwerwerwaerwdr2]); wrwerwerl);erwr werwer (if adr1=adr2etyer54 78768 7776 8676 i68i 778 then z val+rf[adrR ( mem[adr2]);twerweroewihg (if adrA adrBertetioerptkerotk8iperot then rf[adrA] a;erteroterj[o ermjgi7ethbe (if adrA adrBertetioerptkerotk8iperot then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr1] val); (if adr1=adr2etyer54 78768 7776 8676 i68i 778 ewrwerawer ewvtroiejwcro[iwehjnr[occwn3r[oweict weticwopjer tijeroginhreisgvb sdrpgvjnsdprigjzseriogjerogh;serozighzr;ongvosrzegmnseirog regoerijngerzos[goxdrijzdghnb;zdriozdjoger werwe rwet5erioustgnfodsegkjerogtkjerogtkjerogtkmeorkegmrkhmge then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 mem[adr1] val); x mem[adr2]); (if adrA adrB then rf[adrA] a; mem[adr1] val); then z val+rf[adrR] else z x+rf[adrR]); mem[adr1] val); geroigtjer[ognifd;lindzgher[tjiser earjiopgb;zjndfl/gmnio;dlzkhrje;oyhinser[oh inmstophtrfsh srtyoeaijyeoritisoert r 1 r+1; if m 1 = 0 then r 2 r 1 +1; else r 2 000; s ss s r1r1 r+1 m1m1 0 r2r2 r 1 +1 s ss

44 Darmstadt University of Technology- 44 - r2r2 r 1 +1 ss r 2 [2] & r 2 [1] & r 2 [0] & & clk ctrl m1m1 r 1 [2] clk & r 1 [1] & r 1 [0] & r & & clk ctrl m r[2] r[1] r[0] ctrl 2 ctrl 3 0 clk ctrl ctrl 1 ? r clk &

45 Darmstadt University of Technology- 45 - r 2 [2] clk & r 2 [1] & r 2 [0] & r & & clk ctrl m1m1 r 1 [2] clk & r 1 [1] & r 1 [0] & r & & clk ctrl m r[2] r[1] r[0] ctrl 2 ctrl 3 0 clk ctrl ctrl 1 (r+1)+1

46 Darmstadt University of Technology- 46 - r 2 [2] clk & r 2 [1] & r 2 [0] & r & & clk ctrl m1m1 r 1 [2] clk & r 1 [1] & r 1 [0] & r & & clk ctrl m r[2] r[1] r[0] ctrl 2 ctrl 3 0 clk ctrl ctrl 1 the equivalent terms are used as cutpoints

47 Darmstadt University of Technology- 47 - r 1 r+1; if m 1 = 0 then r 2 r 1 +1; else r 2 000; s s s s r 1 r+1; if m 1 = 0 then r 2 r 1 +1; else r 2 000; s s s s r 2 [2] clk & r 2 [1] & r 2 [0] & r & & clk ctrl m1m1 ctrl 2 ctrl 3 the equivalent terms are used as cutpoints r 1 [2] r 1 [1] r 1 [0] use again information of equivalence classes to obtain simpler formula

48 Darmstadt University of Technology- 48 - & a[2] a[1] a[0] a+1 Reuse hashed result è no need to build OBDDs again

49 Darmstadt University of Technology- 49 - ? r2r2 r 1 +1 ss r 2 [2] & r 2 [1] & r 2 [0] & & clk ctrl m1m1 r 1 [2] clk & r 1 [1] & r 1 [0] & r & & clk ctrl m r[2] r[1] r[0] ctrl 2 ctrl 3 0 clk ctrl ctrl 1 clk & r

50 Darmstadt University of Technology- 50 - (if 78 rf[adrB] b, x mem[adr2]);twert ( mem[adr2]); (if adrA adrBertetioerptkerotk8iperot then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 (if adr1=adr2etyer54 78768 7776 8676 i68i 778 then z val+rf[adrR werwerweroewihgoerijhgbe mem[adr2]);twersfawetwerwerweroewihgoerijhgbe (if adrA adrBertetioerptkerotk8iperot then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr1] val); (if adr1=adr2etyer54 78768 7776 8676 i68i 778 then z val+rf[adrR]7 878 i78 i87 i else z x+rf[adrR]);7i 7878 78 then z val+rf[adrR]7 878 i78 i87 i else z x+rf[adrR]);7i 7878 (if adr1=adr2 78 mem[adr1] vawerwesr waer wear werwerwerawerawerwarwearl); then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 mem[adr1] val); x mem[adr2]); l);werwerweoiruwepoir,pweiurcmpouopeiwurw rwerw erweir we rwe reri we ewroiw weioruwerijw oewri efwerwerwethen rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 mem[adr1] val); x mem[adr2]); l); then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 mem[adr1] val); x mem[adr2]); l); then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 mem[adr1] val); x mem[wwerwerwerwaerwdr2]); wrwerwerl);erwr werwer werwe rwet5erioustgnfodsegkjerogtkjerogtkjerogtkmeorkegmrkhmge then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 mem[adr1] val); x mem[adr2]); (if adrA adrB then rf[adrA] a; mem[adr1] val); then z val+rf[adrR] else z x+rf[adrR]); mem[adr1] val); (if adr1=adr2etyer54 78768 7776 8676 i68i 778 then z val+rf[adrR ( mem[adr2]);twerweroewihg (if adrA adrBertetioerptkerotk8iperot then rf[adrA] a;erteroterj[o ermjgi7ethbe (if adrA adrBertetioerptkerotk8iperot then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr1] val); (if adr1=adr2etyer54 78768 7776 8676 i68i 778 ewrwerawer ewvtroiejwcro[iwehjnr[occwn3r[oweict weticwopjer tijeroginhreisgvb sdrpgvjnsdprigjzseriogjerogh;serozighzr;ongvosrzegmnseirog regoerijngerzos[goxdrijzdghnb;zdriozdjoger geroigtjer[ognifd;lindzgher[tjiser eartoearjiopgb;zjndfl/gmnio;dlzkhrje;oyhinser[ohinmstophtrfsh srtyoeaijyeoritisoert (if 78 rf[adrB] b, if adrA adrBertetioerptkerotk8iperot then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 (if adr1=adr2etyer54 78768 7776 8676 i68i 778 then z val+rf[adrR werwerweroewihgoerijhgbe mem[adr2]);twersfawetwerwerweroewihgoerijhgbe (if adrA adrBertetioerptkerotk8iperot x mem[adr2]);twert ( mem[adr2]); (then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr1] val); (if adr1=adr2etyer54 78768 7776 8676 i68i 778 the adr1] vawerwesr waer wear werwerwerawerawerwarwearl); then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 mem[adr1] val); x mem[adr2]); l);werwerweoiruwepoir,pweiurcmpouopeiwurw rwerw erweir we rwe reri we ewroiw weioruwerijw oewri efwerwerwethen rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 mem[adr1] val); x mem[adr2]); l); then rf[adrA] a;erteroterj[o ermjgi7ethbe ni87 i else z x+rf[adrR]);7i 7878 78 then z val+rf[adrR]7 878 i78 i87 i else z x+rf[adrR]);7i 7878 (if adr1=adr2 78 mem[ mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 mem[adr1] val); x mem[adr2]); l); then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 mem[adr1] val); x mem[wwerwerwerwaerwdr2]); wrwerwerl);erwr werwer (if adr1=adr2etyer54 78768 7776 8676 i68i 778 then z val+rf[adrR ( mem[adr2]);twerweroewihg (if adrA adrBertetioerptkerotk8iperot then rf[adrA] a;erteroterj[o ermjgi7ethbe (if adrA adrBertetioerptkerotk8iperot then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr1] val); (if adr1=adr2etyer54 78768 7776 8676 i68i 778 ewrwerawer ewvtroiejwcro[iwehjnr[occwn3r[oweict weticwopjer tijeroginhreisgvb sdrpgvjnsdprigjzseriogjerogh;serozighzr;ongvosrzegmnseirog regoerijngerzos[goxdrijzdghnb;zdriozdjoger werwe rwet5erioustgnfodsegkjerogtkjerogtkjerogtkmeorkegmrkhmge then rf[adrA] a;erteroterj[o ermjgi7ethbe mem[adr2]);twertwerwerweroewihgoerijhgbe (if 78 mem[adr1] val); x mem[adr2]); (if adrA adrB then rf[adrA] a; mem[adr1] val); then z val+rf[adrR] else z x+rf[adrR]); mem[adr1] val); geroigtjer[ognifd;lindzgher[tjiser earjiopgb;zjndfl/gmnio;dlzkhrje;oyhinser[oh inmstophtrfsh srtyoeaijyeoritisoert r 1 r+1; if m 1 = 0 then r 2 r 1 +1; else r 2 000; r 1 r+1; if m 1 = 0 then r 2 r 1 +1; else r 2 000; s ss s r1r1 r+1 m1m1 1 r2r2 0 s s Other case...

51 Darmstadt University of Technology- 51 - & ctrl m1m1 r 1 [2] clk & r 1 [1] & r 1 [0] & r & clk m r[2] r[1] r[0] ctrl 2 ctrl 3 0 ctrl 1 0 clk ctrl & 1 0 & & & 1 & clk r r 2 [2] r 2 [1] r 2 [0]

52 Darmstadt University of Technology- 52 - r[2] clk & r[1] & r[0] & r & & clk ctrl m datapath-operations are performed on separate blocks from standard libraries

53 Darmstadt University of Technology- 53 - clk & & & r & ctrl m INC 3 3 no decision diagrams required for symbolic simulation datapath-operations are performed on separate blocks from standard libraries use high-level operation inc

54 Darmstadt University of Technology- 54 - r r+1; if m = 0 thenr r+1; else r 000; r[2] clk & r[1] & r[0] & r & & clk ctrl m cycle equivalent

55 Darmstadt University of Technology- 55 - r[2] clk & r[1] & r[0] & r & & clk ctrl m if m = 0 thenr r+2; else r 000; NOT cycle equivalent

56 Darmstadt University of Technology- 56 - Experimental Results cycles dd-checks 1.7 s 5.5 s 74 s 786 s 8 10 Synthesis tool: Synopsys ® Design Compiler

57 Darmstadt University of Technology- 57 - Application Area equivalence checking at different levels of abstraction è behavioral rtl è structural rtl è gate-level è FMCAD00, ASIAN99, CHARME99 et al first application to property verification è register binding verification è C. Blank, Wave2000

58 Darmstadt University of Technology- 58 - Limitations verification of finite sequences è the maximum number of loop iterations has to be known è verification problem can be reduced for many cyclic designs with infinite loops to check of acyclic sequences examples used in experiments still not nearly so complex as commercial designs

59 Darmstadt University of Technology- 59 - Conclusion sequential verification of examples at different levels of abstraction flexible use of an open library of different equivalence detection techniques è good compromise between accuracy and speed good debugging support joint work with TIMA laboratory, Grenoble


Download ppt "Darmstadt University of Technology- 1 - Sequential Verification by Symbolic Simulation Darmstadt University of Technology Dept. of Electrical and Computer."

Similar presentations


Ads by Google