Professional Documents
Culture Documents
OF
EMBEDDED SYSTEMS
by
Daniel D. Gajski
Frank Vahid
Sanjiv Narayan
Jie Gong
University of California at Irvine
Department of Computer Science
Irvine, CA 92715-3425
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
Levels
Behavioral
forms
Structural
components
Physical
objects
Transistor
Differential eq.,
currentvoltage
diagrams
Transistors,
resistors,
capacitors
Analog and
digital cells
Gate
Boolean equations,
finitestate machines
Gates,
flipflops
Modules,
units
Register
Algorithms,
flowcharts,
instruction sets,
generalized FSM
Adders, comparators,
registers, counters,
register files, queues
Microchips,
ASICs
Processor
Executable spec.,
programs
Processors, controllers,
memories, ASICs
PCBs,
MCMs
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-re ne
Executable speci cation
Software and hardware partitioning
Estimation and exploration
Speci cation re nement
Introduction
4 of 214
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
Motivation
Executable
specification
System
implementation
Processor
Memory
if (x = 0) then
y=a*b/2
Video
accelerator
Partitioning
Models
Languages
Introduction
5 of 214
Estimation
Refinement
ASIC
Software compilation
Behavioral synthesis
Logic synthesis
I/O
Physical design
Test generation
Manufacturing
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
Outline
Introduction
Design models and architectures
System-design languages
An example
Translation
Partitioning
Estimation
Re nement
Methodology and environments
Outline
6 of 214
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
Specification + Constraints
Models
(Specification)
Design
process
Implementation
Architectures
(Implementation)
7 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
Model: a set of functional objects and rules for composing these objects
Architecture: a set of implementation components and their connections
8 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
loop
if (req_floor = curr_floor) then
direction := idle;
elsif (req_floor < curr_floor) then
direction := down;
elsif (req_floor > curr_floor) then
direction := up;
end if;
end loop;
(b) Algorithmic model
Down
(req_floor = curr_floor)
/ direction := idle
Idle
Up
(req_floor = curr_floor)
/ direction := idle
9 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
req_floor
curr_floor
State register
Combinational logic
direction
req_floor
curr_floor
In/out ports
Processor
direction
Memory
Bus
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
Data ow graph, Flowchart
Structure-oriented models
Block diagram, RT netlist, Gate netlist
Data-oriented models
Entity-relationship diagram, Jacksons diagram
Heterogeneous models
Control/data ow graph, Structure chart, Programming language paradigm,
Object-oriented paradigm, Program-state machine, Queueing model
11 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
r1/n
r2/n
r2/u1
start
S2
S1
u1
r3/
r2/
d2
r1/
/u2
r3
d1
r1/d1
S3
r3/n
S = { s1, s2, s3}
I = {r1, r2, r3}
O = {d2, d1, n, u1, u2}
f: S x I > S
h: S x I > O
12 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
r1
r1
r1
start
S11/d2
r3
S21/d1
r2
r1
r2
r2
r1
S22 /n
r2
r2
r1
r3
S32 /u1
r1
r1
S13 /n
r3
r3
r2
r1
S12 /d1
S31 /n
r2
r2
S23 /u1
r3
r3
r2
S33 /u2
r3
r3
r3
13 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
start
S1
(curr_floor = req_floor) / output := 0
14 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
Finite-state machines
Merits:
represent systems temporal behavior explicitly
suitable for control-dominated system
Demerits:
lack of hierarchy and concurrency resulting in
state or arc explosion when representing complex systems
15 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
p2
p1
t1
p5
t4
t2
p4
p3
Net = (P, T, I, O, u)
P = {p1, p2, p3, p4, p5}
T = {t1, t2, t3, t4}
I: I(t1) = {p1}
I(t2) = {p2,p3,p5}
I(t3) = {p3}
I(t4) = {p4}
O: O(t1) = {p5}
O(t2) = {p3,p5}
O(t3) = {p4}
O(t4) = {p2,p3}
t3
u: u(p1) = 1
u(p2) = 1
u(p3) = 2
u(p4) = 0
u(p5) = 1
16 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
Petri nets
t1
t2
t1
(a) Sequence
t1
t2
t1
t2
(b) Branch
t1
(c) Synchronization
t2
t3
t4
(e) Concurrency
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
18 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
Y
D
u
a(P)/c
r
F
s
19 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
Merits:
support both hierarchy and concurrency
good for representing complex systems
Demerits:
concentrate only on modeling control aspects
and not data and activities
20 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
Input
A2.1
A2.2
A2.3
A1
A2
File
Output
Y
W
Output
(a) Activity level
21 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
Data ow 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
22 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
start
J=1
MAX = 0
J = J+1
No
J>N
No
Yes
MAX = MEM(J)
Yes
end
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 systems computation is well known
24 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
Right
bus
Left
bus
Program
memory
Data
memory
Register file
System bus
Processor
LIR
I/O
coprocessor
Application
specific
hardware
RIR
ALU
(b) RT netlist
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 systems structure
Characteristics:
often used in the later phases of design process
26 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
Availability
Supplier
Customer
Request
P.O.
instance
Product
Order
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.
28 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
Drawing
AND
Users *
Shape
Color
OR
Circle
Name
Rectangle
AND
Radius
Width
Height
29 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
Jacksons diagrams
Merits:
suitable for representing data having a complex composite structure.
Demerits:
do not describe any functional or temporal behavior of the system.
30 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
Read W
+
Control flow graph
start
stop
X
1
W = 10
disable
enable
S0
A1
W
enable
Const 3
Read X
+
X := X + 2
A := X + 5
A := X + 3
A := X + W
Write A
disable
S1
C
2
Write A
A2
Read X
Const 2
W = 10 / disable A1 , enable A3
+
disable
enable
S2
A3
Const 5
Control
Write X
Write A
31 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
Control/data ow graphs
Merits:
correct the inability of DFG in representing the control of a system
correct the inability of CFG to represent data dependencies
32 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
control
Data
Main
A,B
C
A,B
A,B
C,D
A,B
Get
Transform
Compute
Out_C
Branch
A
A
B
A B
Get_A
Get_B
Change_A
Change_B
Do_Loop1
Do_Loop2
Iteration
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
34 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
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 systems states
36 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
Object
Object
Object
Data
Data
Data
Operations
Operations
Operations
Transformation
function
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
38 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
e1
e2
max = 0;
for i = 1 to 20 do
if ( A[i] > max ) then
max = A[i] ;
end if;
end for
e3
39 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
Program-state machines
Merits:
represent systems states, data, control and activities in a single model
overcome the limitations of programming languages and HCFSM models
40 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
Arriving
requests
Queue Server
Arriving
requests
41 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
Queueing model
Characteristics:
used for analyzing systems performance, and
can nd utilization, queueing length, throughput
42 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
Architectures
Application-speci c 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
43 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
Controller architecture
State register
Nextstate
function
Output
function
Outputs
Inputs
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(i1) b(1)
x(i2) b(2)
x(i3) b(3)
+
Pipeline stages
+
y(i)
(a) Three stage pipeline
x(i) b(0)
x(i1) b(1)
x(i2) b(2)
x(i3) b(3)
y(i)
Pipeline stages
(b) Four stage pipeline
45 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
FSMD
Datapath inputs
State register
Nextstate
function
Output
function
Control
Datapath
Status
Control unit
Datapath outputs
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
selection
logic
Status
Memory
Control unit
Instruction reg.
47 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
RISC architecture
Datapath
Control
Hardwired
output and
nextstate
logic
Register
file
ALU
Data
cache
State register
Status
Instruction reg.
Instr.
cache
Memory
Control unit
48 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
Vector machines
Interleaved memory
Memory
pipes
Memory
pipes
Vector
registers
Scalar
registers
Vector
functional
unit
Scalar
functional
unit
49 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
VLIW architecture
Memory
Register file
50 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
PE 0
Control
unit
PE 1
PE N1
Proc. 0
Proc. 1
Proc. N1
Mem. 0
Mem. 1
Mem. N1
Interconnection network
(a) Message passing
Proc. 0
Proc. 1
Proc. N1
Interconnection network
Mem. 0
Mem. 1
Mem. N1
51 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
Conclusion
52 of 214 Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
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
54 of 214
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
Concurrency
55 of 214
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
Data-driven concurrency
Operations execute when input data is available
Execution order determined by data dependencies
add
1: Q = A + B
2: Y = X + P
3: P = (C D) * Q
subtract
multiply
add
Q
56 of 214
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
Control-driven concurrency
Control thread : set of operations executed sequentially
Concurrency represented by multiple control threads
Q
Fork-join statement
sequential behavior X
begin
Q();
fork A(); B(); C(); join;
R();
end behavior X;
Process statement
System speci cation
57 of 214
concurrent behavior X
begin
process A();
process B();
process C();
end behavior X;
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
State-transitions
start
Q
x
58 of 214
finish
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
Hierarchy
59 of 214
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
Structural hierarchy
System represented as set of interconnected components
Interconnections between components represent wires
Several levels: systems, chips, RT-components, gates
System
Processor
Control Logic
Datapath
data bus
Memory
control
lines
60 of 214
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
Behavioral hierarchy
Concurrent decomposition
Fork-join
Process
P
e4
Sequential decomposition
Procedure
State-machine
Q1
e5
e2
e1
Q3
Q2
R
R1
e8
e6
e3
R2
e7
61 of 214
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
Programming constructs
62 of 214
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
Behavioral completion
start
X1
q
final
state
63 of 214
e5
e2
Y1
e3
X3
e1
X2
Y2
e4
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
Communication
shared memory
process P
process Q
process P
process Q
begin
variable x
....
send (x);
....
end
begin
variable y
....
receive (y);
....
end
Message-passing model
Data sent over abstract channels
Unidirectional / bidirectional
Point-to-point / multiway
Blocking / non-blocking
64 of 214
channel
C
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
Synchronization
65 of 214
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
Control-dependent synchronization
Synchronization based on control structure of behavior
Q
Fork-join
behavior X
begin
Q();
fork A(); B(); C(); join;
R();
end behavior X;
C
synchronization
point
Reset
AB
ABC
A
B1
A1
A2
66 of 214
B2
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
Data-dependent synchronization
AB
B
A
A1
A1
A1
A2
A
B1
B2
A2
Synchronization by
common event
B1
entered A2
B2
Synchronization by
status detection
67 of 214
x:=0
e
A2
x:=1
B1
(x=1)
B2
Synchronization by
common variable
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
Exception handling
P1
P2
68 of 214
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
Timing
behavior Q
IN
behavior
B
max 10 ms
channel C
(max 10 Mb/s)
behavior P
69 of 214
OUT
time
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
Exceptions
Concurrency
Behavioral completion
P
start
P
u
P1
fork
P2
w
join
Q
x
70 of 214
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
VHDL
71 of 214
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
72 of 214
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
system
block
process
signal route
Characteristics supported
Behavioral hierarchy : nested data ow
Structural hierarchy : nested blocks
State transitions : state machine in processes
Communication : message passing
Timing : timeouts generated by timer object
73 of 214
process
signal route
channel
channel
block
channel
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
74 of 214
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
SpecCharts
Developed for embedded
system speci cation [NVG92]
port P, Q : in integer;
Characteristics supported
Y
X1
e1
X2
MAX := 0;
for J in 0 to 15 loop
if ( A(J) > MAX ) then
max := A(J) ;
end if;
end loop
e2
e3
Programming constructs
Structural hierarchy
Synchronization and Timing
75 of 214
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
start
P
v
behavior P .....
behavior Q .....
behavior R .....
Q
w
x
end MAIN;
76 of 214
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
P
fork
join
behavior P .....
.....
77 of 214
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
SpecCharts : exceptions
P1
P2
behavior P
behavior P1
.......
behavior P2
.......
e
Q
behavior Q
......
end MAIN;
78 of 214
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
Summary
Embedded System Features
Language
State
Transitions
Behavioral
Hierarchy
Concurrency
Program
Constructs
Exceptions
Behavioral
Completion
VHDL
Verilog
Esterel
SDL
CSP
Statecharts
SpecCharts
Feature fully
supported
79 of 214
Feature partially
supported
Feature not
supported
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
80 of 214
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
Outline
81 of 214
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
tollsaver
beep
offhook
ring
hangup
tone
Line
circuitry
tape_cnt
tape_rew
tape_fwd
tape_play
Tape
unit
tape_rec
ann_done
ann_play
ann_rec
Announcement
unit
messages
power
rec
ann
light
Controller
hear
ann
on/off
memo
play
msgs
mic
stop
82 of 214
rew
play
fwd
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
Controller
SystemOff
power=0
power=1
SystemOn
phone line
tollsaver
beep
offhook
ring
hangup
tone
Line
circuitry
tape_cnt
tape_rew
tape_fwd
tape_play
Tape
unit
tape_rec
ann_done
ann_play
ann_rec
Announcement
unit
messages
power
rec
ann
light
Controller
hear
ann
on/off
memo
play
msgs
mic
stop
rew
play
fwd
83 of 214
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
SystemOn
RespondToLine
rising(any_button_pushed)
RespondToMachineButton
phone line
tollsaver
beep
offhook
ring
hangup
tone
Line
circuitry
tape_cnt
tape_rew
tape_fwd
tape_play
Tape
unit
tape_rec
ann_done
ann_play
ann_rec
Announcement
unit
messages
power
rec
ann
light
Controller
hear
ann
on/off
memo
play
msgs
mic
stop
rew
play
fwd
84 of 214
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
RespondToMachineButton
behavior RespondToMachineButton
type code is
begin
if (play=1) then
HandlePlay;
elsif (fwd=1) then
HandleFwd;
elsif (rew=1) then
HandleRew;
elsif (memo=1) then
HandleMemo;
elsif (stop=1) then
HandleStop;
elsif (hear_ann=1) then
HandleHearAnn;
elsif (rec_ann=1) then
HandleRecAnn;
elsif (play_msgs=1) then
HandlePlayMsgs;
end if;
end;
phone line
tollsaver
beep
offhook
ring
hangup
tone
Line
circuitry
tape_cnt
tape_rew
tape_fwd
tape_play
Tape
unit
tape_rec
ann_done
ann_play
ann_rec
Announcement
unit
HandlePlay
play=1
HandleFwd
fwd=1
HandleRew
rew=1
HandleMemo
memo=1
HandleStop
stop=1
HandleHearAnn
hear_ann=1
HandleRecAnn
rec_ann=1
messages
HandlePlayMsgs
power
play_msgs=1
rec
ann
light
Controller
hear
ann
on/off
(a)
(b)
memo
play
msgs
mic
stop
rew
play
fwd
85 of 214
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
RespondToLine
Responds to exceptions
Monitor
Hangup
Machine turned off
rising(hangup)
falling(machine_on)
phone line
Answer
tollsaver
beep
offhook
ring
hangup
tone
Line
circuitry
tape_cnt
tape_rew
tape_fwd
tape_play
Tape
unit
tape_rec
ann_done
ann_play
ann_rec
Announcement
unit
messages
power
rec
ann
light
Controller
hear
ann
on/off
memo
play
msgs
mic
stop
rew
play
fwd
86 of 214
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
Counts for
required rings
Requirements
may change
MaintainRingsToWait
phone line
tollsaver
beep
offhook
ring
hangup
tone
Line
circuitry
tape_cnt
tape_rew
tape_fwd
tape_play
Tape
unit
tape_rec
ann_done
ann_play
ann_rec
Announcement
unit
messages
power
rec
ann
loop
rings_to_wait <= DetermineRingsToWait;
wait on tollsaver, machine_on;
end loop;
light
Controller
hear
ann
on/off
memo
CountRings
variable I : integer range 0 to 20;
i := 0;
while (i < rings_to_wait) loop
wait on rings_to_wait, ring;
if (rising(ring)) then
i := i + 1;
end if;
end loop;
play
msgs
mic
stop
rew
play
fwd
87 of 214
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
Answer
rising(hangup)
PlayAnnouncement
button="0001"
RecordMsg
Hangup
button="0001"
RemoteOperation
(a)
(b)
phone line
tollsaver
beep
offhook
ring
hangup
tone
Line
circuitry
tape_cnt
tape_rew
tape_fwd
tape_play
Tape
unit
tape_rec
ann_done
ann_play
ann_rec
Announcement
unit
messages
power
rec
ann
light
Controller
hear
ann
on/off
memo
play
msgs
mic
stop
rew
play
fwd
88 of 214
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
code_ok=1
RespondToCmds
(a)
phone line
tollsaver
beep
offhook
ring
hangup
tone
Line
circuitry
tape_cnt
tape_rew
tape_fwd
tape_play
Tape
unit
tape_rec
ann_done
ann_play
ann_rec
Announcement
unit
messages
power
rec
ann
light
Controller
hear
ann
on/off
memo
play
msgs
mic
stop
rew
play
fwd
89 of 214
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
SystemOn
Announcement
unit
Tape
unit
power=0
power=1
phone line
InitializeSystem
RespondToMachineButton
Line
circuitry
beep
offhook
ring
hangup
tone
RespondToLine
tape_cnt
tape_rew
tape_fwd
tape_play
tape_rec
ann_done
ann_play
ann_rec
rising(any_button_pushed)
tollsaver
rising(hangup)
Monitor
falling(machine_on)
messages
power
Answer
rising(hangup)
Hangup
RecordMsg
PlayAnnouncement
tone="0001"
rec
ann
light
Controller
RemoteOperation
hangup=1
hear
ann
CheckUserCode
on/off
memo
code_ok
not code_ok
RespondToCmds
tone="0010"
play
msgs
mic
stop
rew
play
fwd
MiscCmds
HearMsgsCmds
hangup=1
other
ResetTape
90 of 214
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
Precision
Readability/precision compete in a natural language
Executable speci cation encourages precision
Designer asks questions, speci cation answers them
91 of 214
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
SpecCharts
40
16
Number of modelers
92 of 214
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
Specification attributes
Conceptual
model
SpecCharts
VHDL
(hierarch.)
VHDL
(flat)
Programstates
42
42
42
32
80
Arcs
40
40
40
152
135
Control signals
84
Lines/leaf
27
29
Lines
446
1592
963
Words
1733
6740
8088
No sequential
program constructs
Shortcomings
Statecharts
No hierarchy
No exception
constructs
No hierarchical
events
No statetransition
constructs
93 of 214
X
X
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
Design attribute
Designed from
English
Designed from
SpecCharts
Control transistors
3130
2630
Datapath transistors
2277
2251
Total transistors
5407
4881
Total pins
38
38
94 of 214
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
Summary
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
Translation
97 of 214
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
VHDL
SpecCharts
Translator
VHDL
VHDL environment
Synthesis
tool
Simulator
Debuger
Testgenerator
Tool output
Translation
98 of 214
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
(a)
Translation
99 of 214
not u
loop
case (state) is
when P =>
<actions for P>
if (u) then
state := Q;
else if (not u) then
state := R;
end if;
when Q =>
<actions for Q>
state := P;
when R =>
<actions for R>
state := Q;
end case;
end loop;
(b)
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
Fork-join translation
Main : process
begin
statement1;
statement1;
parallel
{
P1;
P2;
}
statement2;
...
statement2;
...
(a)
Translation
P1_process : process
begin
wait until fork;
P1;
P1_done <= true;
wait until not fork;
P1_done <= false;
end;
(b)
100 of 214
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
Exception translation
event e : T > S;
T:
statement1;
statement2;
statement3;
S:
statement4;
statement5;
(a)
Translation
101 of 214
T
statement1;
if (e)
goto S_start;
statement2;
if (e)
goto S_start;
statement3;
S_start: S
statement4;
statement5;
(b)
T
T_loop : loop
statement;
if (e)
exit T_loop;
statement2;
if (e)
exit T_loop;
statement3;
exit T_loop;
end loop;
S
statement4;
statement5;
(c)
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
System partitioning
104 of 214
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
System partitioning
105 of 214
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
System partitioning
106 of 214
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
Granularity
Metrics and estimations
Partitioning algorithms
Objective and closeness functions
Systemcomponent allocation
Output
System partitioning
107 of 214
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
System partitioning
108 of 214
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
System partitioning
109 of 214
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
System partitioning
110 of 214
A
Cost
Number of moves
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
User interface
Output
Input
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
System partitioning
112 of 214
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
Hierarchical clustering
System partitioning
113 of 214
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
p
P
oS
=P
p
=
end loop
i;j
P ;p ; p Sp
for each p loop
c = ComputeCloseness(p ; p
i
ij
ij;k
ij
end loop
end loop
return P
System partitioning
114 of 214
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
o
30
15
o2
1
10
20
o3
o2
o3
o2
o3
10
10
10
o1
o1
25
o4
o3
10
10
o4
o4
o2
o4
Avg(10,10) = 10
Avg(15,25) = 20
o1 o2 o3 o4
o1 o2 o3 o4
(a)
(b)
System partitioning
115 of 214
o1 o2 o3 o4
(c)
o1 o2 o3 o4
(d)
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
Simulated annealing
System partitioning
116 of 214
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
tentative)
cost = cost tentative ; cost
if (Accept(cost; temp) > Random(0; 1)) then
P = P tentative
cost = cost tentative
end if
end loop
temp = DecreaseTemp(temp)
end loop
where:
System partitioning
117 of 214
cost
)
Accept(cost; temp) = min(1; e; temp
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
System partitioning
118 of 214
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
BUD example
start
(bitwidths = 4)
+ =
1
y z
.2
<
.7
<
4
x := a + b;
if (a = b)
c := ((x y) < z);
+
0
cond
.2
38
cond
finish
(a)
System partitioning
119 of 214
(b)
(c)
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
19
g(
Av
.035
<
<
+=<
AVG(.19,.12) =
4)
.1
.2
0,
.2
g(
Av
=<
(a)
<
Clusters
+=<
+, =<
+, =, <
+, , =, <
17.5
15.8
13.8
16.4
36
26
26
26
<
Objfct = AxT
630
411
359 (best)
426
(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
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
o2
o 12
17
o3
o3
o3
23
21
o4
o1 o2 o3 o4
(a)
System partitioning
122 of 214
o4
o4
o 12
(b)
o3 o4
(c)
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
Hardware/software partitioning
System partitioning
123 of 214
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
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
System partitioning
125 of 214
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
performance (microseconds)
1000.0
800.0
600.0
400.0
C
A
200.0
0.0
System partitioning
126 of 214
20.0
40.0
B
60.0
80.0 100.0
cost (dollars)
120.0
140.0
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
Estimation
130 of 214
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
Estimation Error
Simple Model
Estimation
131 of 214
Computation Time
Actual Design
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
Fidelity
Estimates must predict quality metrics for different design alternatives
Fidelity: % of correct predictions for pairs of design implementations
Higher delity =) correct decisions based on estimates
Metric
estimate
(A, B) =
(B, C) =
(A, C) =
measured
Fidelity = 33 %
A
Estimation
132 of 214
Design
points
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
Memory
DR
Control
Logic
AR
Control
Register
Muxes
n2
R1
R2
Registers/
Register Files
RF
n
1
State Reg.
p
1
p
3
Muxes
n6
NextState
Logic
n
FU
p
2
Functional
Units
Status bits
Status
Register
Control Unit
Estimation
134 of 214
Datapath
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
i3
i4
i5
150
i4
80
x
80
80
150
80
150
Estimation
135 of 214
i3
i4
80
i5
i6
+
80
+
80
+
80
+
+
150
o2
o1
Clock Cycle
Exec. Time
Resources
i1 i2
80
o1
i6
80
150
80
i5
i6
150
80
i3
: 380 ns
: 380 ns
: 2 x, 4 +
Clock Cycle
Exec. Time
Resources
o2
: 150 ns
: 600 ns
: 1 x, 1 +
o1
o2
Clock Cycle : 80 ns
Exec. Time : 400 ns
Resources
: 1 x, 1 +
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
slack(clk; ti )
= (
ave slack(clk)
T
X
[ occur (ti )
slack(clk; ti ) ]
i
T
X
occur(ti)
i
utilization(clk)
Estimation
136 of 214
(clk )
; ave slack
clk
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
Clock utilization
number of
operations
1 x CLK
2 x CLK
3 x CLK
occur(x)=6
occur()=2
occur(+)=2
50
100
time (ns)
150
Clock = 65 ns
Slack
6x32
2x9
x
ave_slack(65 ns) =
2 x 17
= 24.4 ns
Estimation
137 of 214
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
max utilization = 0
clkmax loop
for
clkmin clk
utilization
end if
end loop
Estimation
138 of 214
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
160.0
Execution time (ns)
140.0
120.0
100.0
80.0
60.0
1000.0
800.0
600.0
560 ns
56 ns
92%
400.0
0.0
40.0
20.0
0.0
0.0
Estimation
92%
20.0
40.0
60.0
Utilization (%)
139 of 214
80.0
20.0
40.0
60.0
Utilization (%)
80.0
100.0
100.0
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
Scheduling
Granularity is operations in a data ow 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
Granularity is statements in speci cation
Faster than scheduling, average error 13%
maximum
macronode
control steps
u1 := u x dx
num(t i ) clocks(t i )
ti
add
mult
sub
1
2
1
1
4
1
u2 := 5 x w
u3 := 3 x y
y1 := i x dx
u1 := u x dx
u2 := 5 x w
n u3 := 3 x y
1
y1 := i x dx
w := w + dx
w := w + dx
u1 := u x dx ;
u2 := 5 x w ;
u3 := 3 x y ;
y1 := i x dx ;
w := w + dx ;
u4 := u1 x u2 ;
u5 := dx x u3 ;
y := y + y1 ;
u6 := u u4 ;
u := u6 u5 ;
u := u6 u5
Estimation
141 of 214
max (1 , 8) = 8
u4 := u1 x u2 add: (1/1)*1= 1
2 u5 := dx x u3 mult: (2/2)*4= 4
y := y + y1
max (1 , 4) = 4
3 u6 := u u4
4 u := u6 u5
y := y + y1
u6 := u u4
mult: (4/2)*4= 8
n
u4 := u1 x u2
u5 := dx x u3
add: (1/1)*1= 1
sub: (1/1)*1= 1
max (1 ) = 1
sub: (1/1)*1= 1
max (1 ) = 1
Estimated total
control steps
= 14
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
Branching in behaviors
B
2
o3
o6
o4
o7
o5
B
4
o8
(a)
Estimation
B
3
142 of 214
s1
o1
s1
o1
s2
o2
s2
o2
s3
o3
o6
s3
o3
o6 s6
s4
o4
o7
s4
o4
o7 s7
s5
o5
s5
o5
s6
o8
(b)
s8
o8
(c)
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
exectime(B )
csteps(B ) clk
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;
B2
for I in 1 to 10 loop
B := B + 1;
C := C A;
D>A
if (D > A ) then
D := D + 2;
else
D := D + 3;
end if
e
12
B := B + 1 ;
C := C A;
D <= A
0.5
3
D := D + 2;
D := D + 3;
144 of 214
0.5
e
24
23
V
4
V3
e
e
35
5 E := D * 2 ;
(I > 10)
Estimation
E := D * 2;
end loop;
B := B * A;
C := 3
B: = B * A;
C := 3;
(I =< 10)
e
52
V
5
e
56
45
0.9
0.1
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
Probability-based ow analysis
Flow equations:
freq(S )
freq(v1)
freq(v2)
freq(v3)
freq(v4)
freq(v5)
freq(v6)
=
=
=
=
=
=
=
1:0
1:0
1:0
0:5
0:5
1:0
0:1
freq(S )
freq(v1)
freq(v2)
freq(v2)
freq(v3)
freq(v5)
0:9
freq(v5)
1:0
freq(v4)
freq(v1)
freq(v3)
freq(v5)
=
=
=
1:0
5:0
10:0
freq(v2)
freq(v4)
freq(v6)
=
=
=
10:0
5:0
1:0
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
200
400
600
800
1000
time (ns)
Estimation
146 of 214
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
total bits(P; C )
averate(C )
access(P; C ) bits(C )
total bits(B; C )
comptime(B ) + commtime(B; C )
bits(C )
peakrate(C ) = protocol
delay(C )
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 speci c 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
Estimation
149 of 214
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
Clique-partitioning
Common
neighbors
Edge
s
s
1,3
1,4
v2
v3
s
v4
s
3,4
v5
13
v
v3
v4
v5
v2
v2
Common
neighbors
Edge
s
v3
134
v4
v5
25
v4
v5
134
s
Cliques:
150 of 214
2,5
v3
Estimation
2,5
4,5
13,4
v2
4,5
2,5
Common
neighbors
Edge
2,3
134
s
25
{v1 , v 3 , v 4 }
{v2 , v 5 }
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
Storage-unit estimation
v2
v3
v4
v5
v6
v7
v8
v9
v10 v11
v8
v10
v1
Cliques
v9
v2
v7
v11
v3
v5
v4
Storage unit
{v2 , v 3 }
R1
{v6 , v7 , v 9 }
R2
{v4 , v5 , v 8 }
R3
{v10 , v 11}
R4
{v1 }
R5
v6
Estimation
151 of 214
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
Estimation
152 of 214
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
Routing
channel
Bit slices
LSB
MSB
Bit-sliced datapath
Lbit = tr(DP )
bit
nets
Hrt = nets per
track
area(bit)
area(DP )
=
=
Lbit (Hcell
Hrt)
bitwidth(DP ) area(bit)
Control
lines
H
cell
H
bit
Estimation
153 of 214
rt
Datapath
components
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
Pin estimation
Estimation
154 of 214
channel ch1
channel ch2
portF
portG
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
Specification
Specification
8086
Estimator
Compile
to 8086
Compile
to 68000
Compile
to MIPS
8086
instructions
68000
instructions
MIPS
instructions
8086
instruction
timing & size
information
68000
Estimator
68000
instruction
timing & size
information
Software
Metrics
Estimation
155 of 214
Compile to
generic instructions
8086
instruction
timing & size
information
Generic
instructions
MIPS
Estimator
MIPS
instruction
timing & size
information
Estimator
technology
files for target
processors
68000
instruction
timing & size
information
MIPS
instruction
timing & size
information
Software
Metrics
Generic model
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
8086 instructions
68020 instructions
clocks
instruction
mov ax, word ptr[bp+offset1]
add ax, word ptr[bp+offset2]
mov word ptr[bp+offset3], ax
(10)
(9 + EA1)
(10)
bytes
3
4
3
instruction
clocks
bytes
mov a6@(offset1), d0
add a6@(offset2), d0
mov d0, a6@(offset3)
(7)
(2 + EA2)
(5)
2
2
2
execution
time
...
execution
time
size
...
Estimation
generic instruction
35 clocks
10
bytes
22 clocks
6
bytes
...
156 of 214
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
Software estimation
progsize(B )
g2G
datasize(B )
Estimation
157 of 214
d2D
instr size(g)
datasize(d)
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
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
Re nement
159 of 214
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
Outline
Re nement
160 of 214
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
Re nement
161 of 214
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
Variable folding
variable
variable
variable
variable
A:
B:
C:
D:
11
bit_vector( 3 downto 0) ;
bit_vector(15 downto 0) ;
bit_vector(11 downto 0) ;
bit_vector(11 downto 0) ;
8 7
4x1
7
0
7..4
...
3..0
to variable C in memory
A( 3 downto 0)
B( 7 downto 0)
B(15 downto 8)
11
C( 7 downto 0)
C(11 downto 8)
D( 5 downto 0)
D(11 downto 6)
Re nement
6x1
...
...
5..0
8bit Memory
to variable D in memory
162 of 214
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
Re nement
163 of 214
Assigning addresses to V
variable J, K : integer := 0;
variable MEM : IntArray (255 downto 0);
....
MEM(K +100) := 3;
X := MEM(136);
MEM(J+100) := X;
....
for J in 0 to 63 loop
SUM := SUM + MEM(J +100);
end loop;
....
Refined specification
V (63 downto 0)
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
Re nement
164 of 214
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
channel
X
t=0
X1
X2
X3
100
200
300
time (ns)
400
bits(C ) = 8 bits
24 bits
averate(C ) = 400
ns = 60 Mbits=s
8 bits
peakrate(C ) = 100
ns = 80 Mbits=s
Re nement
165 of 214
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
Characterizing buses
buswidth(B )
peakrate(C ) = protdelay
(B )
Re nement
166 of 214
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
averate(B )
C 2B
averate(C )
peakrate(B ) = averate(C )
Average rate
channel
X
channel
Y
8
bus
B
X1
t=0
Re nement
167 of 214
X1
X2
(2x8 bits) / 4s
= 4 bits/s
16
16
16
Y1
Y2
Y3
16
16
Y1
Y2
1s
2s
16
X2
Y3
3s
(3x16 bits) / 4s
= 12 bits/s
(4 + 12 bits/s)
= 16 bits/s
4s
time
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
channel X
16
16
X1
X2
bus B
X1
bus B
16
X1
X2
168 of 214
1s
averate(B) = 8 bits/s
peakrate(B) =8 bits/s
8
X2
16
t=0
Re nement
averate(X) = 8 bits/s
averate(B) = 8 bits/s
peakrate(B) = 16 bits/s
2s
3s
4s
time
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
mincost = 1, mincostwidth = 1
for currwidth in minwidth to maxwidth loop
/* compute bus peak rate */
access(P; C ) bits(C )
averate(C ) = comptime
(P ) + commtime(P )
averatesum = averatesum + averate(C );
end loop
if (peakrate(B ) > averatesum) then
/* feasible solution, determine minimal cost */
currcost = ComputeCost(currwidth)
if (currcost < mincost) then
mincost = currcost, mincostwidth = currwidth
end if
end if
end loop
return(mincostwidth)
Re nement
169 of 214
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
bits C e protdelay (B ) ]
commtime(P ) = access(P; C ) [ d currwidth
access(P; C ) bits(C )
averate(C ) = comptime
(P ) + commtime(P )
X
if peakrate(B )
averate(C ) then
C 2B
if bestcost > ComputeCost(currwidth) then
bestcost = ComputeCost(currwidth)
bestwidth = currwidth
(
Re nement
170 of 214
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
Re nement
171 of 214
9000.0
8000.0
7000.0
6000.0
5000.0
4000.0
3000.0
2000.0
1000.0
0.0
-1000.0
0.0
selected buswidth
infeasible
implementations
feasible
implementations
4.0
8.0
12.0
16.0
Buswidth
20.0
24.0
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
Re nement
172 of 214
7000.0
6000.0
5000.0
4000.0
3000.0
2000.0
1000.0
0.0
0.0
4.0
8.0
12.0
16.0
Buswidth (pins)
20.0
24.0
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
Protocol generation
Re nement
173 of 214
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
Protocol generation
1. Protocol selection: full handshake, half-handshake etc.
2. ID assignment: N channels require log2(N ) ID lines
Re nement
behavior P
variable AD;
begin
.....
X <= 32 ;
.....
MEM(AD) := X + 7;
.....
end ;
CH0
"00"
CH1
"00"
CH2
"00"
behavior Q
variable COUNT;
begin
.....
MEM(60) := COUNT ;
.....
end ;
CH3
"00"
174 of 214
variable X :
bit_vector(15 downto 0) ;
bus B
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
Protocol generation
type HandShakeBus is record
START, DONE : bit ;
ID : bit_vector(1 downto 0) ;
DATA : bit_vector(7 downto 0) ;
end record ;
signal B : HandShakeBus ;
Re nement
175 of 214
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
Protocol generation
process Q
variable COUNT;
begin
.....
SendCH3(60, COUNT);
.....
end ;
Re nement
176 of 214
bus B
process Xproc
variable X ;
begin
wait on B.ID;
if (B.ID="00") then
receiveCH0(X);
elsif (B.ID="01" ) then
sendCH1(X);
end if;
end;
process MEMproc
variable MEM: array(0 to 63);
begin
wait on B.ID;
if (B.ID="10") then
receiveCH2(MEM);
elsif (B.ID="11" ) then
receiveCH3(MEM);
end if;
end;
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
Re nement
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
MemArbiter
port2
memory MEM
req,
grant
Static
behavior P
behavior Q
req,
grant
behavior R
addr / data
addr / data
Dynamic
port1
MemArbiter
port2
memory MEM
req,
grant
behavior P
Re nement
178 of 214
req,
grant
req,
grant
behavior Q
behavior R
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
Arbiter generation
process B_arbiter
begin
wait until (Req_P=1)
or (Req_Q = 1);
if (Req_P = 1) then
Grant_P = 1;
wait unitl (Req_P = 0);
Grant_P = 0";
elsif (Req_Q = 1) then
Grant_Q <= 1;
wait until (Req_Q = 0);
Grant_Q <= 0;
end if;
end process;
Re nement
179 of 214
Req_P
Grant_P
Req_Q
Grant_Q
process P
variable AD Xtemp;
begin
.....
Req_P <= 1;
wait until (Grant_P = 1);
SendCH0(32) ;
Req_P <= 0;
.....
end process ;
process Q
variable COUNT;
begin
.....
Req_Q <= 1;
wait until (Grant_Q = 1);
SendCH3(60, COUNT);
Req_Q <= 0;
.....
end process;
bus B
process Xproc
variable X ;
begin
wait on B.ID;
if (B.ID="00") then
receiveCH0(X);
elsif (B.ID="01" ) then
sendCH1(X);
end if;
end process;
process MEMproc
variable MEM: array(0 to 63);
begin
wait on B.ID;
if (B.ID="10") then
receiveCH2(MEM);
elsif (B.ID="11" ) then
receiveCH3(MEM);
end if;
end process;
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
behavior
A
Custom
Channel X
Pa
behavior
B
Pb
protocol
protocol
Standard
Custom
behavior
X
Channel X
Pb
Pa
Standard
Standard
behavior
A
Re nement
180 of 214
behavior
B
Pa
Interface
Process
Pb
behavior
B
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
Protocol operations
Re nement
181 of 214
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
start
b1
(RDp = 1)
(ARCVp = 1 )
ADDRp <= AddrVar(15 downto 8);
a2 AREQp <= 1;
MAddrVar := MADDRp
b3
MDATAp <=
MemVar (MAddrVar)
(100 ns)
(DRDYp = 1 )
a3
Protocol Pa
Re nement
b2
182 of 214
Protocol Pb
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
Advantages:
Ease of comprehension, representation of timing constraints
Disadvantages:
Lack of action language, not simulatable
Dif cult to specify conditional and repetitive event sequences
ARDYp
ADDRp
7..0
MADDRp
15..0
15..8
RDp
ARCVp
DREQp
15..0
MDATAp
DRDYp
100ns
15..0
DATAp
Protocol Pa
Re nement
183 of 214
Protocol Pb
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
Advantages:
Functionality can be veri ed by simulation
Easy to specify conditional and repetitive event sequences
Disadvantages:
Cumbersome to represent timing constraints between events
port ADDRp : out
bit_vector(7 downto 0);
port DATAp : in
bit_vector(15 downto 0);
port ARDYp : out bit;
port ARCVp : in bit;
port DREQp : out bit;
port DRDYp : in bit;
ADDRp <= AddrVar(7 downto 0);
ARDYp <= 1;
wait until (ARCVp = 1 );
ADDRp <= AddrVar(15 downto 8);
DREQp <= 1;
wait until (DRDYp = 1);
DataVar <= DATAp;
Protocol Pa
Re nement
184 of 214
ADDRp
DATAp
port MADDRp : in
bit_vector(15 downto 0);
port MDATAp : out
bit_vector(15 downto 0);
port RDp
: in bit;
16
ARDYp
ARCVp
DREQp
DRDYp
RDp
MADDRp
MDATAp
16
16
Protocol Pb
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
Re nement
185 of 214
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
Relations
A1 [ (true) :
ADDRp <= AddrVar(7 downto 0)
ARDYp <= 1 ]
A2 [ (ARCVp = 1) :
ADDRp <= AddrVar(15 downto 8)
DREQp <= 1 ]
A3 [ (DRDYp = 1) :
DataVar <= DATAp ]
Re nement
186 of 214
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
Protocol Pa
A1 (8 bits out)
G1
G2
A2 (8 bits out)
G1
Re nement
187 of 214
= (
A1 A2 B1 )
G2
= (
B1 A3 )
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
Dual operation
Cp <= 1
Cp <= 1
var <= Dp
Dp <= TempVar
Dp <= var
TempVar := Dp
Re nement
188 of 214
/* (group G1) */
wait
until
(ARDYp
=
1);
8
TempVar1(7 downto 0) := ADDRp ;
ADDRp
ARCVp <= 1 ;
DATAp
wait until (DREQp = 1);
16
TempVar1(15 downto 8) := ADDRp ;
ARDYp
RDp <= 1 ;
ARCVp
MADDRp <= TempVar1;
/* (group G2) */
DREQp
wait for 100 ns;
DRDYp
TempVar2 := MDATAp ;
DRDYp <= 1 ;
DATAp <= TempVar2 ;
16
MADDRp
MDATAp
16
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
RDp
UC Irvine
DREQp
DRDYp
DATAp
Re nement
189 of 214
MADDRp
16
RDp
MDATAp
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
Re nement
190 of 214
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
Ro
Ri
Ao
Ai
Cell
Ro
Ao
Ai
Ri
Ri
L
Ro
Ro
Ao
Ao
Ai
Re nement
191 of 214
Ai
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
Ao
Ri
L
Ao
Ri
L
Ao
Ro
L
Ao
Ro
L
Ri
Ro
L
Ri
Ro
L
S
R
S
Q
Ro
Ai
L
Ai
Ro
L
Ai
Ro
S
R
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
Re nement
192 of 214
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
v2
Hardware partition
Software partition
v1
v3
v2
v4
v1
Processor
Memory
s2
s1
B1
B2
p1
B1
B3
B2
p2
B4
v3
Buffer
Ports
p1
p2
p1
Re nement
193 of 214
v4
s2
s1
p3
ASIC
Data access
p2
B3
B4
p3
(b) Mapping to architecture
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
Re nement
194 of 214
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
Re nement
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
Methodology
197 of 214
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
Methodology
198 of 214
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
InteractiveTvProcessor
audio_out
audio_in
Analog
subsystem
video_in
Digital
subsystem
video_out
Analog
subsystem
av_cmd
video
audio +
commands
button
audio
video
keypad
receiver
IC
Main computer
Methodology
199 of 214
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
audio_out
audio1[100k][8]
GenerateAudio
StoreAudio
audio2[100k][8]
video_in
video_out
video[500k][8]
ProcessAVCmd
av_cmd[8]
StoreGenerateVideo
OverlayCharacters
fonts[128][16][16]
screen_chars[30][30][8]
av_cmd
StoreAVCmd
ProcessMainCmds
main_cmds
Methodology
200 of 214
ProcessRemoteButtons
button
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
Memory2
audio1[100k][8]
video[500k][8]
audio2[100k][8]
audio_in
audio_out
video_in
video_out
ASIC1
ASIC2
StoreAudio
Memory3
StoreGenerateVideo
fonts[128][16][16]
StoreAVCmd
screen_chars[30][30[]8]
GenerateAudio
av_cmd[8]
av_cmd
Processor
ProcessAVCmd
ProcessRemoteButtons
ProcessMainCmds
OverlayCharacters
main_cmds
Methodology
201 of 214
button
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
Current practice
Functionality specification
Natural language
Manual
Functional specification
Executable language
System design
Allocation
Partitioning
Refinement
bus
Processor
Funct.
Spec.
ASIC
Funct.
Spec.
ASIC
Funct.
Spec.
Memory
Variables
Component implementation
C
code
Methodology
202 of 214
ASIC
ASIC
RTL
struct.
RTL
struct.
Memory
mapped
address
space
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
System-design tasks
Functional objects
Systemdesign tasks
Allocation
Partitioning
Variables
Memories
Variables to memories
Behaviors
Processors
Behaviors to processors
Interfacing
Channels
Buses
Channels to buses
Arbitration/protocols
Methodology
203 of 214
Refinement
Address assignment
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
1. Functionality specification
Specification
Memory allocation
Variabletomemory partitioning
Bus allocation
Channeltobus partitioning
2. System design
ASIC/processor allocation
BehaviortoASIC/processor partitioning
Interface synthesis
Arbiter synthesis
3. Component implementation
Implement software
Methodology
204 of 214
Implement hardware
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
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 modi cation
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
Designer
ASIC
synthesis
SDB
Compilation
Logic/Sequential
synthesis
CDB
Conceptualization environment
Software
synthesis
Intermediate forms
Description generators
Verification/simulation suite
System
synthesis
Physical design
synthesis
Assembly code
Methodology
206 of 214
ASIC description
to manufacturing
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
Compiler
Allocator
Transformer
SR
Estimators
Partitioner
Interface &
arbitration
synthesis
Systemmodule
behavioral specifications
To software synthesis
Methodology
207 of 214
To chip synthesis
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
Compiler
Scheduler
Component
selector
Storage
binder
CDFG
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
Boolean
expressions
Timing
diagrams
Memory
specifications
State
minimization
Timing graph
compiler
Memory
synthesis
State
encoding
Interface
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
Module
type
Mappings
System
ASIC1
Allocation
Partition
Estimates
Constraints
X100
Execution
Area
time
105
/100*
30
CaptureAudio
100/110
GenerateAudio
100/110
ASIC2
X100
30
CaptureGenerateVideo
100/110
CaptureAVCmd
100/110
Memory1
V1000
10
V1000
10
Y900
25
Pins
Instr
16000 46/60
/20000
18000 48/60
/20000
audio_array1
audio_array2
Memory2
video_array
Processor1
6000
/5000*
ProcessRemoteButtons
ProcessMiscCmds
Cost: 5.43
Methodology
211 of 214
View options
Partition/Allocate
Refine
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
Quality metric
Estimate/
Constraint
$(System)
105/100
Executiontime(CaptureAudio)
100/110
Executiontime(GenerateAudio)
100/110
Executiontime(CaptureGenerateVideo)
100/110
Executiontime(CaptureAVCmd)
Area(ASIC1)
100/110
16000/20000
Area(ASIC2)
18000/20000
Pins(ASIC1)
56/60
Pins(ASIC2)
58/60
Instr(Processor1)
6000/5000
Violation?
Methodology
212 of 214
constraint
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
Summary
Methodology
213 of 214
Copyright (c) 1994 Daniel D. Gajski, Frank Vahid, Sanjiv Narayan, and Jie Gong
UC Irvine
Future directions
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 Speci cations. 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 Computers, 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 International 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-speci cation re nement,". 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 International 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 ef cient 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 speci cation 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. \Speci cation 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.