教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 高等教育 >

利用DC进行逻辑综合_中文版(3)

来源:网络收集 时间:2026-02-04
导读: TO_BE_SYNTHESIZED 因为上图中的各路径它们的参考时钟都是clk所以应该是一组。 以下对这组路径加约束:(如果电路的工作频率是100MHZ setup=INS 则:create_clock_period 10 〔 get_ports clk〕 set_dont_touch_net

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字,全部文档内容请下载后查看。喜欢就下载吧 ……

利用DC进行逻辑综合_中文版(3).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/123992.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)