part ii. minimalist: design examples + hands-on tutorial

55
1 Part II. MINIMALIST: DESIGN EXAMPLES + HANDS-ON TUTORIAL Steven M. Nowick Columbia University ([email protected]) July 16-17, 2002

Upload: vincent-hernandez

Post on 31-Dec-2015

37 views

Category:

Documents


2 download

DESCRIPTION

Part II. MINIMALIST: DESIGN EXAMPLES + HANDS-ON TUTORIAL. Steven M. Nowick Columbia University ([email protected]) July 16-17, 2002. MINIMALIST: Download Site. Accessible on the Web from: http://www.cs.columbia.edu/async Currently, two versions: SPARC-solaris, Linux Includes: - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Part II. MINIMALIST:   DESIGN EXAMPLES + HANDS-ON TUTORIAL

1

Part II.

MINIMALIST:

DESIGN EXAMPLES +

HANDS-ON TUTORIAL

Steven M. NowickColumbia University

([email protected])

July 16-17, 2002

Page 2: Part II. MINIMALIST:   DESIGN EXAMPLES + HANDS-ON TUTORIAL

2

MINIMALIST: Download Site

Accessible on the Web from:http://www.cs.columbia.edu/async

Currently, two versions:SPARC-solaris, Linux

Includes:complete tutorial (text + PDF slides)benchmark examplesother documentation

Page 3: Part II. MINIMALIST:   DESIGN EXAMPLES + HANDS-ON TUTORIAL

3

EXAMPLE #1: Martin Q-Element

AR

AA

BR

BA

From Caltech: Alain Martin, “Programming in VLSI: from Communicationg Processes

to Delay-Insensitive Circuits”. Chapter in “Developments in Concurrency and Communication”, (ed. C.A.R. Hoare), Addison Wesley, UT Year of Programming Series,

pp. 1-64 (1990).

Page 4: Part II. MINIMALIST:   DESIGN EXAMPLES + HANDS-ON TUTORIAL

4

EXAMPLE #1: Martin Q-Element

AR

AA

BR

BA

Handshaking Protocol:

AR+

BR+ BA+ BR- BA-

AA+ AR- AA-

Page 5: Part II. MINIMALIST:   DESIGN EXAMPLES + HANDS-ON TUTORIAL

5

Example #1: Martin Q-Element

Handshaking Protocol: Burst-Mode Specification:

AR+

BR+

BA+

BR-

BA-

AA+ AR- AA-

output

input

Page 6: Part II. MINIMALIST:   DESIGN EXAMPLES + HANDS-ON TUTORIAL

6

Example #1: Martin Q-Element

Handshaking Protocol:

AR+

BR+

BA+

BR-

BA-

AA+ AR- AA-

Burst-Mode Specification:

0

1

2

3

AR+/BR+

BA+/BR-

BA-/AA+

AR-/AA-

input burst/ output burstoutput

input

Page 7: Part II. MINIMALIST:   DESIGN EXAMPLES + HANDS-ON TUTORIAL

7

Example #1: Martin Q-Element

Step #0. Getting Started ... (a) make a ‘minimalist’ subdirectory in your home directory: > mkdir minimalist (b) go to it: > cd minimalist

(c) create a new subdirectory: > mkdir tutorial1 (d) go to it: > cd tutorial1

(e) copy BM spec into ‘tutorial1’ subdirectory:

> cp /softs/minimalist/examples/martin-q-element/

martin-q-element.bms .

Running MINIMALIST: the Simple Approach

Page 8: Part II. MINIMALIST:   DESIGN EXAMPLES + HANDS-ON TUTORIAL

8

Example #1: Martin Q-Element

Step #0. Getting Started (cont.) ...

(f) to start up the MINIMALIST ‘shell’, type:

> MinShell

MINIMALIST will respond with a new prompt:

minimalist>

You are now using “MinShell”. This environment

allows

you to do synthesis runs, display specs + circuits,

get online help, and even run many standard Unix

commands (cp, mv, ls, pwd, …).

(In general, you will want to activate “MinShell”

at the

start of a MINIMALIST synthesis session.)

Running MINIMALIST: the Simple Approach

Page 9: Part II. MINIMALIST:   DESIGN EXAMPLES + HANDS-ON TUTORIAL

9

Example #1: Martin Q-Element

0

1

2

3

AR+/BR+

BA+/BR-

BA-/AA+AR-/AA-

Step #1. Show BM Specification (a) Look at “BMS” text file: >more martin-q-element.bms

name martin_q_element

Input AR 0Input BA 0

Output BR 0Output AA 0

0 1 AR+ | BR+1 2 BA+ | BR-2 3 BA- | AA+3 0 AR- | AA-

Running MINIMALIST: the Simple Approach

Page 10: Part II. MINIMALIST:   DESIGN EXAMPLES + HANDS-ON TUTORIAL

10

Example #1: Martin Q-Element

0

1

2

3

AR+/BR+

BA+/BR-

BA-/AA+AR-/AA-

Step #1. Show BM Specification

(cont.)

(b) Graphic Display:

>plot_qt martin-q-

element.bms

Running MINIMALIST: the Simple Approach

Page 11: Part II. MINIMALIST:   DESIGN EXAMPLES + HANDS-ON TUTORIAL

11

Example #1: Martin Q-Element

Step #2. Synthesize BM Implementation:

> minimalist-basic martin-q-element.bms

Step #3. Display It:

(a) Text: 2-Level Equations + Results Summary > [see displayed text output]

(b) Plot AND/OR Circuit: [follow displayed

instructions:] > plot_qt martin_q_element-L.sol

(c) Plot NAND/NAND Circuit: [follow displayed instructions:] > plot_nand martin_q_element-L.sol

Running MINIMALIST: the Simple Approach

Page 12: Part II. MINIMALIST:   DESIGN EXAMPLES + HANDS-ON TUTORIAL

12

Example #1: Martin Q-Element

ARBA BR

AA

Burst-Mode Implementation: (Fund. Mode) BAAR

BA

AR

Y0

C-element now replaced by: -NOR2 -NAND2

AR

BA

BR

AA

C

MartinImplementation: (“QDI”)

Page 13: Part II. MINIMALIST:   DESIGN EXAMPLES + HANDS-ON TUTORIAL

13

EXAMPLE #2A: Tangram Mixer

TANGRAM Mixer = “Call Element”

ARAA

CR

CABR

BA

From Philips Research Lab: “TANGRAM” System,

K. van Berkel, “VLSI Programming of Asynchronous Circuit for Low Power”.

Chapter in “Asynchronous Digital Design”, (eds. G. Birtwistle and A. Davis),

Springer-Verlag, Workshop in Computing Series, pp. 152-210 (1995).

Page 14: Part II. MINIMALIST:   DESIGN EXAMPLES + HANDS-ON TUTORIAL

14

EXAMPLE #2A: Tangram Mixer

TANGRAM Mixer: Deriving a BM Specification ...

Protocol: at most one requester (A or B) is active at any time!

ARAA CR

CABRBA

0AR+/...BR+/...

Page 15: Part II. MINIMALIST:   DESIGN EXAMPLES + HANDS-ON TUTORIAL

15

EXAMPLE #2A: Tangram Mixer

TANGRAM Mixer: Deriving a BM Specification ...

COMPLETE THE BURST-MODE SPEC … THEN CREATE A .BMS FILE …! ==> next slide

ARAA CR

CABRBA

0AR+/CR+BR+/...

#1 #2

#3#4

1

2

Protocol: ‘A’ request -

Page 16: Part II. MINIMALIST:   DESIGN EXAMPLES + HANDS-ON TUTORIAL

16

Example #2A: Tangram Mixer

[… waiting while you create your BM spec;

when done, go to next slide.]

Page 17: Part II. MINIMALIST:   DESIGN EXAMPLES + HANDS-ON TUTORIAL

17

EXAMPLE #2A: Tangram Mixer

ARAA CR

CABRBA

0 AR+/CR+

BR+/CR+#1 #2

#3#4

1

2

Deriving a Burst-Mode Specification...:

3

CA+/AA+

CA-/AA-

AR-/CR-

4

5

6

CA+/BA+

BR-/CR-

CA-/BA-

Events #1-4...: first, rising transitions then, falling transitions -use same protocol for both A and B requests -assume at most one of A/B channels active at any time! (see choice in state #0)

Page 18: Part II. MINIMALIST:   DESIGN EXAMPLES + HANDS-ON TUTORIAL

18

Example #2A: Tangram Mixer

Step #0. Getting Started ... (a) go back into “examples” directory: > cd .. (b) create a new subdirectory: > mkdir tutorial2A (c) go to it: > cd tutorial2A (d) edit/create file for your BM spec: > emacs (or vi) my-tangram-mixer.bms

When done: compare your own BMS spec with … /softs/minimalist/examples/tangram-mixer/tangram-mixer.bms

Running MINIMALIST: the Simple Approach

Page 19: Part II. MINIMALIST:   DESIGN EXAMPLES + HANDS-ON TUTORIAL

19

Example #2A: Tangram Mixer

Step #2. Synthesize BM Implementation:

>minimalist-basic my-tangram-mixer.bms

Step #3. Display It:

(a) 2-Level Equations + Results Summary: > [see displayed output]

(b) Plot AND/OR Circuit: > [follow instructions]

(c) Plot NAND/NAND Circuit: > [follow instructions]

Step #1. Show BM Specification: Graphic Display: >plot_qt my-tangram-mixer.bms

Page 20: Part II. MINIMALIST:   DESIGN EXAMPLES + HANDS-ON TUTORIAL

20

Example #2A: Tangram Mixer

Step #2. Synthesize BM Implementation:

>minimalist-area my-tangram-mixer.bms

Step #3. Display It:

(a) 2-Level Equations + Results Summary: > [see displayed output]

(b) Plot AND/OR Circuit: > [follow instructions]

(c) Plot NAND/NAND Circuit: > [follow instructions]

Now, do another synthesis run, and compare: using an “area-oriented” script, with fedback outputs

Page 21: Part II. MINIMALIST:   DESIGN EXAMPLES + HANDS-ON TUTORIAL

21

Example #2A: Tangram Mixer

AR

BRCR

MINIMALISTImplementation: (Fund. Mode)

AACA

BACA

ARBR

CR

AA CA

CA

C

CBA

TangramImplementation: (“QDI”)

Page 22: Part II. MINIMALIST:   DESIGN EXAMPLES + HANDS-ON TUTORIAL

22

EXAMPLE #2B: Concurrent MixerNow… create a more concurrent BM

Specification! ...

ARAA

CR

CABRBA

0AR+/CR+BR+/CR+

#1 #2

#3#4 1

2

Basic Protocol: events #1-4...

3

CA+/AA+

CA-/AA-

AR-/CR-

4

5

6

CA+/BA+

BR-/CR-

CA-/BA-

Page 23: Part II. MINIMALIST:   DESIGN EXAMPLES + HANDS-ON TUTORIAL

23

EXAMPLE #2B: Concurrent Mixer

Concurrent Protocol:

0 AR+/ CR+

BR+/CR+

1

2

3

CA+/ AA+

CA-/ AA-

AR-/ CR-

4

5

6

CA+/BA+

BR-/CR-

CA-/ BA-

Basic Protocol:

[…waiting while you create a more concurrent Burst-Mode specification for a mixer; when done, go to next slide.]

Page 24: Part II. MINIMALIST:   DESIGN EXAMPLES + HANDS-ON TUTORIAL

24

EXAMPLE #2B: Concurrent Mixer

0 AR+/ CR+

BR+/ CR+

1

2

CA+/ AA+ CR-

AR- CA-/ AA-

3

4

CA+/ BA+ CR-

BR- CA-/ BA-

0 AR+/ CR+

BR+/CR+

1

2

3

CA+/ AA+

CA-/ AA-

AR-/ CR-

4

5

6

CA+/ BA+

BR-/ CR-

CA-/ BA-

Basic Protocol: BM SpecConcurrent Protocol: BM Spec

Page 25: Part II. MINIMALIST:   DESIGN EXAMPLES + HANDS-ON TUTORIAL

25

Example #2B: Concurrent Mixer

Step #0. Getting Started ... (a) go back into “examples” directory: > cd .. (b) create a new subdirectory: > mkdir tutorial2B (c) go to it: > cd tutorial2B (d) edit/create file for your own BM spec: > emacs (or vi) my-concur-mixer.bms (e) when done, compare your BM spec to the one in... : > /softs/minimalist/examples/concur-mixer/

concur-mixer.bms

Step #1. Show BM Specification (a) Graphic Display: >plot_qt concur-mixer.bms

Page 26: Part II. MINIMALIST:   DESIGN EXAMPLES + HANDS-ON TUTORIAL

26

Example #2B: Concurrent Mixer

Step #2. Synthesize BM Implementation:

>minimalist-basic concur-mixer.bms

Step #3. Display It:

(a) 2-Level Equations + Results Summary: > [see displayed output]

(b) Plot AND/OR Circuit: > [follow instructions]

(c) Plot NAND/NAND Circuit: > [follow instructions]

Page 27: Part II. MINIMALIST:   DESIGN EXAMPLES + HANDS-ON TUTORIAL

27

Example #2B: Concurrent Mixer

Step #2. Synthesize BM Implementation:

>minimalist-area concur-mixer.bms

Step #3. Display It:

(a) 2-Level Equations + Results Summary: > [see displayed output]

(b) Plot AND/OR Circuit: > [follow instructions]

(c) Plot NAND/NAND Circuit: > [follow instructions]

Now, do another synthesis run…: using an “area-oriented” script (and compare results)….

Page 28: Part II. MINIMALIST:   DESIGN EXAMPLES + HANDS-ON TUTORIAL

28

EXAMPLE #2C: “While” ModuleNow, you will design an entire BM Specification from start-to-

finish … !

ACTIVATE

DT

Problem: Design a Burst-Mode “While” (i.e., Loop) Controller

Simple Block Diagram (with channels):

#1#2

#3CHECKloop

condition

Basic Operation:

1. Activate “while” component2. Check loop variable

- if 0, exit (go to #1)- if 1, continue to #3

3. Execute loop body Repeat #2/#3 until loop var false

Balsa/Tangram Equivalent:

ACT

EXECUTEloop body

DO

data channel

Page 29: Part II. MINIMALIST:   DESIGN EXAMPLES + HANDS-ON TUTORIAL

29

EXAMPLE #2C: “While”Module

Detailed Block Diagram:

CHECKloop

Condition(DT)

DETAILED OPERATION:

1. Wait until module activated (ACT_req+)

2. Request loop variable (DT_req+)

a. if loop variable = 0 (DT_d0+) - complete handshake on DT - complete handshake on ACT - return to #1 (wait for next activation)

b. if loop variable = 1 (DT_d1+) - complete handshake on DT - execute loop body (i.e., do full handshake on DO) - go to #2 (start next loop test)

DO_reqDT_req

DT_d0DT_d1

dual-rail data (0 or 1)

DO_ack

EXECUTEloop body

(DO)

ACT_reqACT_ack

ACTIVATE (ACT)passive channel

active channel

active channel

Page 30: Part II. MINIMALIST:   DESIGN EXAMPLES + HANDS-ON TUTORIAL

30

EXAMPLE #2C: “While”Module

OPTIMIZATIONS (optional):

A. You may overlap these 2 handshakes(i.e. make them concurrent)

B. You may overlap these 2 handshakes(i.e. make them concurrent), as long as:

- DT is reset (and not changing)during the active phase of DO

DETAILED OPERATION:

1. Wait until module activated (ACT_req+)

2. Request loop variable (DT_req+)

a. if loop variable = 0 (DT_d0+) - complete handshake on DT - complete handshake on ACT - return to #1 (wait for next activation)

b. if loop variable = 1 (DT_d1+) - complete handshake on DT - execute loop body (i.e., do full handshake on DO) - go to #2 (start next loop test)

Page 31: Part II. MINIMALIST:   DESIGN EXAMPLES + HANDS-ON TUTORIAL

31

Example #3: “HP-IR” (HP Labs)Inputs:intitreqitevent2ticksctrincack

Outputs:iteventreqctrincreq

0

intitreq+/ iteventreq+

12

3

4 5

From HP Labs/Stanford “Stetson” Project:SEE figs. 10, 11, pp. 17-18: A.Marshall, B.Coates, P.Siegel, “Designing an Asynchronous Communications Chip”, IEEE Design&Test of Computers, vol. 11:2, pp. 8-21 (1994)

Initial values: in state #0, all inputs & outputs are 0

intitreq-/ iteventreq-

intitreq+/ iteventreq+

itevent2ticks+/ ctrincreq+ iteventreq+

itevent2ticks-intitreq-/ ctrincreq-

itevent2ticks-ctrincack+/ ctrincreq-

ctrincack-/ iteventreq+

intitreq+/ iteventreq+

Page 32: Part II. MINIMALIST:   DESIGN EXAMPLES + HANDS-ON TUTORIAL

32

Example #3: HP-IR

Step #0. Getting Started ... (a) go back into “examples” directory: > cd .. (b) create a new subdirectory: > mkdir tutorial3 (c) go to it: > cd tutorial3 (d) copy the BM spec: > cp /softs/minimalist/examples/hp-ir/hp-ir.bms .

Step #1. Show BM Specification (a) Graphic Display: >plot_qt hp-ir.bms

Running MINIMALIST: the Simple Approach

Page 33: Part II. MINIMALIST:   DESIGN EXAMPLES + HANDS-ON TUTORIAL

33

Example #3: HP-IR

Several Useful Scripts:

Produce 1 -- or 4 -- Circuit Implementations For Each

Script

- fedback vs. non-fedback outputs

- single-output vs. ‘output-disjoint’ (shared products)

- different cost functions, ...

(a) BASIC (critical race-free): “minimalist-crf”,“minimalist-

crf-suite”

> no optimal state assignment

(b) SPEED: “minimalist-speed”, “minimalist-speed-suite”

(c) AREA: “minimalist-area”, “minimalist-area-suite”

Running MINIMALIST: the Simple Approach

Page 34: Part II. MINIMALIST:   DESIGN EXAMPLES + HANDS-ON TUTORIAL

34

Example #3: HP-IR

Step #2. Synthesize BM Implementation: [try each!]

>minimalist-crf hp-ir.bms>minimalist-crf-suite hp-ir.bms>minimalist-speed hp-ir.bms>minimalist-speed-suite hp-ir.bms>minimalist-area hp-ir.bms>minimalist-area-suite hp-ir.bms

Step #3. Display It: (a) 2-Level Equations + Results Summary: > [see displayed output] (b) Plot AND/OR Circuit: > [follow instructions] (c) Plot NAND/NAND Circuit: > [follow instructions]

Running MINIMALIST: the Simple Approach

Page 35: Part II. MINIMALIST:   DESIGN EXAMPLES + HANDS-ON TUTORIAL

35

Example #3: HP-IR

Step #4. Convert to Verilog Output: [optional]>pla2verilog.tcl <PLA file name>

GETTING HELP:…extensive on-line help available at all times; type:

>helpfor a list of options.

Running MINIMALIST: the Simple Approach

Page 36: Part II. MINIMALIST:   DESIGN EXAMPLES + HANDS-ON TUTORIAL

36

Example #3: HP-IR

“Generalized C-Element” Implementations:

Produces “SET”/“RESET” functions for each output +

next-state

2 Common Implementation Styles: - gC-element: “SET”=pull-down, “RESET”=pull-up

- gC output: has inverter +“keeper” (to hold

state)

- C-element (2-input): implement “SET” and “RESET”

as logic

networks (2-level), feed eacb into C-element

- “RESET”: invert, before feeding into C-

element

(d) GC SCRIPTS: “minimalist-gc”, “minimalist-gc-suite”

Running MINIMALIST: the Simple Approach

Page 37: Part II. MINIMALIST:   DESIGN EXAMPLES + HANDS-ON TUTORIAL

37

Example #3: HP-IR

Step #2. Synthesize BM Implementation: [try each!]

>minimalist-gc hp-ir.bms

>minimalist-gc-suite hp-ir.bms

Step #3. Display It: (a) 2-Level Equations + Results Summary: > [see displayed output] (b) Plot AND/OR Circuit: > [follow instructions] (c) Plot NAND/NAND Circuit: > [follow instructions]

NOTE: (b) and (c) currently only display separate SET and

RESET functions (not GC elements!)

Running MINIMALIST: the Simple Approach

Page 38: Part II. MINIMALIST:   DESIGN EXAMPLES + HANDS-ON TUTORIAL

38

Example #4: RF-Control

From HP Labs/Stanford “Stetson” ProjectA.Marshall, B.Coates, P.Siegel, “Designing an Asynchronous Communications Chip”, IEEE Design&Test of Computers, vol. 11:2, pp. 8-21 (1994)

Running MINIMALIST: Using the MINIMALIST “Shell”

Page 39: Part II. MINIMALIST:   DESIGN EXAMPLES + HANDS-ON TUTORIAL

39

Example #4: RF-Control

Step #0. Getting Started ... (a) go back into “examples” directory: > cd .. (b) create a new subdirectory: > mkdir tutorial4 (c) go to it: > cd tutorial4 (d) copy the BM spec: > cp /softs/minimalist/examples/rf-control/rf-

control.bms .

Running MINIMALIST: Using the MINIMALIST “Shell”

Page 40: Part II. MINIMALIST:   DESIGN EXAMPLES + HANDS-ON TUTORIAL

40

Example #4: RF-Control

Step #1. Show BM Specification (a) Look at “BMS” text file: >more rf-control.bms

name RF_controlInput RFFrameReq 0Input SOFEventOK 0Input EOFEventOK 0Input CtrEoTSAck 0Input SCEotSAck 0Input HIFCommitAck 0

Output ControlResetAck 0Output RFFrameAck 0Output IntSDReq 0Output SCEoTSReq 0Output HIFCommitReq 0

[… continued on right column ==> ]

0 1 RFFrameReq+ | IntSDReq+ ControlResetAck-1 2 SOFEventOK+ | IntSDReq-2 3 SOFEventOK- | IntSDReq+3 4 EOFEventOK+ | HIFCommitReq+ IntSDReq-4 5 EOFEventOK- HIFCommitAck+ |

HIFCommitReq+ SCEoTSReq+5 6 HIFCommitAck- SCEoTSAck+ | SCEoTSReq-

6 7 SCEoTSAck- | RFFrameAck+7 8 RFFrameReq- | RFFrameAck-8 1 RFFrameReq+ | IntSDReq+3 9 CtrEoTSAck+ | IntSDReq-9 10 CtrEoTSAck- | SCEoTSReq+10 11 SCEoTSAck+ | SCEoTSReq-11 3 SCEoTSAck- | IntSDReq+

Page 41: Part II. MINIMALIST:   DESIGN EXAMPLES + HANDS-ON TUTORIAL

41

Example #4: RF-Control

Step #2. Synthesize BM Implementation:

> MinShell

> read-spec rf-control.bms

> help … ….

> min-states #basic state minimization

> help assign-states

> assign-states #basic (crit race-free) state

assignment

> help min-logic

> min-logic #basic logic minimization

Running MINIMALIST: Using the MINIMALIST “Shell”

Page 42: Part II. MINIMALIST:   DESIGN EXAMPLES + HANDS-ON TUTORIAL

42

Example #4: RF-Control

Step #3. Display It:

(a) 2-Level Equations + Results Summary: > [see displayed output]

(b) Plot AND/OR Circuit: > [follow instructions]

(c) Plot NAND/NAND Circuit: > [follow instructions]

Running MINIMALIST: Using the MINIMALIST “Shell”

Page 43: Part II. MINIMALIST:   DESIGN EXAMPLES + HANDS-ON TUTORIAL

43

Example #4: RF-Control

Step #2. A Different Run!: > read-spec rf-control.bms > help … …. > min-states #state minimization > help assign-states > assign-states -O -P -S -s #optimal state assignment (-O)

#target output logic only (-S)

#single-output logic (-s) #target critical I/O paths

(-P) > help min-logic > min-logic -P -s #better logic minimization:

#single-output logic (-s) #target critical I/O paths

(-P)

Running MINIMALIST: Using the MINIMALIST “Shell”

Page 44: Part II. MINIMALIST:   DESIGN EXAMPLES + HANDS-ON TUTORIAL

44

Example #4: RF-Control

Step #2. Yet Another Run!: > read-spec rf-control.bms > help ... > min-states -F #state minimization, w/fedback

#outputs as state vars (-F) > help assign-states > assign-states -F -L -O #optimal state assignment (-O)

#w/fedback outputs (-F) #shared products (no -d or -

s) # (i.e. “multi-output

minimztn”) #target total literal count (-

L) > help min-logic > min-logic -F -L #w/fedback outputs (-F)

#shared products (no -d or -s)

#(i.e. “multi-output minimztn”)

#target total literal count (-L)

Running MINIMALIST: Using the MINIMALIST “Shell”

Page 45: Part II. MINIMALIST:   DESIGN EXAMPLES + HANDS-ON TUTORIAL

45

Example #4: RF-Control

Step #3. Display It:

(a) 2-Level Equations + Results Summary: > [see displayed output]

(b) Plot AND/OR Circuit: > [follow instructions]

(c) Plot NAND/NAND Circuit: > [follow instructions]

Running MINIMALIST: Using the MINIMALIST “Shell”

Page 46: Part II. MINIMALIST:   DESIGN EXAMPLES + HANDS-ON TUTORIAL

46

Example #5: Handling Large Examples (“P1 Controller”)

Step #0. Getting Started ... (a) go back into “examples” directory: > cd .. (b) create a new subdirectory: > mkdir tutorial5 (c) go to it: > cd tutorial5 (d) copy the BM spec: > cp /softs/minimalist/examples/stetson/p1.bms .

From HP Labs/Stanford “Stetson”ProjectA.Marshall, B.Coates, P.Siegel, “Designing an Asynchronous Communications Chip”, IEEE Design&Test of Computers, vol. 11:2, pp. 8-21 (1994)

Page 47: Part II. MINIMALIST:   DESIGN EXAMPLES + HANDS-ON TUTORIAL

47

Example #5: Handling Large Examples (“P1 Controller”)

Step #1. Show BM Specification (a) Look at “BMS” text file: >more p1.bms

Summary: a large async controller 13 inputs 14 outputs 33 (burst-mode) states

Step #1. Show BM Specification (cont.) (b) Graphic Display: >plot_qt p1.bms

Page 48: Part II. MINIMALIST:   DESIGN EXAMPLES + HANDS-ON TUTORIAL

48

Example #5: Handling Large Examples (“P1 Controller”)

Our Synthesis Strategy: for faster runtime, avoid using “optimal” state assignment (… instead, just use simple “non-optimal” critical race-free assignment)

Step #2. Synthesize BM Implementation:>minimalist-crf p1.bms

Step #3. Display It:

(a) 2-Level Equations + Results Summary: > [see displayed output] (b) Plot AND/OR Circuit: > [follow instructions] (c) Plot NAND/NAND Circuit: > [follow instructions]

Initial Synthesis Run: Using SCRIPTS

Page 49: Part II. MINIMALIST:   DESIGN EXAMPLES + HANDS-ON TUTORIAL

49

Example #5: Handling Large Examples (“P1 Controller”)

An Alternative Run: Using the MINIMALIST “Shell”Step #2. Synthesize BM Implementation:

> read-spec p1.bms

> help … ….> min-states -F #state minimization: with fedback outputs> help assign-states> assign-states -F -C #non-optimal state assignment (-C);

#assumes fedback outputs (-F)> help min-logic> min-logic -F -L -s #logic minimization: for literal optzn (-L);

#single-output logic (-s) [for better runtime];

#assumes fedback outputs (-F)

Page 50: Part II. MINIMALIST:   DESIGN EXAMPLES + HANDS-ON TUTORIAL

50

Example #5: Handling Large Examples (“P1 Controller”)

An Alternative Run: Using the MINIMALIST “Shell”

Step #3. Display It:

(a) 2-Level Equations + Results Summary: > [see displayed output]

(b) Plot AND/OR Circuit: > [follow instructions]

(c) Plot NAND/NAND Circuit: > [follow instructions]

… Compare the 2 different implementations:see Step #3(a) for statistics

Page 51: Part II. MINIMALIST:   DESIGN EXAMPLES + HANDS-ON TUTORIAL

51

Example #6: “PE-SEND-IFC” (HP Labs)

Inputs:req-sendtreqrd-iqadbld-outack-pkt

Outputs:tackpeackadbld

0

1

2

7

3

4

5

6

8

9

10

req-send+ treq+ rd-iq+/adbld+

adbld-out+/peack+

rd-iq-/peack- adbld- tack+

adbld-out- treq-rd-id+/ adbld+

adbld-out+/peack+

rd-iq-/ peack- adbld- tack-

adbld-out- treq+ ack-pkt+/ peack+ tack+

ack-pkt- treq-/peack- tack-

treq-/tack-

treq+/tack+

ack-pkt+/peack- tack-

adbld-out-treq- ack-pkt+/

peack+

req-send-/--

adbld-out- treq+ rd-iq+/ adbld+

From HP Labs “Mayfly” Project:B.Coates, A.Davis, K.Stevens, “The Post Office Experience: Designing a Large Asynchronous Chip”, INTEGRATION: the VLSI Journal, vol. 15:3, pp. 341-66 (Oct. 1993)

Page 52: Part II. MINIMALIST:   DESIGN EXAMPLES + HANDS-ON TUTORIAL

52

Example #7: An Asynchronous FIFO

Top-Level Block Diagram:

Get

FIFOPut

From Columbia University:Tiberiu Chelcea and S. Nowick, “Low-Latency Asynchronous FIFO’s Using Token Rings”, IEEE Async-00 Symposium (Int. Sympos. on Advanced Research

in Asynchronous Circuits & Systems), Eilat, Israel (April 2000)

Page 53: Part II. MINIMALIST:   DESIGN EXAMPLES + HANDS-ON TUTORIAL

53

Example #7: An Async FIFO

One FIFO Cell:

FIFO: Token Ring Architecture

Cell Cell Cell Cell

Sta

rter

Put

Get

Cell

Put

RightLeft

Get

Page 54: Part II. MINIMALIST:   DESIGN EXAMPLES + HANDS-ON TUTORIAL

54

Example #7: An Async FIFO

FIFO Cell: Decomposition

Reg GetController

PutController

LeftController Opt Token Distributor (OPT)

Ptok

Right

Gtok

GetPut

PassLeft

Page 55: Part II. MINIMALIST:   DESIGN EXAMPLES + HANDS-ON TUTORIAL

55

Example #7: Async FIFO

BM Spec:“Opt Token Distributor”

(OPT)

right_ack+/right_req-

right_ack-/ptok_r+

ptok_a+/ptok_r-

ptok_a-/pass_r+

pass_a+/pass_r-

pass_a-/ right_req+

pass_a-/ right_req+

pass_a+/pass_r-

gtok_a-/pass_r+

gtok_a+/gtok_r-

right_ack-/gtok_r+

right_ack+/right_req-