指定生成时钟的名称。如果你不使用本选项,时钟接受与第一个时钟的-source设定的名称相同的名称。如果你使用-add选项,你必须使用-name 选项,并且不能与源时钟有相同的名称。
-add
指定是否增加这个时钟到已经存在的时钟中或将其覆盖。使用本选项去截取相同源的复合时钟。理想状态,一个生成时钟必须设定为每个时钟扇出的源接脚。如果你使用该选项,必须同时使用-name 选项。
定义相同源接脚或端口的复合时钟,会增加运行时间和需要更多的内存,因为时序综合引擎搜索启动与截取组合的所有可能。使用set_false_path取消不希望有的组合。默认状态,忽略该选项,除非将timing_enable_multiple_clock_per_reg变量设为true 打开复合时钟分析.
source_objects
指定一组端口或接脚定义为要产生的生成时钟源。
-source master_pin
指定主时钟接脚,可以是一个主时钟源接脚或被主时钟驱动的一个接脚,并且是驱动生成时钟定义的接脚。主接脚的时钟波形用于驱动生成时钟波形。
-master_clock clock
如果多个时钟扇入这个主接脚,指定主时钟用于这个生成时钟。
-divider_by divide_factor
指定频率被除数。如果divide_factor为2,生成时钟周期是主时钟周期的两倍。
-multiply_by multiply_factor
指定频率倍数。如果multiply_factor为3,则生成时钟周期为原先的三分之一。
-duty_cycle percent
指定倍频使用时的占空比。允许0-100之间的数值。占空比是高电平脉冲宽度。
-invert
反转生成时钟信号,不管主接脚上,源时钟反应或判断(sense)是单因素决定(unate)还是非单因素决定(non-unate) (遇到倍频时)。
-preinvert
创建一个生成时钟基于反转的时钟信号,仅当主接脚源时钟有非单因素决定反应,或生成时钟不被反转,仅当该选项没有被指明时。-invert与-preinvert不同之处在于,-invert先创建生成时钟后反转信号,而preinvert是先反转信号,再创建生成时钟。
-edges edge_list
指定正整数列表,代表形成生成时钟沿的源时钟沿。沿解释为交替变化的上升和下降沿,并且每个沿不小于它之前的沿。沿的数值必须是不小于3的奇数,用来创建一个完整的生成时钟的波形。第一个沿必须大于或等于1。比如,1代表第一个源边沿,2代表第二个源边沿,依次类推。
-edge_shift edge_shitf_list
指定浮点数列表代表偏移量,指定的沿经过变化产生最终的生成时钟波形,单位与库时钟单位相同。指定的沿偏移量必须等于沿指定的数值。数值可以为正或负。正数表示延后,负的表示提前。比如,1代表相应的沿被延后了1个时间单位。
-combinational
指定源滞后路径,作用于某个类型的生成时钟,其包含主时钟传播组合路径上的逻辑。源滞后路径不会通过序列单元的时钟接脚,透明锁存器数据接脚,或其他生成时钟的源接脚。
描述:
create_generated_clock命令在当前设计中创建一个生成时钟。该命令定义一个对象列表作为当前设计生成时钟源。你可以指定接脚或端口作为生成时钟对象。命令同时指定被生成时钟源。使用该命令的优势在于,无论何时主时钟发生改变,生成时钟也同时发生改变。
生成时钟可以进行变频处理,降低频率时使用-divide_by选项,增加频率时使用-multiply_by选项,沿派生使用-edge选项。另外,频率在除或乘时也可以用-invert选项进行反转。沿派生时钟的沿偏移使用-edge_shift选项。-edge_shift使用在对沿的故意偏移,而非时钟滞后。如果生成时钟使用divide_factor 是2的幂,主时钟上升沿被用来决定生成时钟的沿。如果divider_factor不是2的幂,则是从对主时钟沿尺寸改变得来。
对已有的generated_clock使用create_generated_clock,会覆盖已有的generated_clock属性。
generated_clock在时序分析时被扩展为真实的时钟。 以下命令能够引用generated_clock: set_clock_latency set_clock_uncertainty set_propagated_clock set_clock_transition
显示有关生成时钟的信息使用report_clock命令。
多条件多模式支持:
该命令仅使用当前方案中的信息。
范例:
创建频率-divide_by 2的生成时钟
create_generated_clock –divide_by 2 –source CLK [get_pins foo]
创建频率-divide_by 3的生成时钟。主时钟周期为30, 主波形为{24 36},则生成时钟周期为90,波形为{72 108}
create_gneraged_clock –divide_by 3 –source CLK [get_pins div3/Q]
创建频率-multiply_by 2的生成时钟,占空比为60%。
create_generated_clock –multiply_by 2 –duty_cycle 60 –source CLK [get_pins foo1]
创建频率-multiply_by 3的生成时钟,占空比不变。如果主时钟周期为30,主波形为{24 36} ,生成周期为10,波形为{8 12}
create_gnerated_clock –multiply_by 3 –source CLK [get_pins div3/Q]
创建生成时钟沿为主时钟的1,3,5沿。如果主时钟周期为30,波形{24 36},生成时钟周期为60,波形为{24 54}
create_generated_clock –edges {1 3 5} –source CLK [get_pints foo2]
与上个例子相似,但沿偏移1个单位。如果主周期为30,主波形为{24 36},生成时钟周期为60,波形为{25 55}
create_generated_clock –edges {1 3 5} –edge_shift {1 1 1} –source CLK [get_pins foo2]
创建一个反转时钟
create_generated_clock –divider_by 2 –invert
更多
check_timing, create_clock, get_generated_clocks, remove_generated_clock, report_clock, set_clock_latency, set_clock_unertainty, set_propagated_clock, timing_enable_multiple_clocks_per_reg
set_clock_latency指定时钟网络滞后
语法:
string set_clock_latency [-rise] [-fall] [-min] [-max] [-source] [-early] [-late]
[-clock clock_list] delay object_list
数据类型:
clock_list 列表
delay 浮点 object_list 列表
参数:-rise
指示delay仅应用于上升类型时钟网络滞后。默认情况下,delay应用于上升和下降类型时钟网络滞后。
-fall
指示delay仅应用于下降类型时钟网络滞后。默认情况下,delay应用于上升和下降类型时钟网络滞后。
-min
指示delay仅应用于最小延迟类型时钟网络滞后。默认情况下,delay应用于最大最小类型时钟网络滞后。
-max
指示delay仅应用于最大延迟类型时钟网络滞后。默认情况下,delay应用于最大最小类型时钟网络滞后。
-source
指示delay仅应用于时钟源滞后。默认情况下,delay应用于时钟网络滞后。
-early
指示delay仅应用于最早时钟源滞后。默认情况下,如果-source指定,delay应用于最早最晚时钟源滞后。
-late
指示delay仅应用于最晚时钟源滞后。默认情况下,如果-source指定,delay应用于最早最晚时钟源滞后。
-clock clock_list
指示delay应用于相关时钟。默认情况下,delay应用于所有指定目标。
delay
指定时钟滞后值。
object_list
指定时钟,端口或接脚列表用于时钟滞后设定。
描述:
两种类型时钟滞后可以指定给设计。时钟网络滞后是时钟信号从时钟定义点传播到寄存器时钟接脚的时间。上升和下降滞后分别表示在寄存器时钟接脚的上升和下降转变的滞后。时钟波形的反转,如果出现在时钟网络中,当计算时钟网络在寄存器时钟接脚处的滞后时,要带进去考虑。时钟源滞后(或称为插入延迟)是对于一个时钟信号从它的实际理想波形原点传播到时钟定义点的时钟。当时时钟产生电路不是设计的一部分时,它通常定义为片外时钟滞后。对于生成时钟,时钟源滞后通常定义为从主时钟到生成时钟定义点的延迟。-early和-late选项通常指定最早和最晚时钟源滞后。
如果多重时钟允许应用于每个对象,可以用-clock选项指定时钟滞后来考虑每个时钟。不同的值被应用,这样不同的时钟网络就有不同的时钟滞后。