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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 694|回复: 6

[求助] ICC2: datapath delay相关问题

[复制链接]
发表于 2024-5-23 00:01:01 | 显示全部楼层 |阅读模式
50资产

想要请问各位大大,ICC2是否有方法可以得到design中所有datapath的delay? 包含的资讯如下:
1. start point
2. end point
3. datapath delay

其中datapath包含: in2out, in2reg, reg2reg以及reg2out

谢谢各位了!

最佳答案

查看完整内容

可以用get_timing_path抓相关的值,要抓某个path group只需要带上 -group这个选项 举个例子: set paths [get_timing_paths -max 1000000] foreach_in_collection path $paths { set stp [get_object_name [get_attribute $path startpoint]] set edp [get_object_name [get_attribute $path endpoint]] set slk [get_attribute $path slack] echo "$stp \t$edp \t$slk" >> start_end_pair.rpt } get_timing_pat ...
发表于 2024-5-23 00:01:02 | 显示全部楼层
可以用get_timing_path抓相关的值,要抓某个path group只需要带上 -group这个选项

举个例子:
set paths [get_timing_paths -max 1000000]
foreach_in_collection path $paths {
    set stp [get_object_name [get_attribute $path startpoint]]
    set edp [get_object_name [get_attribute $path endpoint]]
    set slk [get_attribute $path slack]
    echo "$stp \t$edp \t$slk" >> start_end_pair.rpt
}

get_timing_paths的具体用法、选项、attribute可以查看:
man get_timing_paths
list_attributes -class timing_path -application
 楼主| 发表于 2024-5-27 13:24:15 | 显示全部楼层
本帖最后由 Pacific-Feng 于 2024-5-27 14:34 编辑

zero_0 发表于 2024-5-24 14:44
可以用get_timing_path抓相关的值,要抓某个path group只需要带上 -group这个选项

举个例子:


我刚刚用您的方式产生datapath的delay (如start_end_pair_routing.rpt),并且与使用report_timing的delay对比(如datapath_delay.log),但是里面的slack情况不同(我用report_qor,发现WNS为3.02,与report_timing的结果较为符合)。想要请问您的方式为什么会出现比WNS更小的slack?

并且您的方式在floorplan与routing得到的slack会相同,不确定为什么会有这样的结果。

datapath_delay.txt

7.69 MB, 下载次数: 1 , 下载积分: 资产 -3 信元, 下载支出 3 信元

start_end_pair_routing.txt

202.42 KB, 下载次数: 1 , 下载积分: 资产 -2 信元, 下载支出 2 信元

发表于 2024-5-27 14:31:17 | 显示全部楼层


Pacific-Feng 发表于 2024-5-27 13:24
想要再请问个问题,用您这个方法在floorplan stage所得到的datapaths以及在routing stage所在的datapath ...


请问你是怎么判断eport出来fp跟rt stage的datapath不一样的?


fp到rt的寄存器没有改变(single bit <-> multi bit这种变换在时序路径本质上没有区别),function mode始点终点没有改变(除非是重新吃不一样的SDC,另外scan reoder会改变test mode的路径)
当然路径中的组合逻辑可能会有变化
 楼主| 发表于 2024-5-27 14:42:01 | 显示全部楼层
本帖最后由 Pacific-Feng 于 2024-5-27 15:10 编辑


zero_0 发表于 2024-5-27 14:31
请问你是怎么判断eport出来fp跟rt stage的datapath不一样的?


您好,

我当时是用report_timing这个指令来找出所有的datapath,并且log中会有类似这种关键字:

Startpoint: u_issue/u_pipe_ctrl/opcode_e1_q_reg[7] (rising edge-triggered flip-flop clocked by clk_i)
Endpoint: u_fetch/branch_pc_q_reg[12] (rising edge-triggered flip-flop clocked by clk_i)



但是我在fp得到的log与在rt得到的log,虽然datapath数量是相同的,但是里面的start_point与end_point没办法进行对应。

档案我放在drive(https://drive.google.com/drive/folders/1o333C01zswakO-OCX68ie6O3-pQJxM7v?usp=drive_link),因为放在平台好像要信元><

麻烦大哥了 卡很久了哈哈 会再给你多一点信元


目前我会在fp阶段用set paths [get_timing_paths -max 1000000]去找出所有path
之后在rt阶段用

foreach_in_collection path $paths {
    set stp [get_object_name [get_attribute $path startpoint]]
    set edp [get_object_name [get_attribute $path endpoint]]
    set rtpath [get_timing_paths -from $stp -to $edp]
    set rtslack [ get_attribute $rtpath slack]
    echo "$stp \t$edp \t$rtslack " >> start_end_pair_rt.rpt
}


但是我利用fp阶段得到的datapaths,之后到routing阶段去取slack时,她出现的slack不会包含WNS (也就是说最负的slack与WNS不同)。
不确定哪里出错了qq
发表于 2024-5-27 15:40:11 | 显示全部楼层


Pacific-Feng 发表于 2024-5-27 14:42
您好,

我当时是用report_timing这个指令来找出所有的datapath,并且log中会有类似这种关键字:


1. 每个endpoint都可能有多个startpoint

2. report_timing/get_timing_paths 默认每个endpoint只report一次,例如u_mul/result_e2_q_reg[31]这个endpoint,在fp阶段startpoint为u_mul/operand_a_e1_q_reg[2]时slack最小,在rt阶段startpoint为u_mul/operand_b_e1_q_reg[0]时slack最小,如果同一个endpoint想报出更多的路径需要指定-nworst
例如将set paths [get_timing_paths -max 1000000]改成set paths [get_timing_paths -max 1000000 -nworst 100]

另外,你的时钟设得太快了吧,本来想设10MHz的结果设成10GHz?(timing report看上去time unit是 ns)
 楼主| 发表于 2024-5-28 13:16:25 | 显示全部楼层
本帖最后由 Pacific-Feng 于 2024-5-28 13:18 编辑

zero_0 发表于 2024-5-27 15:40
1. 每个endpoint都可能有多个startpoint

2. report_timing/get_timing_paths 默认每个endpoint只report ...


谢谢大哥,我大概懂您的意思了~


另外那个clock period我是故意设这么小ˋ的哈哈,因为我想要让他的WNS是负的~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-12-29 03:53 , Processed in 0.024971 second(s), 9 queries , Gzip On, Redis On.

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