logic synthesis for asynchronous circuits based on petri net unfoldings and incremental sat

24
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

Upload: caesar

Post on 21-Jan-2016

34 views

Category:

Documents


0 download

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

TRANSCRIPT

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

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

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

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

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

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

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

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

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

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’

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

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’

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

7

Example: Deriving EquationsCode Nxtdtack Nxtlds Nxtd Nxtcsc001000000000100000100001011000010000110000100101011100010100110100110101011110011111111111110111

0000000000001111

0001000100011111

0000000000010111

0011000100010011

Eqn d d csc csc ldtack dsr(ldtackcsc)

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

8

Example: Resulting Circuit

Device

d

Data TransceiverBus

dsr

dtacklds

ldtack

csc

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

9

State Graphs:

Relatively easy theory Many efficient algorithms

Not visual State space explosion problem

State Graphs vs. Unfoldings

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

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

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

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

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

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

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

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

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

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

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

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}

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

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’’

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

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 }

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

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!

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

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

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

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

Page 21: Logic Synthesis for Asynchronous Circuits Based on Petri Net Unfoldings and 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

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

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

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

23

Future Work

SG Unf

Checking consistency

Checking semi-modularity

Deadlock detection

Checking CSC

Enforcing CSC

Deriving equations

Technology mapping

Timing assumptions?

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

24

Thank you!Any questions?