Anti-Symmetry and Logic Simulation Reviewer Ko-Lung Yuan.

45
Anti-Symmetry and Logic Simulation Reviewer Ko-Lung Yuan

Transcript of Anti-Symmetry and Logic Simulation Reviewer Ko-Lung Yuan.

Anti-Symmetry and Logic Simulation

Reviewer Ko-Lung Yuan

Outline•Abstract• Introduction•Classical Symmetry•Anti-Symmetry•Symmetry Detection•Experimental Results•Conclusion•Comment

Abstract

Simulation•Naïve simulation has state explosion problem, but

we can use symmetry to reduce the possible state•Symmetry detection is an important progress•This paper want to give a simulation method based

on symmetry detection with anti-symmetry detection joined

Logic Simulation Flow• I think it might be…

Circuit Symmetry Detection

State-Space Transformation

FunctionCorrection

Simulation

Gate State MachineBoolean Function

Introduction•Detecting symmetries has proven to be useful in

many areas of EDA•Permutation-based symmetry detection algorithm▫Capture the idea of rearranging things

Symmetry Type•Total symmetry▫Ex.

•Partial symmetry▫Ex.

•Weak symmetry▫Other permutation-based symmetries

•This paper just focus on total symmetry and partial symmetry

Symmetry Detection• Examining pairs of variables• Symmetric variable pair▫ If they can be exchanged without altering the output

of the function▫Symmetric variable pairs are transitive

• Totally symmetric▫Every pair of input variables is a symmetric pair

• Partially symmetric▫A function is partially symmetric in the variables if is

a symmetric pair for all and ,

Symmetric Pairs Detection•Using cofactors to do detection•The cofactors of f with respect to are the functions

and ▫They are computed by setting the variable to 0 and

then to 1▫The procedure for computing a cofactor depends on

the representation of the function

Cofactor•Cofactors can be computed with respect to a single

variable or a set of variables• It is common to compute cofactors with respect to

pairs of variables•There are four such cofactors▫ ▫Different relations between these cofactors can be use

to define different types of symmetry

Classical Symmetry•There are six possible relations in these four

cofactors, each of which represents a certain type of symmetry

Relation Symmetry Type

Ordinary

Multi-Phase

Single-Variable A

Single-Variable B

Multi-Phase Single-Variable A

Multi-Phase Single-Variable B

Symmetry Correction•The only relation that truly represents symmetry is ,

ordinary symmetry•The other relations can be “corrected” to become

symmetric

Symmetric Detection•The detection algorithm tests only for ordinary

symmetry•The other five relations are detected by transforming

the state space of the function, and then testing for ordinary symmetry

Multi-Phase Symmetry • It is possible to treat the multi-phase relation as

ordinary symmetry after performing a state-space transformation and add a NOT gate to one of the inputs

State space transformation (symmetry)

Single-Variable Symmetry •Conjugate symmetry• It is possible to treat conjugate symmetries as if they

were ordinary symmetries using a stat-space transformation and a collection of XOR gates on the function inputs State space transformation (symmetry)

XOR

𝑓 01= 𝑓 11

Multi-Phase Single-Variable Symmetry•These types of symmetry can be handled by

combining the techniques for multi-phase and conjugate symmetry

State space transformation (symmetry)

XOR

𝑓 10= 𝑓 00

State Machine• The result of symmetry detection is a multi-dimensional

state machine which represents the state of Boolean function.

• Each dimension of the state machine represents a cluster of symmetric variables

•Non-clustered input variable▫The dimension will have two states representing input

values of zero and one• Cluster of n variables▫The dimension will have n+1 states with the state

representing the number of ones in the inputs

State Machine (cont.)•Example of state machine

0,0 1,0 2,0 3,0

0,1 1,1 2,1 3,1

{B,C,D}

A

Anti-Symmetry• can be written If we reformulate our six relations

and replace the constant zero with the constant one, we obtain the six anti-symmetry relations

Relation Symmetry Type

Ordinary

Multi-Phase

Single-Variable A

Single-Variable B

Multi-Phase Single-Variable A

Multi-Phase Single-Variable B

Symmetry Correction•Anti-symmetries can be transformed into ordinary

symmetries using state-space transformations •These transformations are easier to visualize if we

place the four cofactors into a hyper-linear structure •There are several different state-space

transformations that will transform anti-symmetry into an ordinary symmetry

Simple Method•Complement one of the cofactors ▫If is true, then and are also true

𝑓 00 𝑓 01

𝑓 10 𝑓 11

𝑓 00 𝑓 01

𝑓 10 𝑓 11

𝑓 00 𝑓 01

𝑓 10 𝑓 11

Simple Method (cont.)•An ordinary anti-symmetry is found between the

variables are A and B and that has been complemented

Trans.Func.

AB

Simple Method (cont.)•A NOT gate and an AND gate required for every anti-

symmetric pair (for detection) but just one XOR gate needed (for correction)

•The proliferation of gates may negate the benefit of detecting the anti-symmetry

Over-Kill Method• Instead of just complementing ( or ) we also

complement •This method eliminates the AND gates and NOT

gates. Regardless of how many anti-symmetric variable pairs are detected for a function, only a single XOR gate is required on the output.

•This XOR gate must have one input for each detected anti-symmetric pair

Over-Kill Method (cont.)•Sophisticated Corrective Actions

𝑓 00 𝑓 01

𝑓 10 𝑓 11

𝑓 00 𝑓 01

𝑓 10 𝑓 11

𝑓 00 𝑓 01

𝑓 10 𝑓 11

Over-Kill Method (cont.)•Simple Corrective Function

Trans.Func.

AB

Symmetry Detection Problems•There are several problems in determining the inputs

of the XOR gate•First, when combining anti-symmetry with conjugate

symmetry, adding inputs to the correcting XOR becomes more complicated

•Second, we need to determine what should happen when a variable is added twice to the correcting XOR

•Third, we need to determine how to detect anti-symmetry with respect to clustered variables

Ordinary Symmetry•Ordinary symmetry can be detected by examining

cofactors along the anti-diagonals• If there are more than two dimensions, the diagonal

tests must be repeated for each of the planes containing the two variables

•There is no required relationship between separate diagonals or between separate planes

Ordinary Symmetry (conj.)•Example

0,0 1,0 2,0 3,0

0,1 1,1 2,1 3,1

{B,C,D}

A

Multi-Phase Symmetry•M.P. can be detected by reversing the structure along

one dimension and then testing for ordinary symmetry

0,0 1,0 2,0 3,0

0,1 1,1 2,1 3,1

{B,C,D}

A

Conjugate Symmetry•Conj. can be detected by reversing the odd

numbered rows (starting with 0 at the top) or the odd numbered columns (starting with 0 at the left) and then testing for ordinary symmetry

Conjugate Multi-Phase Symmetry•C.M.P. can be detected by reversing the even

numbered rows and columns• In practice this is accomplished by reversing the

entire structure and then reversing the odd rows or columns

Anti-Symmetry•When an anti-symmetry exists between any two

variables in two different clustered pairs, then an anti-symmetry exists between every pair of variables in the two of clustered variables

•A function must alternate with its complement along each back-diagonal

•To convert the anti-symmetry into an ordinary symmetry, we invert the functions in the odd-numbered rows or the odd-numbered columns

Clustered-Variable State Machine•Example

L F G

K L F

F G H

(a,b)

(c,d)

L’ F’ G

K L F

F G’ H

(a,b)

(c,d)

Anti-SymmetryOrdinary Symmetry

Clustered-Variable State Machine (cont.)

•Example

L’ F’ G

K L F

F G’ H

(a,b)

(c,d)

L’ F G

K L’ F

F G H

(a,b)

(c,d)

Anti-Symmetry State space transformation

A clustered Corrective Function•Example

Trans.Func.

AB

When A equals one or B equals oneCorrect the output

XOR Gate Inputs•Create a list of the input variables that must be

added to the inputs of the XOR gate•When new anti-symmetries are detected, new input

variables are added to the list•When we add an input to the list, we check to see

whether it is currently on the list. If so, then we remove it instead of adding it

Experimental Results• ISCAS 85 benchmarks-they are specified at the gate

level rather than at the Boolean function level•They exhibit a wide variety of symmetries of all types•Each simulation was performed on a dedicated 2.06

Ghz Xeon processor with 2 GB of 233 Mhz memory•The simulation rate is 500,000 input vectors/sec•All of the simulations are compiled simulations•Symmetry detection takes less than a second for

each circuit in simulation

Exp1•Determine the number of anti-symmetries that

appear in these circuits•This experiment verifies that anti-symmetries are

indeed prevalent enough to be worth pursuing

Exp2•Determine the number of classical symmetries in

each of the four categories

Ex3•Symmetry masking phenomenon

Ex4•Simulation running time (not include symmetry

detection time)

Conclusion•Even though detecting anti-symmetries is somewhat

more difficult than detecting classical symmetries, the detection can be done quickly, virtually always with beneficial results

•There are other types of relations that may permit detection of even more symmetries

Comment-Advantage•Stimulate my thoughts of symmetries

Comment-Disadvantage• The key word simulation in the title does not be well

described• Not well organized, it is hard to follow the architecture of this

paper• No preliminaries and any definitions• No enough background and explanation for readers• Some • Several non-clear description and denotation•Many stupid mistakes• Non-clear picture• Experimental results are not effective