想用set_multicycle_path 但是不知道例化名,如何定位startpoing和endpoint
时间:10-02
整理:3721RD
点击:
我想用一下 set_multicycle_path 3 -setup -from [get_pins q1_reg/Q] -to [get_pins q2_reg/D],然后写了简单的verilog代码,如下:两个D触发器级连:
module test(clk,din,rst_n,q1,q2);
input clk,rst_n;
input din;
output q1,q2;
reg q1,q2;
always@(posedge clk or negedge rst_n)
if(!rst_n)
begin
q1<=0;
q2<=0;
end
else
begin
q1<=din;
q2<=q1;
end
endmodule
在sdc文件中加入了下面的话:
create_clock -name clk -period 1.2500 -waveform { 0.000 0.6250 } [get_ports clk]
set_clock_uncertainty 0.850 [get_clocks {clk}]
set_multicycle_path 3 -setup -from [get_pins q1_reg/Q] -to [get_pins q2_reg/D]
为什么timing report中还是检查的一个周期的
PointFanoutIncrPath
-----------------------------------------------------------
clock clk (rise edge)0.000.00
clock network delay (ideal)0.000.00
q1_reg/CK (HDR_DRNQ_2)0.000.00 r
q1_reg/Q (HDR_DRNQ_2)0.140.14 r
n2 (net)20.000.14 r
q2_reg/D (HDR_DRNQ_1)0.000.14 r
data arrival time0.14
clock clk (rise edge)1.251.25
clock network delay (ideal)0.001.25
clock uncertainty-0.850.40
莫非DC综合前不知道网表中有两个例化名是q1_reg q2_reg的D触发器,那我该怎么写呢
找到了一个方法,不知可不可行。
先不加特定的约束,dc完之后在生成的网表中找到例化名和端口,然后再讲约束添加到sdc文件中,重新做一遍DC