1 Clockless Logic Prof. Montek Singh Feb. 3, 2004.

21
1 Clockless Logic Prof. Montek Singh Feb. 3, 2004
  • date post

    20-Dec-2015
  • Category

    Documents

  • view

    222
  • download

    7

Transcript of 1 Clockless Logic Prof. Montek Singh Feb. 3, 2004.

1

Clockless Logic

Prof. Montek Singh

Feb. 3, 2004

2

Unclocked “Burst-Mode” State Machine Synthesis

Acknowledgment

Steven Nowick et al. (Columbia

Univ.)

3

“Burst-Mode” ControllersSynthesis style for individual asynchronous FSM’s:

• Mealy-type• allows:

– multiple-input changes– concurrent behavior

• target technology: normal synchronous cell libraries

• optimization algorithms: comprehensive set

Brief History:...• Based on informal approach at HP Labs:

– Davis, Coates, Stevens [1986-, and earlier]

• Formalized and constrained at Stanford: Nowick/Dill [91]– Nowick/Dill first to develop a correct synthesis method

4

Burst-Mode: Implementation Style

“Huffman Machine”: async machine, no explicit latches

Hazard-FreeCombinational

Network

inputs outputs

state

(several bits)

A

B

C

X

Y

Z

5

Burst-Mode: Implementation Style

Burst-Mode Behavior: inputs in a user-specified ’input burst’ arrive, in any order (glitch-free)

Hazard-FreeCombinational

Network

inputs outputs

state

(several bits)

A+

B

C

X

Y

Z

6

Burst-Mode: Implementation Style

Burst-Mode Behavior: inputs in a user-specified ‘input burst’ arrive, in any order

Hazard-FreeCombinational

Network

inputs outputs

state

(several bits)

A+

B

C-

X

Y

Z

7

Burst-Mode: Implementation Style

Burst-Mode Behavior: once ‘input burst’ is complete, machine generates a (glitch-free) ‘output burst’ …

Hazard-FreeCombinational

Network

inputs outputs

state

(several bits)

A

B

C

X

Y-

Z+

input burst output burst

8

Burst-Mode: Implementation Style

… and (sometimes!) a concurrent (and glitch-free)

state change to a new state….

Hazard-FreeCombinational

Network

inputs outputs

state

(several bits)

A

B

C

X

Y

Z

input burst output burst

state change

9

Burst-Mode SpecificationsHow to specify “burst-mode” behavior?:

Hazard-FreeCombinational

Network

inputsoutputs

state

(several bits)

A

B

C

X

Y

Z

input burst output burst

A+ C-/Y- Z+

1

current state

input burst/ output burst 2

next state

10

Note: -input bursts: must be non-empty (at least 1 input per burst)

-output bursts: may be empty (0 or more outputs per burst)

Burst-Mode Specifications

Example: Burst-Mode (BM) Specification:

- Inputs in specified “input burst” can arrive in any order and at any time

- After all inputs arrive, generate“output burst”

0

1

3

2

4

5

A+ C+/Z-

C-/ Z+

C+/ Y+

A-/ Y-

A+ B+/Y+ Z-

B- C+/Z+

C-/--

Initial Values:ABC = 000

YZ = 01

11

Burst-Mode Specifications

“Burst-Mode” (BM) Specs: 2 Basic Requirements– requirements introduced by Nowick/Dill

[ICCD’91,ICCAD’91]

– … guarantee hazard-free synthesis!

1. “maximal set property”: in each specification state, no input burst can be a subset of any other input burst

2. “unique entry point”: each specification state must be entered at a ‘single point’

12

Burst-Mode Specifications1. “maximal set property”: in each specification

state, no input burst can be a subset of another input

burst

…ambiguous: what to do when only input A+ arrives?: - wait for C+? or output Y+ Z-??

0

1

2

A+ C+/Z-

A+/ Y+ Z-

0

1

2

A+ C+/Z-

A+ B+/Y+ Z-

illegal: {A+} {A+C+} legal

13

Burst-Mode Specifications2. “unique entry point”: each specification state

must be entered at a ‘single point’ (guarantees hazard-free synthesis)

0

1

2

4

A+/Z+

B+/ Y+

C+/Y+

D+/ Z+

Entering State 4:- from State 1: ABCD=1100

(YZ=11)- from State 2: ABCD=0011

(YZ=11)illegal: 2 different input/output values

when entering state 4

0

1

2

4

A+/Z+

B+/ Y+

C+/Y+

D+/ Z+

5

legal: solution=split state 4

14

Burst-Mode Specifications2. “unique entry point” (cont.):

Entering State 4: - from State 3: ABC = 101

(YZ=11) - from State 2: ABC = 101

(YZ=11) … so, “unique entry point”

property is satisfied.

this is legal: state 4 -- entered with the same input/output

valueson both ‘incoming arcs’

0

1

3

2

4

5

A+ C+/Z-

C-/ Z+

C+/ Y+

A-/ Y-

A+ B+/Y+ Z-

B- C+/Z+

C-/--

State 0: Initial ValuesABC = 000

YZ = 01

Another Example:

15

Burst-Mode SpecificationsFinal observation:

Burst-Mode specs must indicate all “expected events”

Missing input burst = “cannot occur”

0

1

3

2

4

5

A+ C+/Z-

C-/ Z+

C+/ Y+

A-/ Y-

A+ B+/Y+ Z-

B- C+/Z+

C-/--

State 0: Initial ValuesABC = 000

YZ = 01

EXAMPLE: in State #0… - the specification indicates (implicitly) that input burst B+C+

cannot occur … since this event is not specified!

16

Burst-Mode Specifications

“Extended Burst-Mode” (XBM):[Yun/Dill ICCAD-93/95]

1. “directed don’t cares” (Rin*): allow concurrent inputs & outputs 2. “conditionals” (<Cnd>): allow “sampling” of level signals

Handles glitchy inputs, mixed sync/async inputs, etc.

0

1

2

3

4

5

6

ok+ Rin*/ FRout+

FAin+ Rin*/ FRout-

FAin- Rin+/ Aout+

Rin* FAin+/ FRout-

<Cnd+> Rin-/ Aout- FRout+

<Cnd-> Rin-/ Aout-

ok- Rin*/ --

Rin+ FAin-/Aout+

New Features:

(… not yet supported by MINIMALIST, expected in future releases)

17

One-Sided Timing Requirements

#1. Fedback State Change: must not arrive at inputs until previous input burst has been fully processed …

– add: 1-sided delay to feedback path

– usually negligible delay: often no extra delay needed

Hazard-FreeCombinational

Network

inputs outputs

state

A

B

C

X

Y

Z

1-sideddelay

18

One-Sided Timing Requirements (cont.)

#2. Next Input Burst: must not arrive until machine has stabilized from previous input+state change …

• often satisfied: environment usually “slow enough”

• if not: add small delays to outputs

Hazard-FreeCombinational

Network

inputs outputs

state

A

B

C

X

Y

Z

delay

19

One-Sided Timing Requirements (cont.)

#2. Next Input Burst (cont.): must not arrive until entire machine has stabilized …

“Generalized Fundamental Mode”: after each input burst arrives, a machine ‘hold-time requirement’ must be satisfied, before environment applies the next input burst

20

Example : Burst-Mode Synthesis

1

2

3

4

AR+/BR+

BA+/BR-

BA-/AA+

AR-/AA-

Burst-Mode Specification:

21

Example : Burst-Mode Synthesis

BA BR

AABAAR

AR

Y0

1

2

3

4

AR+/BR+

BA+/BR-

BA-/AA+

AR-/AA-

Burst-Mode Specification:Burst-Mode Implementation:

AR

BA