当前位置:首页 >> 电子/电路 >>

Synopsys 实验系列4


Synopsys 实验系列4_ 编译与优化_Design Compiler

ASIC Center of SYSU

Contents
1 2 3 4 5 6
Introduction to Synthesis Setting Up and Saving Designs Design and Library Objects Area and Timing Constraints Compile Commands Timing Analyze

7

Appendix
Company Logo

What do WE Mean by “Synthesis”?

Company Logo

Design Compiler ( DC ) 简介
1. Synopsys公司的Design Compiler 为是一个基于 UNIX系统,通过命令行进行交互的RTL综合工具。它提 供约束驱动时序最优化,把设计者的HDL 描述综合成与 工艺相关的门级设计;它能从速度、面积和功耗等方面 来优化电路设计,并支持平直或层次化设计 2.Desgin Compiler 为Synopsys公司的旗舰产品。 根据最新Dataquest的统计,Synopsys的逻辑综合工具 Design Compiler占据91%的市场份额。

ASIC of SYSU

Design Compiler Flow

目的: 1.好的综合结果 2.更短的综合时间

Company Logo

Basic Synthesis Flow

ASIC of SYSU

Synthesis Transformations

Company Logo

Synthesis Transformations

工艺库

Company Logo

Synthesis Is Constraint-Driven

Company Logo

Three Interfaces to Design Compiler
In XG mode, all synthesis tools use the tools command language (Tcl)

Company Logo

2 Setting Up and Saving Designs
Unit 2 focus on

Unit 2 focus on

Company Logo

Unit 2 Objectives
1.读入设计或者层次化的设计(hierarchical designs) 2.指定目标库、链接库、符号库、综合库

3.建立DC的startup file 来指定工艺库文件 (technology library file)和搜索路径目录(search path directories)
4.施加一个约束文件(constraints file) 5.保存设计
Company Logo

Setting Up and Saving Designs in Flow

ASIC of SYSU

?Unit 2 Agenda
Loading Design or Hierarchical Designs

Specify Library and Set DC Startup File

Saving Designs

Company Logo

2-1 启动DC and 读RTL代码
Read a Verilog RTL file:

Read a VHDL RTL file:

多个RTL文件的读取方法?
Company Logo

2-2 层次化的 RTL Designs
层次化的设计

或者写到一个文件.v文件中

DC去读入这些Verilog文件,哪个会是顶层文件呢?
Company Logo

2-3 Reading Hierarchical RTL Designs

current_design MY_TOP ;#指定顶层文件
Company Logo

※ 2-4 Reading .ddc Design Files

“link” 执行时会自动加载ddc,它是根据命名来加载的,容易出错,建议 read_ddc
Company Logo

※ 2-5 Alternative Commands for Reading RTL

唯一能设置参数?

建议使用 analyze + elaborate 的组合来读RTL
Company Logo

?通过前面的学习掌握: RTL的读入方法

ASIC of SYSU

?Unit 2 Agenda
Loading Design or Hierarchical Designs

Specify Library and Set DC Startup File

Saving Designs

Company Logo

2-6 需要指定的库:
target_library: target library对应工艺库,也就是代工厂提供的某种工艺的工艺库 link_library: DC在定位或者解析设计中的instances时,所去查找的库 symbol_library: 在DC的图形化界面给出原理图上各种标准单元的符号时,DC所去查找 的库。 synthetic library: DC综合时用来将HDL代码转化为相对应的元件时所参考的IP库,比如 符号“+”,通过查找IP库将生成某一类加法器。

ASIC of SYSU

2-7 compile需要指定target_library

Company Logo

※ 2-8 工艺库的内部描述

Company Logo

2-9 设置Target Library
1.默认情况下,指向一个不存在的库

2. 工艺库由晶圆厂或者设计工艺库的公司提供

Company Logo

2-10 link_library
在DC中许多命令都会首先‘auto-link’if the design has not been linked yet. Linking means that DC tries to locate(定位) the source of, or ‘resolve’(解析) any instances(例化的实体) in the Design. Instances can be gates or sub-blocks(层次化的模块、软核、硬核 、DesignWare IP) DC uses the link_library variable to try to resolve the instances. 默认情况下link_library的设置:
不存在的库

Company Logo

2-11 设置link_library

这是Tcl的命令, 引号表示列举,$表示变量的置换 根据需要,链接Synopsys公司的DesignWare IP,如下: set link_library “* $target_library dw_foundation_sldb”
Company Logo

※ 2-12 Resolving IP or Macro Library Cells

Company Logo

※ 2-13 设置好link_library 再执行“link”

若返回0,表示link 不成功。 虽然一些命令有隐式执行link,explicit link 有利于发现问题
Company Logo

2-14 Good Practice:check_design after link

确保模块之间的连接是正确的

Company Logo

2-15 Shortening File name using search_path

.con是约束文件, 设置好库就可以施加约束

不用把完整的文件夹路径写出来 search_path 的设置可以放在DC “startup”文件中
Company Logo

通过前面的学习掌握: 设置target_library的方法 设置link_library的方法 设置search_path的方法 施加约束

ASIC of SYSU

DC Startup File
1.DC Startup File 伴随DC启动被执行 2.startup文件的命名:.synopsys_dc.setup 3.一般将target_library,link_library, symbol_library, synthetic library , search_path的设置放在Startup File中

ASIC of SYSU

DC Startup File
.synopsys_dc.setup 文件伴随DC启动被执行

伴随DC的启动,startup文件被执行

ASIC of SYSU

2-16 One Startup File Name – Three File Locations

当前工作目录

在DC启动时,自动执行这些设置文件。执行的顺序如上
Company Logo

※ 2-17 $synopsys/admin/.synopsys_dc.setup
Synopsys目录下的.synopsys_dc.setup的设置情况

这些库都是不存在的

在启动时,它是三个startup文件中首先被执行。设置好的变量被覆盖问题?

Company Logo

2-18 设置工作目录下的.synopsys_dc.setup

如果工作目录中存在这个文件,在DC启动的时候, 该.synopsys_dc.setup是三个.synopsys_dc.setup文件中最后一个被执行, 并且它会覆盖之前的.synopsys_dc.setup设置好的变量
Company Logo

※ 2-19 Library Setup Exercise

需要注意DC读哪三个位置下的startup文件!现在工作目录(为mapped) 中没有startup文件

Company Logo

通过前面的学习掌握: startup file 的建立,并在里面指定库及搜索路 径

ASIC of SYSU

?Unit 2 Agenda
Loading Design or Hierarchical Designs

Specify Library and Set DC Startup File

Saving Designs

Company Logo

2-20 Saving the ddc Design Before compiler

如果想保存子模块的ddc: write –format ddc MY_A –out MY_A.ddc
Company Logo

2-21 Saving the ddc Design After compile

Company Logo

Summary:Unit Objectives
You should now be able to prepare a design for compile:
1. Create a DC startup file to specify the technology library file and search path directories 2. Read in hierarchical designs

3.Apply a constraints file
4.Save the design

Company Logo

Unit Summary

ASIC of SYSU

3. Design and Library Objects
? DC将设计对象分为8类,分别如下:
? ? ? ? ? ? ? ? Design:具有某种或多种逻辑功能的电路描述; Cell:设计的instance; Reference:cell或instance在库中定义的名字; Port:design的输入、输出; Pin:design中cell的输入、输出; Net:ports和pins之间或pins之间的信号名; Clock:被定义为时钟源的pin或port; Library:cell的集合,如:target_library,link_library;

Company Logo

3-1 设计对象:Verilog 透视

Company Logo

3-2 设计对象:原理图透视

没有INV?

INV 是library cell

Company Logo

3-3 多对象共用一命名
net port

为了模拟电路的真实情况,需要在第一个红框中加负载电容 但是有两个SUM,如果set_load 5 SUM 会出现什么情况? set_load 5 [get_nets SUM]

get_ports , _pins, _designs, _cells, _nets, _clocks
ASIC of SYSU

Summary
?Unit 3 Commands
? get_ports , _pins, _designs, _cells, _nets, _clocks ? all_inputs, _outputs, _clocks, _registers …… 使用这些命令来得到单个或者多个对象

ASIC of SYSU

4. Area and Timing Constraints

ASIC of SYSU

Area and Timing Constraints in Flow

ASIC of SYSU

?Unit 4 Objectives: ?对一设计进行面积约束 ?对一设计进行时序约束

?建立和执行约束文件

ASIC of SYSU

?Unit 4 Agenda
Specifying an Area Constraint

Setup Time and Hold Time

Setup-Timing Constraints
Company Logo

4-1 Specifying an Area Constraint

单位不确定,需问库的提供者

ASIC of SYSU

?Unit 4 Agenda
Specifying an Area Constraint

Setup Time and Hold Time

Setup-Timing Constraints
Company Logo

※ 4-2 Setup & Hold Time

※ 4-3 Launch & Latch Edge

※ 4-4 Data Arrival Time



4-5 Clock Arrival Time

※ 4-6 Data Required Time - Setup

※ 4-7 Setup Slack

※ 4-8 Setup Slack

※ 4-9 Data Required Time - Hold

※ 4-10 Hold Slack

※ 4-11 Hold Slack

注意: Data Arrival Time和 Data Required Time 与Setup Slack中的同名有所区分

?Unit 4 Agenda
Specifying an Area Constraint

Setup Time and Hold Time

Setup-Timing Constraints
Company Logo

Specifying Setup-Timing Constraints
? Objective: 定义时序电路中各种路径的setup-timing约束
? 1. All input logic paths (starting at input ports) ? 2. The internal (register to register) paths ? 3. All output paths (ending at output ports)

? Under the following conditions:
? 1. 你已经知道设计的细则 ? 2.模块或者芯片级的设计 ? 3.单个时钟,单个周期

在前端设计中一般不做hold-timing 约束 hold-timing 约束可以在后端修复

ASIC of SYSU

4-12 默认的设计方案

该设计为:单时钟,同步设计 三种常见路径约束: 1.Reg-to-Reg Paths 2.Input Paths 3.Output Paths ……
ASIC of SYSU

4-13 Constraints Reg-to-Reg Paths: Example

Tmax = Period - Setup_Time (assuming 0 clock skew) = 2 – 0.2 = 1.8 ns
ASIC of SYSU

4-14 Modeling Clock Skew(偏斜)
时钟偏斜:相连的两个寄存器如 FF1与FF2的clock到达时间的偏差

ASIC of SYSU

4-15 set_clock_uncertainty and Setup Timing

由于时间的不确定因素,setup timing 的最坏的情况: FF2的时间早到0.14ns,setuptime 为 0.08, FF2的输入口 D需要在2-0.14-0.08=1.78ns时有稳定数据
ASIC of SYSU

4-16 Modeling Latency

set_clock_latency 默认情况下代表:Network Latency

ASIC of SYSU

4-17 Modeling Transition Time(瞬变时间)

ASIC of SYSU

4-18 Constraining Input Paths: Example 1

Tmax = Period - Input Delay - Setup_Time (assuming 0 clock skew) = 2 – 0.6 - 0.2 = 1.2 ns
ASIC of SYSU

4-19 Constraining Input Paths: Example 2

-preriod 2.5 -max 0.9 –clock Clk [get_ports A]

ASIC of SYSU

4-20 Constraining Output Paths: Example 1

Tmax = 2- 0.8 = 1.2ns
ASIC of SYSU

4-21 Constraining Output Paths: Example 2

set_output_delay –max 1.3 -clock Clk [get_ports B]
ASIC of SYSU

4-22 Constraining Combinational Paths

-max 0.4 –clock Clk [get_ports B]

-max 0.3 –clock Clk [get_ports D]

T(F,max) = 2- 0.4 -0.3 = 1.3ns
ASIC of SYSU

4-23 Constraining a Purely Combinational Design

这个设计的特别之处:没有时钟! 如何约束? 建立一个虚拟时钟 creat_clock -name VCLK –period 2 set_input_delay –max 0.4 -clock VCLK [get_ports A] set_output_delay -max 0.3 –clock VCLK [get_ports B] Tcombo,max = 2 – 0.4 – 0.3 = 1.3ns

ASIC of SYSU

Unit 4 Summary
1.面积约束的设置 2.建立时间与保持时间知识 3.时序约束的设置

ASIC of SYSU

Unit 4 Summary

ASIC of SYSU

5. Compile Commands
?了解DC Expert two-pass compile commands 和 DC Ultra compile commands

ASIC of SYSU

Compile Commands in Flow

ASIC of SYSU

5-1 DC Expert two-pass compile
只有DC Expert License, 建议:

先执行第一进程①,通过report_constraints 报告看是否有违例。 如果有违例,再执行进程② 增进式综合

ASIC of SYSU

5-2 compile 命令选项解析

-boundary : 边界优化,可以减少面积和延迟,可能会去除输出端口和取反输入 口信号等,对验证有一定影响 -scan: 将插入扫描链的情况考虑进去。如果考虑插入扫描链,就加上该命 令选项 -map_effort high : 在门级优化时进行最大努力的优化。在需要的时候,启动关键路径 的再综合

ASIC of SYSU

5-3 DC Ultra:One Command-Full DC Strength

综合时采用DC Ultra 与DC Expert Two-Pass方法的对比:

ASIC of SYSU

?怎样才能获得好的综合结果: ?1.Good RTL Coding Style ?2.Arithmetic components ?3.Pipelines ?4.Good hierarchical partitioning ?5.Specific paths requiring more optimization focus ?……

ASIC of SYSU

Unit Summary

ASIC of SYSU

6. Timing Analysis
?Unit Objectives:
1.生成时序报告,分析时序约束违例

ASIC of SYSU

Timing Analysis in Flow

ASIC of SYSU

6-1 Timing Report:Options

想了解这些命令选项:report_timing -help

ASIC of SYSU

6-2 Example –nworst VS. –max_paths

ASIC of SYSU

※ 6-3 静态时序分析工具
DC 带内置的 Static Timing Analyzer
PrimeTime is the Synopsys stand-alone, full-chip, gate-level, sign-off quality static timing analyzer

ASIC of SYSU

Unit Summary

ASIC of SYSU

Appendix
?1.综合中的分割 ?2.多时钟多周期设计 ?3.物理设计或版图所需的DC输出数据

ASIC of SYSU

Appendix 1 Partitioning for Synthesis

大规模的设计需要分割开子模块,如何分割将影响到DC综合的结果

本章目的: 简单了解设计的分割方法

ASIC of SYSU

Poor Partitioning

ASIC of SYSU

Better Partitioning

ASIC of SYSU

Best Partitioning

该处在综合时把输入逻辑与D触发器优化成某一类触发器
ASIC of SYSU

Appendix 2 More Clock/Cycle Designs
同步多时钟约束

异步多时钟约束

多周期路径约束

多路径约束

ASIC of SYSU

Appendix 3 Data Needed for Physical Design or Layout

ASIC of SYSU


赞助商链接
相关文章:
更多相关标签: