Title: CAD Techniques for IP-Based and System-On-Chip Designs
1CAD Techniques for IP-Based and System-On-Chip
Designs
- Allen C.-H. Wu
- Department of Computer Science
- Tsing Hua University
- Hsinchu, Taiwan, R.O.C
- Email chunghaw_at_cs.nthu.edu.tw
2Outline
- Introduction
- Basic synthesis tasks
- Codesign of embedded systems
- FPGA synthesis and rapid prototyping
- IP-reuse design methodologies
- System-on-chip design methodologies
- HDL-based layout synthesis methodologies
3Computer-Aided Design (CAD)
4Human-Centric Design Methodologies
- Designers are the creator of designs.
- Designers are artists.
- Designers pursuit the state of arts.
- Free styles with less discipline.
- May not be efficient on handling complex designs.
- May not be effective on shortening the design
cycle.
5Human Vs. Computer (Automation)
- Human is good at innovating creation.
- Human is not good at handling tedious and
repetitive tasks. - Computer is good at handling tedious and
repetitive tasks, at least it will never complain
about it.
6Why needs CAD?
- Design is getting more and more complex.
- Try to develop an error-prone design?
- Time-to-market pressure.
7What is CAD?
- CAD Computer-Aided Design.
- CAD will never be in the leading role of a design
process!!! Just a supporting role. - Any techniques, methods, solutions which are used
solve a problem in a design process.
8How to apply CAD?
- Understand the design process.
- Identify the problems which need CAD supports.
- Correctly define the problem and then solve it.
9A Typical System Design Process
10A Typical Chip Design Process
11Silicon Compilation
- Compiler converting a high-level source code to
a object code. - Silicon compiler converting a high-level source
code (system/chip description) to a piece of
silicon.
12Synthesis
- Synthesis is a process which converts a design
from one domain to another - System-level synthesis
- High-level (Behavioral) synthesis
- RTL synthesis
- Logic synthesis
- Layout synthesis
- HDL-based synthesis
13The Y Chart
Behavioral
Structure
System level
CPU,Mem
System spec.
Ckt level
Chip/Board
Transformation (Synthesis)
Physical
14Design Level
Behavioral
Structure
Physical
System Spec. Algorithm RTL spec. Boolean
Eqn. Differential Eqn.
CPU, Mem. Processor ALU, Reg. Etc., Gate,
FFs Transistor
Chip/board Block/chip Macro-cell Std.
Cell Polygon
15Transitions in the Y Chart
Behavioral
Structure
Synthesis
Optimization
Analysis
Refinement
Abstraction
Generation
Extraction
Physical
16System-Level Synthesis
- Inputs Design functionality (e.g., instruction
of a computer) and a set of design constraints or
requirements. - The transition from a system-level specification
to one or more subsystem descriptions at the
algorithmic level (a set of communicating
concurrent processes, together with a behavioral
description at the algorithmic level for each
subsystem).
17High-Level Synthesis
- Starting point a behavioral description at the
algorithmic level, which defines a precise
procedure for the computational solution of a
problem. No notion of CLOCK. - Outputs controller and datapath.
- Time/area tradeoff.
18RTL-Level Synthesis
- Inputs an RTL netlist and a set of design
constraints. - Each component in the netlist is described either
in behavioral, structural, or logic level. - Controller synthesis the transition from
controller behavior to structure. - Module generation.
19Logic-Level Synthesis
- Inputs Boolean functions and FSMs.
- Outputs the blocks of combinational logic and
storage elements. - Logic minimization and optimization.
- Technology mapping.
20Physical-Level Synthesis
- Inputs a hierarchical gate-level netlist which
may contain hard macros and flexible soft macros. - Outputs a layout.
- Floorplanning.
- Placement.
- Routing.
- Compaction.
21HDL-Based Synthesis
- Why? What? How?
- VHDL and Verilog originally a simulation-based
language. - Programming languages gt hardware!
- Syntax and semantics gaps.
- Compilation is the key to the HDL-based
synthesis.
22Other Design Issues
- Design entry.
- Design verification and validation
- simulation
- formal method
-
logic emulation
- rapid prototyping
- design rule
checking - Testing
23Basic Synthesis Tasks
24The Specification Language Problem
- Many Hardware Descriptive Languages (HDLs) VHDL,
Verilog, AHPL, ISP, PMS which are derived from
general programming languages, e.g., ADA, ALGOL,
C, and PASCAL. - All general programming languages can be used for
system-level simulation at behavioral-level. - No single language can cover the software and
hardware spectrum!!!! - CASE problem!!!
25Behavioral Transformations
- Optimizing transformations
- Procedure in-line expansion
- Loop unrolling
- SELECT (IF
CASE) transformations - Processes concurrent execution.
- Interprocess communication synchronization
issues - Similar to OS problem!
26Communications
- Mapping the logical communication structure onto
a physical communication structure. - Synthesis of communication protocols.
27System-Level Partitioning
- Hardware-software codesign.
- A lot of academia studies in this area!!!
- The key to the success is an accurate estimation
engine to support the partitioning procedure!!!
28Design Exploration
- Time/area tradeoff.
- Architectural-level exploration.
- Memory hierarchy and organization.
- System-level early design planning.
- Design estimation issues.
29The Classical High-Level Synthesis Tasks
- Design representation issues.
- Behavioral transformations.
- Allocations.
- Scheduling.
- Binding.
- Estimation and design exploration.
- Why after a decade of intensive research effort
high-level synthesis has not yet been accepted by
industry????