set_ideal_network在分频模块的输出上,无法成功
一个分频模块,可以分2分频和8分频 32分频
clk_div inst_clk_div (
.clk (clk) //source clock
.clk2(clk2),
.clk8(clk8) ,
.clk32(clk32)
) ;
综合的的时候约束
set_ideal_network [get_pins inst_clk_div/clk2] 报告warning:Object "link83" is invalid。it must be a pin of a leaf or a port
set_dont_touch_network [get_pins inst_clk_div/clk2] 设置成功,
求助,这是为何?
Warning 不是说明了吗? ideal_net_work 必须设置在leaf pin 或port 上。也就是说,不能设置在hierarchical pin 上
如果我希望的是将分频的输出的时钟设置为ideal_network,那我应该如何处理?
抓leaf cell的pin不就好了么
我明白你的意思,如果分频时钟是单纯的计数器输出的话,比如count_reg[4],那么我可以在sdc里面夹扇约束
create_generate_clock -source -divide_by 32 [get_pins counter_reg_reg_4_/Q]
但是如果一个分频是经过如下处理了
assign clk2 = (en)?counter_reg[2] : 1'b0 ;
只有在en信号为逻辑1的时候才能将clk2输出,那么我create_generate_clock的2分频的get_pins应该要找counter_reg_2_还是clk2?
counter_reg[2] 的输出会接到clk2,对吧?这样的话,get_pins应该要找counter_reg_2_。有en,那么 寄存器就会变为有使能信号的寄存器。
综合的网表来看,count_reg_2/Q输出的2分频时钟,然后count_reg_2/Q和en信号为一个与门的输入,与门的输出即为clk2.
因此,我考虑是否可以将get_pins抓的是count_reg_2的Q端,然后set_case_analysis加到这个与门上,将en信号case在逻辑一上,不知道有问题么?
不需要设case就可以了。
不要设case么?
那么工具在从与门输出的结果,工具怎么能够将这个输出认为是有效的时钟输出,而不是“锁定”在逻辑零。
只要不是一直锁定就好。你的功能本来就是这么写的。工具会考虑到各种情况的。