Title: High-level Synthesis and System Synthesis
1High-level Synthesis and System Synthesis
- SOURCES-
- Mark Manwaring
- Kia Bazargan
- Giovanni De Micheli
- Gupta
- Youn-Long Lin
Camposano, J. Hofstede, Knapp, MacMillenLin
2Why the level of automation must go up and up?
3What Went Wrong with early approaches to design
automation ?
- Too much emphasis on incremental work on
algorithms and point tools - Unrealistic assumption on component capability,
architectures, timing, etc - Lack of quality-measurement from the low level
- Too many promises on fully automated system
(silicon compiler??)
4Example of a Silicon Compiler System
Initial specification
5Benchmarks for a silicon compiler
6VLSI Design Tools
- Design Capturing/Entry
- Analysis and Characterization
- Synthesis/Optimization
- Physical (Floor planning, Placement, Routing)
- Logic (FSM, Retiming, Sizing, DFT)
- High Level(RTL, Behavioral)
- Management
7Design Methodology Progress
Capture and Simulate
8Why not Synthesis?
Why Synthesis?
Productivity
Performance Loss
Correctness
Unsynthesizability
Re-Targetability
Inertial
9Structural
Behavioral
Block
Algorithm
FSM
RTL
Boolean
Gate
Xtor
GDSII
Placement
Y-Chart Dan D Gajski
Floorplan
Physical
10Structural
Behavioral
Block
Algorithm
FSM
RTL
Boolean
Gate
Xtor
GDSII
Placement
Layout Synthesis
Floorplan
Physical
11Structural
Behavioral
Block
Algorithm
FSM
RTL
Boolean
Gate
Xtor
GDSII
Placement
Logic Synthesis
Floorplan
Physical
12Structural
Behavioral
Block
Algorithm
FSM
RTL
Boolean
Gate
Xtor
GDSII
Placement
High-Level Synthesis
Floorplan
Physical
13Target Architectures
- Bus-based
- Multiplexer-based
- Register file
- Pipelined
- RISC, VLIW
- Interface Protocol
14Goal of synthesis for future systems
- From
- Behavioral specification at System
Level(Algorithms) - To
- Structural implementation at Register Transfer
Level of Data path (ALUs, REGs, MUXs) and
Controller - Generally restricted to a single process
- Generally data path is optimized controller is
by-product
15Levels of Abstraction
- Our Abstraction levels
- System
- Register
- Logic
- In Camposano
- Behavioral
- Register-Transfer (RTL)
- Logic
16Abstraction levels
Level
Behavior
Structure
Synthesisstep
System
High-level
Logic
Physical
17Intermediate Representation
Data Flow Graph
Control Flow Graph
18(No Transcript)
19(No Transcript)
20(No Transcript)
21(No Transcript)
22What are possible levels of synthesis? What are
possible styles? How to automate big tasks?
23(No Transcript)
24Layout Synthesis
25Compass Placement Routing ( 0.6µm gate array)
26Layout Level
27Logic Synthesis
28- Reminder about blocks and connections in data path
29Variants of simple FSMD architectures
Controlling /activation pulses
control
Data Path
Controlling /activation pulses
control
Data Path
Status signals
30Variants of simple FSMD architectures
Controlling /activation pulses
Data Path
control
Instructions
Status signals
31FSM with Data Path (FSMD)
32Details of control signals
Register a) RTL level b) with control signal
details
controls Reg_EO Enable Output Reg_EI Enable
Input RegFile_EI RegFile_SI ltpgt
33Control of register files
control signals RegFile_EO1 RegFile_SO1
ltpgt RegFile_EO2 RegFile_SO2 ltpgt RegFile_EI RegF
ile_SI ltpgt
Register a) RTL level b) with control signal
details
34The role of tri-state signals
Scheduling and allocation problems are similar
Tri-state signals in buses instead of multiplexing
35Multiplexing
36Communication with a memory
External address-bus
External data-bus
Internal bus
37Pipeline Design Issues
- Pipelined processor design
- Pipeline is an implementation issue.
- A behavioral representation should not specify
the pipeline. - Most processor instruction sets are conceived
with an implementation in mind. - The behavior is defined to fit an implementation
model.
38Semantics of variables
- Variables are implemented in hardware by
- Registers.
- Wires.
- The hardware can store information or not.
- Cases
- Combinational circuits.
- Sequential circuits.
39Semantics of variables
Semantics of variables
- Combinational circuits.
- Multiple-assignment to a variable.
- Conflict resolution.
- Oring.
- Last assignment.
40Semantics of variables
Semantics of variables
- Sequential circuits.
- Multiple-assignment to a variable.
- Variable retains its value until reassigned.
- Problem
- Variable propagation and observability.
41Example
Semantics of variables
- Multiple reassignments
- x 0 x 1 x 0
- Interpretations
- Each assignment takes a cycle. --gt pulse.
- x assumes value 0.
- x assumes value 0 after a short glitch.
42Timing semantics
Semantics of variables
- Most procedural HDLs specify a partial order
among operations. - What is the timing of an operation?
- A posteriori model
- Delay annotation.
- A priori model
- Timing constraints.
- Synthesis policies.
43Timing semantics(event-driven semantics)
- Digital synchronous implementation.
- An operation is triggered by some event
- If the inputs to an operation change
- --gt the operation is re-evaluated.
- Used by simulators for efficiency reasons.
44Synthesis policyfor VHDL and Verilog
- Operations are synchronized to a clock by using
a wait (or _at_) command. - Wait and _at_ statements delimit clock boundaries.
- Clock is a parameter of the model
- model is updated at each clock cycle.
45Verilog examplebehavior of sequential logic
circuit
- module DIFFEQ (x, y, u , dx, a, clock, start)
- input 70 a, dx
- inout 70 x, y, u
- input clock, start
- reg 70 xl, ul, yl
- always
- begin
- wait ( start)
- while ( x lt a )
- begin
- xl x dx
- ul u - (3 x u dx) - (3 y
dx) - yl y (u dx)
- _at_(posedge clock)
- x xl u ul y yl
- end
- endmodule
46Abstract models
- Models based on graphs.
- Useful for
- Machine-level processing.
- Reasoning about properties.
- Derived from language models by compilation.
47Abstract modelsExamples
- Netlists
- Structural views.
- Logic networks
- Mixed structural/behavioral views.
- State diagrams
- Behavioral views of sequential logic models.
- Dataflow and sequencing graphs.
- Abstraction of behavioral models.
48Data flow graphs
- Behavioral views of architectural models.
- Useful to represent data-paths.
- Graph
- Vertices operations.
- Edges dependencies.
49Dataflow graph Example
- xl x dx
- ul u - (3 x u dx) - (3 y dx)
- yl y u dx
- c xl lt a
50Example of Data Flow Graph continued
xl x dx ul u - (3 x u dx) - (3 y
dx) yl y u dx c xl lt a
51Sequencing graphs
- Behavioral views of architectural models.
- Useful to represent data-path and control.
- Extended data flow graphs
- Operation serialization.
- Hierarchy.
- Control- flow commands
- branching and iteration.
- Polar source and sink.
52Example of sequencing graph
53Example of Hierarchy
54Example of branching
55Example of iteration
- diffeq
- read (x y u dx a)
- repeat
- xl x dx
- ul u - (3 x u dx)
- (3 y dx) - yl y u dx
- c x lt a
- x xl u ul y yl
-
- until ( c )
- write (y)
56Example of iteration
57Semantics of sequencing graphs
- Marking of vertices
- Waiting for execution.
- Executing.
- Have completed execution.
- Execution semantics
- An operation can be fired as soon as all its
immediate predecessors have completed execution
58Vertex attributes
- Area cost.
- Delay cost
- Propagation delay.
- Execution delay.
- Data-dependent execution delays
- Bounded (e.g. branching).
- Unbounded (e.g. iteration, synchronization).
59Properties of sequencing graphs
- Computed by visiting hierarchy bottom-up.
- Area estimate
- Sum of the area attributes of all vertices.
- Worst-case - no sharing.
- Delay estimate (latency)
- Bounded-latency graphs.
- Length of longest path.
60Summary on specification models
- Hardware synthesis requires specialized language
support. - VHDL and Verilog HDL are mainly used today
- Similar features.
- Simulation-oriented.
- Synthesis from programming languages is also
possible. - Hardware and software models of computation are
different. - Appropriate hardware semantics need to be
associated with programming languages. - Abstract models
- Capture essential information.
- Derivable from HDL models.
- Useful to prove properties.
61 62(No Transcript)
63(No Transcript)
64Control 1
Control design
- Control of
- Registers
- Functional units
- Multiplexers and 3-state drivers
- Memory
65Simple micro-programmed controller
MUX
Control signals fromROM or data path
INCR
Programcounter
Jump address
MicrocodeROM
Mode registers
Control lines
Control lines
66Control 2
Control design issues
- To avoid false combinational cycles, either the
inputs or the outputs of the controller are
registered. - Note the one cycle delay between a condition and
the resulting reaction in the controller. - Controller can even be pipelined,
- which can remove the controller from the critical
path, - but increases the delay for the conditions.
67Overview of Hardware Synthesis
converts the program text file into strings of
tokens. Tokens can be specified by regular
expressions. In the UNIX world, the lex tools
are popular for this.
- The syntax of a programming language is specified
by a grammar. (A grammar defines the order and
types of tokens.) This analysis organized streams
of tokens into an abstract syntax tree.
68Overview of Hardware Synthesis
Generate a symbol table. Check for uniqueness of
symbols and information about them.
analyze the semantics, or meanings, of the
program.
determine the order and organization of operations