第五章 综合的约束与优化(3)
dc_shell> set_input_delay 20 -clock CLK DATA_IN dc_shell> set_output_delay 15 -clock CLK DATA_OUT
下面是一个加以约束的设计模块的实例:图5.5解释了设计模块my_block的时序要求,下面的命令行是用来定义这些时序要求的。
图5.5 my_block的时序要求
create_clock -period 20 -waveform {5 15} clka create_clock -period 30 -waveform {10 25} clkb set_input_delay 10.4 -clock clka in1
159
set_input_delay 6.4 -clock clkb -add_delay in1 set_output_delay 1.6 -clock clka -min out1 set_output_delay 4.8 -clock clka -max out1 5-3-1-3 指定组合路径延迟要求
对于不被时钟周期限制的完全的组合延迟,命令set_max_delay和set_min_delay定义指定路径的最小和最大延迟。
在HDL代码中产生异步逻辑,一种普通的方法就是对锁存器和触发器使用异步置位或复位。因为复位信号跨越几个模块,在顶层约束这个信号。比如,要对复位信号定义最大延迟为5,输入:
dc_shell> set_max_delay 5 -from RESET
对从IN1到OUT1的路径指定最小延迟为10,输入: dc_shell> set_min_delay 10 -from IN1 -to OUT1
用report_timing_requirements命令列出对你的设计所要求的最大和最小延迟。
5-3-1-4 指定时序异常
时序异常是对一个或更多的违反默认的单循环时序关系的路径指定时序关系。利用时
序异常来对那些不遵循默认的单循环行为的路径或异步路径加以约束或使其失去作用。指定众多的时序异常会增加编译时间。然而,很多设计需要许多的时序异常。
Design Compiler只承认有正确参考点的时序异常。
? 设计中的有效起点是指时序单元的主要的输入端口和时钟管脚。 ? 有效的结束点是指设计的主要输出端口和时序单元的数据管脚。
如果你指定了一个无效的参考点,Design Compiler不会发出警告信息。你必须用命令report_timing_requirements中的-ignored选项来查明被Design Compiler忽视的时序异常。
你可以利用时序异常命令来指定下列条件:
? 错误路径(False paths (set_false_path))
? 最小延迟要求(Minimum delay requirements (set_min_delay)) ? 最大延迟要求(Maximum delay requirements (set_max_delay)) ? 多循环路径(Multicycle paths (set_multicycle_path))
用report_timing_requirements命令列出设计中的时序异常。
1.指定错误路径
Design Compiler在时序报告中不报告错误路径,或在时序优化时不照顾它们。用命
令set_false_path指定错误路径。用这个命令来忽视那些非关键路径,它们可能掩盖其他一些在优化时必须考虑的路径;或者是那些在正常操作中从不会发生。
160
比如,图5.6显示了一个寄存器的外形,它从双向总线(DATA)进行读写。
图5.6 Configuration Register
这个电路有这些时序路径: 1. DATA to U1/D 2. RD to DATA
3. U1/G to CONFIG (with possible time borrowing at U1/D) 4. U1/G to DATA (with possible time borrowing at U1/D) 5. U1/G to U1/D (through DATA, with possible time borrowing)
前面四条路径都是有效的,而第五条是一条功能错误的路径,因为正常的操作不可能要求对寄存器同时进行读和写。在这个设计里,你可以用这个命令来使这条路径失效: dc_shell> set_false_path -from U1/G -to U1/D
利用reset_path命令和相同的选项取消set_false_path命令,输入: dc_shell> set_false_path -setup -from IN2 -to FF12/D dc_shell> reset_path -setup -from IN2 -to FF12/D
创建一条错误路径不同于使时序弧失效。使时序弧失效表示一条路径的中断。定义一
个错误路径并不中断路径,它只是阻止在优化时,这条路径被考虑。 2.指定最小和最大延迟要求
你可以用set_min_delay和set_max_delay来指定路径延迟要求,它们远比Design
Compiler根据时钟时序得到的保守。利用reset_path命令取消set_min_delay和set_max_delay命令。 (1)寄存器到寄存器的路径
Design Compiler利用下列方程式得到寄存器到寄存器路径的最小和最大路径延迟的约束:
min_delay = (T capture - T launch ) + hold max_delay = (T capture - T launch ) - setup
你可以利用set_min_delay和set_max_delay命令而不考虑得到的路径延迟(T capture –T launch)。
比如,假设你有一条路径,时间20时从一个寄存器开始,在时间35到达一个寄存器,此时是时钟的下一个有效沿:
161
dc_shell> create_clock -period 40 waveform {0 20} clk1 dc_shell> create_clock -period 40 -waveform {15 35} clk2
Design Compiler自动地得到一个最大路径延迟约束:(35-20)-(终点库的寄存器的建立时间)。指定一个最大路径延迟为10,输入: dc_shell> set_max_delay 10 -from reg1 -to reg2
Design Compiler以10-(终点库的寄存器的建立时间)来计算最大路径延迟约束,没有考虑最初得到的最大路径延迟约束。 (2)寄存器到端口的路径
Design Compiler利用下列方程式得到寄存器到端口路径的最小和最大路径延迟的约
束:
min_delay = period - output_delay max_delay = period - output_delay
如果你用set_min_delay或set_max_delay命令,这些命令中定义的值将代替约束计算中的周期值。比如,假设你有一个时间时钟周期为20的设计,输出OUTPORTA的输出延迟为5:
dc_shell> create_clock -period 20 CLK
dc_shell> set_output_delay 5 -clock CLK OUTPORTA
Design Compiler自动地得到最大路径延迟约束15(20-5)。指定你想要的最大路径延迟10,输入:
dc_shell> set_max_delay 10 -to OUTPORTA
Design Compiler计算最大路径延迟为5(10-5),没有考虑原先得到的最大路径延迟约束。 (3)异步路径
你也可以用set_max_delay和set_min_delay命令来约束穿越不同频率域的异步路径。 比如:
dc_shell>set_max_delay 17.1 \\-from find(clock, clk1) -to find(clock, clk2) dc_shell> set_max_delay 23.5 \\-from find(clock, clk2) -to find(clock, clk3) dc_shell> set_max_delay 31.6 \\-from find(clock, clk3) -to find(clock, clk1) (4)设置多循环路径
当有疑问的路径长于单个循环或数据并没有如期的在单个循环内,多循环路径条件是
适当的。用set_multicycle_path命令来指定Design Compiler使用的时钟循环的数目,来决定在特殊的终点什么时候需要数据。
你可以为建立和保持检测指定循环乘法器。如果你没有为命令set_multicycle_path默认情况下,在数据从起点开始,到终点下一个时钟的活跃沿检查建立(默认乘数为指定-setup或-hold选项,Design Compiler只将乘数值应用于建立检查。
1)。在数据建立后数据保持一个时钟循环,但在建立时的那个沿检测(默认乘数为0)。
162
…… 此处隐藏:2109字,全部文档内容请下载后查看。喜欢就下载吧 ……相关推荐:
- [基础教育]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英语重点短语




