利用DC进行逻辑综合_中文版(3)
TO_BE_SYNTHESIZED
因为上图中的各路径它们的参考时钟都是clk所以应该是一组。
以下对这组路径加约束:(如果电路的工作频率是100MHZ setup=INS
则:create_clock_period 10 〔
get_ports clk〕
set_dont_touch_network〔get_ports clk〕
创建时钟这条命令会对寄存器之间的路径群X产生约束,但对设计TO-BE-SYNTHESIZED来说路径群N与S仍然没有约束,set_dont_touch_network命令告诉DC即使寄存器的负载非常大也不要对时钟网使用驱动和缓冲(时钟树在版图设计前时通常不在设计网表中表示,在做版图时基于物理布局由后端完成)
如何对N路径群加以约束呢?(定义I/O与时钟的时序关系)
这时必须提供输入路径的约束。
set_input_delay -max 4 –clock clk[get_ports A]
这条命令作用后将考虑外部逻辑用了多少时间,DC在计算时将会考虑到内部逻辑还剩多少时间。
如何对S路径群加以约束呢?
这时必须提供输出路径的约束。
set_output_delay -max 5.4 –clock clk[get_ports B]
这条命令对输出路径作了约束。
在这里我们仍然必须指定外部逻辑需要多少时间。
DC会计算出内部逻辑还剩多少时间。
发送沿接受沿
数据内部传输
对输出路径的约束
几条报告命令的使用:
report_port -verbose:
这条命令将返回所有加在输入和输出端口的约束。
report_clock:
返回当前设计中所有时钟对象的周期、时钟源和占空比。
reset_design:
从当前设计中删除所加的属性和约束。
list_libs:
返回内存中可获得的库。
对时钟的几条约束:
创建一个时钟必须指定时钟的源和时钟周期,另外还可以指定时钟占空比,时钟偏移量、以及时钟名(若不指定则与port/pin名一致)。
如果指定由晶振到时钟树起点的时钟延迟则用:set_clock_latency -source来表示。如果不用这个命令而使用set_input_delay对一个时钟作用也可以产生相同的效果但不建议这样使用。从时钟树到具体寄存器的时钟输入端会产生一定的延迟,这个延迟用set_clock_latency –rise 1 [get_clocks clk]和set_clock_latency -fall 2[qet_clocks clk]这样的命令来指定。在版图设计完成后可以使用set_propagated_clock 这条命令由DC精确计算出时钟网的延迟。
在同步设计中因为时钟总是由一个源时钟产生通过时钟树到达具体寄存器的时钟输入端,不可避免时钟信号通过时钟树的分支到达各寄存器会产生相位的偏移,我们把这种偏移叫做uncertainty,指定了这个值意味着在时钟的uncertainty的时间区间内,时钟都是有可能到达的,这由命令set_clock_uncertainty 0.5 [get_clock clk]来指定(如果没有-max和-min则在计算SETUP或HOLD时间时取用相同的值)。另外在寄存器内部从时钟端clk到输出端q总有一个延迟,我们用命令set_clock_transition 0.2 [all_clocks] 来指定这个延迟,以便于DC进行优化时进行选择。
几条有用的命令:
remove_input_delay:
删除以前用set_input_delay指定的延迟。
report_lib:
显示工艺库和符号库上的信息。
remove_design:
从DC中删除设计或库的列表。
remove_from_collection:
从一个原始的collection集合中删除另一个collection集合中指定的对象并返回一个新的collection,但原始collection集合中的对象保持不变。 report_port:
返回当前设计中指定的端口信息。
1.3时间预算
有的时候在给各路径加约束的时候,并不清楚与他们相关的其它路径的信息,比如不清楚输入的延迟或是输出需要的建立时间,这时我们一般采用保守的预算对设计加约束。(如果所有输出都是寄存器,我们估算时间的时候将会变的更容易,这就是我们为什么在划分的时候希望以寄存器作为划分的边界)。 如:
create_clock –period 10 [get_ports clk]
set_dont_touch_network [get_clocks clk] set_input_delay –max 6 –clock clk [all_inputs] set_out_delay –max 6 –clock clk [all_outputs] 如果在编译前不知道输出负载和输入驱动单元,那么我们就必须进行负载预算。首先,假定在输入端有一个比较差的驱动单元(采用保守估算)
set_driving_cell
接着,限制每个输入端的输入电容
set_max_capacitance
load_of
还有要估计输出可能会驱动的最大逻辑块的数目
set_load
下例显示如何书写约束规则限制输入端的输入电容。
current_design myblock
link
source timing_budgen.tcl
#Assume a weak driving buffer on the inputs
set_driving_cell lib_#limit the input load
set MAX_INPUT_LOAD [expr [load_of tech_lib/and2a0/A]*10]
set_max_capacitance $MAX_INPUT_LOAD [all_inputs]
#Model the max possible load on the outputsassuming
#Outputs will only be tied to 3 subsequent block
set_load [expr $MAX_INPUT_LOAD*3] [all_outputs]
在设计中根据要求指定环境属性:包括指定温度、电压、线负载模型等等。
为了准确地计算出输出电路的时序,DC需要知道被输出端驱动的电路的电容总
数。set_load命令允许用户指定输出端口上的外部负载电容。默认情况下,DC假定输出端口上的外部电容为零。用户可以指定一些其他的常量值或是用load_of命令指定外部负载电容为工艺库中某个单元的引脚负载电容。
例如:
set_load 5 [get-ports OUT1]
set_load [expr [load_of my_lib/inv1a0/A]*3] OUT1
输入驱动能力的问题:
为了准确计算输入电容的时序,DC需要知道信号到达输入端口的转换时间。 set_driving_cell命令允许用户指定一个实际的外部单元驱动输入端口默认情况下DC假定外部信号的转换时间为0。 在输出端口上放置一个驱动单元可以让DC计算出输入信号在指定库单元的驱动下实际转换的时间。
库单元通常情况下使用“nominal”,电压/温度特性。但事实上操作条件不总是这样的,因此供应商允许电路综合时考虑的操作条件不为“nominal”而是工艺库中提供的某种操作条件。默认的条件下一个设计并没有指定操作条件,设计者可以通过report_lib libname命令列出厂家支持的操作条件,选定要求的操作条件后可以通过set_operating_conditions命令设定操作条件如:set_operating_conditions -max “slow_125_1.62”
如何计算连接线(net)的延迟:
线负载模型是一种统计的估算参数,它是基于扇出的关于net的RC寄生延迟。这种模型由厂家提供的库支持,模型中的估算值通常是由使用这种工艺制造出的很多器件中的net延迟的一组统计值。
首先,设定线负载模型的模式(两种)
如果,模式mode = top则设计内部的子设计也使用相同的线负载模型。(会穿越层级边界)
如果mode = enclosed则线负载模型不会对子设计产生作用
如下例:
set_wire_load_mode enclosed
接着指定线负载模型:
先看看库中支持那些线负载模型
report_lib sss_core_slow
将当前设计变量置为合适的设计
set current_design add2
指定线负载模型
set_wire_load_mod …… 此处隐藏:3178字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [高等教育]一年级家长课程教案
- [高等教育]封丘县人民医院深入推进纠正医药购销领
- [高等教育]2017年6月大学英语四级真题试卷及答案(
- [高等教育]2017年北京第二外国语学院文学院824中
- [高等教育]7 高中历史第7单元1861年俄国农奴制改
- [高等教育]【K12学习】4、实际测量-苏教版六年级
- [高等教育]药具培训试卷题库及部分参考答案
- [高等教育]本土电子元器件目录分销商如何赢得生意
- [高等教育]七年级岭南版美术教案
- [高等教育]书作文之书法活动通讯稿
- [高等教育]Endnote X 软件使用入门和用法总结(LS)
- [高等教育]嵌入式系统的现状及发展状况
- [高等教育]2012抗菌药物专项整治活动方案解读
- [高等教育]人教版新课本一年级数学下册期末试卷
- [高等教育]爱课程民法学观后感
- [高等教育]930机组使用说明书1
- [高等教育]煤气设备设施点检标准
- [高等教育]常见室内观叶植物图解
- [高等教育]312党员群众路线心得体会
- [高等教育]小学信息(苗版)第一册全册教案
- 在市---局2010党建大会上的讲话
- 《科哲》提纲及补充阅读材料(2010.7)
- 苏州高博软件技术职业学院论文开题报告
- 兼职导游管理的困境及对策探讨
- 基于通用设计理念的现代厨房产品语义研
- 康乐一中2010年至2011年度鼓号队、花束
- 第10章_数据收集整理与描述_期末复习课
- 2008年黑龙江林甸商贸购物中心营销策划
- 水硬度的测定实验报告
- 五分钟教你拍摄夜景光绘照
- 2014年临床妇产科三基三严试题及答案
- 0第二课 纾解压力第一站了解压力
- 解析建筑工程电气设备安装施工技术要点
- 地方性应用型本科高校“双师型”师资队
- 高考语文专题复习课件:小说阅读指导
- 装饰工程投标书2
- 大学生就业难问题探讨及对策
- English and Its History
- 青岛市城市房屋修缮工程质量监督管理办
- 初中英语形容词和副词的用法和练习题




