




















Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
An overview of symmetries in boolean functions, their types, known detection algorithms, and a new algorithm for fast computation. Symmetries are important in logic synthesis, technology mapping, bdd minimization, sat solving, and verification. Classical two-variable symmetries, four basic types, and generalized symmetries. It also discusses the disadvantages of naive symmetry detection and introduces a new algorithm that overcomes these issues.
Typology: Slides
1 / 28
This page cannot be seen from the preview
Don't miss anything!





















D.Moller et al. “Detection of Symmetry of Boolean Functions Represented by ROBDDs”. ICCAD’
New Symmetry Detection Algorithm
symmgraph ComputeSymmetries ( function F , varset V ) { Step 1: if ( F is a constant function ) return CompleteGraph( V ); Step 2: x = Var( V ); ( F 0 , F 1 ) = Cofactors( F , x ); Step 3: RemainingVars = supp( F ) – x ; S 0 = ComputeSymmetries ( F 0 , RemainingVars ); if ( S 0 = ∅ ) S 1 = ∅; else S 1 = ComputeSymmetries ( F 1 , RemainingVars ); Step 4: Y = SymmetricVars( F 0 , F 1 , RemainingVars ); S 2 = x × Y; S 3 = CompleteGraph( V – supp( F ) ); S = ( S 0 ∩ S 1 ) ∪ S 2 ∪ S 3 ; Step 5: return R ; }
tuples Tuples ( varset V , int i ) /* Tuples are the set of subsets of i elements out of V */ { Step 1: if ( | V | < i ) return ∅; if ( i = 0 ) return {∅}; Step 2: x = Var( V ); Step 3: S 0 = Tuples ( V – x , i ); S 1 = Tuples ( V – x , i –1); Step 4: S = (add x to all subsets in S 1 ) ∪ S 0 ; Step 5: return S ; }
benchmark statistics symm info runtime, s name ins outs |BDD| pairs ratio,% reading naïve slow fast [1] [2] [3] dalu 75 16 1402 982 7.83 0.55 0.92 0.16 0.07 32.5 0.60 - des 256 245 3238 1264 6.95 1.57 0.51 0.27 0.05 52.5 5.60 3. frg2 143 139 1907 1353 9.32 0.18 0.23 0.10 0.02 5.3 2.70 14. i10 257 224 49387 3746 3.39 20.48 285.42 3.89 1.63 - - - C1355 41 32 29578 0 0.00 18.64 61.45 52.96 0.02 - 2.90 - C1908 33 25 9519 248 2.23 1.13 4.71 2.08 0.06 1126.5 0.70 - C2670 233 140 4971 1547 4.78 2.84 25 .63 3.25 0.16 - 7.20 - C3540 50 22 24475 81 0.60 16.43 27.36 1.14 0.67 - 3.00 - C432 36 7 1226 0 0.00 0.11 0.86 0.04 0.01 23.2 - - C499 41 32 27472 0 0.00 3.59 57.03 51.18 0.02 - 4.00 - C5315 178 123 2492 521 0.83 1.38 2.79 0.84 0.13 636.7 2.10 - C755 2 207 108 10674 1879 1.31 8.14 42.77 13.19 0.32 - 9.30 - C880 60 26 17755 262 4.01 1.81 8.48 0.34 0.19 7.7 - - Total 82.35 528.16 130.48 3. Ratio, % 16.0 100.0 24.7 0.