常用时序分析SDCinsistent 命令参考 (一)
1. Define design environment
1.1. Set_operating_conditions
1.2. Set_wire_load_model
1.3. Set_driving_cell
1.4. Set_load
1.5. Set_fanout_load
1.6. Set_min_library
2. Set design constraints
acome
2.1. Design rule constraints
2.1.1. Set_max_transition
2.1.2. Set_max_fanout
2.1.3. Set_max_capacitance
2.2. Design optimization constraints
2.2.1. Create_clock偷情许可证
2.2.2.thick什么意思 create_generated_clock
2.2.3. Set_clock_latency
2.2.4. Set_propagated_clock
2.2.5. Set_clock_uncertainty
2.2.6. Set_input_delay
2.2.7. Set_output_delay
2.2.8. Set_max_area
3. Other commands
3.1. t_clock_groups
3.2. t_fal_path
3.3. t_ca_analysis
3.4. t_max_delay
1. jpmorgan Do not exist in timing fix sdc file:
influence是什么意思
1.1. Set_max_area
1.2. t_operation_conditions
1.3. t_wire_load_model
1.4. 职务英文t_ideal_*
2. Must be placed in timing fix sdc file:
2.1. Set_clock_uncertainty,
2.2. t_max_transition
2.3. t_propagated_clock
create_clock
在当前设计中创建一个时钟
语法:
status create_clock
[-name clock_name]
[-add]
[source_ojbects]
[-period period_value]
[-waveform edge_list]
数据类型:
clock_name 字符
source_objects 列表
period_value 浮点
edge_list 列表
参数:
-name clock_name
文献翻译指定时钟名称。如果你不使用该选项,时钟名称将会与第一个时钟源在source_objects指定的一样。如果你没有使用souce_objects,你就必须使用本选项,它会创建一个与端口或接脚无关的虚拟时钟。本选项与source_objects一起使用可以为时钟增加一个描述性的名称。
如果你使用-add选项,你必须使用-name选项,并且要为有相同源的时钟分配不同的名称。
(注解:-name如果省略,就必须要指定创建时钟的节点。这也是默认的做法。
不指定时钟创建节点的意思就是指创建一个虚拟时钟。
如果既指定了时钟节点,有写了-name选项,这个-name可以认为是一个alias。)
(疑难点:虚拟时钟,-add选项)
-add
指明是否将该时钟加到已存在的时钟中或将其覆盖。使用本选项抓取有相同源不同波形,
进行同时分析的复合时钟。你使用该选项时,必须使用-name选项。定义在相同源接脚或端口的复合时钟相比一个单一时钟,会导致更长的运行时间和更高的内存占用。因为时序综合引擎必须搜索所有开始(launch)和截取(capture)组合的可能性。使用t_fal_path命令限制不期望的组合。该选项在默认为关闭,除非复合时钟分析的相关变量timing_enable_multiple_clocks_pre_reg被设为true。
(疑难点:timing_enable_multiple_clocks_per_reg,-add)
(注意,这是create_clock命令,它也是有-add选项的。)
(举一个简单的例子,对于一个输入时钟端口,你创建了两个时钟。第二个时钟创建的时候使用了-add选项。则,看timing路径的时候,就会发现clk1和clk2互相检查的情况。这种情况是不真实的。需要使用fal path把它们进行设置。这属于两时钟物理互斥的范畴。)
source_objects
指定应用于时钟的接脚或端口的列表。如果你没有使用本选项,你必须使用-name clock_name ,它会创建一个与接脚或端口无关的虚拟时钟。如果你指定的时钟已经在接
脚上了,旧的时钟会被取代,除非你增加-add选项。
-period period_value
以库时间单位指定时钟波形的周期。
-waveform edge_list
以库时间单位指定整个时间周期中时钟的上升或下降沿时间。列表中第一个时间是上升转换,通常第一个上升转换在时间零点之后。这里增加次数必须是偶数,并且它们假定为交替的上升和下降时间。数值上,为一个完整时钟周期。
如果-waveform edge_list没有设定,但有-period period_value,默认情况,波形假定为一个0.0上升沿和一个period_value/2下降沿。
(疑难点:通过-waveform把波形给画出来。但是,-period是必须要写的。也就是说,你可以只使用-period指定一个时钟周期。默认是50%占空比,且先1后0。如果想创建占空比不是50%的时钟,就要通过-waveform来描述了,第一个上升的位置在什么时刻,下降的位置在什么时刻。)
(和create_generate_clock中的-edge选项很容易混淆!)
描述:
create_clock命令在当前设计中创建一个时钟。该命令在当前设计中定义指定的source_objects作为时钟源。一个接脚或端口可以成为一个单时钟源nightingale。如果source_objects没有指定,但clock_name给定,一个虚拟时钟会被创建。一个虚拟时钟可以被创建,代表一个片外时钟用于描述输入或输出延迟。更多关于输入和输出延迟的信息,可以阅读t_input_delay和t_oupt_delay参考。
时钟影响到时钟网络的属性,比如dont_touch_network, fix_hold和propagated_clock。使用create_clock在已存在的时钟上会覆盖时钟上已有的属性。create_clock也同时定义时钟波形。时钟允许每个周期多脉冲形式。建立和保持路径延迟是从时钟波形路径的起点到终点自动衍生的。fix_hold属性(用t_fix_hold设定)指导compile修复时钟保持 (hold) 错误。
默认状态,时钟对应一组路径。该组与时钟相关的终点用于估算函数的计算。要将时钟从
分配的组中删除,使用group_path命令分配时钟到另一个组或默认路径组。更多的信息可参考group_path命令帮助。
新的时钟有理想时序,不能通过时钟网络传播延迟。使用t_propagated_clock命令让时钟能够进行延迟传播。要添加偏差(skew)和不确定因素(uncertainty)到理想波形中,使用t_clock_latency或t_clock_uncertainty 命令。
六级准考证号找回
显示当前设计中所有时钟源信息,使用report_clock命令。得到时钟源列表,使用get_clocks命令。返回所有与特定时钟相关的序列单元,使用all_registers命令。取消create_clock,使用remove_clock命令。
多条件多模式支持:
该命令仅使用当前方案中的信息。
范例:
【不规则占空比】
在端口PHI1创建时钟周期为10,上升在5.0,下降在9.5.
create_clock “PHI1” –period 10 –waveform {5.0 9.5}
【特殊】
在端口PHI2创建时钟周期为10,下降在5,上升在10
create_clock “PHI2” –period 10 –waveform {10 15}
【周期内多脉冲】
在接脚u12/Z创建时钟CLK,周期25,下降在0.0,上升在5.0,下降在10.0,上升在15.0.