Professional Documents
Culture Documents
Specification and Design of Embedded Systems PDF
Specification and Design of Embedded Systems PDF
Specification and Design of Embedded Systems PDF
OF
EMBEDDED SYSTEMS
by
Daniel D. Gajski
Frank Vahid
Sanjiv Narayan
Jie Gong
1 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Design representations
Behavioral
Represents functionality but not implementation
Structural
Represents connectivity but not dimensionality
Physical
Represents dimensionality but not functionality
Introduction 2 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Levels of abstraction
Introduction 3 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Design methodologies
Capture-and-simulate
Schematic capture
Simulation
Describe-and-synthesize
Hardware description language
Behavioral synthesis
Logic synthesis
Specify-explore-rene
Executable specication
Software and hardware partitioning
Estimation and exploration
Specication renement
Introduction 4 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Motivation
Executable System
specification implementation
Processor Memory
if (x = 0) then
y=a*b/2
Introduction 5 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Outline
Introduction
System-design languages
An example
Translation
Partitioning
Estimation
Renement
Outline 6 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Models and architectures
Models
Specification + Constraints (Specification)
Design
process
Architectures
Implementation (Implementation)
Models & Architectures 7 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Models and architectures
Model: a set of functional objects and rules for composing these objects
Models & Architectures 8 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Models of an elevator controller
Models & Architectures 9 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Architectures for implementing the elevator controller
Processor Memory
Bus
Models & Architectures 10 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Models
State-oriented models
Finite-state machine (FSM), Petri net, Hierarchical concurrent FSM
Activity-oriented models
Dataow graph, Flowchart
Structure-oriented models
Block diagram, RT netlist, Gate netlist
Data-oriented models
Entity-relationship diagram, Jackson’s diagram
Heterogeneous models
Control/dataow graph, Structure chart, Programming language paradigm,
Object-oriented paradigm, Program-state machine, Queueing model
Models & Architectures 11 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
State oriented: Finite-state machine (Mealy model)
r1/n r2/n
r2/u1
start S1 S2
r1/d1
d1
r3
/u2
r2/
u1
r1/
r3/
d2
S3
r3/n
Models & Architectures 12 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
State oriented: Finite-state machine (Moore model)
r1
r1
r1 r3
start
S11/d2 S21/d1 S31 /n
r2
r2
r2 r2
r1
r3 r3
r1 r2
r1 r3
r1
r2 r3
r2 r2
r1 r3
r3
r3
Models & Architectures 13 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
State oriented: Finite-state machine with datapath
start S1
Models & Architectures 14 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Finite-state machines
Merits:
represent system’s temporal behavior explicitly
suitable for control-dominated system
Demerits:
lack of hierarchy and concurrency resulting in
state or arc explosion when representing complex systems
Models & Architectures 15 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
State oriented: Petri nets
p2
t4
p1 t1 p5 t2 p4
p3
Net = (P, T, I, O, u)
P = {p1, p2, p3, p4, p5} t3
T = {t1, t2, t3, t4}
Models & Architectures 16 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Petri nets
t1 t2 t1 t2 t1
t1 t2 t1 t2 t3 t4
Models & Architectures 17 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Petri nets
Merits:
good at modeling and analyzing concurrent systems
Demerits:
‘at’ model that is
incomprehensible when system complexity increases
Models & Architectures 18 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
State oriented: Hierarchical concurrent FSM
Y
A D
B E
u
a(P)/c b r
F
s
a
C
G
Models & Architectures 19 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Hierarchical concurrent FSMs
Merits:
support both hierarchy and concurrency
good for representing complex systems
Demerits:
concentrate only on modeling control aspects
and not data and activities
Models & Architectures 20 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Activity oriented: Dataow graphs (DFG)
Y Z
A2.1 A2.2
Input V’ A2.3 W
X
X Z
Y Z
A1 A2 Output
Y + * W
W
V V’
File Output
Models & Architectures 21 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Dataow graphs
Merits:
support hierarchy
suitable for specifying complex transformational systems
represent problem-inherent data dependencies
Demerits:
do not express temporal behaviors or control sequencing
weak for modeling embedded systems
Models & Architectures 22 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Activity oriented: Flowchart (CFG)
start
J=1
MAX = 0
J = J+1
No
No Yes
J>N MEM(J) > MAX MAX = MEM(J)
Yes
end
Models & Architectures 23 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Flowcharts
Merits:
useful to represent tasks governed by control ow
can impose a order to supersede natural data dependencies
Characteristics:
used only when the system’s computation is well known
Models & Architectures 24 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Structure oriented: Component-connectivity diagrams
Left Right A B
bus bus
Program Data
memory memory Register file
System bus
Processor LIR RIR
Models & Architectures 25 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Component-connectivity diagrams
Merits:
good at representing system’s structure
Characteristics:
often used in the later phases of design process
Models & Architectures 26 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Data oriented: Entity-relationship diagram
Availability
Models & Architectures 27 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Entity-relationship diagrams
Merits:
provide a good view of the data in the system, also
suitable for expressing complex relations among various kinds of data
Demerits:
do not describe any functional or temporal behavior of the system.
Models & Architectures 28 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Data oriented: Jackson’s diagram
Drawing
AND
OR
AND
Models & Architectures 29 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Jackson’s diagrams
Merits:
suitable for representing data having a complex composite structure.
Demerits:
do not describe any functional or temporal behavior of the system.
Models & Architectures 30 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Heterogeneous: Control/dataow graph
Read X Read W
enable X := X + 2
A := X + 5 A := X + 3 A := X + W
disable Y
S1 enable A2 Read X Const 2
W = 10 / disable A1 , enable A3 Z
+ Const 5
disable
S2 enable A3 +
Control
Write X Write A
Models & Architectures 31 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Control/dataow graphs
Merits:
correct the inability of DFG in representing the control of a system
correct the inability of CFG to represent data dependencies
Models & Architectures 32 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Heterogeneous: Structure chart
control Main
Data
A,B C
A,B A’,B’
A’,B’ C,D
A B
A’ B’
Iteration
Models & Architectures 33 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Structure charts
Merits:
represent both data and control
Characteristics:
used in the preliminary stages of program design
Models & Architectures 34 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Heterogeneous: Programming languages
Models & Architectures 35 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Programming languages
Merits:
model data, activity, and control
Demerits:
do not explicitly model the system’s states
Models & Architectures 36 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Heterogeneous: Object-oriented paradigm
Transformation
function
Models & Architectures 37 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Object-oriented paradigms
Merits:
support information hiding, inheritance, natural concurrency
Demerits:
not suitable for systems with complicated transformation functions
Models & Architectures 38 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Heterogeneous: Program-state machine
A D
e3
Models & Architectures 39 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Program-state machines
Merits:
represent system’s states, data, control and activities in a single model
overcome the limitations of programming languages and HCFSM models
Models & Architectures 40 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Heterogeneous: Queueing model
Queue Server
Arriving
requests
Arriving
requests
Models & Architectures 41 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Queueing model
Characteristics:
used for analyzing system’s performance, and
can nd utilization, queueing length, throughput
Models & Architectures 42 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Architectures
Application-specic architectures
Controller architecture,
Datapath architecture,
Finite-state machine with datapath (FSMD).
General-purpose processors
Complex instruction set computer (CISC)
Reduced instruction set computer (RISC)
Vector machine
Very long instruction word computer (VLIW)
Parallel processors
Models & Architectures 43 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Controller architecture
State register
Inputs
Models & Architectures 44 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Datapath architecture
x(i) b(0) x(i−1) b(1) x(i−2) b(2) x(i−3) b(3)
* * * *
+ +
Pipeline stages
+
y(i)
(a) Three stage pipeline
* * * *
+ + + y(i)
Pipeline stages
Models & Architectures 45 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
FSMD
Datapath inputs
State register
Control
Next−state Output Datapath
function function
Status
Control unit
Datapath outputs
Models & Architectures 46 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
CISC architecture
Control
Microprogram
memory Datapath
PC
MicroPC
+1
Address Status
selection
logic
Memory
Control unit Instruction reg.
Models & Architectures 47 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
RISC architecture
Datapath
Register
file
Control
Hardwired
output and
next−state
logic ALU
Data
State register cache
Status
Models & Architectures 48 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Vector machines
Interleaved memory
Memory Memory
pipes pipes
Vector Scalar
registers registers
Vector Scalar
functional functional
unit unit
Models & Architectures 49 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
VLIW architecture
Memory
Register file
+ + * *
Models & Architectures 50 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Parallel processors: SIMD/MIMD
PE 0 PE 1 PE N−1
Control
unit Mem. 0 Mem. 1 Mem. N−1
Interconnection network
Interconnection network
Models & Architectures 51 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Conclusion
Models & Architectures 52 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
System specication
Ideal language
1-to-1 mapping between conceptual model & language constructs
53 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Outline
System specication 54 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Concurrency
System specication 55 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Data-driven concurrency
A B C D X
add subtract
1: Q = A + B
2: Y = X + P multiply
3: P = (C − D) * Q
add
Q P Y
System specication 56 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Control-driven concurrency
Q
Fork-join statement sequential behavior X
begin
Q(); A B C
fork A(); B(); C(); join;
R();
end behavior X;
R
concurrent behavior X
begin
process A(); A B C
process B();
Process statement process C();
end behavior X;
System specication 57 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
State-transitions
u v
P
w z
start Q R T finish
x y
S
System specication 58 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Hierarchy
System specication 59 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Structural hierarchy
System
Processor
Control Logic Datapath
data bus
Memory
control
lines
System specication 60 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Behavioral hierarchy
behavior P
variable x, y;
begin
Q(x) ;
R(y) ;
end behavior P;
Concurrent decomposition
Fork-join
Process P
Q e4 R
Sequential decomposition Q1 e5 R1
e2
Procedure
e1 e8
State-machine Q3
e6
Q2 e3 R2
e7
System specication 61 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Programming constructs
System specication 62 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Behavioral completion
Advantages
Behavior can be viewed without inter-level transitions
Allows natural decomposition into sequential subbehaviors
B
X Y
q
1
start X1 e5 Y1
q q final e3
0 3 state e1 X3
q Y2
2 X2 e2 e4
System specication 63 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Communication
shared memory
System specication 64 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Synchronization
System specication 65 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Control-dependent synchronization
Q
behavior X
begin
Fork-join Q(); A B C
fork A(); B(); C(); join;
R(); synchronization
end behavior X; point
R
AB
Reset ABC
A B C A B
B1
A1
A2 B2
e e
System specication 66 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Data-dependent synchronization
AB
AB AB
A B
A B A B
A1
A1 B1 A1 B1
B1 x:=0
e e e entered A2 e (x=1)
A2 B2 A2 A2
B2 B2
x:=1
System specication 67 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Exception handling
P
P1 e Q
P2
System specication 68 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Timing
min 50 ns
behavior Q
IN
behavior channel C
B max 10 ms (max 10 Mb/s)
OUT
behavior P time
System specication 69 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Embedded system specication
Essential characteristics
State-transitions Exceptions
Behavioral hierarchy Concurrency
Programming constructs Behavioral completion
start P
P
P1
u fork
P P2
v Q R
e
Q
w
Q join
R
x S
System specication 70 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
VHDL
Characteristics supported
Behavioral hierarchy : single level of processes
Structural hierarchy : nested blocks and component instantiations
Concurrency : task-level (process), statement-level (signal assignment)
Programming constructs
Communication : shared-memory using global signals
Synchronization : wait on and wait until statements
Timing : wait for statement, after clause in assignments
System specication 71 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Verilog and Esterel
Characteristics supported:
Behavioral hierarchy : fork-join
Structural hierarchy : hierarchy of interconnected modules
Programming constructs
Communication : shared registers (Verilog) and broadcasting (Esterel)
Synchronization : wait for an event on a signal
Timing : modeling of gate, net, assignment delays in Verilog
Exceptions : disable (Verilog), watching, do-upto, trap statements (Esterel)
System specication 72 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
SDL (Specication and Description language)
system
CCITT standard in telecommunication
block
for protocol specication [BHS91]
signal route
process
Characteristics supported
Behavioral hierarchy : nested dataow
process
Structural hierarchy : nested blocks signal route
State transitions : state machine in processes
Communication : message passing
channel channel
Timing : timeouts generated by timer object
block
Characteristics not supported
Exceptions channel
Programming constructs
System specication 73 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
CSP (Communicating Sequential Processes)
Characteristics supported
Behavioral hierarchy : fork-join using parallel command
Programming constructs
Communication : message passing using input, output commands
Synchronization : blocking message passing
System specication 74 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
SpecCharts
X Y
Programming constructs
Structural hierarchy
Synchronization and Timing
System specication 75 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
SpecCharts : state transitions
start
behavior MAIN type sequential subbehaviors is
begin
P P : (TOC, u, Q) ;
u Q : (TOC, v, P), (TOC, w, R);
R : (TOC, x, Q);
v
Q behavior P .....
w behavior Q .....
behavior R .....
x end MAIN;
R
76 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
System specication
SpecCharts : behavioral hierarchy
behavior S.....
end MAIN;
S
77 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
System specication
SpecCharts : exceptions
78 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
System specication
Summary
VHDL
Verilog
Esterel
SDL
CSP
Statecharts
SpecCharts
System specication 79 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Specication example
80 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Outline
Specication example 81 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Answering machine controller’s environment
phone line
ann_done
tape_play
tape_rew
ann_play
tape_fwd
tape_rec
tape_cnt
ann_rec
hangup
offhook
beep
tone
ring
tollsaver
messages
power
rec
ann
Controller light
hear
ann
on/off
memo
play
msgs
stop rew play fwd
mic
Specication example 82 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Highest-level view of the controller
Controller
SystemOff
power=’0’ power=’1’
SystemOn
phone line
tape_play
tape_rew
ann_play
tape_fwd
tape_rec
tape_cnt
ann_rec
hangup
offhook
beep
tone
ring
tollsaver
messages
power
rec
ann
Controller light
hear
ann
on/off
memo
play
msgs
stop rew play fwd
mic
Specication example 83 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
The SystemOn behavior
SystemOn
System usually responds RespondToLine
to the line
rising(any_button_pushed)
tape_play
tape_rew
ann_play
tape_fwd
tape_rec
tape_cnt
ann_rec
hangup
offhook
beep
tone
ring
tollsaver
messages
power
rec
ann
Controller light
hear
ann
on/off
memo
play
msgs
stop rew play fwd
mic
Specication example 84 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
The RespondToMachineButton behavior
RespondToMachineButton
tape_play
tape_rew
ann_play
tape_fwd
tape_rec
rec_ann=’1’
tape_cnt
ann_rec
hangup
offhook
beep
tone
ring
tollsaver
messages
HandlePlayMsgs
power
rec
play_msgs=’1’
ann
Controller light
hear
ann
on/off
(a) (b)
memo
play
msgs
stop rew play fwd
mic
Specication example 85 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
The RespondToLine behavior
Answers line
RespondToLine
tape_play
tape_rew
ann_play
tape_fwd
tape_rec
tape_cnt
ann_rec
hangup
offhook
beep
tone
ring
tollsaver
messages
power
rec
ann
Controller light
hear
ann
on/off
memo
play
msgs
stop rew play fwd
mic
Specication example 86 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
The Monitor behavior
Monitor
signal rings_to_wait : integer range 1 to 20 := 4;
function DetermineRingsToWait return integer is begin
Counts for if ((num_msgs > 0) and (tollsaver=’1’) and (machine_on=’1’)) then
return(2);
elsif (machine_on=’1’) then
required rings return(4);
else
return(15);
end if;
Requirements end;
may change
phone line MaintainRingsToWait CountRings
Announcement Tape Line
variable I : integer range 0 to 20;
unit unit circuitry
loop i := 0;
ann_done
tape_play
tape_rew
ann_play
tape_fwd
tape_rec
tape_cnt
ann_rec
hangup
offhook
beep
ring
tollsaver
power
messages
wait on tollsaver, machine_on; wait on rings_to_wait, ring;
rec
end loop; if (rising(ring)) then
ann
Controller light i := i + 1;
hear
ann
on/off
end if;
memo end loop;
play
msgs
stop rew play fwd
mic
Specication example 87 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
The Answer behavior
Answer
rising(hangup)
button="0001" button="0001"
RemoteOperation
(a)
tape_play
tape_rew
ann_play
tape_fwd
tape_rec
tape_cnt
ann_rec
hangup
offhook
beep
tone
ring
tollsaver
messages
power
rec
ann
Controller light
hear
ann
on/off
memo
play
msgs
stop rew play fwd
mic
Specication example 88 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
The RemoteOperation behavior
tape_play
tape_rew
ann_play
tape_fwd
tape_rec
tape_cnt
ann_rec
hangup
offhook
beep
tone
ring
tollsaver
messages
power
rec
ann
Controller light
hear
ann
on/off
memo
play
msgs
stop rew play fwd
mic
Specication example 89 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
The answering machine controller specication
Controller
SystemOff
RespondToLine
ann_done
tape_play
tape_rew
ann_play
tape_fwd
Monitor rising(hangup)
tape_rec
tape_cnt
ann_rec
hangup
offhook
beep
tone
ring
falling(machine_on)
tollsaver Answer
messages
rising(hangup)
power PlayAnnouncement RecordMsg Hangup
rec tone="0001"
ann
light RemoteOperation
Controller
hangup=’1’
hear CheckUserCode
ann
on/off code_ok not code_ok
memo RespondToCmds
tone="0010"
play HearMsgsCmds MiscCmds
msgs
stop rew play fwd hangup=’1’ other
mic
ResetTape
Specication example 90 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Executable specication use
Precision
Readability/precision compete in a natural language
Executable specication encourages precision
Designer asks questions, specication answers them
Specication example 91 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Specication capture experiment
VHDL SpecCharts
Specication example 92 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Comparison of SpecCharts, VHDL and Statecharts
Program−states 42 42 42 32 80
Arcs 40 40 40 152 135
Control signals −− 0 84 1 0
Lines/leaf −− 7 27 29 −−
Lines −− 446 1592 963 −−
Words −− 1733 6740 8088 −−
No sequential
program constructs X
No hierarchy X X
Shortcomings
No exception
constructs X X
No hierarchical
events X
No state−transition
constructs X X
Specication example 93 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Design quality experiment
Specication example 94 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Summary
Specication example 95 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Translation
96 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Outline
Fork-join translation
Exception translation
Translation 97 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
A front-end language in a VHDL environment
VHDL SpecCharts
Translator
VHDL
VHDL environment
Synthesis
tool Simulator Debuger Test−generator
Tool output
Translation 98 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
State machine translation
Translation 99 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Fork-join translation
parallel P1;
{ fork <= true;
P1; wait until P1_done P1_done <= true;
P2; and P2_done; wait until not fork;
} P1_done <= false;
(a) (b)
Translation 100 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Exception translation
−− T
event e : T −−> S; T_loop : loop
−− T statement;
statement1; if (e)
T: if (e) exit T_loop;
statement1; goto S_start; statement2;
statement2; statement2; if (e)
statement3; if (e) exit T_loop;
goto S_start; statement3;
statement3; exit T_loop;
end loop;
S: S_start: −− S −− S
statement4; statement4; statement4;
statement5; statement5; statement5;
(a) (b) (c)
Translation 101 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Summary
Translation 102 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
System partitioning
Constraints
Cost, performance, size, power
103 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Outline
Hardware/software partitioning
System partitioning 104 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Structural vs. functional partitioning
System partitioning 105 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Natural vs. executable language specications
System partitioning 106 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Basic partitioning issues
Specification abstraction−level
Granularity
System−component allocation
Output
System partitioning 107 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Basic partitioning issues (cont.)
System partitioning 108 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Basic partitioning issues (cont.)
e.g. 1
2 3
System partitioning 109 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Basic partitioning issues (cont.)
A
Algorithms: control strategies
B
Cost
seeking best partition
Constructive creates partition
Iterative improves partition Number of moves
Key is to escape local minimum
System partitioning 110 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Typical partitioning-system conguration
User interface
Input Output
Model
Algorithms Estimators
Design
feedback
Objective
function
System partitioning 111 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Basic partitioning algorithms
Genetic evolution
System partitioning 112 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Hierarchical clustering
Overview
Groups closest objects
Recomputes closenesses
Repeats until termination condition met
System partitioning 113 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Hierarchical clustering algorithm
end loop
for each loop
ComputeCloseness( )
end loop
end loop
ComputeCloseness( )
end loop
end loop
return
System partitioning 114 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Hierarchical clustering example
o o1 o1 o
1 1
30 25
10 20
15 o2 o3
o2 o3 o2 o3 o2 o3
10
10 10 10 10
o4 o4 o4 o4
Avg(10,10) = 10
Avg(15,25) = 20
o1 o2 o3 o4 o1 o2 o3 o4 o1 o2 o3 o4 o1 o2 o3 o4
(a) (b) (c) (d)
System partitioning 115 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Simulated annealing
Overview
Starts with initial partition and temperature
Slowly decreases temperature
For each temperature, generates random moves
Accepts any move that improves cost
Accepts some bad moves, less likely at low temperatures
System partitioning 116 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Simulated annealing algorithm
initial temperature
Objfct( )
while not Frozen loop
while not Equilibrium loop
Move( )
Objfct( )
if (Accept( ) Random(0 1)) then
end if
end loop
DecreaseTemp( )
end loop
where: 1
System partitioning 117 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Functional partitioning for hardware: BUD
Closeness metrics:
Interconnecting wires
Concurrency
Shared hardware
System partitioning 118 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
BUD example
start
(bit−widths = 4)
a b
+ =
x cond
38
cond
−.
0
x := a + b; 0 1 .7
.2
if (a = b)
c := ((x − y) < z); x y z = <
4
0
−
.2
−
<
c
finish
System partitioning 119 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
BUD example (cont.)
Av
+− +−
g(
19 )
−. .38,0
0,
+−=<
.2
.1
AVG(−.19,.12) =
4)
−
2
g(
=
.035
Av
.2
= < =<
(b)
Chip
+−
Controller
< =
3 clusters
(c)
System partitioning 120 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Functional partitioning for hardware: Aparty
Closeness metrics:
Control transfer reduction
Data transfer reduction
Hardware sharing
System partitioning 121 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Aparty example
o1
o 12 17 o 12
o2 o3 o3 o3
23
21
o4 o4 o4
o1 o2 o3 o4 o 12 o3 o4
System partitioning 122 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Hardware/software partitioning
Hardware is fast
Proposed algorithms
Greedy [GD92]
Hill climbing [EHB94]
Binary-constraint search with hill climbing [VGG93]
System partitioning 123 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Functional partitioning for systems: Vulcan, Cosyma
Vulcan [GD90]I
Partitions CDFG operations among hardware only
Group migration and simulated annealing algorithms
Vulcan II [GD93]
Partitions operations among hardware/software
Architecture: processor, hardware, memory, bus
All communication through memory
Uses greedy algorithm, extracts behaviors from hardware
Cosyma [EHB94]
Partitions statement blocks among hardware/software
Architecture: processor, hardware, memory, bus
Simulated annealing, extracts behaviors from software
System partitioning 124 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Functional partitioning for systems: SpecSyn
System partitioning 125 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Exploring tradeoffs with functional partitioning
1200.0
chipset1
chipset2
chipset3
1000.0
performance (microseconds)
800.0
different vendor’s chip set
200.0
0.0 20.0 40.0 60.0 80.0 100.0 120.0 140.0
cost (dollars)
System partitioning 126 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Summary
System partitioning 127 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Future directions
System partitioning 128 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Estimation
Estimates allow
Evaluation of design quality
Design space exploration
Design model
Represents degree of design detail computed
Simple vs. complex models
129 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Outline
Fidelity
Quality metrics
Performance metrics
Hardware and software cost metrics
Estimation 130 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Accuracy vs. Speed
1
Speed: computation time for obtaining estimate
Estimation 131 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Fidelity
Metric
estimate (A, B) = E(A) > E(B), M(A) < M(B)
A B C Design
points
Estimation 132 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Quality metrics
Performance Metrics
Clock cycle, control steps, execution time, communication rates
Cost Metrics
Hardware: manufacturing cost (area), packaging cost(pin)
Software: program size, data memory size
Other metrics
Power, testability, design time, time to market
Estimation 133 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Hardware design model
Memory
p
DR 1 AR
Control
Logic Control Muxes
Register
n2 Registers/
R1 R2
Register Files
RF
n
1
n
3
State Reg. p
3 Muxes
n6
n
4
Next−State
Logic p
FU 2 Functional
n
5
Units
Status bits
Status
Register
Control Unit Datapath
Estimation 134 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Clock cycle estimation
i1 i2 i3 i4 i5 i6
i1 i2 i3 i4 i5 i6
i1 i2 i3 i4 i5 i6
150
80 +
x 150
80 +
80 + x
150 x
80 +
80 +
80 + 80 + 80 +
150 x 80 +
150 x 80 + 80 +
150
x
80 +
o1 o2
o1 o2
o1 o2
Clock Cycle : 380 ns Clock Cycle : 150 ns Clock Cycle : 80 ns
Exec. Time : 380 ns Exec. Time : 600 ns Exec. Time : 400 ns
Resources : 2 x, 4 + Resources : 1 x, 1 + Resources : 1 x, 1 +
Estimation 135 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Clock slack and utilization
Average slack: FU slack averaged over all operations
Clock utilization : % of clock cycle utilized for computations
Estimation 136 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Clock utilization
number of
1 x CLK 2 x CLK 3 x CLK
operations
occur(x)=6
occur(−)=2
occur(+)=2
time (ns)
50 100 150
6x32
2x9 2 x 17
x
+ − + +
ave_slack(65 ns) = = 24.4 ns
6 + 2 + 2
Estimation 137 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Slack minimization algorithm
Compute occurrences:
0
/* Examine each clock cycle in range */ for
loop
Compute slack
end loop
Compute average slack:
Compute utilization:
/* If highest utilization */ if
then
end if
end loop
Estimation 138 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Execution time vs. clock utilization
Second order differential equation example
160.0 1200.0
140.0
100.0 800.0
80.0
600.0 560 ns
60.0 56 ns
92%
40.0 400.0
0.0 20.0 40.0 60.0 80.0 100.0
Utilization (%)
20.0 92%
0.0
0.0 20.0 40.0 60.0 80.0 100.0
Utilization (%)
Estimation 139 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Control steps estimation
Scheduling
Granularity is operations in a dataow graph
Computationally expensive
Estimation 140 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Operator-use method
w := w + dx u4 := u1 x u2 add: (1/1)*1= 1
n mult: (2/2)*4= 4
u1 := u x dx ; 2 u5 := dx x u3
u4 := u1 x u2 y := y + y1 max (1 , 4) = 4
u2 := 5 x w ;
u3 := 3 x y ;
y1 := i x dx ; u5 := dx x u3
n sub: (1/1)*1= 1
w := w + dx ; 3 u6 := u − u4 max (1 ) = 1
u4 := u1 x u2 ; y := y + y1
u5 := dx x u3 ;
y := y + y1 ; n sub: (1/1)*1= 1
u6 := u − u4 ; u6 := u − u4 4 u := u6 − u5 max (1 ) = 1
u := u6 − u5 ;
u := u6 −u5 Estimated total = 14
control steps
Estimation 141 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Branching in behaviors
B
1
o1 s1 o1 s1 o1
o2 s2 o2 s2 o2
B B
2 3
s3 o3 o6 s3 o3 o6 s6
o3 o6
o4 o7 s4 o4 o7 s4 o4 o7 s7
o5 s5 o5 s5 o5
B o8 s6 o8 s8 o8
4
Estimation 142 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Execution time estimation
Behavior with branching
Estimate execution time for each basic block
Create control ow graph from basic blocks
Determine branching probabilities
Formulate equations for node frequencies
Solve set of equations
Estimation 143 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Probability-based ow analysis
B1
A := A + 1;
V
1
A := A + 1;
e
B := B + 1 ; 12
for I in 1 to 10 loop B2
B := B + 1; C := C − A;
V
C := C − A; 2
D>A D <= A 0.5 0.5
if (D > A ) then B B e e
D := D + 2; 3 4 23 24
else
D := D + 3; D := D + 2; D := D + 3; V3 V
4
end if
E := D * 2; e e
45
end loop; 35
e
B 52
B := B * A; 5 E := D * 2 ; V
5
(I =< 10) 0.9
C := 3
(I > 10) e 0.1
56
B B: = B * A; V
6 C := 3; 6
Estimation 144 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Probability-based ow analysis
Flow equations:
10
10
1
10 09
2 1 5
05
3 2
05
4 2
10 10
5 3 4
01
6 5
Node execution frequencies:
10 10 0
1
50 50
3 4
10 0 10
5 6
Can be used to estimate number of accesses to
variables, channels or procedures
Estimation 145 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Communication rates
bits sent over
channel C
8 8 8 8 8 8 8
56
1000
Peak channel rate
rate of data transfer of single message
8
80
100
Estimation 146 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Communication rate estimation
Computation time, , obtained from ow-analysis
Communication time,
Total bits transferred by the channel,
Channel average rate
Channel peak rate
Estimation 147 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Area estimation
Two tasks:
Determining number and type of components required
Estimating component size for a specic technology (FSMD, gate arrays etc.)
We will discuss
Datapath component estimation
Control unit estimation
Layout area for a custom implementation
Estimation 148 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Clique-partitioning
Let be a graph, and are set of vertices and edges
Clique-partitioning
divides the vertices into a minimal number of cliques
each vertex in exactly one clique
Estimation 149 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Clique-partitioning
Common
Edge neighbors
s Edge Common
e’ 1 s 2 neighbors
1,3 13 e’
s 13,4 0
s 2 e’ 1 v2
1 v 1,4 v e’
1
v2 1 2,5 0
e’ 0 e’
2,3 0
4,5
e’ 0
2,5
s
5 v3 v4
v3 e’ 1 v
v4 3,4
5 s
v s 5
5 e’ 4
s 4,5
0
3 s
4
v v2 s
Common 1
s Edge 25
2 neighbors
v v2 e’ 0
2,5
1
v3 v4
v
s 5
134
v3 v4
v s
5 5
s s = {v1 , v 3 , v 4 }
134 134
Cliques:
s {v2 , v 5 }
25 =
Estimation 150 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Storage-unit estimation
v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11
v
s 8
0
v10
s v1 Cliques Storage unit
1
v9 v2 {v2 , v 3 } = R
1
s v7 {v6 , v7 , v 9 } R2
2 =
v11 {v4 , v5 , v 8 } = R
3
v3 v5
s {v10 , v 11} = R4
3
{v1 } = R5
v4
s v6
4
s
5
Estimation 151 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Functional-unit and interconnect-unit estimation
Estimation 152 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Computing datapath area
LSB MSB
Bit-sliced datapath
L
bit
Control
lines
H H
cell rt
Datapath
components
H
bit
Estimation 153 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Pin estimation
variable N : integer;
variable X : bit_vector(15 downto 0);
procedure SUM(A, B, OUT) is portF
begin
.... portG
end SUM;
Estimation 154 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Software estimation models
Specification
Specification
technology 68000
8086 68000 MIPS instruction
8086 instruction 68000 instruction MIPS instruction files for target timing & size
Estimator timing & size Estimator timing & size Estimator timing & size Estimator processors information
information information information
MIPS
Software instruction
Software Metrics timing & size
information
Metrics
Estimation 155 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Deriving processor technology les
Generic instruction
dmem3 = dmem1 + dmem2
... ...
10 6
dmem3 = dmem1 + dmem2 35 clocks bytes dmem3 = dmem1 + dmem2 22 clocks bytes
... ...
Estimation 156 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Software estimation
accounts for compiler optimizations
Estimation 157 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Summary and future directions
Future directions:
Incorporating synthesis/compilation optimizations
New metrics for testability, power, integration cost, etc.
New architectural features for the estimation model
Estimation 158 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Renement
159 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Outline
Channel renement
Renement 160 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Rening variable groups
Variable folding:
Implementing each variable in a memory with a xed word size
Renement 161 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Variable folding
11 8 7 0
variable A: bit_vector( 3 downto 0) ;
variable B: bit_vector(15 downto 0) ;
variable C: bit_vector(11 downto 0) ;
variable D: bit_vector(11 downto 0) ;
4x1
7 0
C( 7 downto 0)
C(11 downto 8)
D( 5 downto 0)
6x1
D(11 downto 6)
...
... 5..0
Renement 162 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Memory address translation
variable J, K : integer := 0;
variable V : IntArray (63 downto 0);
.... V (63 downto 0)
V(K) := 3;
X := V(36);
V(J) := X;
....
for J in 0 to 63 loop MEM(163 downto 100)
SUM := SUM + V(J);
end loop;
....
Original specification Assigning addresses to V
Renement 163 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Rening channel groups
Renement 164 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Characterizing communication channels
For a given behavior that sends data over channel ,
Message size, : number of bits in each message
Accesses, : number of times transfers data over
Average rate, : rate of data transfer of over lifetime of behavior
Peak rate, : rate of transfer of single message
8 8 8
channel
X X1 X2 X3
time (ns)
t=0 100 200 300 400
8 bits
24
60
400
8
80
100
Renement 165 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Characterizing buses
Buswidth , : number of data lines in
Protocol delay, : delay for single message transfer over bus
Average rate, : rate of data transfer over over lifetime of system
Renement 166 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Determining bus rates
Goal: to synthesize a bus that constantly transfers data i.e.
Average rate
8 8
channel (2x8 bits) / 4s
X X1 X2 = 4 bits/s
16 16 16
channel (3x16 bits) / 4s
Y Y1 Y2 Y3
= 12 bits/s
8 16 16 8 16
bus (4 + 12 bits/s)
B X1 Y1 Y2 X2 Y3
= 16 bits/s
t=0 1s 2s 3s 4s
time
Renement 167 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Constraints for bus generation
Channel peak rates: affects time required for single message transfer
16 16
8 8 8 8 averate(B) = 8 bits/s
peakrate(B) =8 bits/s
bus B X1 X2
16 16
averate(B) = 8 bits/s
bus B X1 X2 peakrate(B) = 16 bits/s
t=0 1s 2s 3s 4s time
Renement 168 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Bus generation algorithm [NG94]
1, Max
,
for in to loop
/* compute bus peak rate */
/* compute sum of channel average rates */
= 0;
for all channels loop
= + ;
end loop
if ( ) then
/* feasible solution, determine minimal cost */
ComputeCost( )
if ( ) then
end if
end if
end loop
return( )
Renement 169 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
For
if
Renement
if
170 of 214
Compute bus peak rate:
Compute buswidth range:
Compute channel average rates
then
1,
loop
then
Bus generation algorithm
Max
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
Bus generation example
9000.0
8000.0
Cost Function Value
7000.0
6000.0
5000.0
4000.0
infeasible selected buswidth
3000.0
implementations
2000.0
1000.0 feasible
implementations
0.0
-1000.0
0.0 4.0 8.0 12.0 16.0 20.0 24.0
Buswidth
Renement 171 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Performance vs. buswidth tradeoffs
7000.0
Behavior execution time (clocks)
6000.0
5000.0
4000.0
3000.0
2000.0
1000.0
0.0
0.0 4.0 8.0 12.0 16.0 20.0 24.0
Buswidth (pins)
Renement 172 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Protocol generation
Renement 173 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Protocol generation
2. ID assignment: channels require 2 ID lines
Renement 174 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Protocol generation
signal B : HandShakeBus ;
3. Bus structure denition procedure ReceiveCH0( rxdata : out bit_vector) is
begin
for J in 1 to 2 loop
wait until (B.START = ’1’) and (B.ID = "00") ;
rxdata (8*J−1 downto 8*(J−1)) <= B.DATA ;
B.DONE <= ’1’ ;
wait until (B.START = ’0’) ;
B.DONE <= ’0’ ;
end loop;
end ReceiveCH0;
Renement 175 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Protocol generation
process Xproc
process P variable X ;
variable AD Xtemp; begin
begin bus B wait on B.ID;
..... if (B.ID="00") then
SendCH0(32) ; receiveCH0(X);
..... elsif (B.ID="01" ) then
ReceiveCH1(Xtemp); sendCH1(X);
SendCH2(AD, Xtemp+7); end if;
..... end;
end ;
process MEMproc
variable MEM: array(0 to 63);
begin
process Q wait on B.ID;
variable COUNT; if (B.ID="10") then
begin receiveCH2(MEM);
..... 8
elsif (B.ID="11" ) then
SendCH3(60, COUNT); receiveCH3(MEM);
..... end if;
end ; end;
Renement 176 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Resolving access conicts
Three tasks
Arbitration model selection
Arbitration scheme selection
Arbiter generation
Renement 177 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Arbitration models
addr / data
addr / data
port1 port2
MemArbiter
memory MEM
req, req,
grant grant
addr / data
addr / data
Dynamic
port1 port2
MemArbiter
memory MEM
req, req, req,
grant grant grant
Renement 178 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Arbiter generation
Behavior assigned higher priority than
Fixed priority implemented with two handshake signals and
bus B
process P process Xproc
variable AD Xtemp; variable X ;
Req_P begin begin
process B_arbiter Grant_P ..... wait on B.ID;
begin Req_P <= ’1’; if (B.ID="00") then
wait until (Req_P=’1’) wait until (Grant_P = ’1’); receiveCH0(X);
or (Req_Q = ’1’); SendCH0(32) ; elsif (B.ID="01" ) then
if (Req_P = ’1’) then Req_P <= ’0’; sendCH1(X);
Grant_P = ’1’; ..... end if;
wait unitl (Req_P = ’0’); end process ; end process;
Grant_P = ’0";
elsif (Req_Q = ’1’) then
Grant_Q <= ’1’; process Q
wait until (Req_Q = ’0’); Req_Q variable COUNT; process MEMproc
Grant_Q <= ’0’; Grant_Q begin variable MEM: array(0 to 63);
end if; ..... begin
end process; Req_Q <= ’1’; wait on B.ID;
wait until (Grant_Q = ’1’); 8 if (B.ID="10") then
SendCH3(60, COUNT); receiveCH2(MEM);
Req_Q <= ’0’; elsif (B.ID="11" ) then
..... receiveCH3(MEM);
end process; end if;
end process;
Renement 179 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Effect of binding on interfaces
Custom Custom
Channel X
behavior Pa Pb
behavior
A B
protocol protocol
Custom Standard
Channel X
behavior Pa Pb behavior
X B
Standard Standard
Renement 180 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Protocol operations
Renement 181 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Protocol specication : FSMs
start start
MDATAp <=
a3 DataVar <= DATAp b3 MemVar (MAddrVar)
Protocol Pa Protocol Pb
Renement 182 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Protocol specication : Timing diagrams
Advantages:
Ease of comprehension, representation of timing constraints
Disadvantages:
Lack of action language, not simulatable
Difcult to specify conditional and repetitive event sequences
ARDYp
15..0 MADDRp
ADDRp 7..0 15..8
ARCVp RDp
DREQp
15..0 MDATAp
DRDYp
100ns
DATAp 15..0
Protocol Pa Protocol Pb
Renement 183 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Protocol specication : HDLs
Advantages:
Functionality can be veried by simulation
Easy to specify conditional and repetitive event sequences
Disadvantages:
Cumbersome to represent timing constraints between events
Protocol Pa Protocol Pb
Renement 184 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Interface process generation
Renement 185 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
IP generation: creating relations
Protocol Pa Relations
A1 [ (true) :
ADDRp <= AddrVar(7 downto 0); ADDRp <= AddrVar(7 downto 0)
ARDYp <= ’1’; ARDYp <= ’1’ ]
wait until (ARCVp = ’1’ ); A2 [ (ARCVp = ’1’) :
ADDRp <= AddrVar(15 downto 8); ADDRp <= AddrVar(15 downto 8)
DREQp <= ’1’; DREQp <= ’1’ ]
wait until (DRDYp = ’1’);
DataVar <= DATAp; A3 [ (DRDYp = ’1’) :
DataVar <= DATAp ]
Renement 186 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
IP generation: partitioning relations
Protocol Pa Protocol Pb
A1 (8 bits out)
B1 (16 bits in) G1
A2 (8 bits out)
1 1 2 1 2 1 3
Renement 187 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
IP generation: inverting protocol operations
Interface Process
/* (group G1)’ */
Atomic operation Dual operation wait until (ARDYp = ’1’);
8
ADDRp TempVar1(7 downto 0) := ADDRp ; 16
wait until (Cp = ’1’) Cp <= ’1’ ARCVp <= ’1’ ; MADDRp
DATAp
wait until (DREQp = ’1’); MDATAp
Cp <= ’1’ wait until (Cp = ’1’) 16
TempVar1(15 downto 8) := ADDRp ; 16
ARDYp RDp <= ’1’ ;
var <= Dp Dp <= TempVar
ARCVp MADDRp <= TempVar1;
Dp <= var TempVar := Dp /* (group G2)’ */
DREQp wait for 100 ns; RDp
wait for 100 ns wait for 100 ns DRDYp TempVar2 := MDATAp ;
DRDYp <= ’1’ ;
DATAp <= TempVar2 ;
Renement 188 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
IP generation: interconnect optimization
Advantages:
Bypassing interface process reduces interconnect cost
Operations related to these ports can be eliminated from interface process
Interface Process
ADDRp
wait until (ARDYp = ’1’);
8 TempVar1(7 downto 0) := ADDRp ; MADDRp
ARDYp ARCVp <= ’1’ ; 16
wait until (DREQp = ’1’);
ARCVp
TempVar1(15 downto 8) := ADDRp ; RDp
RDp <= ’1’ ;
A DREQp
MADDRp <= TempVar1; B
DRDYp wait for 100 ns;
DRDYp <= ’1’ ;
DATAp 16 MDATAp
Renement 189 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Transducer synthesis [BK87]
Renement 190 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Generating event graphs from timing diagrams
Ri
Ro L
Ri
Cell Ai
Ao Ro
L
Ao
Ai
S Ri Ri
L L L L
Ro Ro
Ao Ao
Ai Ai E
Renement 191 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Deriving skeletal circuit from event graph
Ri
Ao Ro S
Ri L
L Q Ro
Ao Ri R
Ri Ro
L S L
Ao Q L
Ro
R Ai
Ro S
L L
Ao Q Ai
Ro Ai R
L Ro
Advantages:
Synthesizes logic for transducer circuit directly
Accounts for min/max timing constraints between events
Disadvantages:
Cannot interface protocols with different data port sizes
Transducer not simulatable with timing diagram description of protocols
Renement 192 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Hardware/Software interface renement
v2
v1 v2 v3 v4 s2
s1 B1 B2
p1 v3
v4 s2
B1 B2 B3 B4 p2
Buffer s1
Ports
p1 p2 p3
B3 B4
ASIC
p1 p2 p3
Renement 193 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Tasks of hardware/software interfacing
Select bus to satisfy data transfer rate and reduce interfacing cost
Renement 194 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Summary and future directions
Renement 195 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Methodology
196 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Outline
Example
A design methodology
Conceptualization environment
Methodology 197 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Items a design methodology must specify
Methodology 198 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Example: Interactive TV processor
InteractiveTvProcessor
audio_in audio_out
Analog video_in Digital video_out Analog
subsystem subsystem subsystem
av_cmd
Main computer
Methodology 199 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Example’s dataow behavior
Digital subsystem
audio_in audio_out
audio1[100k][8]
StoreAudio GenerateAudio
audio2[100k][8]
video_in video_out
video[500k][8]
ProcessAVCmd StoreGenerateVideo
screen_chars[30][30][8]
av_cmd
StoreAVCmd ProcessMainCmds ProcessRemoteButtons
main_cmds button
Methodology 200 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Example’s implementation after system design
Digital subsystem
Memory1 Memory2
audio1[100k][8]
video[500k][8]
audio2[100k][8]
audio_in audio_out
video_in video_out
StoreGenerateVideo
StoreAudio fonts[128][16][16]
StoreAVCmd
GenerateAudio screen_chars[30][30[]8]
av_cmd[8]
av_cmd
Processor
ProcessAVCmd ProcessRemoteButtons
ProcessMainCmds OverlayCharacters
main_cmds button
Methodology 201 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
An example design methodology
Allocation
Manual System design Partitioning
Refinement
bus
Component implementation
Methodology 202 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
System-design tasks
System−design tasks
Allocation Partitioning Refinement
Functional objects
Methodology 203 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
One possible ordering of tasks
1. Functionality specification
Specification
Memory allocation
Variable−to−memory partitioning
Bus allocation
Channel−to−bus partitioning
2. System design
ASIC/processor allocation
Behavior−to−ASIC/processor partitioning
Interface synthesis
Arbiter synthesis
3. Component implementation
Implement software Implement hardware
Methodology 204 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Generic synthesis system requirements
Completeness
All levels of design, all implementation styles
Extensibility
Allow addition of new algorithms and tools
Controllability
User control of tools, design-quality feedback
Interactivity
Partial design, design modication
Upgradability
Evolve to describe-and-synthesize method
Methodology 205 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
A generic synthesis system
System
synthesis
Conceptualization environment
Verification/simulation suite
Intermediate forms
Description generators
Logic/Sequential CDB
Compilation
synthesis
Physical design
synthesis
ASIC description
Assembly code
to manufacturing
Methodology 206 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
A generic system-synthesis tool
Compiler
Allocator
Transformer SR Estimators
Partitioner
Interface &
arbitration
synthesis
System−module
behavioral specifications
Methodology 207 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
A generic chip-synthesis tool
Behavioral
description
Compiler
Scheduler
Component
selector
CDFG Storage
binder
Functional unit
binder
Interconnection
binder
Module
selector
Technology
mapper
CDB
Microarchitecture
optimizer
Logic/Sequential synthesis
To physical design
Methodology 208 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
A generic logic-synthesis tool
State Interface
encoding synthesis
Logic
minimization
Technology
mapping
Physical design
Methodology 209 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Conceptualization environment
Methodology 210 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
A system-synthesis tool interface
Module Execution
Mappings type $ time Area Pins Instr
System 105
/100*
ASIC1 X100 30 16000 46/60
/20000
CaptureAudio 100/110
GenerateAudio 100/110
Allocation ASIC2 X100 30 18000 48/60
/20000
CaptureGenerateVideo 100/110
Methodology 211 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
An optional design view
Estimate/
Quality metric Constraint Violation?
$(System) 105/100
Execution−time(CaptureAudio) 100/110
Execution−time(GenerateAudio) 100/110
Execution−time(CaptureGenerateVideo) 100/110
Execution−time(CaptureAVCmd) 100/110
Area(ASIC1) 16000/20000
Area(ASIC2) 18000/20000
Pins(ASIC1) 56/60
Pins(ASIC2) 58/60
Instr(Processor1) 6000/5000
0 constraint
Methodology 212 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Summary
Conceptualization environment
Crucial to practical use
Methodology 213 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
Future directions
Formal verication
Testability
Regularity exploiting
System-level transformations
Feedback incorporation
Methodology 214 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong UC Irvine
References
[BHS91] F. Belina, D. Hogrefe, and A. Sarma. SDL with Applications from Protocol Specications. Prentice Hall, 1991.
[BK87] G. Borriello and R.H. Katz. \Synthesis and optimization of interface transducer logic,". In Proceedings of the International
Conference on Computer-Aided Design, 1987.
[CS86] C.Tseng and D.P. Siewiorek. \Automated synthesis of datapaths in digital systems,". IEEE Transactions on Computer-Aided
Design, pages 379{395, July 1986.
[EHB94] R. Ernst, J. Henkel, and T. Benner. \Hardware-software cosynthesis for microcontrollers,". In IEEE Design & Test of Com-
puters, pages 64{75, December 1994.
[FM82] C.M. Fiduccia and R.M. Mattheyses. \A linear-time heuristic for improving network partitions,". In Proceedings of the Design
Automation Conference, 1982.
[GD90] R. Gupta and G. DeMicheli. \Partitioning of functional models of synchronous digital systems,". In Proceedings of the Inter-
national Conference on Computer-Aided Design, pages 216{219, 1990.
[GD92] R. Gupta and G. DeMicheli. \System-level synthesis using re-programmable components,". In Proceedings of the European
Conference on Design Automation (EDAC), pages 2{7, 1992.
[GD93] R. Gupta and G. DeMicheli. \Hardware-software cosynthesis for digital systems,". In IEEE Design & Test of Computers, pages
29{41, October 1993.
[GVN94] D.D. Gajski, F. Vahid, and S. Narayan. \A system-design methodology: Executable-specication renement,". In Proceedings
of the European Conference on Design Automation (EDAC), 1994.
[Hal93] Nicolas Halbwachs. Synchronous Programming of Reactive Systems. Kluwer Academic Publishers, 1993.
[Hoa78] C.A.R. Hoare. \Communicating sequential processes,". Communications of the ACM, 21(8): 666{677, 1978.
[IEE88] IEEE Inc., N.Y. IEEE Standard VHDL Language Reference Manual, 1988.
[JMP88] R. Jain, M. Mlinar, and A. Parker. \Area-time model for synthesis of non-pipelined designs,". In Proceedings of the Interna-
tional Conference on Computer-Aided Design, 1988.
[Joh67] S.C. Johnson. \Hierarchical clustering schemes,". Psychometrika, pages 241{254, September 1967.
[KC91] Y.C. Kirkpatrick and C.K. Cheng. \Ratio cut partitioning for hierarchical designs,". IEEE Transactions on Computer-Aided
Design, 10(7): 911{921, 1991.
[KGV83] S. Kirkpatrick, C.D. Gelatt, and M. P. Vecchi. \Optimization by simulated annealing,". Science, 220(4598): 671{680, 1983.
[KL70] B.W. Kernighan and S. Lin. \An efcient heuristic procedure for partitioning graphs,". Bell System Technical Journal, February
1970.
[LT91] E.D. Lagnese and D.E. Thomas. \Architectural partitioning for system level synthesis of integrated circuits,". IEEE Transactions
on Computer-Aided Design, July 1991.
[MK90] M.C. McFarland and T.J. Kowalski. \Incorporating bottom-up design into hardware synthesis,". IEEE Transactions on
Computer-Aided Design, September 1990.
[NG92] S. Narayan and D.D. Gajski. \System clock estimation based on clock slack minimization,". In Proceedings of the European
Design Automation Conference (EuroDAC), 1992.
[NG94] S. Narayan and D.D. Gajski. \Synthesis of system-level bus interfaces,". In Proceedings of the European Conference on
Design Automation (EDAC), 1994.
[NVG92] S. Narayan, F. Vahid, and D.D. Gajski. \System specication with the SpecCharts language,". In IEEE Design & Test of
Computers, Dec. 1992.
[PK89] P.G. Paulin and J.P. Knight. \Algorithms for high-level synthesis,". In IEEE Design & Test of Computers, Dec. 1989.
[PPM86] A.C. Parker, T. Pizzaro, and M. Mlinar. \MAHA: A program for datapath synthesis,". In Proceedings of the Design Automation
Conference, 1986.
[TM91] D.E. Thomas and P. Moorby. The Verilog Hardware Description Language. Kluwer Academic Publishers, 1991.
[VG92] F. Vahid and D.D. Gajski. \Specication partitioning for system design,". In Proceedings of the Design Automation Conference,
1992.
[VGG93] F. Vahid, J. Gong, and D.D. Gajski. \A hardware-software partitioning algorithm for minimizing hardware,". UC Irvine, Dept.
of ICS, Technical Report 93-38,1993.