Beruflich Dokumente
Kultur Dokumente
Models, Architectures
and Languages
Introduction
Models
State, Activity, Structure, Data, Heterogeneous
Architectures
Function-Architecture, Platform-Based
Languages
Hardware: VHDL / Verilog / SystemVerilog
Software: C / C++ / Java
System: SystemC / SLDL / SDL
Verification: PSL (Sugar, OVL)
Design Methodologies
Capture-and-Simulate
Schematic Capture
Simulation
Describe-and-Synthesize
Hardware Description Language
Behavioral Synthesis
Logic Synthesis
Specify-Explore-Refine
Executable Specification
Hardware-Software Partitioning
Estimation and Exploration
Specification Refinement
Motivation
Models
(Specification
)
Design
Process
Implementation
Architectures
(Implementation)
Behavior Vs.
Architecture
Models of
Computatio
n
System 2
Architecture
System
Behavior
Behavior
Simulation
Synthesis
Performance models:
Emb. SW, comm. and
comp. resources
HW/SW
partitioning,
Scheduling
Mapping
3
Performance
Simulation
Communication
Refinement
Flow To Implementation
SW estimation
4
System Level,
Algorithm or Instruction Set Level,
Register-Transfer Level (RTL),
Logic or Gate Level,
Circuit or Schematic Level.
Abstractions in Modeling:
Hardware Systems
Level
Behavior
Structure
Physical
Start here
PMS (System)
Communicating
Processes
Processors
Memories
Switches (PMS)
Instruction Set
(Algorithm)
Input-Output
Memory, Ports
Processors
Board
Floorplan
RegisterTransfer
Register
Transfers
ALUs, Regs,
Muxes, Bus
ICs
Macro Cells
Logic
Logic Eqns.
Gates, Flip-flops
Circuit
Network Eqns.
Trans., Connections
IEEE 1990
Cabinets, Cables
Transistor layout
[McFarland90]
Work to
here
model system
Certain design decisions are hidden from the programmer
Operating systems are often viewed as virtual machines
Abstractions for
Software Systems
Virtual Machine Hierarchy
Application Programs
Utility Programs
Operating System
Monitor
Machine Language
Microcode
Logic Devices
MODELS
14
Unified Representation
High-level system (SoC) architecture description
Implementation (hardware or software) independent
Delayed hardware/software partitioning
Cross-fertilization between hardware and software
Co-simulation environment for communication
System-level functional verification
Identification
of Bottlenecks
Abstract
HW/SW
Model
Evaluation
of HW/SW
Trade-offs
Evaluation
of Design
Alternatives
State-Oriented Models
Finite-State Machines (FSM), Petri-Nets (PN), Hierarchical
Concurrent FSM
Activity-Oriented Models
Data Flow Graph, Flow-Chart
Structure-Oriented Models
Data-Oriented Models
Heterogeneous Models
Merits
Represent systems temporal behavior explicitly
Suitable for control-dominated systems
Suitable for formal verification
Demerits
Lack of hierarchy and concurrency
State or arc explosion when representing complex
systems
Token
Transition
Output
Place
Petri Nets
Merits
Good at modeling and analyzing concurrent systems
Extensive theoretical and experimental works
Used extensively for protocol engineering and control system
modeling
Demerits
Flat Model that becomes incomprehensible when system
complexity increases
State-Oriented:
Hierarchical Concurrent FSM
Merits
Support both hierarchy and concurrency
Good for representing complex systems
Demerits
Concentrate only on modeling control aspects and not data
and activities
Activity-Oriented:
Data Flow Graphs (DFG)
Merits
Support hierarchy
Suitable for specifying complex transformational systems
Represent problem-inherent data dependencies
Demerits
Do not express control sequencing or temporal behaviors
Weak for modeling embedded systems
Flow Charts
Merits
Useful to represent tasks governed by control flows
Can impose an order to supersede natural data
dependencies
Demerits
Used only when the systems computation is well known
Structure-Oriented:
Component Connectivity Diagrams
Merits
Good at representing systems structure
Demerits
Behavior is not explicit
Characteristics
Used in later phases of design
Data-Oriented:
Entity-Relationship Diagram
Entity-Relationship Diagrams
Merits
Provide a good view of the data in a system
Suitable for representing complex relationships among
Demerits
Do not describe any functional or temporal behavior of a
system
Data-Oriented:
Jacksons Diagram
Jacksons Diagrams
Merits
Suitable for representing data having a complex composite
structure
Demerits
Do not describe any functional or temporal behavior of the
system
Heterogeneous:
Control/Data Flow Graphs (CDFG)
5
Example:
X 4
+
+
Control Step 1
Control Step 2
Control Step 3
Merits
Correct the inability to represent control dependencies in DFG
Correct the inability to represent data dependencies in CFG
Demerits
Low level specification (behavior not evident)
Structure Charts
Merits
Represent both data and control
Demerits
Used in the preliminary stages of system design
Heterogeneous:
Object-Oriented Paradigms (UML, )
Heterogeneous:
Object-Oriented Paradigms (UML, )
Object-Oriented Representation
Example:
3 Levels of abstraction:
Register
Read
Write
ALU
Add
Sub
AND
Shift
Processor
Mult
Div
Load
Store
Object-Oriented Paradigms
Merits
Support information hiding
Support inheritance
Support natural concurrency
Demerits
Not suitable for systems with complicated transformation
functions
Heterogeneous:
Program State Machine (PSM)
Merits
Represent a systems state, data, control, and activities in a
single model
Overcome the limitations of programming languages and
HCFSM models
Queuing Models
Characteristics
Used for analyzing systems performance
Can find utilization, queuing length, throughput, etc.
CFSM has
FSM part
Inputs, outputs, states, transition and output relation
Data computation part
External, instantaneous functions
CFSM has:
GALS model
Globally: Scheduling mechanism
Locally: CFSMs
B=>C
C=>F
C=>G
C=>G
CFSM1
CFSM1
C=>A
F^(G==1)
CFSM2
CFSM2
C
C=>B
B
C=>B
(A==0)=>B
CFSM3
Traditional DSP
Convolution/Correlation
Filtering (FIR, IIR)
DCT
x[k ]h[n k ]
M 1
k 1
k 0
Example
y(n)=a*x(n)+b*x(n-1)+c*x(n-2)
which represent data flow from its input block to its output
block
x(n)
a
x(n-1)
D
b
x(n-2)
c
y(n)
Signal-Flow Graph
x(n)
z 1
b
c
y(n)
x(n)
a
D
b
c
y(n)
Data-Flow Graph
delays
Inter-iteration precedence constraint: if the edge has one or
more delays (Delay here represents iteration delays.)
DFGs and Block Diagrams
can be used to describe both
linear single-rate and nonlinear
multi-rate DSP systems
Fine-Grain DFG
x(n)
a
c
y(n)
Examples of DFG
Adaptive
filtering
IFFT
Expander
N samples
N/2 samples
N/2 samples
N samples
ARCHITECTURES
60
Architecture Models
"You hear the planned possibilities, but it is nothing like the visual
concept of a model. You get the impact of the complete vision."
Galyn Fish
Director of PR, Southwest MedicalCenter
System Level
Design Science
Design Methodology:
Top Down Aspect:
Orthogonalization of Concerns:
Separate Implementation from Conceptual Aspects
Separate computation from communication
Formalization: precise unambiguous semantics
Abstraction: capture the desired system details (do not overspecify)
Decomposition: partitioning the system behavior into simpler behaviors
Successive Refinements: refine the abstraction level down to the implementation by
filling in details and passing constraints
Bottom Up Aspect:
IP Re-use (even at the algorithmic and functional level)
Components of architecture from pre-existing library
Behavior
Implementation
Architecture
Functional specification of
system
No notion of hardware or
software!
Optimized Computer
Rate
Buffer
12
User/Sys
Control
3
External
I/O
Sensor
Synch
Control
4
Front
End 1
Transport
Decode 2
Rate
Buffer
5
Rate
Buffer
9
Video
Decode 6
Audio
Decode/
Output 10
Mem
11
MPEG
Frame
Buffer
7
Video
Output 8
Peripheral
Audio
Decode
Processor Bus
Mem
13
DSP
Processor
DSP RAM
Control
Processor
System
RAM
Cable
Sensor
Synch
Control
4
Satellite Dish
Front
End 1
User/Sys
Control
3
Transport
Decode 2
Rate
Buffer
5
Rate
Buffer
9
Video
Decode 6
remote
Frame
Buffer
7
Video
Output 8
monitor
Audio
Decode/
Output 10
Mem
11
speakers
User Interface
Written in C
Mem
13
Testbench
Designed in BONeS
Rate
Buffer
12
Sensor
Synch
Control
4
Satellite Dish
Front
End 1
User/Sys
Control
3
Transport
Decode 2
Rate
Buffer
5
Rate
Buffer
9
Cable
Baseband Processing
Designed in SPW
Transport Decode
Written in C
Video
Decode 6
Audio
Decode/
Output 10
Mem
11
remote
Frame
Buffer
7
Video
Output 8
monitor
speakers
Decoding Algorithms
Designed in SPW
abstract
SDF
Wire Load
abstract
RTL
abstract
cluster
RTL
Clusters
SW
Models
cluster
abstract
Transistor Model
Capacity Load
1970s
IP Blocks
cluster
1980s
1990s
Year 2000 +
External
I/O
MPEG
Peripheral
Audio
Decode
Processor Bus
Can I Buy
an MPEG2
Processor?
Which One?
Which DSP
Processor? C50?
Can DSP be done on
Microcontroller?
DSP RAM
Which
Microcontroller?
ARM? HC11?
Control
Processor
System
RAM
Architectural Choices
Flexibility
ProgMem
ProgM em
P
ProgMem
Sate llite
Dedicated
Logic
Processor
Satellite Satellite
Processor Processor
MAC
Unit
Addr
Gen
P
General
Purpose
P
Software
Programmable
DSP
Hardware
Reconfigurable
Processor
Direct
Mapped
Hardware
User/Sys
Control
3
Communication
External
Over Bus
Sensor
I/O
Synch
Control
4
Front
End 1
Transport
Decode 2
Rate
Buffer
5
Rate
Buffer
9
Video
Decode 6
Audio
Decode/
Output 10
Mem
11
MPEG
Frame
Buffer
7
Video
Output 8
Peripheral
Audio
Decode
Processor Bus
e.g.
LO
De-modulate
Custom
DSP
DS 1-bit
Modulator
Dec.
Filter
Gen
DSP
1-bit
Modulator
Gen
DSP
RF Front End
Can trade custom analog for hardware, even for software
Power, area critical criteria, or easy functional modification
1-bit
Modulator
De-correlate
(spread spectrum)
e.g.
De-modulate
Gen
DSP
Communication-based
Design
Convergence of Paradigms
Analog Platform
Design
40M Transistors
2,000M Metal
2
600 MHz
Wire RC 6 ns/cm
Virtual Component Based Design
- Minimize Design Time
- Maximize IP Reuse
- Optimize System Level
90%
New
Design
90%
Reused
Design
1991
1996
200x
EDA
Hierarchical
Microprocessors
High end servers
& W/S
MicroP
Flat Layout
Flat ASIC
Flat ASIC+
Level of Abstraction
Function
HW/SW
System Platform
Architecture
RTL - SW
Today
Mask - ASM
Tomorrow
Effort/Value
Architectural Space
A
D
Accelerators
(bit level)
Timing
recovery
Equalizers
Analog RF
Filters
analog
digital
uC core
(ARM)
phone
Java
book
VM
Keypad,
Display
Control
ARQ
MUD
Adaptive
Antenna
Algorithm
s
DSP core
Concept
Development
Verification
System Test
Software
VCXO
Tx
Optics
Synth/
MUX
Rx
CDR/
Optics DeMUX
Hardware
Clock
Select
STM
I/F
Line
STS
OHP
Cell/
I/F
STS XC SPE Data Packet
Map Framer
PP
I/F
mP
IP Selection
Design
Verification
Level of Abstraction
RTL
Gapbetween
betweenconcept
conceptand
andlogical
logical/ /
Gap
Physical
implementation
Physical implementation
Concept to
Reality
Gap
Silicon
Impact of Design Change
(Effort/Cost)
Source: GSRC
Industryaveraging
averaging2-3
2-3iterations
iterations
Industry
SoCdesign
design
SoC
Needtotoidentify
identifydesign
designissues
issuesearlier
earlier
Need
LANGUAGES
80
Languages
Verification Languages
PSL (Sugar, OVL) / OpenVERA
SystemVerilog 3.0
Built-in C types
Synthesis improvements (avoid simulation and
synthesis mismatches)
Enhanced design verification
procedural assertions
Improved modeling
communication interfaces
SystemVerilog 3.1
Testbench automation
Data structures
Classes
Inter-process communication
Randomization
Temporal assertions
Monitors
Coverage Analysis
Architecture Description
Language in SOC Codesign Flow
Design
Specification
Estimators
Architecture
Description
Language
IP Library
M1
P2
P1
Hw/Sw Partitioning
HW
SW
VHDL, Verilog
Verification
Synthesis
Compiler
Cosimulation
On-Chip
Memory
Processor
Core
Off-Chip
Memory
Synthesized
HW
Interface
Design reuse
Architecture Description
Languages
ADL
Architecture
Architecture
Model
Compiler
Simulator
Synthesis
Description
File
Formal Verification
EXPRESSION ADL
Verification
Feedback
Processor
Libraries
ASIP
Exploration
Simulator
Toolkit
Generator
DSP
Profiler
Exploration
Compiler
VLIW
EXPRESSION
ADL
Memory Libraries
Cache
SRAM
Prefetch
Buffer
Frame
Buffer
Exploration Phase
Application
Refinement Phase
Retargetable
Compiler
Toolkit
Generator
Retargetable
Simulator
EDO
On-chip
RD RAM
SD RAM
Feedback
Profiler
SystemC History
Synopsys
ATG
UC
Irvine
1996
imec
1992
VSIA SLD
Data Types
Spec (draft)
Synopsys
Scenic
SystemC
v0.90
Sep. 99
Synopsys
Fridge
Frontier Design Fixed
Point
A/RT Library
Types
1991
CoWare
N2C
1997
Abstract
Protocols
SystemC
v1.0
Apr. 00
SystemC
v1.1
Jun. 00
SystemC Highlights
Modules
Processes
Ports
Signals
Rich set of port and
signal types
Rich set of data
types
Clocks
Cycle-based simulation
Multiple abstraction levels
Communication protocols
Debugging support
Waveform tracing
Current
System Design Methodology
C/C++
System Level Model
Refine
Analysis
Results
Manual Conversion
VHDL/Verilog
Simulation
Synthesis
Rest of Process
Problems
Advantages
Refinement methodology
Written in a single language
Higher productivity
Reusable testbenches
Mod 1
Mod 2
Mod 3
A set of modules
interacting through
signals.
Module functionality is
described by
processes.
sc_main() function
instantiates all modules
initializes clocks
initializes output waveform files
starts simulation kernel
A Simple Example:
Defining a Module
Complex-number Multiplier
(a+bi)*(c+di) = (ac-bd)+(ad+bc)i
a
b
c
d
e
Complex
Multiplier f
(cmplx_mult)
SC_MODULE(cmplx_mult) {
sc_in<int> a,b;
sc_in<int> c,d;
sc_out<int> e,f;
...
}
A Simple Example:
Defining a Module (contd)
SC_MODULE(cmplx_mult) {
sc_in<int> a,b;
sc_in<int> c,d;
void cmplx_mult::calc()
{
e = a*c-b*d;
f = a*d+b*c;
sc_out<int> e,f;
void calc();
SC_CTOR(cmplx_mult) {
SC_METHOD(calc);
sensitive<<a<<b<<c<<d;
}
}
M1
a
b
c
input_gen d
Clk.signal()
clk
M2
Complex
Multiplier
e
f
M3
display
void
input_gen::generate()
{
int a_val=0, c_val=0;
void generate();
while (true) {
a = a_val++;
wait();
c = (c_val+=2);
wait();
}
SC_CTOR(input_gen) {
SC_THREAD(generate);
sensitive_pos(clk);
}
}
}
void display::show()
{
void show();
SC_CTOR(display) {
SC_METHOD(show);
sensitive<<e<<f;
}
}
cout<<e<<+<<f<<i\n
;
}
M2.a(a); M2.b(b);
M2.c(c); M2.d(d);
M2.e(e); M2.f(f);
M3.e(e); M3.f(f);
input_gen M1(I_G);
cmplx_mult M2(C_M);
display
M3(D);
sc_signal<int>
a,b,c,d,e,f;
sc_clock
clk(clk,20,0.5);
M1.clk(clk.signal());
M1.a(a); M1.b(b);
M1.c(c); M1.d(d);
sc_start(100);
return 0;
}
Design Assertions
Procedural (like SystemVerilog assertions)
Declarative (like OVL assertion monitors)
For:
Simulation-based Verification
Static Formal Verification
Dynamic Formal Verification