Top Banner
MLO: A Multi-Level Optimizer For Burst Mode Asynchronous Controllers Walter Dearing Steven Nowick Computer Science Department Columbia University This work was supported by NSF ITR Award No. NSF-CCR-0086036 and by an Initiatives in Science and Engineering (ISE) grant from Columbia University (from the Office of the Executive Vice President for Research)
46

A Multi-Level Optimizer For Burst Mode …nowick/asynctools/MLO-v0.9-tutorial.pdfMLO: A Multi-Level Optimizer For Burst Mode Asynchronous Controllers Walter Dearing Steven Nowick Computer

Jul 17, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: A Multi-Level Optimizer For Burst Mode …nowick/asynctools/MLO-v0.9-tutorial.pdfMLO: A Multi-Level Optimizer For Burst Mode Asynchronous Controllers Walter Dearing Steven Nowick Computer

MLO

:A

Mul

ti-Le

vel O

ptim

izer

For

Bur

st M

ode

Asy

nchr

onou

s C

ontr

olle

rs

Wal

ter D

earin

g

Ste

ven

Now

ick

Com

pute

r Sci

ence

Dep

artm

ent

Col

umbi

a U

nive

rsity

This

wor

k w

as s

uppo

rted

by N

SF

ITR

Aw

ard

No.

NS

F-C

CR

-008

6036

and

by a

n In

itiat

ives

in S

cien

ce a

nd E

ngin

eerin

g (IS

E) g

rant

from

Col

umbi

a U

nive

rsity

(fro

m th

e O

ffice

of t

he E

xecu

tive

Vic

e P

resi

dent

for R

esea

rch)

Page 2: A Multi-Level Optimizer For Burst Mode …nowick/asynctools/MLO-v0.9-tutorial.pdfMLO: A Multi-Level Optimizer For Burst Mode Asynchronous Controllers Walter Dearing Steven Nowick Computer

2

MLO

: Acc

ess

Info

rmat

ion

!A

cces

sibl

e on

the

web

from

:

!In

itial

Rel

ease

!O

ne v

ersi

on �

for L

inux

Dis

tribu

tions

!In

clud

es

!C

ompl

ete

Tuto

rial

!D

ocum

enta

tion

!Ex

ampl

es

!To

ol re

quire

s P

ytho

n in

terp

rete

r to

run:

!C

onsu

lt R

EA

DM

E fo

r MLO

inst

alla

tion

info

rmat

ion

http

://w

ww

1.cs

.col

umbi

a.ed

u/~n

owic

k/as

ynct

ools

http

://w

ww

.pyt

hon.

org/

dow

nloa

d/

Page 3: A Multi-Level Optimizer For Burst Mode …nowick/asynctools/MLO-v0.9-tutorial.pdfMLO: A Multi-Level Optimizer For Burst Mode Asynchronous Controllers Walter Dearing Steven Nowick Computer

3

Out

line

!In

trodu

ctio

n to

MLO

(Mul

ti-Le

vel O

ptim

izer

)

!O

verv

iew

of f

eatu

res

!E

xam

ple

of fe

atur

es

!E

xam

ple

of g

ate

netw

orks

pro

duce

d

!B

uilt-

in v

erifi

er

!B

rief t

utor

ial

Page 4: A Multi-Level Optimizer For Burst Mode …nowick/asynctools/MLO-v0.9-tutorial.pdfMLO: A Multi-Level Optimizer For Burst Mode Asynchronous Controllers Walter Dearing Steven Nowick Computer

4

Intro

duct

ion

to M

LO

!In

trod

uctio

n to

MLO

(Mul

ti-Le

vel O

ptim

izer

)

!O

verv

iew

of f

eatu

res

!E

xam

ple

of fe

atur

es

!E

xam

ple

of g

ate

netw

orks

pro

duce

d

!B

uilt-

in v

erifi

er

!B

rief t

utor

ial

Page 5: A Multi-Level Optimizer For Burst Mode …nowick/asynctools/MLO-v0.9-tutorial.pdfMLO: A Multi-Level Optimizer For Burst Mode Asynchronous Controllers Walter Dearing Steven Nowick Computer

5

Intro

duct

ion

to M

LO!

MLO

is a

n in

tegr

ated

pos

t-pro

cess

ing

(i.e.

bac

kend

) too

l for

Min

imal

ist.

!Ta

rget

ed to

mul

ti-le

vel l

ogic

.

!In

con

trast

, Min

imal

ist c

urre

ntly

is ta

rget

ed to

two-

leve

l log

ic.

!D

esig

ned

to w

ork

on c

ombi

natio

nalh

azar

d-fr

ee lo

gic

for B

urst

Mod

e

cont

rolle

rs.

!U

ses

�haz

ard-

non-

incr

easi

ng�t

rans

form

s.

!O

utpu

t of M

LO is

Ver

ilog.

!M

LO is

a s

tand

alon

e to

ol ru

nnin

g fro

m th

e Li

nux

shel

l out

side

of

Min

imal

ist.

Page 6: A Multi-Level Optimizer For Burst Mode …nowick/asynctools/MLO-v0.9-tutorial.pdfMLO: A Multi-Level Optimizer For Burst Mode Asynchronous Controllers Walter Dearing Steven Nowick Computer

6

Intro

duct

ion

to M

LO

Mul

ti-le

vel t

ool f

low

BM

SPE

C (*

.bm

s)

MIN

IMAL

IST

PLA

file

(*.s

ol)

Tran

sitio

n fil

e(*

.pla

)

Mul

ti-Le

vel O

ptim

izer

Veril

ogfil

e(*

-ML.

v)

Two-

Leve

l

Mul

ti-Le

vel

New

Page 7: A Multi-Level Optimizer For Burst Mode …nowick/asynctools/MLO-v0.9-tutorial.pdfMLO: A Multi-Level Optimizer For Burst Mode Asynchronous Controllers Walter Dearing Steven Nowick Computer

7

Ove

rvie

ws

of fe

atur

es

!In

trodu

ctio

n to

MLO

(Mul

ti-Le

vel O

ptim

izer

)

!O

verv

iew

of f

eatu

res

!E

xam

ple

of fe

atur

es

!E

xam

ple

of g

ate

netw

orks

pro

duce

d

!B

uilt-

in v

erifi

er

!B

rief t

utor

ial

Page 8: A Multi-Level Optimizer For Burst Mode …nowick/asynctools/MLO-v0.9-tutorial.pdfMLO: A Multi-Level Optimizer For Burst Mode Asynchronous Controllers Walter Dearing Steven Nowick Computer

8

Feat

ure

Set

�O

verv

iew

MLO

has

man

y fe

atur

es w

hich

are

orth

ogon

al a

nd c

an

be u

sed

toge

ther

.

1.G

ate

fan-

in li

mita

tion

2.N

egat

ive-

logi

c

3.C

ritic

al E

vent

Opt

imiz

er (C

EO)

!Tw

o m

odes

a)A

utom

ated

b)U

ser-

spec

ified

Page 9: A Multi-Level Optimizer For Burst Mode …nowick/asynctools/MLO-v0.9-tutorial.pdfMLO: A Multi-Level Optimizer For Burst Mode Asynchronous Controllers Walter Dearing Steven Nowick Computer

9

Feat

ure

Set

�G

oal o

f CE

O

Goa

l of C

EO

is to

redu

ce th

e cr

itica

l pat

hof

crit

ical

eve

nts.

!C

ritic

al e

vent

sar

e de

fined

as

a tra

nsiti

on o

f a p

rimar

y

outp

ut in

resp

onse

to a

n in

put t

rans

ition

!D

one

by m

ovin

g cr

itica

l inp

uts

clos

er to

the

prim

ary

outp

ut.

!In

tent

ion

is fo

r crit

ical

inpu

ts to

trav

el th

roug

h th

e ci

rcui

t

as fa

st a

pos

sibl

e.

Page 10: A Multi-Level Optimizer For Burst Mode …nowick/asynctools/MLO-v0.9-tutorial.pdfMLO: A Multi-Level Optimizer For Burst Mode Asynchronous Controllers Walter Dearing Steven Nowick Computer

10

Feat

ure

Set

�C

EO M

ode

1 -

Aut

omat

ed M

ode

CE

O d

efau

lts to

aut

omat

ed m

ode

if no

use

r inp

ut s

peci

fied.

!To

ol a

utom

atic

ally

opt

imiz

es li

kely

crit

ical

pat

hs.

!Fo

cuse

s op

timiz

atio

ns o

n pr

imar

y in

put-t

o-ou

tput

path

sin

volv

ed in

dyn

amic

tran

sitio

ns.

!(i.

e. 0"

1 / 1

"0)

Page 11: A Multi-Level Optimizer For Burst Mode …nowick/asynctools/MLO-v0.9-tutorial.pdfMLO: A Multi-Level Optimizer For Burst Mode Asynchronous Controllers Walter Dearing Steven Nowick Computer

11

Feat

ure

Set

�C

EO M

ode

2 -

Use

r-Sp

ecifi

ed C

ritic

al E

vent

s

!U

ser m

ay k

now

whi

ch p

rimar

y in

put(s

) are

impo

rtant

to c

ritic

al p

rimar

y ou

tput

.

!D

one

by d

efin

ing

a cr

itica

l tra

nsiti

on&

inpu

t/out

put

pair

at th

e B

urst

-Mod

e sp

ec le

vel.

!Fo

r par

ticul

ar o

utpu

ts s

peci

fied

durin

g tra

nsiti

on, u

ser

over

rides

auto

mat

ed m

ode.

!C

onsi

der t

he s

ituat

ion

on th

e ne

xt s

lide

whe

re u

ser s

peci

fies

inpu

t & o

utpu

ts o

ff sp

ecifi

c ar

cs.

Use

r can

spe

cify

det

ails

for C

EO

to u

se.

Page 12: A Multi-Level Optimizer For Burst Mode …nowick/asynctools/MLO-v0.9-tutorial.pdfMLO: A Multi-Level Optimizer For Burst Mode Asynchronous Controllers Walter Dearing Steven Nowick Computer

12

Feat

ure

Set

�C

EO M

ode

2 -

Use

r-Sp

ecifi

ed C

ritic

al E

vent

s

Cas

e 1:

Non

col

oriz

ed

arc.

Use

r-Sp

ecifi

ed

noth

ing

is c

ritic

al. D

efau

lts

to a

utom

ated

mod

e fo

r ev

ery

outp

ut.

Cas

e 2:

Som

e ou

tput

s co

loriz

ed, s

ome

outp

uts

not.

Both

use

r-spe

cifie

d da

ta a

nd a

utom

ated

ap

proa

ches

are

use

d to

de

term

ine

criti

calit

y.

ITEv

entR

eqw

ill u

se u

ser-

spec

ified

dat

a to

de

term

ine

criti

calit

y.

Ctr

incR

eqw

ill d

efau

lt to

au

tom

ated

mod

e to

de

term

ine

criti

calit

y.

Cas

e 3:

Ever

y ou

tput

is

colo

rized

. Aut

omat

ed

appr

oach

is n

ever

used

. In

tITR

eq-i

s cr

itica

l with

re

spec

t to

Ctr

IncR

eq-,

whi

le IT

Even

t2Ti

cks-

is

NO

T cr

itica

l to

Ctr

IncR

eq-

.

Use

r-Sp

ecifi

ed C

ritic

al A

rcs

Hig

hlig

hted

inR

ed

IntIT

Req

-

ITEv

ent2

Tick

s-/

Ctr

IncR

eq-

50 1

23

4

IntIT

Req

+ /

ITEv

entR

eq+

IntIT

Req

+ /

ITEv

entR

eq+

ITEv

ent2

Tick

s-

Ctr

IncA

ck+

/ Ctr

IncR

eq-

IntIT

Req

-/

ITEv

entR

eq-

IntIT

Req

+ /

ITEv

entR

eq+

CtIn

cAck

-/

ITEv

entR

eq+

ITEv

ent2

Tick

s-/

Ctr

IncR

eq+

ITEv

entR

eq-

Page 13: A Multi-Level Optimizer For Burst Mode …nowick/asynctools/MLO-v0.9-tutorial.pdfMLO: A Multi-Level Optimizer For Burst Mode Asynchronous Controllers Walter Dearing Steven Nowick Computer

13

Exa

mpl

e of

feat

ures

!In

trodu

ctio

n to

MLO

(Mul

ti-Le

vel O

ptim

izer

)

!O

verv

iew

of f

eatu

res

!Ex

ampl

e of

feat

ures

!E

xam

ple

of g

ate

netw

orks

pro

duce

d

!B

uilt-

in v

erifi

er

!B

rief t

utor

ial

Page 14: A Multi-Level Optimizer For Burst Mode …nowick/asynctools/MLO-v0.9-tutorial.pdfMLO: A Multi-Level Optimizer For Burst Mode Asynchronous Controllers Walter Dearing Steven Nowick Computer

14

Feat

ure

Set

-In

itial

Tw

o-Le

vel

Impl

emen

tatio

n (b

efor

e ap

plyi

ng M

LO)

The

next

four

slid

es

pres

ent d

iffer

ent M

LO

outp

ut e

xam

ples

. Fo

r eac

h

exam

ple,

the

star

ting

circ

uit (

inpu

t to

MLO

) is

this

circ

uit

Two-

leve

l Str

uctu

re fr

om M

inim

alis

t Out

put

Page 15: A Multi-Level Optimizer For Burst Mode …nowick/asynctools/MLO-v0.9-tutorial.pdfMLO: A Multi-Level Optimizer For Burst Mode Asynchronous Controllers Walter Dearing Steven Nowick Computer

15

Feat

ure

Set

Exa

mpl

e 1

-G

ate

Fan-

in L

imita

tion

Res

ult o

f MLO

: M

ulti-

Leve

l circ

uit w

ith A

ND

gat

e fa

n-in

lim

it of

2

Page 16: A Multi-Level Optimizer For Burst Mode …nowick/asynctools/MLO-v0.9-tutorial.pdfMLO: A Multi-Level Optimizer For Burst Mode Asynchronous Controllers Walter Dearing Steven Nowick Computer

16

Feat

ure

Set

Exa

mpl

e 2

-N

egat

ive

Logi

c

Res

ult o

f MLO

: M

ulti-

Leve

l Circ

uit u

sing

MLO

Neg

ativ

e Lo

gic

This

mod

e ca

refu

lly o

ptim

izes

on

ly h

azar

d no

n-in

crea

sing

sa

fe tr

ansf

orm

atio

ns

(DeM

orga

n�s

Law

).

Opt

imiz

atio

ns a

re a

lso

incl

uded

to c

aref

ully

elim

inat

e ex

tra

inve

rter

s.

Page 17: A Multi-Level Optimizer For Burst Mode …nowick/asynctools/MLO-v0.9-tutorial.pdfMLO: A Multi-Level Optimizer For Burst Mode Asynchronous Controllers Walter Dearing Steven Nowick Computer

17

Feat

ure

Set

Exa

mpl

e 3

-C

EO Res

ult o

f MLO

: M

ulti-

Leve

l Circ

uit a

fter M

LOC

EOis

use

d

Gat

e D

ecom

pose

d.In

put

intit

req

is m

ore

criti

cal t

o

outp

ut it

even

treq

than

ctrin

cack

�and

y0�

criti

cal p

rimar

y in

put-

to-o

utpu

t pat

h

Page 18: A Multi-Level Optimizer For Burst Mode …nowick/asynctools/MLO-v0.9-tutorial.pdfMLO: A Multi-Level Optimizer For Burst Mode Asynchronous Controllers Walter Dearing Steven Nowick Computer

18

Feat

ure

Set

Exa

mpl

e 4

-C

ombi

ned

Res

ult o

f MLO

: Mul

ti-Le

vel C

ircui

t with

neg

ativ

e lo

gic,

AN

D g

ate

fan-

in li

mit

of 2

, an

d C

EO.

Gat

e fa

n-in

lim

it of

2

Neg

ativ

e Lo

gic

CEO

Opt

imiz

es C

ritic

al P

ath

Page 19: A Multi-Level Optimizer For Burst Mode …nowick/asynctools/MLO-v0.9-tutorial.pdfMLO: A Multi-Level Optimizer For Burst Mode Asynchronous Controllers Walter Dearing Steven Nowick Computer

19

Exa

mpl

e of

gat

e ne

twor

ks

prod

uced

!In

trodu

ctio

n to

MLO

(Mul

ti-Le

vel O

ptim

izer

)

!O

verv

iew

of f

eatu

res

!E

xam

ple

of fe

atur

es

!Ex

ampl

e of

gat

e ne

twor

ks p

rodu

ced

!B

uilt-

in v

erifi

er

!B

rief t

utor

ial

Page 20: A Multi-Level Optimizer For Burst Mode …nowick/asynctools/MLO-v0.9-tutorial.pdfMLO: A Multi-Level Optimizer For Burst Mode Asynchronous Controllers Walter Dearing Steven Nowick Computer

20

Gat

e D

ecom

posi

tion

!G

ates

can

be

deco

mpo

sed

in tw

o w

ays

!C

EO

�re

sulti

ng n

etw

ork

will

be

casc

aded

!Fa

n-in

lim

itatio

ns �

resu

lting

net

wor

k w

ill b

e ba

lanc

ed

!N

etw

ork

can

be a

mix

ture

of t

wo

met

hods

.

!C

onsi

der a

6 in

put A

ND

gat

e�.

Page 21: A Multi-Level Optimizer For Burst Mode …nowick/asynctools/MLO-v0.9-tutorial.pdfMLO: A Multi-Level Optimizer For Burst Mode Asynchronous Controllers Walter Dearing Steven Nowick Computer

21

Gat

e D

ecom

posi

tion

-C

asca

ded

Gat

e is

dec

ompo

sed

base

d on

prio

rity

diffe

renc

e of

inpu

ts

Onl

y us

ed fo

r CEO

Low

est I

nput

Prio

rity

H

ighe

st In

put P

riorit

y

(s

tate

var

iabl

es o

nly)

Page 22: A Multi-Level Optimizer For Burst Mode …nowick/asynctools/MLO-v0.9-tutorial.pdfMLO: A Multi-Level Optimizer For Burst Mode Asynchronous Controllers Walter Dearing Steven Nowick Computer

22

Gat

e D

ecom

posi

tion

�B

alan

ced

Gat

e is

dec

ompo

sed

stric

tly b

ased

on

fan-

in li

mita

tion

Onl

y us

ed fo

rgat

efa

n-in

lim

itatio

n

All

Inpu

ts h

ave

the

sam

e pr

iorit

y

Page 23: A Multi-Level Optimizer For Burst Mode …nowick/asynctools/MLO-v0.9-tutorial.pdfMLO: A Multi-Level Optimizer For Burst Mode Asynchronous Controllers Walter Dearing Steven Nowick Computer

23

Gat

e D

ecom

posi

tion

�M

ixG

ate

is d

ecom

pose

d ba

sed

on b

oth

diffe

renc

e in

prio

rity

of in

puts

and

fan-

in li

mits

Com

bina

tion

ofga

tefa

n-in

lim

itatio

n an

dC

EO

Low

Prio

rity

M

ediu

m P

riorit

y

Hig

h Pr

iorit

y

Page 24: A Multi-Level Optimizer For Burst Mode …nowick/asynctools/MLO-v0.9-tutorial.pdfMLO: A Multi-Level Optimizer For Burst Mode Asynchronous Controllers Walter Dearing Steven Nowick Computer

24

Brie

f tut

oria

l

!In

trodu

ctio

n to

MLO

(Mul

ti-Le

vel O

ptim

izer

)

!O

verv

iew

of f

eatu

res

!E

xam

ple

of fe

atur

es

!E

xam

ple

of g

ate

netw

orks

pro

duce

d

!B

uilt-

in v

erifi

er

!B

rief t

utor

ial

Page 25: A Multi-Level Optimizer For Burst Mode …nowick/asynctools/MLO-v0.9-tutorial.pdfMLO: A Multi-Level Optimizer For Burst Mode Asynchronous Controllers Walter Dearing Steven Nowick Computer

25

Bui

lt-in

Ver

ifier

!A

verif

ier i

s bu

ilt in

to M

LO.

!Ve

rifie

s M

LO o

utpu

t is

func

tiona

lly c

orre

ctan

d ha

zard

free

!C

ompa

res

two-

leve

l stru

ctur

e (M

inim

alis

t out

put)

to m

ulti-

leve

l

stru

ctur

e (M

LO o

utpu

t).

!Ve

rifie

s sp

ecifi

c pr

oper

ties

hold

for e

ach

gate

net

wor

k in

mul

ti-le

vel

stru

ctur

e.

!M

ust b

e ex

plic

itly

set u

sing

com

man

d lin

e fla

g (n

ot ru

n by

def

ault)

Page 26: A Multi-Level Optimizer For Burst Mode …nowick/asynctools/MLO-v0.9-tutorial.pdfMLO: A Multi-Level Optimizer For Burst Mode Asynchronous Controllers Walter Dearing Steven Nowick Computer

26

Brie

f tut

oria

l

!In

trodu

ctio

n to

MLO

(Mul

ti-Le

vel O

ptim

izer

)

!O

verv

iew

of f

eatu

res

!E

xam

ple

of fe

atur

es

!E

xam

ple

of g

ate

netw

orks

pro

duce

d

!B

uilt-

in v

erifi

er

!B

rief t

utor

ial

Page 27: A Multi-Level Optimizer For Burst Mode …nowick/asynctools/MLO-v0.9-tutorial.pdfMLO: A Multi-Level Optimizer For Burst Mode Asynchronous Controllers Walter Dearing Steven Nowick Computer

27

Tuto

rial

!Th

e sp

ec fi

le h

p-ir.

bms

will

be u

sed

durin

g th

is tu

toria

l.

This

can

be

foun

d in

the

exam

ples

fold

er.

!E

very

com

man

d us

ed in

the

tuto

rial i

s al

so d

escr

ibed

in

the

tool

hel

p m

enu.

!To

dis

play

gen

eral

hel

p m

enu

>MLO.py--help

!To

dis

play

use

r-sp

ecifi

ed c

ritic

al e

vent

hel

p m

enu

>MLO.py--more_help

Page 28: A Multi-Level Optimizer For Burst Mode …nowick/asynctools/MLO-v0.9-tutorial.pdfMLO: A Multi-Level Optimizer For Burst Mode Asynchronous Controllers Walter Dearing Steven Nowick Computer

28

Tuto

rial -

Setu

pC

reat

e th

e fil

es n

eede

d fo

r MLO

to p

roce

ss

Step

1 �

Cre

ate

wor

king

dire

ctor

y> mkdir

MLO_tutorial

Step

2 �

Cop

y sp

ec fi

le> cp examples/hp-ir.bms

MLO_tutorial/

Step

3 �

Ente

r Dire

ctor

y> cd

MLO_tutorial

Step

4 �

Cre

ate

.pla

& .s

ol fi

les

>minimalist-speed hp-ir.bms

single-output fedback

Step

5 �

Verif

y fil

es c

reat

ed> Verify hp_IR-Fs.sol

and hp_IR-

Fs.pla

has been created

Two-

Leve

lcirc

uit f

rom

Min

imal

ist

Ass

umes

Min

imal

ist i

s lo

aded

and

path

s ar

e se

t cor

rect

ly!

Page 29: A Multi-Level Optimizer For Burst Mode …nowick/asynctools/MLO-v0.9-tutorial.pdfMLO: A Multi-Level Optimizer For Burst Mode Asynchronous Controllers Walter Dearing Steven Nowick Computer

29

Tuto

rial �

Gat

e Fa

n-In

Lim

itatio

nIm

plem

ent c

ircui

t with

gat

e fa

n-in

lim

it of

2 fo

r AN

D g

ates

. Th

is c

an b

edo

ne u

sing

two

diffe

rent

met

hods

(res

ults

will

be th

e sa

me)

Step

1 �

Run

MLO

> MLO.py

–A 2 –d hp_IR-Fs.sol

Step

2 �

View

Res

ults

> less hp_IR-Fs-ML.v

Step

3 �

Verif

y R

esul

ts> Compare output with circuit on

next page

Step

1 �

Run

MLO

> MLO.py

–M 2 –d hp_IR-Fs.sol

Step

2 �

View

Res

ults

> less hp_IR-Fs-ML.v

Step

3 �

Verif

y R

esul

ts> Compare output with circuit on

next page

Met

hod

1: I

ndep

ende

ntly

M

etho

d 2:

Glo

bally

S

peci

fy fa

n-in

lim

it fo

r AN

D g

ates

onl

y

S

peci

fy fa

n-in

lim

it fo

r eve

ry g

ate

type

Page 30: A Multi-Level Optimizer For Burst Mode …nowick/asynctools/MLO-v0.9-tutorial.pdfMLO: A Multi-Level Optimizer For Burst Mode Asynchronous Controllers Walter Dearing Steven Nowick Computer

30

Tuto

rial �

Gat

e Fa

n-In

Lim

itatio

nmodule hp_IR_Fs(intitreq, itevent2ticks, ctrincack, iteventreq, ctrincreq);

input intitreq, itevent2ticks, ctrincack;

output iteventreq, ctrincreq;

wire neg_ctrincack, neg_ctrincreq_i, neg_itevent2ticks, ctrincreq_i, ctrincreq, _i1;

wire _i2, _i3;

// Wires needed for multi-level

wire _i4, _i5, _i6;

// Feedback variables

assign ctrincreq_i= ctrincreq;

// Negative input literals

not (neg_ctrincack, ctrincack);

not (neg_ctrincreq_i, ctrincreq_i);

not (neg_itevent2ticks, itevent2ticks);

// First plane of logic

// --Network implementing gate _i3 --

and (_i3, _i4, neg_ctrincack);

and (_i4, intitreq, ctrincreq_i);

// --Network implementing gate _i2 --

assign _i2 = itevent2ticks;

// --Network implementing gate _i1 --

and (_i1, _i5, _i6);

and (_i5, neg_ctrincack, neg_ctrinreq_i);

and (_i6, intitreq, neg_itevent2ticks);

// Second plane of logic

// --Network implementing gate CtrIncReq--

or (ctrincreq, _i3, _i2);

// --Network implementing gate ITEventReq --

assign iteventreq= _i1;

endmodule

MLO

Out

put:

2 A

ND

gat

es h

ave

been

dec

ompo

sed

base

d on

fan-

in li

mit

of 2

.

Page 31: A Multi-Level Optimizer For Burst Mode …nowick/asynctools/MLO-v0.9-tutorial.pdfMLO: A Multi-Level Optimizer For Burst Mode Asynchronous Controllers Walter Dearing Steven Nowick Computer

31

Tuto

rial �

Neg

ativ

e Lo

gic

Impl

emen

t circ

uit u

sing

neg

ativ

e lo

gic.

Step

1 �

Run

MLO

> MLO.py

–n –d hp_IR-Fs.sol

Step

2 �

View

Res

ults

> less hp_IR-Fs-ML.v

Step

3 �

Verif

y R

esul

ts> Compare output with

circuit on next page

MLO

Res

ult:

Mul

ti-Le

vel C

ircui

t usi

ng n

egat

ive

logi

c on

ly

Page 32: A Multi-Level Optimizer For Burst Mode …nowick/asynctools/MLO-v0.9-tutorial.pdfMLO: A Multi-Level Optimizer For Burst Mode Asynchronous Controllers Walter Dearing Steven Nowick Computer

32

Tuto

rial �

Neg

ativ

e Lo

gic

module hp_IR_Fs(intitreq, itevent2ticks, ctrincack, iteventreq, ctrincreq);

input intitreq, itevent2ticks, ctrincack;

output iteventreq, ctrincreq;

wire neg__i2, neg_ctrincack, neg_intitreq, ctrincreq_i, ctrincreq, _i1;

wire _i2, _i3;

// Wires needed for multi-level

wire neg__i3;

// Feedback variables

assign ctrincreq_i= ctrincreq;

// Negative input literals

not (neg__i2, _i2);

not (neg_ctrincack, ctrincack);

not (neg_intitreq, intitreq);

// First plane of logic

// --Network implementing gate neg__i3 --

nand(neg__i3, neg_ctrincack, intitreq, ctrincreq_i);

// --Network implementing gate _i2 --

assign _i2 = itevent2ticks;

// --Network implementing gate _i1 --

nor (_i1, ctrincack, ctrincreq_i, neg_intitreq, itevent2ticks);

// Second plane of logic

// --Network implementing gate CtrIncReq--

nand(ctrincreq, neg__i3, neg__i2);

// --Network implementing gate ITEventReq --

assign iteventreq= _i1;

endmodule

MLO

Out

put:

Onl

y N

OT/

NO

R/N

AN

D g

ates

use

d.

Page 33: A Multi-Level Optimizer For Burst Mode …nowick/asynctools/MLO-v0.9-tutorial.pdfMLO: A Multi-Level Optimizer For Burst Mode Asynchronous Controllers Walter Dearing Steven Nowick Computer

33

Tuto

rial �

CE

O C

ritic

al E

vent

O

ptim

izer

(Aut

omat

ed M

ode)

Run

MLO

usi

ng d

efau

lts (C

EO o

n, n

o ga

te fa

n-in

lim

its, a

nd n

one

gativ

e lo

gic)

.

Step

1 �

Run

MLO

> MLO.py

hp_IR-Fs.sol

Step

2 �

View

Res

ults

> less hp_IR-Fs-ML.v

Step

3 �

Verif

y R

esul

ts> Compare output with

circuit on next page

Mul

ti-Le

vel c

ircui

t afte

r CEO

is u

sed

No

switc

h se

lect

ed: d

efau

lt is

CE

O in

aut

o m

ode

criti

cal p

rimar

y

inpu

t-to-

outp

ut p

ath

Page 34: A Multi-Level Optimizer For Burst Mode …nowick/asynctools/MLO-v0.9-tutorial.pdfMLO: A Multi-Level Optimizer For Burst Mode Asynchronous Controllers Walter Dearing Steven Nowick Computer

34

Tuto

rial �

CE

Omodule hp_IR_Fs(intitreq, itevent2ticks, ctrincack, iteventreq, ctrincreq);

input intitreq, itevent2ticks, ctrincack;

output iteventreq, ctrincreq;

wire neg_ctrincack, neg_itevent2ticks, neg_ctrincreq_i, ctrincreq_i, ctrincreq, _i1;

wire _i2, _i3;

// Wires needed for multi-level

wire _i4;

// Feedback variables

assign ctrincreq_i= ctrincreq;

// Negative input literals

not (neg_ctrincack, ctrincack);

not (neg_itevent2ticks, itevent2ticks);

not (neg_ctrincreq_i, ctrincreq_i);

// First plane of logic

// --Network implementing gate _i3 --

and (_i3, neg_ctrincack, intitreq, ctrincreq_i);

// --Network implementing gate _i2 --

assign _i2 = itevent2ticks;

// --Network implementing gate _i1 --

and (_i1, intitreq, _i4);

and (_i4, neg_itevent2ticks, neg_ctrincack, neg_ctrincreq_i);

// Second plane of logic

// --Network implementing gate CtrIncReq--

or (ctrincreq, _i2, _i3);

// --Network implementing gate ITEventReq --

assign iteventreq= _i1;

endmodule

MLO

Out

put:

Gat

e D

ecom

pose

d. I

nput

intit

req

is

mor

e cr

itica

l to

outp

ut it

even

treq

than

ne

g_ct

rinca

ckan

d ne

g_ct

rincr

eq_i

Page 35: A Multi-Level Optimizer For Burst Mode …nowick/asynctools/MLO-v0.9-tutorial.pdfMLO: A Multi-Level Optimizer For Burst Mode Asynchronous Controllers Walter Dearing Steven Nowick Computer

35

Tuto

rial �

Feat

ures

Mix

Feat

ures

can

be

mix

ed a

nd m

atch

ed.

This

exa

mpl

e do

es n

ot u

tiliz

e C

EO, b

ut it

doe

s ta

rget

neg

ativ

e lo

gic

circ

uit a

nd li

mits

fan-

in to

2.

Step

1 �

Run

MLO

> MLO.py

–d –n –R 2 –N 2 hp_IR-Fs.sol

Step

2 �

View

Res

ults

> less hp_IR-Fs-ML.v

Step

3 �

Verif

y R

esul

ts> Compare output with circuit on next

page

Page 36: A Multi-Level Optimizer For Burst Mode …nowick/asynctools/MLO-v0.9-tutorial.pdfMLO: A Multi-Level Optimizer For Burst Mode Asynchronous Controllers Walter Dearing Steven Nowick Computer

36

Tuto

rial �

Feat

ures

Mix

module hp_IR_Fs(intitreq, itevent2ticks, ctrincack, iteventreq, ctrincreq);

input intitreq, itevent2ticks, ctrincack;

output iteventreq, ctrincreq;

wire neg__i2, neg_ctrincack, neg_intitreq, neg_ctrincreq_i, neg_itevent2ticks, ctrincreq_i;

wire ctrincreq, _i1, _i2, _i3;

// Wires needed for multi-level

wire _i4, _i5, _i6, neg__i3;

// Feedback variables

assign ctrincreq_i= ctrincreq;

// Negative input literals

not (neg__i2, _i2);

not (neg_ctrincack, ctrincack);

not (neg_intitreq, intitreq);

not (neg_ctrincreq_i, ctrincreq_i);

not (neg_itevent2ticks, itevent2ticks);

// First plane of logic

// --Network implementing gate neg__i3 --

nand(neg__i3, _i4, neg_ctrincack);

nor (_i4, neg_intitreq, neg_ctrincreq_i);

// --Network implementing gate _i2 --

assign _i2 = itevent2ticks;

// --Network implementing gate _i1 --

nor (_i1, _i5, _i6);

nand(_i5, neg_ctrincack, neg_ctrincreq_i);

nand(_i6, intitreq, neg_itevent2ticks);

// Second plane of logic

// --Network implementing gate CtrIncReq--

nand(ctrincreq, neg__i3, neg__i2);

// --Network implementing gate ITEventReq --

assign iteventreq= _i1;

endmodule

MLO

Out

put:

Onl

y N

OT/

NO

R/N

AN

D g

ates

us

ed a

nd fa

n-in

lim

ited

to 2

Page 37: A Multi-Level Optimizer For Burst Mode …nowick/asynctools/MLO-v0.9-tutorial.pdfMLO: A Multi-Level Optimizer For Burst Mode Asynchronous Controllers Walter Dearing Steven Nowick Computer

37

Tuto

rial �

Use

r-S

peci

fied

Crit

ical

E

vent

s -O

verv

iew

!M

LO o

rigin

ally

nee

ded

only

two

files

to ru

n (*

.pla

and

*.so

l)

!To

util

ize

Use

r-S

peci

fied

Crit

ical

Eve

nts,

MLO

now

nee

ds tw

o

addi

tiona

l file

s:

1.st

ate_

info

.txt

2.*.

bms

spec

-file

Page 38: A Multi-Level Optimizer For Burst Mode …nowick/asynctools/MLO-v0.9-tutorial.pdfMLO: A Multi-Level Optimizer For Burst Mode Asynchronous Controllers Walter Dearing Steven Nowick Computer

38

Tuto

rial �

Use

r-S

peci

fied

Crit

ical

E

vent

s �

stat

e_in

fo.tx

tS

tate

min

imiz

atio

n da

ta is

nee

ded

to u

tiliz

e U

ser-

Spe

cifie

d C

ritic

al E

vent

s

!Th

is in

form

atio

n is

onl

y fo

und

on s

tand

ard

outp

ut d

urin

g ru

n of

Min

imal

ist.

!Th

eref

ore

new

pro

gram

cap

utur

e_m

in_d

ata

is n

eede

d to

redi

rect

Min

imal

ist

outp

ut to

sta

te_i

nfo.

txt

!R

uns

from

linu

xsh

ell

!W

rapp

er a

roun

d M

inim

alis

t cal

l

!Im

porta

nt to

not

e th

at c

aptu

re_m

in_d

ata

only

wor

ks w

ith s

ingl

e-ru

n

Min

imal

ist s

crip

ts.

In o

ther

wor

ds, i

t doe

sn�t

wor

k fo

r scr

ipt s

uite

s

Page 39: A Multi-Level Optimizer For Burst Mode …nowick/asynctools/MLO-v0.9-tutorial.pdfMLO: A Multi-Level Optimizer For Burst Mode Asynchronous Controllers Walter Dearing Steven Nowick Computer

39

Tuto

rial �

Use

r-S

peci

fied

Crit

ical

E

vent

s �

stat

e_in

fo.tx

tS

ynta

x R

ules

:

1.ca

putu

re_m

in_d

ata

sim

ply

prec

edes

Min

imal

ist c

all.

�Fo

r exa

mpl

e, if

use

r wan

ts to

cap

ture

dat

a of

min

imal

ist-a

rea

scrip

t usi

ng m

ulti-

outp

ut ru

n ty

pe, t

he s

ynta

x w

ould

be

> capture_min_dataminimalist-area hp-ir.bmsmulti-output

2.Sy

ntax

for M

inim

alis

t com

man

d lin

e op

tions

are

sam

e as

if

capt

ure_

min

_dat

aw

as n

otbe

ing

used

.

Page 40: A Multi-Level Optimizer For Burst Mode …nowick/asynctools/MLO-v0.9-tutorial.pdfMLO: A Multi-Level Optimizer For Burst Mode Asynchronous Controllers Walter Dearing Steven Nowick Computer

40

Tuto

rial �

Use

r-S

peci

fied

Crit

ical

E

vent

s �

*.bm

ssp

ec-fi

le

!C

ritic

al e

vent

s w

ill b

e sp

ecifi

ed b

y pr

ovid

ing

criti

cal i

nput

/out

put p

airs

for

spec

ified

tran

sitio

ns in

the

burs

t-mod

e sp

ecifi

catio

n.

!If

all i

nput

s ar

e cr

itica

l for

out

put d

urin

g tra

nsiti

on, w

ildca

rd(�

*�) c

an b

e

used

.

!N

o bl

ank

lines

can

sur

roun

d an

y in

serte

d us

er-s

peci

fied

criti

cal

com

men

ts(�

; CR

ITIC

AL�

stat

emen

ts) i

n th

e *.

bms

file.

!C

omm

ent m

ust i

mm

edia

tely

pre

cede

the

trans

ition

that

it is

des

crib

ing.

Burs

t Mod

e S

pec

file

has

to b

e ed

ited

to s

peci

fy c

ritic

al e

vent

s.

Page 41: A Multi-Level Optimizer For Burst Mode …nowick/asynctools/MLO-v0.9-tutorial.pdfMLO: A Multi-Level Optimizer For Burst Mode Asynchronous Controllers Walter Dearing Steven Nowick Computer

41

Tuto

rial �

Use

r-Spe

cifie

d C

ritic

al

Eve

nts

-*.b

ms

spec

-file

Syn

tax

Rul

es (r

edco

mm

ent):

1.To

spe

cify

that

the

inpu

t CtrI

ncA

ck+

is c

ritic

al to

CtrI

ncR

eq-d

urin

g tra

nsiti

on fr

om

curre

nt s

tate

3 to

nex

t sta

te 4

(not

e th

at th

is is

als

o sa

ying

that

ITev

ent2

Tick

s is

NO

Tcr

itica

l): ;CRITICAL: CtrIncAck+/CtrIncReq-

3 4 ITevent2Ticks-CtrIncAck+ | CtrIncReq-

2.To

spe

cify

all

inpu

ts a

re c

ritic

al to

CtrI

ncR

eq-f

rom

cur

rent

sta

te 3

to n

ext s

tate

5:

;CRITICAL: */CtrIncReq-

3 5 ITevent2Ticks-CtrIncAck+ | CtrIncReq-

3.A

noth

er w

ay to

spe

cify

all

inpu

ts a

re c

ritic

al (s

ame

as R

ule

#2)t

o C

trInc

Req

-dur

ing

a tra

nsiti

on fr

om c

urre

nt s

tate

3 to

nex

t sta

te 5

:;CRITICAL: ITevent2Ticks-/CtrIncReq-, CtrIncAck+/CtrIncReq-

3 5 ITevent2Ticks-CtrIncAck+ | CtrIncReq-

4.If

no in

put/o

utpu

ts a

re m

arke

d cr

itica

l, au

tom

ated

CE

O is

use

d. A

utom

ated

CE

O is

us

ed to

rate

crit

ical

ity o

f ITe

vent

2Tic

ks a

nd C

trInc

Act

with

resp

ect t

o C

trInc

Req

:3 5 ITevent2Ticks-CtrIncAck+ | CtrIncReq-

Page 42: A Multi-Level Optimizer For Burst Mode …nowick/asynctools/MLO-v0.9-tutorial.pdfMLO: A Multi-Level Optimizer For Burst Mode Asynchronous Controllers Walter Dearing Steven Nowick Computer

42

Tuto

rial �

Use

r-Spe

cifie

d C

ritic

al

Eve

nts

Ther

efor

e, th

ere

are

thre

e st

eps

to u

se U

ser-

Spec

ified

Crit

ical

Eve

nts

1.C

aptu

re o

utpu

t of M

inim

alis

t.

!R

un M

inim

alis

t with

cap

ture

_min

_dat

ato

cre

ate

stat

e_in

fo.tx

t

2.Sp

ecify

crit

ical

eve

nts

in s

pec

file

(*.b

ms)

.

!Ad

d ;CRITICAL...

stat

emen

ts

3.R

un M

LOw

ith p

rope

r com

man

d lin

e op

tions

.

!M

ust u

se �

U [*

.bm

ssp

ec-fi

le] o

ptio

n.

!O

nly

have

to s

peci

fy *

.bm

san

d *.s

ol fi

le, M

LO a

ssum

es

stat

e_in

fo.tx

t and

*.pl

aar

e in

sam

e di

rect

ory

as *.

sol.

Page 43: A Multi-Level Optimizer For Burst Mode …nowick/asynctools/MLO-v0.9-tutorial.pdfMLO: A Multi-Level Optimizer For Burst Mode Asynchronous Controllers Walter Dearing Steven Nowick Computer

43

Tuto

rial �

Use

r-Spe

cifie

d C

ritic

al

Even

ts: C

ompl

ete

Run

Spe

cify

Use

r-Spe

cifie

d C

ritic

al E

vent

sSt

ep 1

�C

aptu

re M

inim

alis

t Out

put

> capture_min_data

minimalist-speed hp-ir.bms

single-output

Step

2 �

Edit

spec

file

>emacs

(or vi) hp-ir.bms

Step

3 �

Add

crit

ical

eve

nts

to s

pec

file

(def

ault

auto

mod

e w

ill b

e us

ed fo

r oth

er e

vent

s)

> add line in red to file:

;CRITICAL: CtrIncAck+/CtrIncReq-

34

ITEvent2Ticks-

CtrIncAck+

| CtrIncReq-

Step

4 �

Run

MLO

> MLO.py

–U hp-ir.bms

hp_IR-s.sol

Step

5 �

View

Res

ults

> less hp_IR-s-ML.v

Step

6 �

Verif

y R

esul

ts> Compare output with circuit on next page

Page 44: A Multi-Level Optimizer For Burst Mode …nowick/asynctools/MLO-v0.9-tutorial.pdfMLO: A Multi-Level Optimizer For Burst Mode Asynchronous Controllers Walter Dearing Steven Nowick Computer

44

Tuto

rial �

Use

r Def

ined

Crit

ical

E

vent

smodule hp_IR_s(intitreq, itevent2ticks, ctrincack, iteventreq, ctrincreq);

input intitreq, itevent2ticks, ctrincack;

output iteventreq, ctrincreq;

wire neg_ctrincack, neg_itevent2ticks, neg_y0_i, y0_i, y0, _i1;

wire _i2, _i3, _i4, _i5;

// Wires needed for multi-level

wire _i6, _i7;

// Feedback variables

assign y0_i = y0;

// Negative input literals

not (neg_ctrincack, ctrincack);

not (neg_itevent2ticks, itevent2ticks);

not (neg_y0_i, y0_i);

// First plane of logic

// --Network implementing gate _i5 --

and (_i5, neg_ctrincack, _i6);

and (_i6, intitreq, y0_i);

// --Network implementing gate _i4 --

assign _i4 = itevent2ticks;

// --Network implementing gate _i3 --

and (_i3, intitreq, _i7);

and (_i7, neg_itevent2ticks, neg_ctrincack, neg_y0_i);

// --Network implementing gate _i2 --

and (_i2, neg_ctrincack, intitreq, y0_i);

// --Network implementing gate _i1 --

assign _i1 = itevent2ticks;

// Second plane of logic

// --Network implementing gate CtrIncReq--

or (ctrincreq, _i5, _i4);

// --Network implementing gate y0 --

or (y0, _i2, _i1);

// --Network implementing gate ITEventReq--

assign iteventreq= _i3;

endmodule

Gat

e de

com

pose

d us

ing

fact

that

us

er-s

peci

fied

neg_

ctrin

cack

is

criti

cal t

o ct

rincr

eq

Not

ice

that

Aut

omat

ed C

EO

is

still

used

on

outp

uts

not

spec

ified

by

user

Page 45: A Multi-Level Optimizer For Burst Mode …nowick/asynctools/MLO-v0.9-tutorial.pdfMLO: A Multi-Level Optimizer For Burst Mode Asynchronous Controllers Walter Dearing Steven Nowick Computer

45

Tuto

rial �

Ver

ifier

Run

MLO

usi

ng w

ith C

EO a

nd u

se th

e ve

rifie

r to

ensu

re o

utpu

t is

func

tiona

lly c

orre

ct a

nd h

azar

d fre

e

Step

1 �

Run

MLO

> MLO.py

-V hp_IR-s.sol

Step

2 �

Verif

y M

LO o

utpu

t pas

ses

verif

ier (

verif

y su

cces

s m

essa

ge is

prin

ted)

> check standard output

-----------------------------------

Verification Results

Output has been verified -

Everything OK.

----------------------------------

If ou

tput

pas

ses

built

-in

verif

ier,

a su

cces

s m

essa

ge w

ill be

prin

ted

to s

tand

ard

outp

ut.

Page 46: A Multi-Level Optimizer For Burst Mode …nowick/asynctools/MLO-v0.9-tutorial.pdfMLO: A Multi-Level Optimizer For Burst Mode Asynchronous Controllers Walter Dearing Steven Nowick Computer

46

Rec

ap

!M

LO u

ses

Min

imal

ist t

wo-

leve

l log

ic o

utpu

t and

prod

uces

an

optim

ized

mul

ti-le

vel c

ircui

t

spec

ified

in V

erilo

g.

!To

ol h

as m

ultip

le fe

atur

es in

clud

ing

nega

tive

logi

c im

plem

enta

tions

, crit

ical

-eve

nt o

ptim

izer

,

and

gate

fan-

in li

mita

tions

.