0% found this document useful (0 votes)
17 views

Week 14 A

Uploaded by

Gqgqg
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
17 views

Week 14 A

Uploaded by

Gqgqg
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 28

Lecture 22

Design Compiler in Depth

Xuan ‘Silvia’ Zhang


Washington University in St. Louis

http://classes.engineering.wustl.edu/ese461/
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
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
4
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
6
Organize the Design Data

7
HDL Coding for Synthesis

• FSM

• Sensitivity list
• Incomplete control statement

8
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
Design Terminology and Objects

• Flat vs Hierarchical Designs

10
Designs, Instances, and References

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

11
Ungroup Hierarchies Automatically

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

12
Edit Designs

13
Edit Designs

14
Define the Design Environment

15
16
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
Define Design Constraints

18
Summary of Design Rule Commands

19
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
Cost Function Calculation

• Design rule cost function

• Max delay cost function

• Min delay cost function

21
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
Optimization Example

23
Top-Down Optimization

24
Bottom-Up Optimization

25
Mixed Optimization

26
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
Questions?

Comments?

Discussion?

28

You might also like