What are some problems with designing large complex HW/SW systems?
hughe, partially incomplete and/or inconsistent design specification
usually in early project -> has to be resolved in later stages…
large interdisciplinary developer teams
numerous interfaces and standards
partially contradictory design objectives
How to deal with contradictory design objectives?
find best trade-off
compromise…
What is the definition of system design?
process to implement desired function
with a given set of physical components
What should an appropriate design process achieve?
improve quality of the product
reduces
cost
development time (time to market)
What is the design flow?
sequence of individual steps of the design process
manual, partially or fully automatic
design tools used for
synthesis
simulation
exploration (i.e. investigate design alternatives)
verification
validation
documentation
What are the steps of the top-down design flow presented in the lecture?
specification
of the fuctional behavior
exploration
of alternative realizations within the design space
refinement
of the most promising realization towards the next lower abstraction level
What is meant with the next lower abstraction level w.r.t. top-down design?
do these steps at each abstractionlevel
-> e.g.
system
architecture
RTL / Modules
What is the goal of the specification phase?
description of system behavior
with formal, executable models
What is the goal of the exploration phase?
comparison of alternative realizations
with respect to
costr
performance
robustness
…
What is the goal of the refinement phase?
synthesis of a structural system representation
out of the functional specification
What is the relation of specification/modeing to exploration and refinement?
specification/modeling forms basis
for successive exploration and refinement phases (system synthesis)
What is the goal trade-off in specification/modeling?
one has to find balance between
accuracy vs. abstraction
in system model
=> this balace is key parameter for quality vs. development effort during exploration and refinement
On what does design space exploration root on?
roots on efficient estimation and simulation techniques
=> allow design charactersitic evaluation prior to costly realization / implementation
What does realizaton achieve?
establishes links between abstraction levels
=> thus represents main step towards system concretization and realization
-> starting point for iteration of design flow on next lower abstraction level
What is abstraction?
go step back to a higher layer
cause:
design flaws / errors resulting from imprecise modeling or insufficient exploration
-> requrie abstraction and reiteration of design flow at next higher layer
What is the direction of top-down design?
design fow with successive refinement
from abstract system layer down to physical implementation
abstraction still posisble
What are the objectives of top-down strategy?
identify design flows during early phases of design (at high abstracvtion level)
(more a wish:)
avoid time consuming and costly iterations across miltiple abstraction levels (-> try to avoid abstractions)
What are advantages of a systematic design approach?
executable specificaiton / model
possible validation of important aspects of system behavior during early phases of design process
forsters holistic system considerations (HW&SW)
and decision making on important design criteria early in design process (-> avoids costly re-implementations)
supports reuse of design flows and sub-systems / components (Re-engineering)
seamless documentationof HW/SW systems, functions, interfaces as well as work load assumptions and requirements
What is the advantage of design at high layer of abstractions?
higher efficiency in design representation / specificatoin
one or few lines of HDL code may represent 1000 logic gates equivalents…
overseas much bigger implementation space
design flow evolves in controlled fashion from higher towards lower abstraciton levels
-> narrowing down covered solution space
can be directed towards optimal solution
Graphical comparison iterative abstraction reduciton and direct jump to low-level
What is the direciton of bottom-up design?
design flow from lower implementation layer to higher system-level layers
move up the layers by abstraction
=> refinement still possible
What are the objectives of bottom-up design?
develop individual components in parallel
-> and combine them at higher levels (system exploration)
accelerate development of low-level components
without influence of the whole system
reuse existing IP blocks and combine them into a system
Is pure bottom-up / top-down design flow common?
no!
=> engineers usually are system designers or component/silicon designers but rarely both!
-> system designer does not need detailed silicon knowledge
silicon designer does not need full knowledge of the entire system
What is the meet-in-the-middle strategy?
use both top-down and bottom-up
top-down part:
odemtofy which high-level dependnecies and communication channels are required in the system
bottom-up part:
identify which low-level components or IPs need to be developed from scratch
What are the objectives of meet-in-the-middle strategy?
separate system design from silicon design
reduce effort on individual designers
motivate the creation of reusable low-level components
What is the definition of a model?
a formal description of a system
and/or its consistent sub-systems
Are models a full description of a system?
-> limited description of selected properties without each and every detail (abstraction)
On what do the selected properties in a model depend?
depend on purpose of the model
e.g. power model, latency model,…
In what can models be classified?
abstraction level
view
What is meant by the abstraction level in a models classification=?
degree of model details increase with successive system refinement
What is meant with view in model classificatoin?
description of a system according ot its (or)
behavior
structure
physical gemoetries
What abstraction levels are there?
architecture / module
RTL / Block
Logic / Expression
Device / Instruction
What are elements of system level abstraciton (hard and software)?
network of communicationg sub-systems / tasks / processes
which model the desired application or system functionality
What are elements of architecture / module level abstraciton (hard and software)?
hardware:
processors
ASIC
Memory
Buses
I/O
software:
interacting SW modules
processes
What are elements of RTL / Block level abstraciton (hard and software)?
Hardware:
Counter
Comparator
ALUs
Registers
Software:
Iterative Loops
Program sequences
What are elements of Logic / Expression level abstraciton (hard and software)?
Logic Gates
Flip-Flops
Assignments
branches
arithmetic
logic operators
What are elements of Device / Intrsuction level abstraciton (hard and software)?
MOSFET transistors
R
C
L
Machine code instructions
With which abstraction level layers does HW/SW codesign dominantly deal wiht?
architecture / Module
How do abstraction and granularity change according to the diffeernt abstraction levels? how does speed and accuracy behave?
What are concept, data, time resolution, time effort and simulation time for system level abstraction?
What are concept, data, time resolution, time effort and simulation time for architecture level abstraction?
What are concept, data, time resolution, time effort and simulation time for RTL level abstraction?
What are concept, data, time resolution, time effort and simulation time for Logic level abstraction?
What are concept, data, time resolution, time effort and simulation time for Device level abstraction?
What is simulation often used for?
verify a chosen design
What is a problem when doing simulation w.r.t design space coverage?
simulation can’t exhaustively coverate input combinations
even for simple designs
e.g. 32-bit ALU
-> 2^32 * 2^32 = 2^64 input combinations
assumption: 1 billion combinations / second evlauation speed
=> takes 585 years…
How can one overcome the problem of simulation w.r.t. design space coverage?
make simulation meaningful
=> by restricting it to reasonable subset of input combinations…
How can one for example restrict input combinations for simulation?
evaluate typical input patterns
-> to get initial confidence in design
use known border / corner cases
e.g. counter -> wrap around…
What can simulation do and what can’t it do?
simulatoin increase confidence in design
cannot prove correctness or completenes of design
What are approaches to accelerate simulation?
divide and conquer
mixed level simulation
reductoin of simulated real-time
use entire spectrum of abstraction levels
How does divide and conquer work to accelerate simulation?
parallel simulation of individual system building blocks
remains to be solved:
validation of interconnected components (system validation)
How does mixed-level simulation work to accelerate simulation?
simulating different system components at different levels of detali
however:
test bences hagve to be applicable across different abstacion levels
-> to ensure comparability/consistency of results
How does reduction of simulated real-time work to accelerate simulation?
1s in real time can be an “eternity” if one has to simulate a lot
e.g. gigabit ethernet with 64B packets -> 4*10^6 packets / s
=> use / load seed configuation with “saturated” simulation state
How does use entire spectrum of abstractoin levels work to accelerate simulation?
clarify which system aspects to validate
at which abstractoin level
and how to ensure inter-operability between the levels
Which design views are ther?
behavioral (functionality)
structural (realization)
physical-gemoetric
What are elements of the behavioral view?
System:
data flow graphs
Architecture:
processes, algorithms
RTL:
arithmetic expressions
Logic:
boolean algebra
Device:
differential equations
What are elements of the structural view?
Interconnected subsystems
CPU, ASICs, Bus, Memory
ALU, Register, MUX
Logic gates, Flip-Flop
Transistor, R, L
What are elements of the physical-gemoetric view?
Polygons / ISA
standard cells
macro blocks
CPU, Bus, Memory block diagrams
Chip component diagram
How can one transit between different views and abstraction levels?
Provide an example of transition between views
What design steps do we have?
implementation
analysis
optimization
abstraction
generation
extraction
What is the stard and endpoint of the implementaiton design step transition?
behavior (/structure)
->
What is the stard and endpoint of the analysis design step transition?
What is the stard and endpoint of the optimization design step transition?
momentary iteration of particular view and level
improved iteration of same view and level
What is the stard and endpoint of the refinement design step transition?
abstract design representation
more detailed design representation under same view
What is the stard and endpoint of the synthesis design step transition?
more detailed and optimized structure (go one level down in abstraction..)
What is the stard and endpoint of the abstraction design step transition?
detailed design representaiton
more abstract design representation under same view
What is the stard and endpoint of the generation design step transition?
physical / gemoetrical design representation
What is the stard and endpoint of the extraction design step transition?
physical / gemoetric design representaiton
What is the v-model?
well established in IT-system design
covers design phase, implementation phase and testing phase
desing follows top-down
verification of implementation starts on module level (bottom up)
first, eliminate errors within individual modules
then eliminate errors in module interaction
modules may be hardware or software
iteartions when neccesarry (go back on same level from test to design phase…)
=> highly undesirable in system specification an darchitecture design level…
Image V-model
Zuletzt geändertvor 2 Jahren