关于DC脚本中时钟分频的处理
脚本:create_generated_clock -name clk_200 -source clk_400 -divide_by 2
为何DC显示:Error:Required argument 'source_objects' was not found (CMD-007)
clk_400 must be port
信春哥,得永生
相当好
啊~非常感谢~我回去看看,可能真是此原因
我看过了,clk_400 是port没错。还有其他原因没?请大家帮帮忙
clk_400 有没有定义?
是不是要用[get_ports clk_400]接在clk_400后面?
刚才去试验了一下,发现按照这样写可能就没问题。
create_generated_clock -name clk_200 -source clk_400 -divide_by 2 clk_200
或者
create_generated_clock -name clk_200 -source clk_400 -divide_by 2 [get_ports clk_200]
也就是说,如果用create_clock命令的话,那么最后面应该加上这个clock。不然会被错误的理解,比如把clk_400当成了要create的clock,从而报出说-source没有找到相应的object。
有定义的~
谢谢,我明天过去试一下~
我试过了, create_generated_clock -name clk_200 -source clk_400 -divide_by 2 clk_200 也不行,
但是 create_generated_clock -name clk_200 -source clk_400 -divide_by 2 clk_400 就行了。很奇怪,clk_200可以随便变成任何名字,都不报错,而不一定是分频后的引脚名称。这样就不能起到定义分频引脚的目的了吧?真是太奇怪了!书上写的脚本到DC上常报错。大家还有办法没?
能把你的rtl和syn scripts都拿出来show一下吗?
脚本在别的地方的电脑上,而且那边不能上网,我争取抄下来回家传上来。请大家帮我看看
create_generated_clock clk_200 -source clk_400 -divide_by 2 [get_pins core/模块名/寄存器名/Q]
看起来有道理,如果clk_200不在port上,或许这里真应该使用get_pins。
寄存器名我怎么能知道呢?
寄存器名 就是你定义的那个2分频用的寄存器;
for example
reg clk_div2;
然后后面加上_reg, 即 clk_div2_reg
啊~谢谢~恍然大悟试试去~
解决了吗?
学习一下 DC
中自动做时序汇报的TCL脚本
create_generated_clock -divide_by 2 -name clk_200 -source [get_ports clk_400] [get_pins FF1/Q]
原来如此,懂了
原来如此,懂了
用create_generated_clock的时候,source clock要加上port或者pin的绝对路径,一般不会出问题。
