Title: Part II' MINIMALIST: DESIGN EXAMPLES HANDSON TUTORIAL
1Part II.MINIMALIST DESIGN EXAMPLES HANDS-ON
TUTORIAL
Steven M. Nowick Columbia University (nowick_at_cs.co
lumbia.edu) July 16-17, 2002
2MINIMALIST 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 examples
- other documentation
3EXAMPLE 1 Martin Q-Element
AR
BR
AA
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).
4EXAMPLE 1 Martin Q-Element
AR
BR
AA
BA
Handshaking Protocol
AR
AA
AR-
AA-
BR
BA
BR-
BA-
5Example 1 Martin Q-Element
Handshaking Protocol
Burst-Mode Specification
AR
input
BR
output
BA
BR-
BA-
AA
AR-
AA-
6Example 1 Martin Q-Element
Handshaking Protocol
Burst-Mode Specification
AR
input
AR/BR
BR
input burst/ output burst
output
BA
BA/BR-
AR-/AA-
BR-
BA-/AA
BA-
AA
AR-
AA-
7Example 1 Martin Q-Element
Running MINIMALIST the Simple Approach
Step 0. Getting Started ... (a) make a
minimalist subdirectory in your home
directory gt mkdir minimalist (b) go
to it gt cd minimalist (c) create a
new subdirectory gt mkdir tutorial1
(d) go to it gt cd tutorial1 (e)
copy BM spec into tutorial1 subdirectory
gt cp /softs/minimalist/examples/martin-q-elem
ent/ martin-q-element.bms .
8Example 1 Martin Q-Element
Running MINIMALIST the Simple Approach
Step 0. Getting Started (cont.) ... (f) to
start up the MINIMALIST shell, type
gt MinShell MINIMALIST will respond with a new
prompt minimalistgt 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.)
9Example 1 Martin Q-Element
Running MINIMALIST the Simple Approach
Step 1. Show BM Specification (a) Look at
BMS text file gtmore
martin-q-element.bms
AR/BR
BA/BR-
name martin_q_elementInput AR 0 Input
BA 0 Output BR 0 Output AA 0 0 1 AR
BR 1 2 BA BR- 2 3 BA-
AA3 0 AR- AA-
AR-/AA-
BA-/AA
10Example 1 Martin Q-Element
Running MINIMALIST the Simple Approach
Step 1. Show BM Specification (cont.) (b)
Graphic Display gtplot_qt
martin-q-element.bms
AR/BR
BA/BR-
AR-/AA-
BA-/AA
11Example 1 Martin Q-Element
Running MINIMALIST the Simple Approach
Step 2. Synthesize BM Implementation gt
minimalist-basic martin-q-element.bms Step 3.
Display It (a) Text 2-Level Equations
Results Summary gt see displayed text
output (b) Plot AND/OR Circuit follow
displayed instructions gt plot_qt
martin_q_element-L.sol (c) Plot NAND/NAND
Circuit follow displayed instructions
gt plot_nand martin_q_element-L.sol
12Example 1 Martin Q-Element
AR
Martin Implementation (QDI)
BR
C
AA
BA
AR
Burst-Mode Implementation (Fund. Mode)
BA
BR
BA
AR
AA
BA
C-element now replaced by -NOR2 -NAND2
AR
Y0
13EXAMPLE 2A Tangram Mixer
- TANGRAM Mixer Call Element
AR
CR
AA
CA
BR
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).
14EXAMPLE 2A Tangram Mixer
- TANGRAM Mixer Deriving a BM Specification ...
Protocol at most one requester (A or B) is
active at any time!
AR/...
BR/...
15EXAMPLE 2A Tangram Mixer
- TANGRAM Mixer Deriving a BM Specification ...
Protocol A request -
AR/CR
BR/...
1
2
4
3
COMPLETE THE BURST-MODE SPEC THEN CREATE A
.BMS FILE ! gt next slide
16Example 2A Tangram Mixer
- waiting while you create your BM spec
- when done, go to next slide.
17EXAMPLE 2A Tangram Mixer
Deriving a Burst-Mode Specification...
1
AR
2
BR/CR
CR
AR/CR
4
AA
3
CA
BR
BA
CA/BA
CA/AA
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)
AR-/CR-
BR-/CR-
CA-/AA-
CA-/BA-
18Example 2A Tangram Mixer
Running MINIMALIST the Simple Approach
Step 0. Getting Started ... (a) go back into
examples directory gt cd .. (b)
create a new subdirectory gt mkdir
tutorial2A (c) go to it gt cd
tutorial2A (d) edit/create file for your BM
spec gt emacs (or vi)
my-tangram-mixer.bms
When done compare your own BMS spec with
/softs/minimalist/examples/tangram-mixer/tangram-m
ixer.bms
19Example 2A Tangram Mixer
Step 1. Show BM Specification Graphic
Display gtplot_qt my-tangram-mixer.bms
Step 2. Synthesize BM Implementation
gtminimalist-basic my-tangram-mixer.bms Step 3.
Display It (a) 2-Level Equations
Results Summary gt see displayed
output (b) Plot AND/OR Circuit
gt follow instructions (c) Plot
NAND/NAND Circuit gt follow
instructions
20Example 2A Tangram Mixer
Now, do another synthesis run, and compare
using an area-oriented script, with fedback
outputs
Step 2. Synthesize BM Implementation
gtminimalist-area my-tangram-mixer.bms Step 3.
Display It (a) 2-Level Equations
Results Summary gt see displayed
output (b) Plot AND/OR Circuit
gt follow instructions (c) Plot
NAND/NAND Circuit gt follow
instructions
21Example 2A Tangram Mixer
CA
AA
MINIMALIST Implementation (Fund. Mode)
AR
CR
BR
BA
CA
TangramImplementation (QDI)
CA
AA
AR
CR
BR
BA
CA
22EXAMPLE 2B Concurrent Mixer
- Now create a more concurrent BM Specification!
...
Basic Protocol events 1-4...
AR/CR
BR/CR
1
AR
2
CR
4
AA
CA
3
BR
CA/AA
CA/BA
BA
BR-/CR-
AR-/CR-
CA-/BA-
CA-/AA-
23EXAMPLE 2B Concurrent Mixer
Concurrent Protocol
Basic Protocol
AR/ CR
BR/ CR
waiting while you create a more
concurrent Burst-Mode specification
for a mixer when done, go to next slide.
CA/ AA
CA/BA
AR-/ CR-
BR-/CR-
CA-/ AA-
CA-/ BA-
24EXAMPLE 2B Concurrent Mixer
Basic Protocol BM Spec
Concurrent Protocol BM Spec
AR/ CR
BR/ CR
AR/ CR
BR/ CR
CA/ BA
CA/ AA
CA/ BA CR-
CA/ AA CR-
BR-/ CR-
AR-/ CR-
AR- CA-/ AA-
BR- CA-/ BA-
CA-/ BA-
CA-/ AA-
25Example 2B Concurrent Mixer
Step 0. Getting Started ... (a) go back into
examples directory gt cd .. (b)
create a new subdirectory gt mkdir
tutorial2B (c) go to it gt cd
tutorial2B (d) edit/create file for your own BM
spec gt emacs (or vi)
my-concur-mixer.bms (e) when done, compare
your BM spec to the one in... gt
/softs/minimalist/examples/concur-mixer/ concu
r-mixer.bms
Step 1. Show BM Specification (a) Graphic
Display gtplot_qt concur-mixer.bms
26Example 2B Concurrent Mixer
Step 2. Synthesize BM Implementation
gtminimalist-basic concur-mixer.bms Step 3.
Display It (a) 2-Level Equations
Results Summary gt see displayed
output (b) Plot AND/OR Circuit
gt follow instructions (c) Plot
NAND/NAND Circuit gt follow
instructions
27Example 2B Concurrent Mixer
Now, do another synthesis run using an
area-oriented script (and compare results).
Step 2. Synthesize BM Implementation
gtminimalist-area concur-mixer.bms Step 3.
Display It (a) 2-Level Equations
Results Summary gt see displayed
output (b) Plot AND/OR Circuit
gt follow instructions (c) Plot
NAND/NAND Circuit gt follow
instructions
28EXAMPLE 2C While Module
- Now, you will design an entire BM Specification
from start-to-finish !
Problem Design a Burst-Mode While (i.e.,
Loop) Controller
Simple Block Diagram (with channels)
Balsa/Tangram Equivalent
ACTIVATE
ACT
1
2
3
CHECKloop condition
DT
DO
EXECUTE loop body
Basic Operation 1. Activate while component 2.
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
data channel
29EXAMPLE 2C WhileModule
Detailed Block Diagram
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)
passive channel
ACTIVATE (ACT)
ACT_req
ACT_ack
DT_req
DO_req
DT_d0
DO_ack
DT_d1
EXECUTEloop body (DO)
CHECK loop Condition (DT)
dual-rail data (0 or 1)
active channel
active channel
30EXAMPLE 2C WhileModule
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)
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
31Example 3 HP-IR (HP Labs)
Inputs intitreq itevent2ticks ctrincack
Outputs iteventreq ctrincreq
From HP Labs/Stanford Stetson ProjectSEE
figs. 10, 11, pp. 17-18 A.Marshall, B.Coates,
P.Siegel, Designing an Asynchronous
Communications Chip, IEEE DesignTest of
Computers, vol. 112, pp. 8-21 (1994)
intitreq-/ iteventreq-
intitreq/ iteventreq
intitreq/ iteventreq
itevent2ticks/ ctrincreq iteventreq
intitreq/ iteventreq
itevent2ticks- intitreq-/ ctrincreq-
itevent2ticks- ctrincack/ ctrincreq-
Initial values in state 0, all inputs
outputs are 0
ctrincack-/ iteventreq
32Example 3 HP-IR
Running MINIMALIST the Simple Approach
Step 0. Getting Started ... (a) go back into
examples directory gt cd .. (b)
create a new subdirectory gt mkdir
tutorial3 (c) go to it gt cd
tutorial3 (d) copy the BM spec gt cp
/softs/minimalist/examples/hp-ir/hp-ir.bms .
Step 1. Show BM Specification (a) Graphic
Display gtplot_qt hp-ir.bms
33Example 3 HP-IR
Running MINIMALIST the Simple Approach
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 gt no
optimal state assignment (b) SPEED
minimalist-speed, minimalist-speed-suite (c)
AREA minimalist-area, minimalist-area-suite
34Example 3 HP-IR
Running MINIMALIST the Simple Approach
Step 2. Synthesize BM Implementation try
each! gtminimalist-crf hp-ir.bms gtminimalist-c
rf-suite hp-ir.bms gtminimalist-speed
hp-ir.bms gtminimalist-speed-suite
hp-ir.bms gtminimalist-area hp-ir.bms gtminimalis
t-area-suite hp-ir.bms Step 3. Display It
(a) 2-Level Equations Results Summary
gt see displayed output (b) Plot
AND/OR Circuit gt follow
instructions (c) Plot NAND/NAND Circuit
gt follow instructions
35Example 3 HP-IR
Running MINIMALIST the Simple Approach
Step 4. Convert to Verilog Output
optional gtpla2verilog.tcl ltPLA file namegt
GETTING HELP extensive on-line help available
at all times type gthelp for a list of options.
36Example 3 HP-IR
Running MINIMALIST the Simple Approach
Generalized C-Element Implementations Produces
SET/RESET functions for each output
next-state 2 Common Implementation Styles
- gC-element SETpull-down,
RESETpull-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
37Example 3 HP-IR
Running MINIMALIST the Simple Approach
Step 2. Synthesize BM Implementation try
each! gtminimalist-gc hp-ir.bms gtminimalist-gc
-suite hp-ir.bms Step 3. Display It
(a) 2-Level Equations Results Summary
gt see displayed output (b) Plot
AND/OR Circuit gt follow
instructions (c) Plot NAND/NAND Circuit
gt follow instructions NOTE (b)
and (c) currently only display separate SET and
RESET functions (not GC elements!)
38Example 4 RF-Control
Running MINIMALIST Using the MINIMALIST Shell
From HP Labs/Stanford Stetson
ProjectA.Marshall, B.Coates, P.Siegel,
Designing an Asynchronous Communications
Chip, IEEE DesignTest of Computers,
vol. 112, pp. 8-21 (1994)
39Example 4 RF-Control
Running MINIMALIST Using the MINIMALIST Shell
Step 0. Getting Started ... (a) go back into
examples directory gt cd .. (b)
create a new subdirectory gt mkdir
tutorial4 (c) go to it gt cd
tutorial4 (d) copy the BM spec gt cp
/softs/minimalist/examples/rf-control/rf-control.b
ms .
40Example 4 RF-Control
Step 1. Show BM Specification (a) Look at
BMS text file gtmore rf-control.bms
0 1 RFFrameReq IntSDReq ControlResetAck- 1
2 SOFEventOK IntSDReq- 2 3 SOFEventOK-
IntSDReq3 4 EOFEventOK HIFCommitReq
IntSDReq- 4 5 EOFEventOK- HIFCommitAck
HIFCommitReq SCEoTSReq5 6 HIFCommitAck-
SCEoTSAck SCEoTSReq- 6 7 SCEoTSAck-
RFFrameAck7 8 RFFrameReq- RFFrameAck- 8
1 RFFrameReq IntSDReq 3 9 CtrEoTSAck
IntSDReq- 9 10 CtrEoTSAck- SCEoTSReq 10
11 SCEoTSAck SCEoTSReq- 11 3 SCEoTSAck-
IntSDReq
name RF_controlInput RFFrameReq
0 Input SOFEventOK 0Input EOFEventOK 0Input C
trEoTSAck 0 Input SCEotSAck 0Input HIFCommitAck 0
Output ControlResetAck 0 Output RFFrameAck 0O
utput IntSDReq 0Output SCEoTSReq 0Output HIFComm
itReq 0 continued on right column
gt
41Example 4 RF-Control
Running MINIMALIST Using the MINIMALIST Shell
Step 2. Synthesize BM Implementation gt
MinShell gt read-spec rf-control.bms gt
help . gt min-states
basic state minimization gt help
assign-states gt assign-states basic
(crit race-free) state assignment gt help
min-logic gt min-logic basic logic
minimization
42Example 4 RF-Control
Running MINIMALIST Using the MINIMALIST Shell
Step 3. Display It (a) 2-Level Equations
Results Summary gt see displayed
output (b) Plot AND/OR Circuit
gt follow instructions (c) Plot
NAND/NAND Circuit gt follow
instructions
43Example 4 RF-Control
Running MINIMALIST Using the MINIMALIST Shell
Step 2. A Different Run! gt read-spec
rf-control.bms gt help . gt
min-states state
minimization gt help assign-states gt
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)
gt help min-logic gt min-logic -P -s
better logic minimization
single-output logic (-s) target
critical I/O paths (-P)
44Example 4 RF-Control
Running MINIMALIST Using the MINIMALIST Shell
Step 2. Yet Another Run! gt read-spec
rf-control.bms gt help ... gt min-states -F
state minimization,
w/fedback outputs as state vars (-F) gt
help assign-states gt 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) gt help min-logic gt
min-logic -F -L w/fedback outputs (-F)
shared products (no -d or -s)
(i.e. multi-output minimztn)
target total literal count (-L)
45Example 4 RF-Control
Running MINIMALIST Using the MINIMALIST Shell
Step 3. Display It (a) 2-Level Equations
Results Summary gt see displayed
output (b) Plot AND/OR Circuit
gt follow instructions (c) Plot
NAND/NAND Circuit gt follow
instructions
46Example 5 Handling Large Examples (P1
Controller)
From HP Labs/Stanford StetsonProjectA.Marshall,
B.Coates, P.Siegel, Designing an Asynchronous
Communications Chip, IEEE DesignTest of
Computers, vol. 112, pp. 8-21 (1994)
Step 0. Getting Started ... (a) go back into
examples directory gt cd .. (b)
create a new subdirectory gt mkdir
tutorial5 (c) go to it gt cd tutorial5
(d) copy the BM spec gt cp
/softs/minimalist/examples/stetson/p1.bms .
47Example 5 Handling Large Examples (P1
Controller)
Step 1. Show BM Specification (a) Look at
BMS text file gtmore p1.bms
Summary a large async controller 13 inputs
14 outputs 33 (burst-mode) states
Step 1. Show BM Specification (cont.) (b)
Graphic Display gtplot_qt p1.bms
48Example 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)
Initial Synthesis Run Using SCRIPTS
Step 2. Synthesize BM Implementation gtminimalis
t-crf p1.bms Step 3. Display It (a)
2-Level Equations Results Summary
gt see displayed output (b) Plot AND/OR
Circuit gt follow instructions
(c) Plot NAND/NAND Circuit gt
follow instructions
49Example 5 Handling Large Examples (P1
Controller)
An Alternative Run Using the MINIMALIST Shell
Step 2. Synthesize BM Implementation gt
read-spec p1.bms gt help . gt
min-states -F state minimization with
fedback outputs gt help assign-states gt
assign-states -F -C non-optimal state
assignment (-C) assumes fedback
outputs (-F) gt help min-logicgt min-logic -F -L
-s logic minimization for literal optzn
(-L) single-output logic (-s) for better
runtime assumes fedback outputs (-F)
50Example 5 Handling Large Examples (P1
Controller)
An Alternative Run Using the MINIMALIST Shell
Step 3. Display It (a) 2-Level Equations
Results Summary gt see displayed
output (b) Plot AND/OR Circuit
gt follow instructions (c) Plot
NAND/NAND Circuit gt follow
instructions
Compare the 2 different implementations see
Step 3(a) for statistics
51Example 6 PE-SEND-IFC (HP Labs)
req-send-/ --
req-send treq rd-iq/ adbld
adbld-out/ peack
adbld-out- treq- ack-pkt/ peack
rd-iq-/ peack- adbld- tack
From HP Labs Mayfly ProjectB.Coates,
A.Davis, K.Stevens, The Post Office
Experience Designing a Large Asynchronous
Chip, INTEGRATION the VLSI Journal, vol.
153, pp. 341-66 (Oct. 1993)
ack-pkt/ peack- tack-
adbld-out- treq- rd-id/ adbld
adbld-out/ peack
treq-/ tack-
treq/ tack
adbld-out- treq rd-iq/ adbld
rd-iq-/ peack- adbld- tack-
ack-pkt- treq-/ peack- tack-
adbld-out- treq ack-pkt/ peack tack
52Example 7 An Asynchronous FIFO
From Columbia University Tiberiu Chelcea and S.
Nowick, Low-Latency Asynchronous FIFOs
Using Token Rings, IEEE Async-00 Symposium
(Int. Sympos. on Advanced Research in
Asynchronous Circuits Systems), Eilat, Israel
(April 2000)
Put
FIFO
Get
53Example 7 An Async FIFO
FIFO Token Ring Architecture
Put
One FIFO Cell
Left
Right
Cell
Get
54Example 7 An Async FIFO
FIFO Cell Decomposition
Get
Put
Put Controller
Get Controller
Reg
Ptok
Gtok
Right
Left
Pass
Left Controller
Opt Token Distributor (OPT)
55Example 7 Async FIFO
pass_a-/ right_req
right_ack/ right_req-
pass_a/ pass_r-
- BM Spec
- Opt Token Distributor (OPT)
right_ack-/ ptok_r
gtok_a-/ pass_r
ptok_a/ ptok_r-
gtok_a/ gtok_r-
right_ack-/ gtok_r
ptok_a-/ pass_r
pass_a/ pass_r-
right_ack/ right_req-
pass_a-/ right_req