Logic Synthesis for Asynchronous Circuits Based on Petri Net Unfoldings and Incremental SAT

Preview:

DESCRIPTION

Logic Synthesis for Asynchronous Circuits Based on Petri Net Unfoldings and Incremental SAT. Victor Khomenko , Maciej Koutny , and Alex Yakovlev University of Newcastle upon Tyne. Talk Outline. Introduction Asynchronous circuits Logic synthesis based on state graphs - PowerPoint PPT Presentation

Citation preview

Logic Synthesis for

Asynchronous Circuits Based

on Petri Net Unfoldings and

Incremental SAT

Victor Khomenko, Maciej Koutny,

and Alex Yakovlev

University of Newcastle upon Tyne

2

Talk Outline

• Introduction Asynchronous circuits Logic synthesis based on state graphs State graphs vs. net unfoldings

• Logic synthesis based on net unfoldings

• Experimental results

• Future work

3

Asynchronous CircuitsAsynchronous circuits – no clocks: Low power consumption Average-case rather than worst-case

performance Low electro-magnetic emission Modularity – no problems

with the clock skew

Hard to synthesize The theory is not sufficiently developed Limited tool support

4

Example: VME Bus Controller

lds-d- ldtack- ldtack+

dsr- dtack+ d+

dtack- dsr+ lds+

DeviceVME Bus

Controller

lds

ldtack

d

Data Transceiver

Bus

dsrdtack

5

Example: CSC Conflict

dtack- dsr+

dtack- dsr+

dtack- dsr+

00100

ldtack- ldtack- ldtack-

0000010000

lds- lds- lds-

01100 01000 11000

lds+

ldtack+

d+

dtack+dsr-d-

01110 01010 11010

01111 11111 11011

11010

10010

M’’ M’

6

Example: Enforcing CSC

dtack- dsr+

dtack- dsr+

dtack- dsr+

001000

ldtack- ldtack- ldtack-

000000 100000

lds- lds- lds-

011000 010000 110000

lds+

ldtack+

d+

dtack+dsr-

d-

011100 010100 110100

011111 111111 110111

110101

100101

011110

csc+

csc-

100001

M’’ M’

7

Example: Deriving EquationsCode Nxtdtack Nxtlds Nxtd Nxtcsc001000000000100000100001011000010000110000100101011100010100110100110101011110011111111111110111

0000000000001111

0001000100011111

0000000000010111

0011000100010011

Eqn d d csc csc ldtack dsr(ldtackcsc)

8

Example: Resulting Circuit

Device

d

Data TransceiverBus

dsr

dtacklds

ldtack

csc

9

State Graphs:

Relatively easy theory Many efficient algorithms

Not visual State space explosion problem

State Graphs vs. Unfoldings

10

State Graphs vs. UnfoldingsUnfoldings:

Alleviate the state space explosion problem More visual than state graphs Proven efficient for model checking

Quite complicated theory Not sufficiently investigated Relatively few algorithms

11

Complex-gate synthesis

State Graphs vs. Unfoldings

SG Unf

Checking consistency

Checking semi-modularity

Deadlock detection

Checking CSC

Enforcing CSC

Deriving equations

Technology mapping

DATE’03

ACSD’04

DATE’02 &ACSD’03

12

Synthesis using unfoldingsOutline of the algorithm:

for each output signal z

compute (minimal) supports of z

for each ‘promising’ support X

compute the projection of the set of reachable encodings onto X

sorting them according to the corresponding values of Nxtz

apply Boolean minimization to the obtained ON- and OFF-sets

choose the best implementation of z

13

CSCz property

• The CSC property: the next-state function of every output signal is a well-defined Boolean function of encoding of current state, i.e., all the signals can be used in its support

• The CSCz property: Nxtz is a well-defined Boolean function of encoding of current state; again, all the signals can be used in its support

• The CSCz property: Nxtz is a well-defined Boolean function of projection of the encoding of the current state on set of signals X; i.e., X is a support

X

X

14

CSCz conflicts

• States M’ and M’’ are in CSCz conflict if

Codex(M’)=Codex(M’’) for all xX, and

Nxtz(M’) Nxtz(M’’)

• Nxtz can be expressed as a Boolean function

with support X iff there are no CSCz conflicts

X

X

X

15

Example: CSCz conflictXdtack- dsr+

dtack- dsr+

dtack- dsr+

001000

ldtack- ldtack- ldtack-

000000 100000

lds- lds- lds-

011000 010000 110000

lds+

ldtack+

d+

dtack+dsr-

d-

011100 010100 110100

011111 111111 110111

110101

100101

011110

csc+

csc-

100001

Nxtcsc (M’)=1

Nxtcsc (M’’)=0

M’’

M’

X={dsr, ldtack}

16

Example: CSCz conflict in unfolding

lds-

d-

ldtack-

ldtack+ dsr-dtack+d+

dtack-

dsr+ lds+ csc+

dsr+e1 e2 e3 e4 e5 e6 e7 e9

e11

e14e10e8

X

dsr ldtack dtack lds dcsc

Code(C’) 1 1 0 1 0 1

Code(C’’) 1 1 0 0 0 0

csc+ csc-

e12

e13

Nxtcsc = dsr (ldtack csc)

X

Nxtcsc (C’)=1Nxtcsc (C’’)=0

C’ C’’

17

Computing supports

• Using unfoldings, it is possible to construct a Boolean formula CSCz(X,…) such that CSCz(X,…)[Y/X] is satisfiable iff Y is not a support

• The projection of the set of satisfying assignments of CSCz(X,…) onto X is the set of all non-supports of z (it is sufficient to compute the maximal elements of this projection)

• The set of supports can then be computed as

{ Y | YX, for all maximal non-supports X }

18

Outline of the algorithmfor each output signal z

compute (minimal) supports of z

for each ‘promising’ support X

compute the projection of the set of reachable encodings onto X

sorting them according to the corresponding values of Nxtz

apply Boolean minimization to the obtained ON- and OFF-sets

choose the best implementation of z

Need to know how to compute projections!

19

Example: projections

=(a b)(a b)(c d e)a b c d e0 1 0 0 10 1 0 1 00 1 0 1 10 1 1 0 00 1 1 0 10 1 1 1 00 1 1 1 11 0 0 0 11 0 0 1 01 0 0 1 11 0 1 0 01 0 1 0 11 0 1 1 01 0 1 1 1

a b

Proj{a,b,c}

a b c0 1 00 1 11 0 01 0 1

max Proj{a,b,c}

a b c0 1 11 0 1

min Proj{a,b,c}

a b c0 1 01 0 0

20

Computing projections

0 1 0 0 1

Proj{a,b,c} a b c d e

0 1 1 0 0

1 0 0 0 1

1 0 1 0 0UNSAT

(abc) (abc) (abc) (abc)

a b

=(ab)(ab)(cde)

• Incremental SAT

21

Optimizations

Triggers belong to every support –

significantly improves the efficiency

Further optimizations are possible for

certain net subclasses, e.g. unique-choice

nets

22

Experimental Results

• Unfoldings of STGs are almost always small in practice and thus well-suited for synthesis

• Huge memory savings• Dramatic speedups• Every valid speed-independent solution can be

obtained using this method, so no loss of quality

• We can trade off quality for speed (e.g. consider only minimal supports): in our experiments, the solutions are the same as Petrify’s (up to Boolean minimization)

• Multiple implementations produced

23

Future Work

SG Unf

Checking consistency

Checking semi-modularity

Deadlock detection

Checking CSC

Enforcing CSC

Deriving equations

Technology mapping

Timing assumptions?

24

Thank you!Any questions?

Recommended