DC教程
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
DC 在创建电路图时,用于标识器件,单元的符号库。
六、脚本文件详解
6.1 pbist.def
该文件定义了三个路径 SRC, REPORT, EXPORT 和一个信号的命名规则 BORG,这些名称不是 DC 预 定义的,而是用于自己定义的,是类似于宏定义。当在其它语句中引用这些宏定义时,需要在前面 加符号$。下面所示为该文件的内容
(5) 设定设计约束。综合工具一般都通过设计规则和优化约束来控制综 合过程。设计规则是设计必须满足的制造规范,一般由厂家工艺库 提供。优化约束则主要是设计的时序和面积指标。设计约束设定会
分析和解决 设计问题
受到编译策略的影响。
(6) 选择编译策略。选择优化层次设计时使用哪种编译策略。基本的编 译策略有自顶向下(Top‐Down)的综合策略和自底向上(Bottom‐Up)
二、文件准备
设计文件:RTL 级的代码文件。 工艺库文件:是指将 RTL 级的 HDL 描述映射到门级时所需的标准单元综合库。它是由芯片制造 商(Foundry)提供的,包含了物理信息的单元模型。通常芯片制造商提供的基本电路单元有:与非, 或非,非门等基本的逻辑单元;还有选择器,与或非,或与非等较复杂的组合逻辑,以及锁存器 (LATCH) 和触发器(DFF)等时序逻辑单元。DC 用到的工艺库是.db 或者是.lib 格式的,其中.lib 格式的文件是 可读的,通过此文件可以了解库的详细信息,比如说工作电压,操作温度,工艺偏差等等。.db 格式 的库是二进制的,不可读。Smic 0.13um 工艺库在服务器目 录”/net/sunb2a/export/home/rram/techlib/smic/smic013/sclib/aci/sc‐x/synopsys/”下可以找到,一般使 用 fast_1v32c0.db 和 slow_1v08c125.db 两个库文件。 脚本文件:DC 综合一般采用运行脚本的方式,把每一步操作对应的命令写在一个文件中,通过 source 这个文件就可以批量执行其中的命令。脚本中主要包括了 Setup 文件:该文件名为.synopsys_dc.setup,文件中一般包含初始化参数变量,设计工艺库名称 及路径等相关内容。(后面会具体讲该文件中的内容)
搜索路径(search_path)
该变量给出了 DC 环境下读入的文件(包括库文件和设计文件)的搜寻路径。当读入没有给出路 径的文件时,DC 则按照 search_path 给出的路径搜索该文件。
如果 search_path 表示多个路径,用 list 将所有路径组合成一个集合。
目标工艺库(target_library)
保存结果
的综合策略两种,两者各有优缺点,要根据设计的实际情况来选择。
(7) 优化设计。这个过程是综合工具根据设定的约束和编译指令自动执行的。如果设计者设
定的约束或使用的编译方式不同,综合工具采用的优化方法和综合的最后结果也不同。
(8) 分析和解决设计问题。综合工具都具有强大的报告和分析功能。设计者可以通过工具产
转译是指把电路的 HDL 描述转化为与工艺无关的功能块组成的逻辑电路的
过程。这个过程不包含任何重组和优化,也与制造工艺没有任何直接联系。
映射是把转译后得到的电路结构用特定目标工艺库中的单元来实现。这时得 到的电路包含了具体的制造工艺参数。
读取设计
优化则是综合工具根据设计者施加的时序和面积等约束条件对电路进行改
Operating Condition Name : slow_1v08c125 Library : slow_1v08c125 Process : 1.00 Temperature : 125.00 Voltage : 1.08 Interconnect Model : balanced_tree 一般说来,电压越低,操作温度越高,工艺偏差系数越大,产品速度越慢,反之,速度越快。 当电压,温度和工艺偏差有波动的时候,乘以系数 K 因子来模拟这种影响计算延时。Interconnect Model 定义了环境的互连模型,通过定义这个值选取适当的公式来计算互连线的延迟。 有些工艺库会包含几种工作条件下的工艺参数,通常有 max, type, min 三种类型,代表操作环境 为最坏(worst),典型(type),最好(best)三种情况。从上面的库文件报告可以看出,该库文件只包含了 一种操作条件,即 slow_1v08c125。一般在产生 setup timing report 时,DC 使用最坏情况下的操作条 件,在产生 hold timing report 时,使用最好情况下的操作条件,如果在这两种情况下都可以满足时 序要求,则在典型情况下也可以满足时序要求。 设置操作条件使用 set_operating_conditions 命令,如果一个库中就包含了最好和最差的操作条 件,设置方式如下: set_operating_conditions –library name_of_lib –min bestcase –max worstcase -analysis_type bc_wc name_of_lib 代表库文件的名字,bestcase 代表最好情况的操作条件名,worstcase 代表最坏情况 的操作条件名。-analysis_type bc_wc 用于告诉 DC 在分析 setup violations 时只采用最差情况下的操
生的报告来分析和解决设计问题,并改善综合结果。
(9) 保存结果。产生供后端设计使用的网表文件。
1.3DC 的主要功能
(1) (2) (3) (4) (5) (6)
使用用户指定的门阵列或者标准单元库产生速度快、面积小的 ASIC 设计。 把设计从一种工艺转换为另一种工艺。 在不同的负载、温度和电压条件下对时序、面积和功耗等设计指标作折中处理。 综合和优化有限状态机(FSM)。 支持网表输入,支持用来与第三方工具交互的网表或原理图输出。 自动创建和划分层次原理图。
前三条语句定义的是路径,不再解释。最后一条语句尤其注意:如果 RTL 级代码中信号的命名 有大写字母,综合后的门级电路网表中相应的信号名称也会是大写,将这样的网表导入 Astro 做布局 布线后得到的版图文件再导入 Calibre 中做 LVS 会有问题。所以需要在综合的阶段将信号中的大写字 母全部改为小写。define_name_rules 即定义了这样一个规则,将信号名称中的大写字母都用对应的 小写字母代替,后面会使用该规则。
6.2 pbist.read
该文件为读取原始的设计文件,内容如下
analyze 语句读入设计文件,‐format 选项的值为 verilog(源代码用 verilog 编写)或 vhdl(源代 码用 vhdl 编写),elaborate 语句建立一个 design,design 的名字为设计文件中 module 的名字。一般 最后读入顶层模块所在的文件,这样执行完所有的语句后,current_design 就是顶层模块对应的 design,这也是后面综合的对象。
链接库(link_library)
链接库可以是同 target_library 一样的单元库,或者是已综合到门级的底层模块设计,其作用如 下:在由下而上的综合过程中,上一层的设计调用底层已综合模块时,将从 link_library 中寻找并链 接起来。在这里,我们将链接库和目标工艺库设为同一个库。
符号库(symbol_library)
DC 综合教程
一、 综合的基本概念:
1.1 综合概述
通常所说的综合是指逻辑综合。逻辑综合就是使用综合工具将较高层次的 RTL 级描述转换为基 于目标工艺库和特定约束条件的门级网表的过程。
1.2 综合流程
准备HDL文件
综合包括转译(Translation)、映射(Mapping)、优化(Optimization)三个过程。 指定库文件
进的过程。综合工具根据设定的参数,采用一定的算法来使设计尽量满足设计要 定义设计环境
求。
这三个步骤是对综合过程的整体概述,而实际上综合包含很多的设置和操
作。基本的综合流程如右图所示。 (1) 准备 HDL 文件。RTL 级的 HDL 描述。
设定设计约束
(2) 指定库文件。为综合工具指定库文件,这些库文件主要包括目标库、
此处可键入命令
Step2:执行 setup 文件 在 DC 窗口最下方的 design_vision>中可以输入命令,在此处输入
source ./.synopsys_dc.setup 回车 ./代表当前目录 Step3:执行脚本文件 依次输入: source ../script/pbist.def 回车 source ../script/pbist.read 回车 source ../script/pbist.run 回车
三、目录组织结构
做综合时各文件的存放目录没有严格的规定,但为了便于管理和查看,一般会分类放在不同的 目录下,下面是一个目录组织结构的范例:
四、操作步骤
Step1:启动 DC 首先进入 deller 服务器,打开一个 Terminal,输入命令:
source cshrc_eda
然后按照前面讲的目录结构建立文件夹,把所需要的文件放入相应的文件夹,进入工作目录 run, 这时在 terminal 中输入命令: design_vision&
工作条件包括芯片的工作温度、工作电压、工艺误差和 RC 树模型。这几个因素的变化对电路的 性能有很大影响。DC 在进行综合和时序分析时将综合考虑这些因素的最坏和最好情况。
大多数工艺库中都预先定义了一套工作条件参数。如果在设定工作条件之前想了解工艺库总定 义的工作条件概况,可以用 report_lib 命令来查看。例如,我们要查看 slow_1v08c125.db,可输入如 下命令: read_file slow_1v08c125.db report_lib slow_1v08c125 得到库文件报告如下所示 **************************************** Report : library Library: slow_1v08c125 Version: D‐2010.03‐SP2 Date : Thu Sep 16 12:23:05 2010 **************************************** …… Operating Conditions:
启动 DC 的图形界面,如果输入命令 dc_shell,可以启动 DC 的命令行界面。这里我们选择进入 图形界面。
——注:业界的人士比较青睐命令行界面,因为其所耗的资源少,并且将所用的命令写成综合脚本的形式,便于查 阅。但笔者更喜欢图形界面,因为看起来比较亲切,并且图形界面下也可以输入命令。
我们进入 DC 的图形界面如下所示:
6.3 pbist.run
6.3.1 设定设计环境
在 DC 对设计进行综合和优化前,需要定义设计环境。设计环境是指设计在正常工作时的温度、 电压、驱动、负载等一系列外部属性。它主要包括三个方面:工作条件(Operation Conditions)、线 负载模型(Wire Load Model)和系统接口特性(System Interface Characteristics)。 1、 指定工作条件
链接库和符号库等。在综合过程中,综合工具会自动从指定的库文
件中调用相关的单元和参数。
选择编译策略
Байду номын сангаас
(3) 读取设计。将设计文件中的设计读入计算机内存。一般综合工具既
可以读取 RTL 级的设计,也可以读取门级网表。 (4) 定义设计环境。在这一步中,要为综合工具指定设计的工作环境、
优化设计
负载、驱动和扇出等方面的参数。这些设置会直接影响综合的结果。
五、setup 文件详解
.synopsys_dc.setup 文件中内容如下
以上语句中的 search_path, target_path, link_path, symbol_library, veriogout_show_unconnected_pins 都是 DC 中已经定义的变量,我们只需通过 set 语句为其赋值,下 面详细介绍每一个变量。
综合结束,在 report 和 export 文件夹中已经有了所需要的输出文件
Step4:查看综合后的电路图(可选) 下图所示为综合结束后的界面,红色虚线所示列出了整个设计的层次结构
如下图所示,右键单击某一个 hierarchy,选择 Schematic View
便得到了该 hierarchy 对应的综合电路图,如下图所示,通过电路图可以查看综合结果是否和自 己预期的电路符合。
是指将 RTL 级的 HDL 描述到门级时所需的标准单元综合库,它是由芯片制造商(Foundry)提供 的,包含了物理信息的单元模型。通常芯片制造商提供的基本电路单元有:与非,或非,非门等基 本的逻辑单元;还有选择器,与或非,或与非等较复杂的组合逻辑,以及锁存器 (LATCH)和触发器 (DFF)等时序逻辑单元。
六、脚本文件详解
6.1 pbist.def
该文件定义了三个路径 SRC, REPORT, EXPORT 和一个信号的命名规则 BORG,这些名称不是 DC 预 定义的,而是用于自己定义的,是类似于宏定义。当在其它语句中引用这些宏定义时,需要在前面 加符号$。下面所示为该文件的内容
(5) 设定设计约束。综合工具一般都通过设计规则和优化约束来控制综 合过程。设计规则是设计必须满足的制造规范,一般由厂家工艺库 提供。优化约束则主要是设计的时序和面积指标。设计约束设定会
分析和解决 设计问题
受到编译策略的影响。
(6) 选择编译策略。选择优化层次设计时使用哪种编译策略。基本的编 译策略有自顶向下(Top‐Down)的综合策略和自底向上(Bottom‐Up)
二、文件准备
设计文件:RTL 级的代码文件。 工艺库文件:是指将 RTL 级的 HDL 描述映射到门级时所需的标准单元综合库。它是由芯片制造 商(Foundry)提供的,包含了物理信息的单元模型。通常芯片制造商提供的基本电路单元有:与非, 或非,非门等基本的逻辑单元;还有选择器,与或非,或与非等较复杂的组合逻辑,以及锁存器 (LATCH) 和触发器(DFF)等时序逻辑单元。DC 用到的工艺库是.db 或者是.lib 格式的,其中.lib 格式的文件是 可读的,通过此文件可以了解库的详细信息,比如说工作电压,操作温度,工艺偏差等等。.db 格式 的库是二进制的,不可读。Smic 0.13um 工艺库在服务器目 录”/net/sunb2a/export/home/rram/techlib/smic/smic013/sclib/aci/sc‐x/synopsys/”下可以找到,一般使 用 fast_1v32c0.db 和 slow_1v08c125.db 两个库文件。 脚本文件:DC 综合一般采用运行脚本的方式,把每一步操作对应的命令写在一个文件中,通过 source 这个文件就可以批量执行其中的命令。脚本中主要包括了 Setup 文件:该文件名为.synopsys_dc.setup,文件中一般包含初始化参数变量,设计工艺库名称 及路径等相关内容。(后面会具体讲该文件中的内容)
搜索路径(search_path)
该变量给出了 DC 环境下读入的文件(包括库文件和设计文件)的搜寻路径。当读入没有给出路 径的文件时,DC 则按照 search_path 给出的路径搜索该文件。
如果 search_path 表示多个路径,用 list 将所有路径组合成一个集合。
目标工艺库(target_library)
保存结果
的综合策略两种,两者各有优缺点,要根据设计的实际情况来选择。
(7) 优化设计。这个过程是综合工具根据设定的约束和编译指令自动执行的。如果设计者设
定的约束或使用的编译方式不同,综合工具采用的优化方法和综合的最后结果也不同。
(8) 分析和解决设计问题。综合工具都具有强大的报告和分析功能。设计者可以通过工具产
转译是指把电路的 HDL 描述转化为与工艺无关的功能块组成的逻辑电路的
过程。这个过程不包含任何重组和优化,也与制造工艺没有任何直接联系。
映射是把转译后得到的电路结构用特定目标工艺库中的单元来实现。这时得 到的电路包含了具体的制造工艺参数。
读取设计
优化则是综合工具根据设计者施加的时序和面积等约束条件对电路进行改
Operating Condition Name : slow_1v08c125 Library : slow_1v08c125 Process : 1.00 Temperature : 125.00 Voltage : 1.08 Interconnect Model : balanced_tree 一般说来,电压越低,操作温度越高,工艺偏差系数越大,产品速度越慢,反之,速度越快。 当电压,温度和工艺偏差有波动的时候,乘以系数 K 因子来模拟这种影响计算延时。Interconnect Model 定义了环境的互连模型,通过定义这个值选取适当的公式来计算互连线的延迟。 有些工艺库会包含几种工作条件下的工艺参数,通常有 max, type, min 三种类型,代表操作环境 为最坏(worst),典型(type),最好(best)三种情况。从上面的库文件报告可以看出,该库文件只包含了 一种操作条件,即 slow_1v08c125。一般在产生 setup timing report 时,DC 使用最坏情况下的操作条 件,在产生 hold timing report 时,使用最好情况下的操作条件,如果在这两种情况下都可以满足时 序要求,则在典型情况下也可以满足时序要求。 设置操作条件使用 set_operating_conditions 命令,如果一个库中就包含了最好和最差的操作条 件,设置方式如下: set_operating_conditions –library name_of_lib –min bestcase –max worstcase -analysis_type bc_wc name_of_lib 代表库文件的名字,bestcase 代表最好情况的操作条件名,worstcase 代表最坏情况 的操作条件名。-analysis_type bc_wc 用于告诉 DC 在分析 setup violations 时只采用最差情况下的操
生的报告来分析和解决设计问题,并改善综合结果。
(9) 保存结果。产生供后端设计使用的网表文件。
1.3DC 的主要功能
(1) (2) (3) (4) (5) (6)
使用用户指定的门阵列或者标准单元库产生速度快、面积小的 ASIC 设计。 把设计从一种工艺转换为另一种工艺。 在不同的负载、温度和电压条件下对时序、面积和功耗等设计指标作折中处理。 综合和优化有限状态机(FSM)。 支持网表输入,支持用来与第三方工具交互的网表或原理图输出。 自动创建和划分层次原理图。
前三条语句定义的是路径,不再解释。最后一条语句尤其注意:如果 RTL 级代码中信号的命名 有大写字母,综合后的门级电路网表中相应的信号名称也会是大写,将这样的网表导入 Astro 做布局 布线后得到的版图文件再导入 Calibre 中做 LVS 会有问题。所以需要在综合的阶段将信号中的大写字 母全部改为小写。define_name_rules 即定义了这样一个规则,将信号名称中的大写字母都用对应的 小写字母代替,后面会使用该规则。
6.2 pbist.read
该文件为读取原始的设计文件,内容如下
analyze 语句读入设计文件,‐format 选项的值为 verilog(源代码用 verilog 编写)或 vhdl(源代 码用 vhdl 编写),elaborate 语句建立一个 design,design 的名字为设计文件中 module 的名字。一般 最后读入顶层模块所在的文件,这样执行完所有的语句后,current_design 就是顶层模块对应的 design,这也是后面综合的对象。
链接库(link_library)
链接库可以是同 target_library 一样的单元库,或者是已综合到门级的底层模块设计,其作用如 下:在由下而上的综合过程中,上一层的设计调用底层已综合模块时,将从 link_library 中寻找并链 接起来。在这里,我们将链接库和目标工艺库设为同一个库。
符号库(symbol_library)
DC 综合教程
一、 综合的基本概念:
1.1 综合概述
通常所说的综合是指逻辑综合。逻辑综合就是使用综合工具将较高层次的 RTL 级描述转换为基 于目标工艺库和特定约束条件的门级网表的过程。
1.2 综合流程
准备HDL文件
综合包括转译(Translation)、映射(Mapping)、优化(Optimization)三个过程。 指定库文件
进的过程。综合工具根据设定的参数,采用一定的算法来使设计尽量满足设计要 定义设计环境
求。
这三个步骤是对综合过程的整体概述,而实际上综合包含很多的设置和操
作。基本的综合流程如右图所示。 (1) 准备 HDL 文件。RTL 级的 HDL 描述。
设定设计约束
(2) 指定库文件。为综合工具指定库文件,这些库文件主要包括目标库、
此处可键入命令
Step2:执行 setup 文件 在 DC 窗口最下方的 design_vision>中可以输入命令,在此处输入
source ./.synopsys_dc.setup 回车 ./代表当前目录 Step3:执行脚本文件 依次输入: source ../script/pbist.def 回车 source ../script/pbist.read 回车 source ../script/pbist.run 回车
三、目录组织结构
做综合时各文件的存放目录没有严格的规定,但为了便于管理和查看,一般会分类放在不同的 目录下,下面是一个目录组织结构的范例:
四、操作步骤
Step1:启动 DC 首先进入 deller 服务器,打开一个 Terminal,输入命令:
source cshrc_eda
然后按照前面讲的目录结构建立文件夹,把所需要的文件放入相应的文件夹,进入工作目录 run, 这时在 terminal 中输入命令: design_vision&
工作条件包括芯片的工作温度、工作电压、工艺误差和 RC 树模型。这几个因素的变化对电路的 性能有很大影响。DC 在进行综合和时序分析时将综合考虑这些因素的最坏和最好情况。
大多数工艺库中都预先定义了一套工作条件参数。如果在设定工作条件之前想了解工艺库总定 义的工作条件概况,可以用 report_lib 命令来查看。例如,我们要查看 slow_1v08c125.db,可输入如 下命令: read_file slow_1v08c125.db report_lib slow_1v08c125 得到库文件报告如下所示 **************************************** Report : library Library: slow_1v08c125 Version: D‐2010.03‐SP2 Date : Thu Sep 16 12:23:05 2010 **************************************** …… Operating Conditions:
启动 DC 的图形界面,如果输入命令 dc_shell,可以启动 DC 的命令行界面。这里我们选择进入 图形界面。
——注:业界的人士比较青睐命令行界面,因为其所耗的资源少,并且将所用的命令写成综合脚本的形式,便于查 阅。但笔者更喜欢图形界面,因为看起来比较亲切,并且图形界面下也可以输入命令。
我们进入 DC 的图形界面如下所示:
6.3 pbist.run
6.3.1 设定设计环境
在 DC 对设计进行综合和优化前,需要定义设计环境。设计环境是指设计在正常工作时的温度、 电压、驱动、负载等一系列外部属性。它主要包括三个方面:工作条件(Operation Conditions)、线 负载模型(Wire Load Model)和系统接口特性(System Interface Characteristics)。 1、 指定工作条件
链接库和符号库等。在综合过程中,综合工具会自动从指定的库文
件中调用相关的单元和参数。
选择编译策略
Байду номын сангаас
(3) 读取设计。将设计文件中的设计读入计算机内存。一般综合工具既
可以读取 RTL 级的设计,也可以读取门级网表。 (4) 定义设计环境。在这一步中,要为综合工具指定设计的工作环境、
优化设计
负载、驱动和扇出等方面的参数。这些设置会直接影响综合的结果。
五、setup 文件详解
.synopsys_dc.setup 文件中内容如下
以上语句中的 search_path, target_path, link_path, symbol_library, veriogout_show_unconnected_pins 都是 DC 中已经定义的变量,我们只需通过 set 语句为其赋值,下 面详细介绍每一个变量。
综合结束,在 report 和 export 文件夹中已经有了所需要的输出文件
Step4:查看综合后的电路图(可选) 下图所示为综合结束后的界面,红色虚线所示列出了整个设计的层次结构
如下图所示,右键单击某一个 hierarchy,选择 Schematic View
便得到了该 hierarchy 对应的综合电路图,如下图所示,通过电路图可以查看综合结果是否和自 己预期的电路符合。
是指将 RTL 级的 HDL 描述到门级时所需的标准单元综合库,它是由芯片制造商(Foundry)提供 的,包含了物理信息的单元模型。通常芯片制造商提供的基本电路单元有:与非,或非,非门等基 本的逻辑单元;还有选择器,与或非,或与非等较复杂的组合逻辑,以及锁存器 (LATCH)和触发器 (DFF)等时序逻辑单元。