advanced vlsi chap8-3
TRANSCRIPT
-
7/28/2019 ADVANCED VLSI CHAP8-3
1/44
-
7/28/2019 ADVANCED VLSI CHAP8-3
2/44
Modern VLSI Design 4e: Chapter 8 Copyright 2008 Wayne Wolf
Register-transfer design
A register-transfer system is a sequential
machine.
Register-transfer design is structural
complex combinations of state machines
may not be easily described solely by a
large state transition graph. Register-transfer design concentrates on
functionality, not details of logic design.
-
7/28/2019 ADVANCED VLSI CHAP8-3
3/44
Modern VLSI Design 4e: Chapter 8 Copyright 2008 Wayne Wolf
Register-transfer system example
A register-transfer machine has combinational
logic connecting registers:
DQ combinational
logic
D QD Q combinational
logic
combinational
logic
-
7/28/2019 ADVANCED VLSI CHAP8-3
4/44
Modern VLSI Design 4e: Chapter 8 Copyright 2008 Wayne Wolf
Block diagrams
Block diagrams specify structure: wire bundleof width 5
-
7/28/2019 ADVANCED VLSI CHAP8-3
5/44
Modern VLSI Design 4e: Chapter 8 Copyright 2008 Wayne Wolf
Register-transfer simulation
Simulates to clock-cycle accuracy. Doesnt
guarantee timing.
Important to get proper function of
machine before jumping into detailed logic
design. (But be sure to take into account
critical delays when choosing register-transfer organization.)
-
7/28/2019 ADVANCED VLSI CHAP8-3
6/44
Modern VLSI Design 4e: Chapter 8 Copyright 2008 Wayne Wolf
Simulation coding
Hardware description languages are
typically supported by a simulation
system: VHDL, Verilog, etc.Simulation engine takes care of scheduling
events during simulation.
Can hand-code a simulation in aprogramming language.
Must be sure that register-transfer events
happen in proper order.
-
7/28/2019 ADVANCED VLSI CHAP8-3
7/44
Modern VLSI Design 4e: Chapter 8 Copyright 2008 Wayne Wolf
Sample VHDL code
sync: process begin
wait until CLOCKevent and CLOCK=1;
state
out1
-
7/28/2019 ADVANCED VLSI CHAP8-3
8/44
Modern VLSI Design 4e: Chapter 8 Copyright 2008 Wayne Wolf
Sample C simulator
while (TRUE) {
switch (state) {
case S0:
x = a + b;
state = S1;
next;
case S1:
...}
}
loop executed once
per clock cycle
each case corresponds
to a state; sets outputs,
next state
-
7/28/2019 ADVANCED VLSI CHAP8-3
9/44
Modern VLSI Design 4e: Chapter 8 Copyright 2008 Wayne Wolf
Data path-controller systems
One good way to structure a system is as a
data path and a controller:
data path executes regular operations(arithmetic, etc.), holds registers with data-
oriented state;
controller evaluates irregular functions, setscontrol signals for data path.
-
7/28/2019 ADVANCED VLSI CHAP8-3
10/44
Modern VLSI Design 4e: Chapter 8 Copyright 2008 Wayne Wolf
Data and control are equivalent
We can rewrite control into data and visa
versa:
control: if i1 = 0 then o1
-
7/28/2019 ADVANCED VLSI CHAP8-3
11/44
Modern VLSI Design 4e: Chapter 8 Copyright 2008 Wayne Wolf
Data operators
Arithmetic operations are easy to spot in
hardware description languages:
x
-
7/28/2019 ADVANCED VLSI CHAP8-3
12/44
Modern VLSI Design 4e: Chapter 8 Copyright 2008 Wayne Wolf
Conditionals and multiplexers
if x = 0 then
reg1
-
7/28/2019 ADVANCED VLSI CHAP8-3
13/44
Modern VLSI Design 4e: Chapter 8 Copyright 2008 Wayne Wolf
Alternate data path-controller
systems
controller
data path
one controller,
one data path
controller
data path
controller
data path
two communicating
data path-controller
systems
-
7/28/2019 ADVANCED VLSI CHAP8-3
14/44
Modern VLSI Design 4e: Chapter 8 Copyright 2008 Wayne Wolf
ASM charts
An ASM chart is a register-transfer
description.
ASM charts let us describe functionwithout choosing a partitioning between
control and data.
Once we have specified the function, wecan refine it into a block diagram which
partitions data and control.
-
7/28/2019 ADVANCED VLSI CHAP8-3
15/44
Modern VLSI Design 4e: Chapter 8 Copyright 2008 Wayne Wolf
Sample ASM chart
-
7/28/2019 ADVANCED VLSI CHAP8-3
16/44
Modern VLSI Design 4e: Chapter 8 Copyright 2008 Wayne Wolf
ASM state
An ASM state specifies a machine state
and a set of actions in that state. All actions
occur in parallel.
s1 x = a + b
y = c - d + e
o1 = 1
name of state (notation only)
-
7/28/2019 ADVANCED VLSI CHAP8-3
17/44
Modern VLSI Design 4e: Chapter 8 Copyright 2008 Wayne Wolf
Actions in state
Actions in a state are unconditionally
executed.
A state can execute as many actions as youwant, but you must eventually supply
hardware for all those actions.
A register may be assigned to only once ina state (single-assignment rule).
-
7/28/2019 ADVANCED VLSI CHAP8-3
18/44
Modern VLSI Design 4e: Chapter 8 Copyright 2008 Wayne Wolf
Implementing operations in an
ASM state
state with one addition
two additions requires two adders
-
7/28/2019 ADVANCED VLSI CHAP8-3
19/44
Modern VLSI Design 4e: Chapter 8 Copyright 2008 Wayne Wolf
Sequences of states
States are linked by transitions.
States are executed sequentially. Each state
may take independent actions (includingassigning to a variable assigned to in a
previous state).
s1x = a + b
s2x = c + d
y = a + d
-
7/28/2019 ADVANCED VLSI CHAP8-3
20/44
Modern VLSI Design 4e: Chapter 8 Copyright 2008 Wayne Wolf
Data paths from states
Maximum amount of hardware in data path
is determined by state which executes the
most functionality. Function units implementing data
operations may be reused across states, but
multiplexers will be required to routevalues to the shared function units.
-
7/28/2019 ADVANCED VLSI CHAP8-3
21/44
Modern VLSI Design 4e: Chapter 8 Copyright 2008 Wayne Wolf
Function unit sharing example
mux allows +
to compute
a+b, a+c
-
7/28/2019 ADVANCED VLSI CHAP8-3
22/44
Modern VLSI Design 4e: Chapter 8 Copyright 2008 Wayne Wolf
Conditionals
Conditional chooses which state to execute
next based on primary input or present
state value. Can be drawn in either of two ways:
a = bx
00 01 10 11T
F
-
7/28/2019 ADVANCED VLSI CHAP8-3
23/44
Modern VLSI Design 4e: Chapter 8 Copyright 2008 Wayne Wolf
Execution of conditionals
An ASM chart describes a Moore
sequential machine. If the logic associated
with an ASM chart fragment doesntcorrespond to a legal sequential machine,
then it isnt a legal ASM chart.
Conditional can evaluate only present stateor primary input value on present cycle.
I l i ASM b h i
-
7/28/2019 ADVANCED VLSI CHAP8-3
24/44
Modern VLSI Design 4e: Chapter 8 Copyright 2008 Wayne Wolf
Implementing an ASM branch in
a Moore machine
ASM chart
state transition
graph of
controller
-
7/28/2019 ADVANCED VLSI CHAP8-3
25/44
Modern VLSI Design 4e: Chapter 8 Copyright 2008 Wayne Wolf
Mealy machines and ASM
Mealy machine requires a conditional
output.
ASM notation for conditional output:
i10
y = c + d
E t ti d t th d
-
7/28/2019 ADVANCED VLSI CHAP8-3
26/44
Modern VLSI Design 4e: Chapter 8 Copyright 2008 Wayne Wolf
Extracting data path and
controller
ASM chart notation helps identify data,
control.
Once you choose what values andoperations go into the data path, you can
determine by elimination what goes into
the controller. Structure of the ASM chart gives structure
of controller state transition graph.
-
7/28/2019 ADVANCED VLSI CHAP8-3
27/44
Modern VLSI Design 4e: Chapter 8 Copyright 2008 Wayne Wolf
Data path-controller extraction
-
7/28/2019 ADVANCED VLSI CHAP8-3
28/44
Modern VLSI Design 4e: Chapter 8 Copyright 2008 Wayne Wolf
Pipelines
Provide higher utilization of logic:
Combinational logic
-
7/28/2019 ADVANCED VLSI CHAP8-3
29/44
Modern VLSI Design 4e: Chapter 8 Copyright 2008 Wayne Wolf
Pipeline metrics
Throughput: rate at
which new values
enter the system. Initiation interval: time
between successive
inputs.
Latency: delay frominput to output.
Delay through logic
is D, n blocks.
L = D. T = n/D.
P = D/n.
Cl k i d d th h t
-
7/28/2019 ADVANCED VLSI CHAP8-3
30/44
Modern VLSI Design 4e: Chapter 8 Copyright 2008 Wayne Wolf
Clock period and throughput vs.
pipeline depth
-
7/28/2019 ADVANCED VLSI CHAP8-3
31/44
Modern VLSI Design 4e: Chapter 8 Copyright 2008 Wayne Wolf
Simple pipelines
Pure pipelines have no control.
Choose latency, throughput.
Choose register locations with retiming.
Overhead:
Setup, hold times.
Power.
-
7/28/2019 ADVANCED VLSI CHAP8-3
32/44
-
7/28/2019 ADVANCED VLSI CHAP8-3
33/44
Modern VLSI Design 4e: Chapter 8 Copyright 2008 Wayne Wolf
Bad cutset for pipelining
-
7/28/2019 ADVANCED VLSI CHAP8-3
34/44
Modern VLSI Design 4e: Chapter 8 Copyright 2008 Wayne Wolf
Utilization
Must fill, drain pipe at start and end of
computation.
Given D cycles of data, n-stage pipe:U = D/(D+n)
-
7/28/2019 ADVANCED VLSI CHAP8-3
35/44
Modern VLSI Design 4e: Chapter 8 Copyright 2008 Wayne Wolf
Complex pipelines
Actions in pipeline depend on data or
external events.
Data dependencies may be forward orbackward.
Actions on pipe:
Stall values.
Abort operation.
Bypass values.
Pipeline with feedforward
-
7/28/2019 ADVANCED VLSI CHAP8-3
36/44
Modern VLSI Design 4e: Chapter 8 Copyright 2008 Wayne Wolf
Pipeline with feedforward
constraint
-
7/28/2019 ADVANCED VLSI CHAP8-3
37/44
Modern VLSI Design 4e: Chapter 8 Copyright 2008 Wayne Wolf
Pipeline with feedback constraint
-
7/28/2019 ADVANCED VLSI CHAP8-3
38/44
Modern VLSI Design 4e: Chapter 8 Copyright 2008 Wayne Wolf
Pipeline with shared hardware
-
7/28/2019 ADVANCED VLSI CHAP8-3
39/44
Modern VLSI Design 4e: Chapter 8 Copyright 2008 Wayne Wolf
Pipeline control
Controllers are
necessary when pipe
stages takeconditions.
Unconditional pipe
stage controller has
one state, onetransition.
-
7/28/2019 ADVANCED VLSI CHAP8-3
40/44
Modern VLSI Design 4e: Chapter 8 Copyright 2008 Wayne Wolf
Pipeline with distributed control
-
7/28/2019 ADVANCED VLSI CHAP8-3
41/44
Modern VLSI Design 4e: Chapter 8 Copyright 2008 Wayne Wolf
Pipeline controller with condition
Distributed control for pipeline
-
7/28/2019 ADVANCED VLSI CHAP8-3
42/44
Modern VLSI Design 4e: Chapter 8 Copyright 2008 Wayne Wolf
Distributed control for pipeline
flush
-
7/28/2019 ADVANCED VLSI CHAP8-3
43/44
Modern VLSI Design 4e: Chapter 8 Copyright 2008 Wayne Wolf
Control for hardware sharing
Product machine for distributed
-
7/28/2019 ADVANCED VLSI CHAP8-3
44/44
Product machine for distributed
control
Distributed control is
hard to verify
because state is notcentralized.
Product machine
form identifies global
control actions. Can verify using
symbolic simulation,
model checking.