第五章 综合的约束与优化
第五章 综合的约束与优化
综合的一个很重要的概念就是:单纯的映射是远远不够的,更重要的是设计的整体优化。一方面设计工程师为综合规定必要的约束,例如对面积、速度、功耗的要求等,从而使优化有所依据;另一方面选择合适的综合器是优化程度的决定性因素。同一个设计使用不同的综合器所得到的优化结果可以相差3~5倍。
第一节 综合约束
5-1-1 概述
综合约束是对可测量的电路特性所定义的设计目标,比如面积、速度和电容等。如果
没有这些约束,Design Compiler工具将不能有效地对你的设计进行最优化。
在对设计进行优化时,Design Compiler支持两种类型的约束: ? 设计规则约束(Design rule constraints) ? 最优化约束(Optimization constraints)
设计规则约束是固有的,在工艺库里定义;这些约束条件是为了保证设计
的功能正确性,适用于使用工艺库的每一个设计;可以使这些约束比最优化约束更为严格。
最优化约束是外在的,由设计者自己定义;最优化约束描述设计指标,在整个dc_shell工作期间应用于当前设计;它们必须接近于现实情况。
Design Compiler试图同时满足设计规则约束和最优化约束,但设计规则约束必须首先被满足。设计者可以以命令行形式交互式的指定约束或者在一个约束文件里指令约束。
图5.1显示了主要的设计规则约束和最优化约束,以及如何用dc_shell界面命令来设置这些约束。
153
图5.1 Major Design Compiler Constraints
第二节 设置设计规则约束
这一节将讨论最常用的设计规则约束:
? 转换时间(Transition time) ? 扇出负载(Fanout load) ? 电容(Capacitance)
Design Compiler给设计对象赋予属性来表示这些设计规则约束。表5.1列出了每一个设计规则约束对应的属性名。
表5.1 设计规则属性
Design Rule Constraint Transition time Fanout load Capacitance Cell degradation Connection class
Attribute Name max_transition max_fanout max_capacitance min_capacitance cell_degradation connection_class 设计规则约束是工艺库里指定属性,你也可以明确地、随意地指定这些约束。如果工
艺库里定义了这些属性,在进行设计编译和生成约束报告时,Design Compiler暗中将它们应用于使用那个库的任何设计。你不能移走工艺库里定义的设计规则约束,因为它们是工艺的特定要求,但你可以使它们更为严格来适应你的设计。如果内在的和外在的设计规则约束同时应用于一个设计或一条线,更为严格的值拥有优先权。 5-2-1 设置转换时间约束
线的转换时间约束是对它的驱动管脚改变逻辑值的时序要求。转换时间是以工艺库数
154
据为基础。对于非线性延迟模型(NLDM),输出转换时间是输入转换和输出负载的函数。
通过对一个单元的每一个输出管脚赋予max_transition属性,Design Compiler和Library Compiler模拟转换时间约束。在最优化过程中,Design Compiler试图使每一条线的转换时间都小于max_transition属性值。命令set_max_transition用来改变工艺库里指定的最大转换时间约束。通过对指定的对象设置max_transition属性,这条命令给设计中所有线或与确定端口相连的线设置了最大转换时间。
比如,对设计adder中的所有线设置最大转换时间3.2,输入: dc_shell> set_max_transition 3.2 find(design,adder)
利用remove_attribute命令来取消set_max_transition命令,比如,输入:
dc_shell> remove_attribute find(design,adder)\\max_transition 5-2-2 设置扇出负载约束
线的最大扇出负载是指这条线所能驱动的最大数目的负载。
通过赋予每一个输入管脚fanout_load属性和一个单元的每一个输出管脚max_fanout扇出负载值不表示电容;它表示对整个扇出负载的数字上的贡献。强加于一个输入管
属性,Design Compiler和Library Compiler模拟扇出限制。
脚的扇出负载不必是1.0。库的开发者可以指定更高的扇出负载值来模仿内在的单元负载效果。将有那个管脚驱动的所有输入的fanout_load值相加,Design Compiler计算一个驱动管脚的扇出。为确定这个管脚是否满足最大扇出负载约束,Design Compiler将计算的扇出负载值和管脚的max_fanout值相比较。
图5.2显示了一个小电路。其中管脚X驱动两个负载,管脚A和管脚B。如果管脚A的fanout_load值为1.0,管脚B的fanout_load为2.0,那管脚X的整个扇出负载为3.0。如果管脚X有一个大于3.0的最大扇出,比如说16.0,那管脚X符合扇出约束。
图5.2 扇出约束实例
在最优化时,Design Compiler试图满足每一个驱动管脚的扇出负载限制。如果一个
管脚违反了扇出负载限制,Design Compiler会尽力改正这个问题(比如通过改变这个元件的驱动能力)。
工艺库可能对整个库指定默认的扇出约束,或对库描述的一个单独的单元里特定的管脚指定扇出约束。为确定你的工艺库是否为扇出计算而模拟,你可以对单元的输入管脚搜索fanout_load属性:
dc_shell> get_attribute find(pin, my_lib/*/*) fanout_load
用set_max_fanout命令对设计或输入管脚设置比工艺库里指定的更为保守的扇出约
155
束(用set_fanout_load命令对输出端口设置预期的扇出负载值)。set_max_fanout命令通过对指定对象设置max_fanout属性对设计中的所有线或指定的输入端口设置最大扇出负载。比如,要对设计adder中的所有线设置max_fanout为16,输入: dc_shell> set_max_fanout 16 find(design, adder)
如果你用set_max_fanout命令和存在库的max_fanout属性,Design Compiler会尽力用remove_attribute命令来取消set_max_fanout命令,比如,输入: 满足更小的扇出限制。
dc_shell> remove_attribute find(design,adder) max_fanout 5-2-3 设置电容约束
转换时间约束并没有提供一个直接的方式来控制线的真实电容。如果你想要直接控制
电容,利用set_max_capacitance命令来设置最大电容约束。这个约束是完全独立的,因此除了转换时间约束外,你还可以使用它。
通过给一个单元的输出端口或管脚赋予max_capacitance属性,Design Compiler和Library Compiler模拟电容约束。把线电容和管脚电容相加,Design Compiler来计算输出线的电容。为确定线是否满足电容约束,Design Compiler把计算出的电容值与输出管脚的max_capacitance值相比较。
比如,对设计adder中的所有线设置最大电容为3,输入:
用remove_attribute命令来取消set_max_capacitance命令,如,输入: 你也可以用set_min_capacitance命令对输入端口或管脚设置最小电容。
第三节 设置最优化约束
这一节中将讨论最常用的指定的最优化约束: dc_shell> set_max_capacitance 3 find(design,adder)
dc_shell> remove_attribute find(design,adder)\\max_capacitance
? 时序约束(Timing constraints) ? 面积约束(Area constraints)
Design Compiler也支持功耗约束。图5.3解释了定义最优化约束的一些常用的命令。
图5.3 Commands Used to Define the Optimization Constraints for Sequential Blocks
相关推荐:
- [基础教育]2016-2022年中国钢芯铝绞线市场现状调
- [基础教育]语文部编版初一语文下册练习题 句式变
- [基础教育]南京继续教育参考答案--深入学习贯彻习
- [基础教育]国旗下讲话稿——珍惜时间好读书
- [基础教育]北师大版六年级数学下册圆锥的体积教学
- [基础教育]人教版-音乐-四年级下册-四年级下册音
- [基础教育]乔布斯2019年斯坦福大学毕业典礼致辞.d
- [基础教育]2015年加油站安全知识竞赛试题及答案
- [基础教育]2020年教师年度考核个人工作总结
- [基础教育]2019年中考历史试题-2019年大庆市初中
- [基础教育]初三仁爱英语第一轮总复习教案
- [基础教育]SG-A094电气配管安装工程隐蔽验收记录
- [基础教育]冀教版小学数学三年级下册第六单元教材
- [基础教育]青岛版(五制)小学科学二年级下册16《制
- [基础教育]2018-2019年初中科学初一中考真卷测试
- [基础教育]幼儿园大班期末简短评语精选
- [基础教育]2018云南临沧公务员考试申论技巧:这样
- [基础教育]学校食堂经营管理方案
- [基础教育]新中国砥砺奋进的七十年原文
- [基础教育]真空泵的选型及常用计算公式
- 高职田径课程教学现状与对策
- 全髋关节置换术在老年股骨颈骨折患者中
- 青人社厅函〔2016〕576号(附件)工资
- cp101-07砂子检验作业指导书 - secret
- 微观经济学 第八章 博弈论 习题
- 2014高考真题(词语运用)汇编及答案
- 2018年人教版七年级语文下册《第三单元
- 苏教版数学四年级上册第一单元试题 - M
- 四川大学新闻与传播考研2000-2010年真
- 浙江万里学院英语专业四年制本科教学计
- 最新2018马年事业祝福语-范文word版(2
- 最全模具行业术语英文翻译
- 皮亚杰的发展心理学理论
- 64篇高考情景式默写 练习题及答案
- 仿写(学生稿)
- 《SQL Server数据库技术》试卷A
- 第七章作业答案
- 江苏省赣榆县海头高级中学高中语文必修
- 浙江省2001年10月自考正常人体解剖学答
- 2012英语重点短语




