在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 17647|回复: 30

[求助] PrimeTime读取sdf报错

[复制链接]
发表于 2012-10-12 11:35:01 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
请教各位一个问题:
      我现在做的数字顶层包含许多个module,我在dc中用top-down的方法compile编译后,write sdf sdc  和top.v, sdf sdc中都是只包含top,但是top.v却包含了许多module。在用PrimeTime做时序分析时read_sdf总是报找不到port、instance,应该怎样解决?
          特别说明:我以前都是打散的,现在时钟频率高,不能打散,纠结了好几天,麻烦大家有空的时候帮我分析一下!谢谢!!
           脚本及网表都在公司服务器上,没有办法贴出来
发表于 2012-10-12 11:48:49 | 显示全部楼层
SDC是flatten的,只要hierarchy name对得上,就好了
SDF要注意他的hierarchy 分隔符
还有,netlist如果有稀奇古怪的符号的话,麻烦会比较多
最近5年的DC,对输出的v/sdf/sdc的一致性处理得蛮好的,不应该出现对不上的问题
 楼主| 发表于 2012-10-12 14:27:04 | 显示全部楼层
陈版主您好!
我用的design compile 和PrimeTime都是2011版的,为了分析问题,我做了一个简单的例子,如下述:
源代码:
module mult(clk,nrst,a,b,p);
input clk;
input nrst;
input [31:0] a;
input [31:0] b;
output [63:0] p;
reg [63:0] p;

always@(posedge clk or negedge nrst)
if(!nrst)
  p <= 64'b0;
else
  p <= a*b;

endmodule
我的sdc文件大致如下:
#mult.sdc
set_max_transition 0.5 [get_designs *]
set_max_capacitance 4  [get_designs *]
set_max_fanout            10 [all_inputs]

create_clock [get_ports {clk} ] -name clk -period 5 -waveform {0 2.5}
set_clock_uncertainty 0.2 [get_clocks clk]
se_clock_transition 0.2 [all_clocks]
set_input_delay -max 0.5 -clock clk [get_ports  {a b}]
set_input_delay -min 0   -clock clk [get_ports  {a b}]
set_output_delay -max 0.5   -clock clk [get_ports {p}]
set_output_delay -min 0   -clock clk [get_ports {p}]


我的编译输出文件run如下:
#run
......
....
read_verilog ./scr/mult.v
current_design  mult
check_design
source ./scripts/mult.sdc
uniquify
compile
...
..
change_names -rule verilog -hierarchy
write -f verilog -h -o ./outputs/mult.v
write_sdf ./outputs/mult.sdf
write_sdc ./outputs/mult.sdc
...
..
 楼主| 发表于 2012-10-12 14:31:43 | 显示全部楼层
DC输出的网表大致如下:
#mult.v文件
module mult_DW_mult_uns_1( a, b, product );
...
....
...
..
endmoudle

module mult( clk, nrst, a, b, p );
....
..
...
...
endmodule
 楼主| 发表于 2012-10-12 14:38:44 | 显示全部楼层
DC输出的网表大致如下:
#mult.v文件
module mult_DW_mult_uns_1( a, b, product );
...
....
...
..
endmoudle

module mult( clk, nrst, a, b, p );
....
..
mult_DW_mult_uns_1  mult_12 ( ....);
...
endmodule
 楼主| 发表于 2012-10-12 14:43:43 | 显示全部楼层
DC写出的sdf文件格式大致如下:
(DELAYFILE)
(SDFVERSION "OVI 2.1")
(DESIGN "mult" )
..
.
.
.
(CELL
(CELLTYPE "mult")
(INSTANCE)
(DELAY
  (ABSOLUTE
.
.
.
.
(INTECONNECT mult_12/U2733/Z p_reg_52_/D  (0.000:0.000:0.000))
(INTECONNECT clk     p_reg_55_/clk  (0.000:0.000:0.000))
(INTECONNECT nrst  p_reg_55_/RD  (0.000:0.000:0.000))
.
.
.
.
 楼主| 发表于 2012-10-12 14:53:09 | 显示全部楼层
我的Primetime脚本的大致内容如下:
。。。
。。
。。。
set  slow_link_path {.....db}
set target_library $slow_link_path
set  link_library $target_library

read_verilog ./inputs/mult.v
link_design
list_designs
reports_cells
read ./inputs/mult.sdc
read ./inputs/mult.sdf
发表于 2012-10-12 15:13:28 | 显示全部楼层
除了下面的2句,没看见什么问题

source ./inputs/mult.sdc
read_sdf ./inputs/mult.sdf
 楼主| 发表于 2012-10-12 15:16:50 | 显示全部楼层
我的Primetime脚本的大致内容如下:
。。。
。。
。。。
set  slow_link_path {.....db}
set target_library $slow_link_path
set  link_library $target_library

read_verilog ./inputs/mult.v
link_design
list_designs
reports_cells
read ./inputs/mult.sdc
read ./inputs/mult.sdf
这时候link的是:
Linking Design mult_DW_uns_1....
..
Warning: Module 'mult' in file '.../mult_pt/inputs/mult.v' is not used in the current design
..
..
..
read_sdc时报错:
Warning: No port objects matched 'clk'(SEL-004)
Error: Nothing matched for clock_name
Error: Nothing matched  for prot_list (SEL-005)
...

read_sdf时报错:
Warning: The SDF file contains delays for the design 'mult' which is different from the current design 'mult_DW_mult_uns_1'
....
..
Error: Cannot fin pin 'p_reg_54_/Q'
 楼主| 发表于 2012-10-12 15:37:24 | 显示全部楼层
我如果把inputs/mult.v文件中的mult模块放在mult_DW_mult_uns_1模块的前面
这时候link的是:
Linking Design mult
报出警告
Warning:Unable to resolve reference to 'mult_DW_mult_uns_1' in 'mult'. (LNK-005)
Creating black box for 'mult_12/mult_DW_mult_uns_1'
Warning: Module 'mult' in file '.../mult_pt/inputs/mult.v' is not used in the current design
..
..
..
read_sdc 没有报错
...

read_sdf时报错:
Information: Merging of parallel arcs is disabled by read_sdf.(SDF-040)
Error: Cannot find pin 'mult_12/U2787/Z' in design 'mult' (DES-002)
Error: .....
Error: Cannot find instance 'mult_12/U5545'. All delays related to that instance are ignored.(SDF-011)
。。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-12-22 15:13 , Processed in 0.022414 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表