SlideShare a Scribd company logo
1 of 8
Download to read offline
1
Embedded Systems Design: A Unified
Hardware/Software Introduction
Chapter 2: Custom single-purpose
processors
2
Embedded Systems Design: A Unified
Hardware/Software Introduction, (c) 2000 Vahid/Givargis
Outline
• Introduction
• Combinational logic
• Sequential logic
• Custom single-purpose processor design
• RT-level custom single-purpose processor design
3
Embedded Systems Design: A Unified
Hardware/Software Introduction, (c) 2000 Vahid/Givargis
Introduction
• Processor
– Digital circuit that performs a
computation tasks
– Controller and datapath
– General-purpose: variety of computation
tasks
– Single-purpose: one particular
computation task
– Custom single-purpose: non-standard
task
• A custom single-purpose
processor may be
– Fast, small, low power
– But, high NRE, longer time-to-market,
less flexible
Microcontroller
CCD
preprocessor
Pixel coprocessor
A2D
D2A
JPEG codec
DMA controller
Memory controller ISA bus interface UART LCD ctrl
Display
ctrl
Multiplier/Accum
Digital camera chip
lens
CCD
4
Embedded Systems Design: A Unified
Hardware/Software Introduction, (c) 2000 Vahid/Givargis
CMOS transistor on silicon
• Transistor
– The basic electrical component in digital systems
– Acts as an on/off switch
– Voltage at “gate” controls whether current flows from
source to drain
– Don’t confuse this “gate” with a logic gate
source drain
oxide
gate
IC package IC
channel
Silicon substrate
gate
source
drain
Conducts
if gate=1
1
5
Embedded Systems Design: A Unified
Hardware/Software Introduction, (c) 2000 Vahid/Givargis
CMOS transistor implementations
• Complementary Metal Oxide
Semiconductor
• We refer to logic levels
– Typically 0 is 0V, 1 is 5V
• Two basic CMOS types
– nMOS conducts if gate=1
– pMOS conducts if gate=0
– Hence “complementary”
• Basic gates
– Inverter, NAND, NOR
x F = x'
1
inverter
0
F = (xy)'
x
1
x
y
y
NAND gate
0
1
F = (x+y)'
x y
x
y
NOR gate
0
gate
source
drain
nMOS
Conducts
if gate=1
gate
source
drain
pMOS
Conducts
if gate=0
6
Embedded Systems Design: A Unified
Hardware/Software Introduction, (c) 2000 Vahid/Givargis
Basic logic gates
F = x y
AND
F = (x y)’
NAND
F = x ! y
XOR
F = x
Driver
F = x’
Inverter
x F
F = x + y
OR
F = (x+y)’
NOR
x F
x
y
F
F
x
y
x
y
F
x
y
F
x
y
F
F = x y
XNOR
F
y
x
x
0
y
0
F
0
0 1 0
1 0 0
1 1 1
x
0
y
0
F
0
0 1 1
1 0 1
1 1 1
x
0
y
0
F
0
0 1 1
1 0 1
1 1 0
x
0
y
0
F
1
0 1 0
1 0 0
1 1 1
x
0
y
0
F
1
0 1 1
1 0 1
1 1 0
x
0
y
0
F
1
0 1 0
1 0 0
1 1 0
x F
0 0
1 1
x F
0 1
1 0
7
Embedded Systems Design: A Unified
Hardware/Software Introduction, (c) 2000 Vahid/Givargis
Combinational logic design
A) Problem description
y is 1 if a is to 1, or b and c are 1. z is 1 if
b or c is to 1, but not both, or if all are 1.
D) Minimized output equations
00
0
1
01 11 10
0
1
0 1 0
1 1 1
a
bc
y
y = a + bc
00
0
1
01 11 10
0
0
1 0 1
1 1 1
z
z = ab + b’c + bc’
a
bc
C) Output equations
y = a'bc + ab'c' + ab'c + abc' + abc
z = a'b'c + a'bc' + ab'c + abc' + abc
B) Truth table
1 0 1 1 1
1 1 0 1 1
1 1 1 1 1
0 0 1 0 1
0 1 0 0 1
0 1 1 1 0
1 0 0 1 0
0
0 0 0 0
Inputs
a b c
Outputs
y z
E) Logic Gates
a
b
c
y
z
Combinational circuit - a digital circuit whose output is purely a function of its present inputs.
8
Embedded Systems Design: A Unified
Hardware/Software Introduction, (c) 2000 Vahid/Givargis
RT-Level Combinational components
With enable input e !
all O’s are 0 if e=0
With carry-in input Ci!
sum = A + B + Ci
May have status outputs
carry, zero, etc.
O =
I0 if S=0..00
I1 if S=0..01
…
I(m-1) if S=1..11
O0 =1 if I=0..00
O1 =1 if I=0..01
…
O(n-1) =1 if I=1..11
sum = A+B
(first n bits)
carry = (n+1)’th
bit of A+B
less = 1 if A<B
equal =1 if A=B
greater=1 if A>B
O = A op B
op determined
by S.
n-bit, m x 1
Multiplexor
O
…
S0
S(log m)
n
n
I(m-1) I1 I0
…
log n x n
Decoder
…
O1 O0
O(n-1)
I0
I(log n -1)
…
n-bit
Adder
n
A B
n
sum
carry
n-bit
Comparator
n n
A B
less equal greater
n bit,
m function
ALU
n n
A B
…
S0
S(log m)
n
O
9
Embedded Systems Design: A Unified
Hardware/Software Introduction, (c) 2000 Vahid/Givargis
Sequential components
Q =
0 if clear=1,
I if load=1 and clock=1,
Q(previous) otherwise.
Q =
0 if clear=1,
Q(prev)+1 if count=1 and clock=1.
clear
n-bit
Register
n
n
load
I
Q
shift
I Q
n-bit
Shift register
n-bit
Counter
n
Q
Q = lsb
- Content shifted
- I stored in msb
Sequential circuit - a digital circuit whose outputs are a function of the present inputs as well as the previous inputs
10
Embedded Systems Design: A Unified
Hardware/Software Introduction, (c) 2000 Vahid/Givargis
Sequential logic design
A) Problem Description
You want to construct a clock
divider. Slow down your pre-
existing clock so that you output a
1 for every four clock cycles
0
1 2
3
x=0
x=1
x=0
x=0
a=1 a=1
a=1
a=1
a=0
a=0
a=0
a=0
B) State Diagram - FSM
C) Implementation Model
Combinational logic
(Generate output values
and next state)
State register
(Stores current state)
a
x
I0
I0
I1
I1
Q1 Q0
D) State Table (Moore-type)
1 0 1 1 1
1 1 0 1 1
1 1 1 0 0
0 0 1 0 1
0 1 0 0 1
0 1 1 1 0
1 0 0 1 0
0
0 0 0 0
Inputs
Q1 Q0 a
Outputs
I1 I0
1
0
0
0
x
• Given this implementation model
– Sequential logic design quickly reduces to
combinational logic design
11
Embedded Systems Design: A Unified
Hardware/Software Introduction, (c) 2000 Vahid/Givargis
Sequential logic design (cont.)
0
0
1
Q1Q0
I1
I1 = Q1’Q0a + Q1a’ +
Q1Q0’
0 1
1
1
0
1
0
00 11 10
a 01
0
0
0
1 0 1
1
00 01 11
a
1
10
I0 Q1Q0
I0 = Q0a’ + Q0’a
0
1
0 0
0
1
1
0
0
00 01 11 10
x = Q1Q0
x
0
1
0
a
Q1Q0
E) Minimized Output Equations F) Combinational Logic
a
Q1 Q0
I0
I1
x
12
Embedded Systems Design: A Unified
Hardware/Software Introduction, (c) 2000 Vahid/Givargis
Custom single-purpose processor basic
model
controller and datapath
controller datapath
…
…
external
control
inputs
external
control
outputs
…
external
data
inputs
…
external
data
outputs
datapath
control
inputs
datapath
control
outputs
… …
a view inside the controller and datapath
controller datapath
… …
state
register
next-state
and
control
logic
registers
functional
units
13
Embedded Systems Design: A Unified
Hardware/Software Introduction, (c) 2000 Vahid/Givargis
Example: greatest common divisor
GCD
(a) black-box
view
x_i y_i
d_o
go_i
0: int x, y;
1: while (1) {
2: while (!go_i);
3: x = x_i;
4: y = y_i;
5: while (x != y) {
6: if (x < y)
7: y = y - x;
else
8: x = x - y;
}
9: d_o = x;
}
(b) desired functionality
y = y -x
7: x = x - y
8:
6-J:
x!=y
5: !(x!=y)
x<y !(x<y)
6:
5-J:
1:
1
!1
x = x_i
3:
y = y_i
4:
2:
2-J:
!go_i
!(!go_i)
d_o = x
1-J:
9:
(c) state
diagram
• First create algorithm
• Convert algorithm to
“complex” state machine
– Known as FSMD: finite-
state machine with datapath
– Can use templates to
perform such conversion
14
Embedded Systems Design: A Unified
Hardware/Software Introduction, (c) 2000 Vahid/Givargis
State diagram templates
Assignment statement
a = b
next statement
a = b
next
statement
Loop statement
while (cond) {
loop-body-
statements
}
next statement
loop-body-
statements
cond
next
statement
!cond
J:
C:
Branch statement
if (c1)
c1 stmts
else if c2
c2 stmts
else
other stmts
next statement
c1
c2 stmts
!c1*c2 !c1*!c2
next
statement
others
c1 stmts
J:
C:
15
Embedded Systems Design: A Unified
Hardware/Software Introduction, (c) 2000 Vahid/Givargis
Creating the datapath
• Create a register for any
declared variable
• Create a functional unit for
each arithmetic operation
• Connect the ports, registers
and functional units
– Based on reads and writes
– Use multiplexors for
multiple sources
• Create unique identifier
– for each datapath component
control input and output
y = y -x
7: x = x - y
8:
6-J:
x!=y
5: !(x!=y)
x<y !(x<y)
6:
5-J:
1:
1
!1
x = x_i
3:
y = y_i
4:
2:
2-J:
!go_i
!(!go_i)
d_o = x
1-J:
9:
subtractor subtractor
7: y-x
8: x-y
5: x!=y 6: x<y
x_i y_i
d_o
0: x 0: y
9: d
n-bit 2x1 n-bit 2x1
x_sel
y_sel
x_ld
y_ld
x_neq_y
x_lt_y
d_ld
<
5: x!=y
!=
Datapath
16
Embedded Systems Design: A Unified
Hardware/Software Introduction, (c) 2000 Vahid/Givargis
Creating the controller’s FSM
• Same structure as FSMD
• Replace complex
actions/conditions with
datapath configurations
y = y -x
7: x = x - y
8:
6-J:
x!=y
5: !(x!=y)
x<y !(x<y)
6:
5-J:
1:
1
!1
x = x_i
3:
y = y_i
4:
2:
2-J:
!go_i
!(!go_i)
d_o = x
1-J:
9:
y_sel = 1
y_ld = 1
7: x_sel = 1
x_ld = 1
8:
6-J:
x_neq_y
5:
!x_neq_y
x_lt_y !x_lt_y
6:
5-J:
d_ld = 1
1-J:
9:
x_sel = 0
x_ld = 1
3:
y_sel = 0
y_ld = 1
4:
1:
1
!1
2:
2-J:
!go_i
!(!go_i)
go_i
0000
0001
0010
0011
0100
0101
0110
0111 1000
1001
1010
1011
1100
Controller
subtractor subtractor
7: y-x
8: x-y
5: x!=y 6: x<y
x_i y_i
d_o
0: x 0: y
9: d
n-bit 2x1 n-bit 2x1
x_sel
y_sel
x_ld
y_ld
x_neq_y
x_lt_y
d_ld
<
5: x!=y
!=
Datapath
17
Embedded Systems Design: A Unified
Hardware/Software Introduction, (c) 2000 Vahid/Givargis
Splitting into a controller and datapath
y_sel = 1
y_ld = 1
7: x_sel = 1
x_ld = 1
8:
6-J:
x_neq_y=1
5:
x_neq_y=0
x_lt_y=1 x_lt_y=0
6:
5-J:
d_ld = 1
1-J:
9:
x_sel = 0
x_ld = 1
3:
y_sel = 0
y_ld = 1
4:
1:
1
!1
2:
2-J:
!go_i
!(!go_i)
go_i
0000
0001
0010
0011
0100
0101
0110
0111 1000
1001
1010
1011
1100
Controller
Controller implementation model
y_sel
x_sel
Combinational
logic
Q3 Q0
State register
go_i
x_neq_y
x_lt_y
x_ld
y_ld
d_ld
Q2 Q1
I3 I0
I2 I1
subtractor subtractor
7: y-x
8: x-y
5: x!=y 6: x<y
x_i y_i
d_o
0: x 0: y
9: d
n-bit 2x1 n-bit 2x1
x_sel
y_sel
x_ld
y_ld
x_neq_y
x_lt_y
d_ld
<
5: x!=y
!=
(b) Datapath
18
Embedded Systems Design: A Unified
Hardware/Software Introduction, (c) 2000 Vahid/Givargis
Controller state table for the GCD example
Inputs Outputs
Q3 Q2 Q1 Q0 x_neq
_y
x_lt_
y
go_i I3 I2 I1 I0 x_sel y_sel x_ld y_ld d_ld
0 0 0 0 * * * 0 0 0 1 X X 0 0 0
0 0 0 1 * * 0 0 0 1 0 X X 0 0 0
0 0 0 1 * * 1 0 0 1 1 X X 0 0 0
0 0 1 0 * * * 0 0 0 1 X X 0 0 0
0 0 1 1 * * * 0 1 0 0 0 X 1 0 0
0 1 0 0 * * * 0 1 0 1 X 0 0 1 0
0 1 0 1 0 * * 1 0 1 1 X X 0 0 0
0 1 0 1 1 * * 0 1 1 0 X X 0 0 0
0 1 1 0 * 0 * 1 0 0 0 X X 0 0 0
0 1 1 0 * 1 * 0 1 1 1 X X 0 0 0
0 1 1 1 * * * 1 0 0 1 X 1 0 1 0
1 0 0 0 * * * 1 0 0 1 1 X 1 0 0
1 0 0 1 * * * 1 0 1 0 X X 0 0 0
1 0 1 0 * * * 0 1 0 1 X X 0 0 0
1 0 1 1 * * * 1 1 0 0 X X 0 0 1
1 1 0 0 * * * 0 0 0 0 X X 0 0 0
1 1 0 1 * * * 0 0 0 0 X X 0 0 0
1 1 1 0 * * * 0 0 0 0 X X 0 0 0
1 1 1 1 * * * 0 0 0 0 X X 0 0 0
19
Embedded Systems Design: A Unified
Hardware/Software Introduction, (c) 2000 Vahid/Givargis
Completing the GCD custom single-purpose
processor design
• We finished the datapath
• We have a state table for
the next state and control
logic
– All that’s left is
combinational logic
design
• This is not an optimized
design, but we see the
basic steps
… …
a view inside the controller and datapath
controller datapath
… …
state
register
next-state
and
control
logic
registers
functional
units
20
Embedded Systems Design: A Unified
Hardware/Software Introduction, (c) 2000 Vahid/Givargis
• We often start with a state
machine
– Rather than algorithm
– Cycle timing often too central
to functionality
• Example
– Bus bridge that converts 4-bit
bus to 8-bit bus
– Start with FSMD
– Known as register-transfer
(RT) level
– Exercise: complete the design
RT-level custom single-purpose processor
design
Problem
Specification
Bridge
A single-purpose processor that
converts two 4-bit inputs, arriving one
at a time over data_in along with a
rdy_in pulse, into one 8-bit output on
data_out along with a rdy_out pulse.
Sende
r
data_in(4)
rdy_in rdy_out
data_out(8)
Rece
iver
clock
FSMD
WaitFirst4 RecFirst4Start
data_lo=data_in
WaitSecond4
rdy_in=1
rdy_in=0
RecFirst4End
rdy_in=1
RecSecond4Start
data_hi=data_in
RecSecond4End
rdy_in=1
rdy_in=0
rdy_in=1
rdy_in=0
Send8Start
data_out=data_hi
& data_lo
rdy_out=1
Send8End
rdy_out=0
Bridge
rdy_in=0
Inputs
rdy_in: bit; data_in: bit[4];
Outputs
rdy_out: bit; data_out:bit[8]
Variables
data_lo, data_hi: bit[4];
21
Embedded Systems Design: A Unified
Hardware/Software Introduction, (c) 2000 Vahid/Givargis
RT-level custom single-purpose processor
design (cont’)
WaitFirst4 RecFirst4Start
data_lo_ld=1
WaitSecond4
rdy_in=1
rdy_in=0
RecFirst4End
rdy_in=1
RecSecond4Start
data_hi_ld=1
RecSecond4End
rdy_in=1
rdy_in=0
rdy_in=1
rdy_in=0
Send8Start
data_out_ld=1
rdy_out=1
Send8End
rdy_out=0
(a) Controller
rdy_in rdy_out
data_lo
data_hi
data_in(4)
(b) Datapath
data_out
data_out_ld
data_hi_ld
data_lo_ld
clk
to
all
registers
data_out
Bridge
22
Embedded Systems Design: A Unified
Hardware/Software Introduction, (c) 2000 Vahid/Givargis
Optimizing single-purpose processors
• Optimization is the task of making design metric
values the best possible
• Optimization opportunities
– original program
– FSMD
– datapath
– FSM
23
Embedded Systems Design: A Unified
Hardware/Software Introduction, (c) 2000 Vahid/Givargis
Optimizing the original program
• Analyze program attributes and look for areas of
possible improvement
– number of computations
– size of variable
– time and space complexity
– operations used
• multiplication and division very expensive
24
Embedded Systems Design: A Unified
Hardware/Software Introduction, (c) 2000 Vahid/Givargis
Optimizing the original program (cont’)
0: int x, y;
1: while (1) {
2: while (!go_i);
3: x = x_i;
4: y = y_i;
5: while (x != y) {
6: if (x < y)
7: y = y - x;
else
8: x = x - y;
}
9: d_o = x;
}
0: int x, y, r;
1: while (1) {
2: while (!go_i);
// x must be the larger number
3: if (x_i >= y_i) {
4: x=x_i;
5: y=y_i;
}
6: else {
7: x=y_i;
8: y=x_i;
}
9: while (y != 0) {
10: r = x % y;
11: x = y;
12: y = r;
}
13: d_o = x;
}
original program optimized program
replace the subtraction
operation(s) with modulo
operation in order to speed
up program
GCD(42, 8) - 9 iterations to complete the loop
x and y values evaluated as follows : (42, 8), (43, 8),
(26,8), (18,8), (10, 8), (2,8), (2,6), (2,4), (2,2).
GCD(42,8) - 3 iterations to complete the loop
x and y values evaluated as follows: (42, 8), (8,2),
(2,0)
25
Embedded Systems Design: A Unified
Hardware/Software Introduction, (c) 2000 Vahid/Givargis
Optimizing the FSMD
• Areas of possible improvements
– merge states
• states with constants on transitions can be eliminated, transition
taken is already known
• states with independent operations can be merged
– separate states
• states which require complex operations (a*b*c*d) can be broken
into smaller states to reduce hardware size
– scheduling
26
Embedded Systems Design: A Unified
Hardware/Software Introduction, (c) 2000 Vahid/Givargis
Optimizing the FSMD (cont.)
int x, y;
2:
go_i !go_i
x = x_i
y = y_i
x<y x>y
y = y -x x = x - y
3:
5:
7: 8:
d_o = x
9:
y = y -x
7:
x = x - y
8:
6-J:
x!=y
5: !(x!=y)
x<y !(x<y)
6:
5-J:
1:
1
!1
x = x_i
y = y_i
4:
2:
2-J:
!go_i
!(!go_i)
d_o = x
1-J:
9:
int x, y;
3:
original FSMD optimized FSMD
eliminate state 1 – transitions have constant values
merge state 2 and state 2J – no loop operation in
between them
merge state 3 and state 4 – assignment operations are
independent of one another
merge state 5 and state 6 – transitions from state 6 can
be done in state 5
eliminate state 5J and 6J – transitions from each state
can be done from state 7 and state 8, respectively
eliminate state 1-J – transition from state 1-J can be
done directly from state 9
27
Embedded Systems Design: A Unified
Hardware/Software Introduction, (c) 2000 Vahid/Givargis
Optimizing the datapath
• Sharing of functional units
– one-to-one mapping, as done previously, is not necessary
– if same operation occurs in different states, they can share a
single functional unit
• Multi-functional units
– ALUs support a variety of operations, it can be shared
among operations occurring in different states
28
Embedded Systems Design: A Unified
Hardware/Software Introduction, (c) 2000 Vahid/Givargis
Optimizing the FSM
• State encoding
– task of assigning a unique bit pattern to each state in an FSM
– size of state register and combinational logic vary
– can be treated as an ordering problem
• State minimization
– task of merging equivalent states into a single state
• state equivalent if for all possible input combinations the two states
generate the same outputs and transitions to the next same state
29
Embedded Systems Design: A Unified
Hardware/Software Introduction, (c) 2000 Vahid/Givargis
Summary
• Custom single-purpose processors
– Straightforward design techniques
– Can be built to execute algorithms
– Typically start with FSMD
– CAD tools can be of great assistance

More Related Content

Similar to eel6935_ch2.pdf

Computer organiztion3
Computer organiztion3Computer organiztion3
Computer organiztion3
Umang Gupta
 

Similar to eel6935_ch2.pdf (20)

Ch1 2
Ch1 2Ch1 2
Ch1 2
 
CH1_2.ppt
CH1_2.pptCH1_2.ppt
CH1_2.ppt
 
Logic gates and boolean algebra.ppt
Logic gates and boolean algebra.pptLogic gates and boolean algebra.ppt
Logic gates and boolean algebra.ppt
 
digital logic circuits, logic gates, boolean algebra
digital logic circuits, logic gates, boolean algebradigital logic circuits, logic gates, boolean algebra
digital logic circuits, logic gates, boolean algebra
 
Ch1-2, Digital Logic Circuit and Digital Components.ppt
Ch1-2, Digital Logic Circuit and Digital Components.pptCh1-2, Digital Logic Circuit and Digital Components.ppt
Ch1-2, Digital Logic Circuit and Digital Components.ppt
 
Computer organiztion3
Computer organiztion3Computer organiztion3
Computer organiztion3
 
Ch1 2 (2)
Ch1 2 (2)Ch1 2 (2)
Ch1 2 (2)
 
Dpsd lecture-notes
Dpsd lecture-notesDpsd lecture-notes
Dpsd lecture-notes
 
04 comb ex
04 comb ex04 comb ex
04 comb ex
 
Video lectures for bba
Video lectures for bbaVideo lectures for bba
Video lectures for bba
 
Lecture 18 M - Copy.pptx
Lecture 18 M - Copy.pptxLecture 18 M - Copy.pptx
Lecture 18 M - Copy.pptx
 
Z turn board
Z turn boardZ turn board
Z turn board
 
COA Chapter 1.pdf
COA Chapter 1.pdfCOA Chapter 1.pdf
COA Chapter 1.pdf
 
D0364017024
D0364017024D0364017024
D0364017024
 
Beyond php - it's not (just) about the code
Beyond php - it's not (just) about the codeBeyond php - it's not (just) about the code
Beyond php - it's not (just) about the code
 
Rapport
RapportRapport
Rapport
 
Saur lecture 16
Saur lecture 16Saur lecture 16
Saur lecture 16
 
Logic Gates O level Past Papers questions
Logic Gates O level Past Papers questionsLogic Gates O level Past Papers questions
Logic Gates O level Past Papers questions
 
Introduction to embedded system & density based traffic light system
Introduction to embedded system & density based traffic light systemIntroduction to embedded system & density based traffic light system
Introduction to embedded system & density based traffic light system
 
microprocessors
microprocessorsmicroprocessors
microprocessors
 

More from Sambasiva62 (15)

An Experimental mmWave Channel Model for UAV to UAV Communication.pdf
An Experimental mmWave Channel Model for UAV to UAV Communication.pdfAn Experimental mmWave Channel Model for UAV to UAV Communication.pdf
An Experimental mmWave Channel Model for UAV to UAV Communication.pdf
 
COnference PPT-Final.pptx
COnference  PPT-Final.pptxCOnference  PPT-Final.pptx
COnference PPT-Final.pptx
 
Communication bands.pptx
Communication bands.pptxCommunication bands.pptx
Communication bands.pptx
 
UNIT-3 ppt.pptx
UNIT-3 ppt.pptxUNIT-3 ppt.pptx
UNIT-3 ppt.pptx
 
IV UNIT PPT (1).pptx
IV UNIT PPT (1).pptxIV UNIT PPT (1).pptx
IV UNIT PPT (1).pptx
 
v unit (1).pptx
v unit (1).pptxv unit (1).pptx
v unit (1).pptx
 
CMC-UNIT-2 Part-1.pptx
CMC-UNIT-2 Part-1.pptxCMC-UNIT-2 Part-1.pptx
CMC-UNIT-2 Part-1.pptx
 
ch11_031102.ppt
ch11_031102.pptch11_031102.ppt
ch11_031102.ppt
 
Channel Model.pptx
Channel Model.pptxChannel Model.pptx
Channel Model.pptx
 
Unit-V.pptx
Unit-V.pptxUnit-V.pptx
Unit-V.pptx
 
5g-technology-ppt.pptx
5g-technology-ppt.pptx5g-technology-ppt.pptx
5g-technology-ppt.pptx
 
Interfacing
InterfacingInterfacing
Interfacing
 
Unit-III.pptx
Unit-III.pptxUnit-III.pptx
Unit-III.pptx
 
ch1_010902 (1).ppt
ch1_010902 (1).pptch1_010902 (1).ppt
ch1_010902 (1).ppt
 
Unit-1 ESD.pptx
Unit-1 ESD.pptxUnit-1 ESD.pptx
Unit-1 ESD.pptx
 

Recently uploaded

VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
dharasingh5698
 
Integrated Test Rig For HTFE-25 - Neometrix
Integrated Test Rig For HTFE-25 - NeometrixIntegrated Test Rig For HTFE-25 - Neometrix
Integrated Test Rig For HTFE-25 - Neometrix
Neometrix_Engineering_Pvt_Ltd
 
Standard vs Custom Battery Packs - Decoding the Power Play
Standard vs Custom Battery Packs - Decoding the Power PlayStandard vs Custom Battery Packs - Decoding the Power Play
Standard vs Custom Battery Packs - Decoding the Power Play
Epec Engineered Technologies
 

Recently uploaded (20)

ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdfONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
 
Bhosari ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready For ...
Bhosari ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready For ...Bhosari ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready For ...
Bhosari ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready For ...
 
COST-EFFETIVE and Energy Efficient BUILDINGS ptx
COST-EFFETIVE  and Energy Efficient BUILDINGS ptxCOST-EFFETIVE  and Energy Efficient BUILDINGS ptx
COST-EFFETIVE and Energy Efficient BUILDINGS ptx
 
Unleashing the Power of the SORA AI lastest leap
Unleashing the Power of the SORA AI lastest leapUnleashing the Power of the SORA AI lastest leap
Unleashing the Power of the SORA AI lastest leap
 
A Study of Urban Area Plan for Pabna Municipality
A Study of Urban Area Plan for Pabna MunicipalityA Study of Urban Area Plan for Pabna Municipality
A Study of Urban Area Plan for Pabna Municipality
 
Generative AI or GenAI technology based PPT
Generative AI or GenAI technology based PPTGenerative AI or GenAI technology based PPT
Generative AI or GenAI technology based PPT
 
Thermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.pptThermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.ppt
 
(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7
(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7
(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7
 
DC MACHINE-Motoring and generation, Armature circuit equation
DC MACHINE-Motoring and generation, Armature circuit equationDC MACHINE-Motoring and generation, Armature circuit equation
DC MACHINE-Motoring and generation, Armature circuit equation
 
Hazard Identification (HAZID) vs. Hazard and Operability (HAZOP): A Comparati...
Hazard Identification (HAZID) vs. Hazard and Operability (HAZOP): A Comparati...Hazard Identification (HAZID) vs. Hazard and Operability (HAZOP): A Comparati...
Hazard Identification (HAZID) vs. Hazard and Operability (HAZOP): A Comparati...
 
(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7
(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7
(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7
 
Water Industry Process Automation & Control Monthly - April 2024
Water Industry Process Automation & Control Monthly - April 2024Water Industry Process Automation & Control Monthly - April 2024
Water Industry Process Automation & Control Monthly - April 2024
 
Thermal Engineering Unit - I & II . ppt
Thermal Engineering  Unit - I & II . pptThermal Engineering  Unit - I & II . ppt
Thermal Engineering Unit - I & II . ppt
 
Block diagram reduction techniques in control systems.ppt
Block diagram reduction techniques in control systems.pptBlock diagram reduction techniques in control systems.ppt
Block diagram reduction techniques in control systems.ppt
 
2016EF22_0 solar project report rooftop projects
2016EF22_0 solar project report rooftop projects2016EF22_0 solar project report rooftop projects
2016EF22_0 solar project report rooftop projects
 
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
 
Integrated Test Rig For HTFE-25 - Neometrix
Integrated Test Rig For HTFE-25 - NeometrixIntegrated Test Rig For HTFE-25 - Neometrix
Integrated Test Rig For HTFE-25 - Neometrix
 
University management System project report..pdf
University management System project report..pdfUniversity management System project report..pdf
University management System project report..pdf
 
Standard vs Custom Battery Packs - Decoding the Power Play
Standard vs Custom Battery Packs - Decoding the Power PlayStandard vs Custom Battery Packs - Decoding the Power Play
Standard vs Custom Battery Packs - Decoding the Power Play
 
Call Girls Wakad Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Wakad Call Me 7737669865 Budget Friendly No Advance BookingCall Girls Wakad Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Wakad Call Me 7737669865 Budget Friendly No Advance Booking
 

eel6935_ch2.pdf

  • 1. 1 Embedded Systems Design: A Unified Hardware/Software Introduction Chapter 2: Custom single-purpose processors 2 Embedded Systems Design: A Unified Hardware/Software Introduction, (c) 2000 Vahid/Givargis Outline • Introduction • Combinational logic • Sequential logic • Custom single-purpose processor design • RT-level custom single-purpose processor design 3 Embedded Systems Design: A Unified Hardware/Software Introduction, (c) 2000 Vahid/Givargis Introduction • Processor – Digital circuit that performs a computation tasks – Controller and datapath – General-purpose: variety of computation tasks – Single-purpose: one particular computation task – Custom single-purpose: non-standard task • A custom single-purpose processor may be – Fast, small, low power – But, high NRE, longer time-to-market, less flexible Microcontroller CCD preprocessor Pixel coprocessor A2D D2A JPEG codec DMA controller Memory controller ISA bus interface UART LCD ctrl Display ctrl Multiplier/Accum Digital camera chip lens CCD 4 Embedded Systems Design: A Unified Hardware/Software Introduction, (c) 2000 Vahid/Givargis CMOS transistor on silicon • Transistor – The basic electrical component in digital systems – Acts as an on/off switch – Voltage at “gate” controls whether current flows from source to drain – Don’t confuse this “gate” with a logic gate source drain oxide gate IC package IC channel Silicon substrate gate source drain Conducts if gate=1 1
  • 2. 5 Embedded Systems Design: A Unified Hardware/Software Introduction, (c) 2000 Vahid/Givargis CMOS transistor implementations • Complementary Metal Oxide Semiconductor • We refer to logic levels – Typically 0 is 0V, 1 is 5V • Two basic CMOS types – nMOS conducts if gate=1 – pMOS conducts if gate=0 – Hence “complementary” • Basic gates – Inverter, NAND, NOR x F = x' 1 inverter 0 F = (xy)' x 1 x y y NAND gate 0 1 F = (x+y)' x y x y NOR gate 0 gate source drain nMOS Conducts if gate=1 gate source drain pMOS Conducts if gate=0 6 Embedded Systems Design: A Unified Hardware/Software Introduction, (c) 2000 Vahid/Givargis Basic logic gates F = x y AND F = (x y)’ NAND F = x ! y XOR F = x Driver F = x’ Inverter x F F = x + y OR F = (x+y)’ NOR x F x y F F x y x y F x y F x y F F = x y XNOR F y x x 0 y 0 F 0 0 1 0 1 0 0 1 1 1 x 0 y 0 F 0 0 1 1 1 0 1 1 1 1 x 0 y 0 F 0 0 1 1 1 0 1 1 1 0 x 0 y 0 F 1 0 1 0 1 0 0 1 1 1 x 0 y 0 F 1 0 1 1 1 0 1 1 1 0 x 0 y 0 F 1 0 1 0 1 0 0 1 1 0 x F 0 0 1 1 x F 0 1 1 0 7 Embedded Systems Design: A Unified Hardware/Software Introduction, (c) 2000 Vahid/Givargis Combinational logic design A) Problem description y is 1 if a is to 1, or b and c are 1. z is 1 if b or c is to 1, but not both, or if all are 1. D) Minimized output equations 00 0 1 01 11 10 0 1 0 1 0 1 1 1 a bc y y = a + bc 00 0 1 01 11 10 0 0 1 0 1 1 1 1 z z = ab + b’c + bc’ a bc C) Output equations y = a'bc + ab'c' + ab'c + abc' + abc z = a'b'c + a'bc' + ab'c + abc' + abc B) Truth table 1 0 1 1 1 1 1 0 1 1 1 1 1 1 1 0 0 1 0 1 0 1 0 0 1 0 1 1 1 0 1 0 0 1 0 0 0 0 0 0 Inputs a b c Outputs y z E) Logic Gates a b c y z Combinational circuit - a digital circuit whose output is purely a function of its present inputs. 8 Embedded Systems Design: A Unified Hardware/Software Introduction, (c) 2000 Vahid/Givargis RT-Level Combinational components With enable input e ! all O’s are 0 if e=0 With carry-in input Ci! sum = A + B + Ci May have status outputs carry, zero, etc. O = I0 if S=0..00 I1 if S=0..01 … I(m-1) if S=1..11 O0 =1 if I=0..00 O1 =1 if I=0..01 … O(n-1) =1 if I=1..11 sum = A+B (first n bits) carry = (n+1)’th bit of A+B less = 1 if A<B equal =1 if A=B greater=1 if A>B O = A op B op determined by S. n-bit, m x 1 Multiplexor O … S0 S(log m) n n I(m-1) I1 I0 … log n x n Decoder … O1 O0 O(n-1) I0 I(log n -1) … n-bit Adder n A B n sum carry n-bit Comparator n n A B less equal greater n bit, m function ALU n n A B … S0 S(log m) n O
  • 3. 9 Embedded Systems Design: A Unified Hardware/Software Introduction, (c) 2000 Vahid/Givargis Sequential components Q = 0 if clear=1, I if load=1 and clock=1, Q(previous) otherwise. Q = 0 if clear=1, Q(prev)+1 if count=1 and clock=1. clear n-bit Register n n load I Q shift I Q n-bit Shift register n-bit Counter n Q Q = lsb - Content shifted - I stored in msb Sequential circuit - a digital circuit whose outputs are a function of the present inputs as well as the previous inputs 10 Embedded Systems Design: A Unified Hardware/Software Introduction, (c) 2000 Vahid/Givargis Sequential logic design A) Problem Description You want to construct a clock divider. Slow down your pre- existing clock so that you output a 1 for every four clock cycles 0 1 2 3 x=0 x=1 x=0 x=0 a=1 a=1 a=1 a=1 a=0 a=0 a=0 a=0 B) State Diagram - FSM C) Implementation Model Combinational logic (Generate output values and next state) State register (Stores current state) a x I0 I0 I1 I1 Q1 Q0 D) State Table (Moore-type) 1 0 1 1 1 1 1 0 1 1 1 1 1 0 0 0 0 1 0 1 0 1 0 0 1 0 1 1 1 0 1 0 0 1 0 0 0 0 0 0 Inputs Q1 Q0 a Outputs I1 I0 1 0 0 0 x • Given this implementation model – Sequential logic design quickly reduces to combinational logic design 11 Embedded Systems Design: A Unified Hardware/Software Introduction, (c) 2000 Vahid/Givargis Sequential logic design (cont.) 0 0 1 Q1Q0 I1 I1 = Q1’Q0a + Q1a’ + Q1Q0’ 0 1 1 1 0 1 0 00 11 10 a 01 0 0 0 1 0 1 1 00 01 11 a 1 10 I0 Q1Q0 I0 = Q0a’ + Q0’a 0 1 0 0 0 1 1 0 0 00 01 11 10 x = Q1Q0 x 0 1 0 a Q1Q0 E) Minimized Output Equations F) Combinational Logic a Q1 Q0 I0 I1 x 12 Embedded Systems Design: A Unified Hardware/Software Introduction, (c) 2000 Vahid/Givargis Custom single-purpose processor basic model controller and datapath controller datapath … … external control inputs external control outputs … external data inputs … external data outputs datapath control inputs datapath control outputs … … a view inside the controller and datapath controller datapath … … state register next-state and control logic registers functional units
  • 4. 13 Embedded Systems Design: A Unified Hardware/Software Introduction, (c) 2000 Vahid/Givargis Example: greatest common divisor GCD (a) black-box view x_i y_i d_o go_i 0: int x, y; 1: while (1) { 2: while (!go_i); 3: x = x_i; 4: y = y_i; 5: while (x != y) { 6: if (x < y) 7: y = y - x; else 8: x = x - y; } 9: d_o = x; } (b) desired functionality y = y -x 7: x = x - y 8: 6-J: x!=y 5: !(x!=y) x<y !(x<y) 6: 5-J: 1: 1 !1 x = x_i 3: y = y_i 4: 2: 2-J: !go_i !(!go_i) d_o = x 1-J: 9: (c) state diagram • First create algorithm • Convert algorithm to “complex” state machine – Known as FSMD: finite- state machine with datapath – Can use templates to perform such conversion 14 Embedded Systems Design: A Unified Hardware/Software Introduction, (c) 2000 Vahid/Givargis State diagram templates Assignment statement a = b next statement a = b next statement Loop statement while (cond) { loop-body- statements } next statement loop-body- statements cond next statement !cond J: C: Branch statement if (c1) c1 stmts else if c2 c2 stmts else other stmts next statement c1 c2 stmts !c1*c2 !c1*!c2 next statement others c1 stmts J: C: 15 Embedded Systems Design: A Unified Hardware/Software Introduction, (c) 2000 Vahid/Givargis Creating the datapath • Create a register for any declared variable • Create a functional unit for each arithmetic operation • Connect the ports, registers and functional units – Based on reads and writes – Use multiplexors for multiple sources • Create unique identifier – for each datapath component control input and output y = y -x 7: x = x - y 8: 6-J: x!=y 5: !(x!=y) x<y !(x<y) 6: 5-J: 1: 1 !1 x = x_i 3: y = y_i 4: 2: 2-J: !go_i !(!go_i) d_o = x 1-J: 9: subtractor subtractor 7: y-x 8: x-y 5: x!=y 6: x<y x_i y_i d_o 0: x 0: y 9: d n-bit 2x1 n-bit 2x1 x_sel y_sel x_ld y_ld x_neq_y x_lt_y d_ld < 5: x!=y != Datapath 16 Embedded Systems Design: A Unified Hardware/Software Introduction, (c) 2000 Vahid/Givargis Creating the controller’s FSM • Same structure as FSMD • Replace complex actions/conditions with datapath configurations y = y -x 7: x = x - y 8: 6-J: x!=y 5: !(x!=y) x<y !(x<y) 6: 5-J: 1: 1 !1 x = x_i 3: y = y_i 4: 2: 2-J: !go_i !(!go_i) d_o = x 1-J: 9: y_sel = 1 y_ld = 1 7: x_sel = 1 x_ld = 1 8: 6-J: x_neq_y 5: !x_neq_y x_lt_y !x_lt_y 6: 5-J: d_ld = 1 1-J: 9: x_sel = 0 x_ld = 1 3: y_sel = 0 y_ld = 1 4: 1: 1 !1 2: 2-J: !go_i !(!go_i) go_i 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 Controller subtractor subtractor 7: y-x 8: x-y 5: x!=y 6: x<y x_i y_i d_o 0: x 0: y 9: d n-bit 2x1 n-bit 2x1 x_sel y_sel x_ld y_ld x_neq_y x_lt_y d_ld < 5: x!=y != Datapath
  • 5. 17 Embedded Systems Design: A Unified Hardware/Software Introduction, (c) 2000 Vahid/Givargis Splitting into a controller and datapath y_sel = 1 y_ld = 1 7: x_sel = 1 x_ld = 1 8: 6-J: x_neq_y=1 5: x_neq_y=0 x_lt_y=1 x_lt_y=0 6: 5-J: d_ld = 1 1-J: 9: x_sel = 0 x_ld = 1 3: y_sel = 0 y_ld = 1 4: 1: 1 !1 2: 2-J: !go_i !(!go_i) go_i 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 Controller Controller implementation model y_sel x_sel Combinational logic Q3 Q0 State register go_i x_neq_y x_lt_y x_ld y_ld d_ld Q2 Q1 I3 I0 I2 I1 subtractor subtractor 7: y-x 8: x-y 5: x!=y 6: x<y x_i y_i d_o 0: x 0: y 9: d n-bit 2x1 n-bit 2x1 x_sel y_sel x_ld y_ld x_neq_y x_lt_y d_ld < 5: x!=y != (b) Datapath 18 Embedded Systems Design: A Unified Hardware/Software Introduction, (c) 2000 Vahid/Givargis Controller state table for the GCD example Inputs Outputs Q3 Q2 Q1 Q0 x_neq _y x_lt_ y go_i I3 I2 I1 I0 x_sel y_sel x_ld y_ld d_ld 0 0 0 0 * * * 0 0 0 1 X X 0 0 0 0 0 0 1 * * 0 0 0 1 0 X X 0 0 0 0 0 0 1 * * 1 0 0 1 1 X X 0 0 0 0 0 1 0 * * * 0 0 0 1 X X 0 0 0 0 0 1 1 * * * 0 1 0 0 0 X 1 0 0 0 1 0 0 * * * 0 1 0 1 X 0 0 1 0 0 1 0 1 0 * * 1 0 1 1 X X 0 0 0 0 1 0 1 1 * * 0 1 1 0 X X 0 0 0 0 1 1 0 * 0 * 1 0 0 0 X X 0 0 0 0 1 1 0 * 1 * 0 1 1 1 X X 0 0 0 0 1 1 1 * * * 1 0 0 1 X 1 0 1 0 1 0 0 0 * * * 1 0 0 1 1 X 1 0 0 1 0 0 1 * * * 1 0 1 0 X X 0 0 0 1 0 1 0 * * * 0 1 0 1 X X 0 0 0 1 0 1 1 * * * 1 1 0 0 X X 0 0 1 1 1 0 0 * * * 0 0 0 0 X X 0 0 0 1 1 0 1 * * * 0 0 0 0 X X 0 0 0 1 1 1 0 * * * 0 0 0 0 X X 0 0 0 1 1 1 1 * * * 0 0 0 0 X X 0 0 0 19 Embedded Systems Design: A Unified Hardware/Software Introduction, (c) 2000 Vahid/Givargis Completing the GCD custom single-purpose processor design • We finished the datapath • We have a state table for the next state and control logic – All that’s left is combinational logic design • This is not an optimized design, but we see the basic steps … … a view inside the controller and datapath controller datapath … … state register next-state and control logic registers functional units 20 Embedded Systems Design: A Unified Hardware/Software Introduction, (c) 2000 Vahid/Givargis • We often start with a state machine – Rather than algorithm – Cycle timing often too central to functionality • Example – Bus bridge that converts 4-bit bus to 8-bit bus – Start with FSMD – Known as register-transfer (RT) level – Exercise: complete the design RT-level custom single-purpose processor design Problem Specification Bridge A single-purpose processor that converts two 4-bit inputs, arriving one at a time over data_in along with a rdy_in pulse, into one 8-bit output on data_out along with a rdy_out pulse. Sende r data_in(4) rdy_in rdy_out data_out(8) Rece iver clock FSMD WaitFirst4 RecFirst4Start data_lo=data_in WaitSecond4 rdy_in=1 rdy_in=0 RecFirst4End rdy_in=1 RecSecond4Start data_hi=data_in RecSecond4End rdy_in=1 rdy_in=0 rdy_in=1 rdy_in=0 Send8Start data_out=data_hi & data_lo rdy_out=1 Send8End rdy_out=0 Bridge rdy_in=0 Inputs rdy_in: bit; data_in: bit[4]; Outputs rdy_out: bit; data_out:bit[8] Variables data_lo, data_hi: bit[4];
  • 6. 21 Embedded Systems Design: A Unified Hardware/Software Introduction, (c) 2000 Vahid/Givargis RT-level custom single-purpose processor design (cont’) WaitFirst4 RecFirst4Start data_lo_ld=1 WaitSecond4 rdy_in=1 rdy_in=0 RecFirst4End rdy_in=1 RecSecond4Start data_hi_ld=1 RecSecond4End rdy_in=1 rdy_in=0 rdy_in=1 rdy_in=0 Send8Start data_out_ld=1 rdy_out=1 Send8End rdy_out=0 (a) Controller rdy_in rdy_out data_lo data_hi data_in(4) (b) Datapath data_out data_out_ld data_hi_ld data_lo_ld clk to all registers data_out Bridge 22 Embedded Systems Design: A Unified Hardware/Software Introduction, (c) 2000 Vahid/Givargis Optimizing single-purpose processors • Optimization is the task of making design metric values the best possible • Optimization opportunities – original program – FSMD – datapath – FSM 23 Embedded Systems Design: A Unified Hardware/Software Introduction, (c) 2000 Vahid/Givargis Optimizing the original program • Analyze program attributes and look for areas of possible improvement – number of computations – size of variable – time and space complexity – operations used • multiplication and division very expensive 24 Embedded Systems Design: A Unified Hardware/Software Introduction, (c) 2000 Vahid/Givargis Optimizing the original program (cont’) 0: int x, y; 1: while (1) { 2: while (!go_i); 3: x = x_i; 4: y = y_i; 5: while (x != y) { 6: if (x < y) 7: y = y - x; else 8: x = x - y; } 9: d_o = x; } 0: int x, y, r; 1: while (1) { 2: while (!go_i); // x must be the larger number 3: if (x_i >= y_i) { 4: x=x_i; 5: y=y_i; } 6: else { 7: x=y_i; 8: y=x_i; } 9: while (y != 0) { 10: r = x % y; 11: x = y; 12: y = r; } 13: d_o = x; } original program optimized program replace the subtraction operation(s) with modulo operation in order to speed up program GCD(42, 8) - 9 iterations to complete the loop x and y values evaluated as follows : (42, 8), (43, 8), (26,8), (18,8), (10, 8), (2,8), (2,6), (2,4), (2,2). GCD(42,8) - 3 iterations to complete the loop x and y values evaluated as follows: (42, 8), (8,2), (2,0)
  • 7. 25 Embedded Systems Design: A Unified Hardware/Software Introduction, (c) 2000 Vahid/Givargis Optimizing the FSMD • Areas of possible improvements – merge states • states with constants on transitions can be eliminated, transition taken is already known • states with independent operations can be merged – separate states • states which require complex operations (a*b*c*d) can be broken into smaller states to reduce hardware size – scheduling 26 Embedded Systems Design: A Unified Hardware/Software Introduction, (c) 2000 Vahid/Givargis Optimizing the FSMD (cont.) int x, y; 2: go_i !go_i x = x_i y = y_i x<y x>y y = y -x x = x - y 3: 5: 7: 8: d_o = x 9: y = y -x 7: x = x - y 8: 6-J: x!=y 5: !(x!=y) x<y !(x<y) 6: 5-J: 1: 1 !1 x = x_i y = y_i 4: 2: 2-J: !go_i !(!go_i) d_o = x 1-J: 9: int x, y; 3: original FSMD optimized FSMD eliminate state 1 – transitions have constant values merge state 2 and state 2J – no loop operation in between them merge state 3 and state 4 – assignment operations are independent of one another merge state 5 and state 6 – transitions from state 6 can be done in state 5 eliminate state 5J and 6J – transitions from each state can be done from state 7 and state 8, respectively eliminate state 1-J – transition from state 1-J can be done directly from state 9 27 Embedded Systems Design: A Unified Hardware/Software Introduction, (c) 2000 Vahid/Givargis Optimizing the datapath • Sharing of functional units – one-to-one mapping, as done previously, is not necessary – if same operation occurs in different states, they can share a single functional unit • Multi-functional units – ALUs support a variety of operations, it can be shared among operations occurring in different states 28 Embedded Systems Design: A Unified Hardware/Software Introduction, (c) 2000 Vahid/Givargis Optimizing the FSM • State encoding – task of assigning a unique bit pattern to each state in an FSM – size of state register and combinational logic vary – can be treated as an ordering problem • State minimization – task of merging equivalent states into a single state • state equivalent if for all possible input combinations the two states generate the same outputs and transitions to the next same state
  • 8. 29 Embedded Systems Design: A Unified Hardware/Software Introduction, (c) 2000 Vahid/Givargis Summary • Custom single-purpose processors – Straightforward design techniques – Can be built to execute algorithms – Typically start with FSMD – CAD tools can be of great assistance