28
Lecture 22 Design Compiler in Depth Xuan ‘Silvia’ Zhang Washington University in St. Louis http://classes.engineering.wustl.edu/ese461/

Lecture 22 Design Compiler in Depth · Timeline • Class project tasks – logic synthesis – design optimization and iteration – place and route – final report

  • Upload
    others

  • View
    16

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Lecture 22 Design Compiler in Depth · Timeline • Class project tasks – logic synthesis – design optimization and iteration – place and route – final report

Lecture 22 Design Compiler in Depth

Xuan ‘Silvia’ Zhang Washington University in St. Louis

http://classes.engineering.wustl.edu/ese461/

Page 2: Lecture 22 Design Compiler in Depth · Timeline • Class project tasks – logic synthesis – design optimization and iteration – place and route – final report

Timeline

•  Class project tasks –  logic synthesis –  design optimization and iteration –  place and route –  final report

•  Project milestones –  12/7: in-class presentation –  12/12: final report due –  hard deadlines, not extendable

•  Lecture plans –  11/30: 30min team meeting –  12/5: last lecture, Encounter tips, conclusion

2

Page 3: Lecture 22 Design Compiler in Depth · Timeline • Class project tasks – logic synthesis – design optimization and iteration – place and route – final report

Feedback from Mid-Project Reports

•  Synthesizable Verilog code style –  If-else, case: complete default branch –  DO NOT mix blocking and non-blocking statements –  proper FSM implementation –  clocked Always block, reset and sensitivity list

•  Testbench setup –  instantiate memory –  simulation termination –  endianess (Bitcoin)

•  To-do list –  logic synthesis –  place and route

3

Page 4: Lecture 22 Design Compiler in Depth · Timeline • Class project tasks – logic synthesis – design optimization and iteration – place and route – final report

4

Page 5: Lecture 22 Design Compiler in Depth · Timeline • Class project tasks – logic synthesis – design optimization and iteration – place and route – final report

Design Compiler User Guide

•  Develop HDL files –  Chapter 3, “Preparing design files for synthesis”

•  Specify libraries –  Chapter 4, “Working with libraries”

•  Read design –  Chapter 5, “Working with designs in memory”

•  Define design environment –  Chapter 6, “Defining the design environment”

•  Set design constraints –  Chapter 7, “Defining design constraints”

•  Select compile strategy •  Synthesize and optimize the design

–  Chapter 8, “Optimizing the design”

5

Page 6: Lecture 22 Design Compiler in Depth · Timeline • Class project tasks – logic synthesis – design optimization and iteration – place and route – final report

6

Page 7: Lecture 22 Design Compiler in Depth · Timeline • Class project tasks – logic synthesis – design optimization and iteration – place and route – final report

Organize the Design Data

7

Page 8: Lecture 22 Design Compiler in Depth · Timeline • Class project tasks – logic synthesis – design optimization and iteration – place and route – final report

HDL Coding for Synthesis

•  FSM

•  Sensitivity list •  Incomplete control statement

8

Page 9: Lecture 22 Design Compiler in Depth · Timeline • Class project tasks – logic synthesis – design optimization and iteration – place and route – final report

HDL Coding for Synthesis

•  Value assignments –  use nonblocking assignments within sequential always –  use blocking assignments within combinational always

•  Constant definition

•  Guidelines for identifiers, expressions, and functions

9

Page 10: Lecture 22 Design Compiler in Depth · Timeline • Class project tasks – logic synthesis – design optimization and iteration – place and route – final report

Design Terminology and Objects

•  Flat vs Hierarchical Designs

10

Page 11: Lecture 22 Design Compiler in Depth · Timeline • Class project tasks – logic synthesis – design optimization and iteration – place and route – final report

Designs, Instances, and References

•  analyze •  elaborate •  read_file •  link: link_library, search_path

11

Page 12: Lecture 22 Design Compiler in Depth · Timeline • Class project tasks – logic synthesis – design optimization and iteration – place and route – final report

Ungroup Hierarchies Automatically

•  compile_ultra –  by default, perform delay-based auto-ungrouping

12

Page 13: Lecture 22 Design Compiler in Depth · Timeline • Class project tasks – logic synthesis – design optimization and iteration – place and route – final report

Edit Designs

13

Page 14: Lecture 22 Design Compiler in Depth · Timeline • Class project tasks – logic synthesis – design optimization and iteration – place and route – final report

Edit Designs

14

Page 15: Lecture 22 Design Compiler in Depth · Timeline • Class project tasks – logic synthesis – design optimization and iteration – place and route – final report

Define the Design Environment

15

Page 16: Lecture 22 Design Compiler in Depth · Timeline • Class project tasks – logic synthesis – design optimization and iteration – place and route – final report

16

Page 17: Lecture 22 Design Compiler in Depth · Timeline • Class project tasks – logic synthesis – design optimization and iteration – place and route – final report

Model the System Interface

•  Define drive characteristics for input ports

•  Define load on input and output ports

•  Define fanout loads on output ports

•  (Similarly) Set logic constraints on ports –  define ports as logically equivalent –  define logically opposite input ports –  allow assignment of any signal to an input –  always one or zero –  unconnected

17

Page 18: Lecture 22 Design Compiler in Depth · Timeline • Class project tasks – logic synthesis – design optimization and iteration – place and route – final report

Define Design Constraints

18

Page 19: Lecture 22 Design Compiler in Depth · Timeline • Class project tasks – logic synthesis – design optimization and iteration – place and route – final report

Summary of Design Rule Commands

19

Page 20: Lecture 22 Design Compiler in Depth · Timeline • Class project tasks – logic synthesis – design optimization and iteration – place and route – final report

Optimization Constraints

•  Timing constraints (performance and speed) –  input and output delays (synchronous paths) –  minimum and maximum delay (asynchronous paths) –  note: set_fix_hold

•  Maximum area –  number of gates

20

Page 21: Lecture 22 Design Compiler in Depth · Timeline • Class project tasks – logic synthesis – design optimization and iteration – place and route – final report

Cost Function Calculation

•  Design rule cost function

•  Max delay cost function

•  Min delay cost function

21

Page 22: Lecture 22 Design Compiler in Depth · Timeline • Class project tasks – logic synthesis – design optimization and iteration – place and route – final report

Optimize the Design

•  Architecture optimization –  sharing common subexpressions –  sharing resources –  reordering operators –  selecting DesignWare implementations, etc.

•  Logic-level optimization –  structuring –  flattening

•  Gate-level optimization –  mapping –  delay optimization –  design rule fixing –  area optimization

22

Page 23: Lecture 22 Design Compiler in Depth · Timeline • Class project tasks – logic synthesis – design optimization and iteration – place and route – final report

Optimization Example

23

Page 24: Lecture 22 Design Compiler in Depth · Timeline • Class project tasks – logic synthesis – design optimization and iteration – place and route – final report

Top-Down Optimization

24

Page 25: Lecture 22 Design Compiler in Depth · Timeline • Class project tasks – logic synthesis – design optimization and iteration – place and route – final report

Bottom-Up Optimization

25

Page 26: Lecture 22 Design Compiler in Depth · Timeline • Class project tasks – logic synthesis – design optimization and iteration – place and route – final report

Mixed Optimization

26

Page 27: Lecture 22 Design Compiler in Depth · Timeline • Class project tasks – logic synthesis – design optimization and iteration – place and route – final report

Suggested Reading

•  Partitioning for Synthesis –  Chapter 3 (3-4)

•  Working with Attributes –  Chapter 5 (5-40)

•  Define Design Constraints –  Chapter 6 –  reporting constraints –  characterize subdesigns

•  Optimize the Design –  Chapter 7

27

Page 28: Lecture 22 Design Compiler in Depth · Timeline • Class project tasks – logic synthesis – design optimization and iteration – place and route – final report

Questions?

Comments?

Discussion?

28