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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 5673|回复: 10

[讨论] 讨论几个题目,牛人请来指点下哦。

[复制链接]
发表于 2011-11-30 21:36:35 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 xixizhihua 于 2011-11-30 22:07 编辑

兄弟们最近被问跪了的题目,好多我都没弄过,我觉得难度好大啊,期待大牛解答下。
提问:
1,在设定sdc的时候,如何加lantancy,使prects和postcts之间的误差降低。
2,时钟树的uncertainty和lantancy如何区分?
3,如果设定时lantancy分为从根到叶节点的一段延迟,和叶节点到寄存器的延迟。这两段延迟的lantancy,在生成CTS后,哪段的lantancy可以不用再设定了。
4,如果让你把用perl读入一个网表,你用什么数据结构,把网表存到你的脚本中。例如你想知道所有的时钟路径的连接关系,或者时钟路径上的buffer情况,或者给你一个时钟port列表,让你把所有的涉及到的reg都找出来。
5,如果让你脱离encounter,用脚本做区域布线,你将如何考虑。
6,如果从底层block往顶层放,发现芯片的skew过大,根本无法满足要求,要怎么解决。
发表于 2011-11-30 22:06:27 | 显示全部楼层
1. 降低PreCts跟PostCts直接的误差,可以在Place阶段设定一个clock uncertainty的值,这个值可以是你的target Clock Skew的值。
2.
3.
4.
5.看他们能付多少钱,给得多的话,我会仔细考虑。
6,在顶层balance Skew
发表于 2011-11-30 22:49:52 | 显示全部楼层
4:如果需要PERL读入一个网表,做成数据结构。我情愿拿C语言来写,速度又快,数据结构支持又好,我总觉得PERL对数据结构的支持不好。

大家有什么建议?
发表于 2011-11-30 22:57:06 | 显示全部楼层
6 顶层做blance,但是可能导致在顶层来看LANTANCY过大,OCV过大,那就对不起了,BLOCK重做吧

有什么建议?
发表于 2011-12-1 09:07:49 | 显示全部楼层
1,在设定sdc的时候,如何加lantancy,使prects和postcts之间的误差降低。
A:预测postCTS的latency,如果需要align的clock,按照要求加同样的latency

2,时钟树的uncertainty和lantancy如何区分?
A:latency是clock tree insertion delay,uncertainty是jitter+skew

3,如果设定时lantancy分为从根到叶节点的一段延迟,和叶节点到寄存器的延迟。这两段延迟的lantancy,在生成CTS后,哪段的lantancy可以不用再设定了。
A:一般来讲,叶节点就是寄存器。我猜他想问source latency和network latency,CTS后,network latency可以去掉

4,如果让你把用perl读入一个网表,你用什么数据结构,把网表存到你的脚本中。例如你想知道所有的时钟路径的连接关系,或者时钟路径上的buffer情况,或者给你一个时钟port列表,让你把所有的涉及到的reg都找出来。
A:(去问EDA工程师吧,我们做后端的,不管这个)

5,如果让你脱离encounter,用脚本做区域布线,你将如何考虑。
A:思路是一样的,至少要考虑timing,congestion

6,如果从底层block往顶层放,发现芯片的skew过大,根本无法满足要求,要怎么解决。
A:(什么意思?没明白)
发表于 2011-12-1 14:33:16 | 显示全部楼层
4,如果让你把用perl读入一个网表,你用什么数据结构,把网表存到你的脚本中。例如你想知道所有的时钟路径的连接关系,或者时钟路径上的buffer情况,或者给你一个时钟port列表,让你把所有的涉及到的reg都找出来。
me:  perl处理gate verilog确实有点复杂,我上次写了个,net的迭代关系太复杂了,还没
写到net ,只写了module level,
数据结构肯定是引用和复杂hash表啊,perl最复杂的数据结构就是这个了,
就是一级引用一级, key值可以自己选,比如net, module, port,
如果所有net的连接关系都清楚了,clock上就算不了啥, 有port当然简单,
这个东西用tcl做还简单,比如synopsys tcl,


5,如果让你脱离encounter,用脚本做区域布线,你将如何考虑。
手工route啊, 拉custom wire,或者icc,哈哈,

6,如果从底层block往顶层放,发现芯片的skew过大,根本无法满足要求,要怎么解决。
底层多加margin啊, 满足ocv的一些影响,这样top level才会感到轻松,
 楼主| 发表于 2011-12-1 19:11:28 | 显示全部楼层
本帖最后由 xixizhihua 于 2011-12-1 19:18 编辑

太谢谢版主们的指点啦。
回答得太到位了。现在前面几个概念清楚了。

对了,那道perl读网表,确实是要用复杂hash结构。可惜我perl功力不够,只作过简单hash。
结果,在分析的时候,用的是一层套一层的一维hash数组来做例子,
思路是port/pin做keys,net来坐value,但是net的链接关系实在处理不好,
工程师并不满意。
又砸出了脚本布线问题,我这个问题思路更不清晰。
最后,工程师评语,perl还有很多你想象不到的应用。
我无奈地跪了~~~技术不过关,怨不得别人啊。

我要知耻而后勇,继续努力了。
各位大神们,对于这类复杂数据结构的perl编程,能不能指点下,该如何入手学习呢?
原来基于文本处理,和简单流程的经验,在处理大规模复杂数据时候,搞不定了~~~~
发表于 2011-12-2 09:14:53 | 显示全部楼层
对,intermittent perl, perl programming 里面讲了这个数据结构和引用,

learning perl 里面没讲这个, 你看看脚本语言版,下载点书籍,

perl处理verilog的难点是:
1)net是hierarchical的,因为可以穿过各个module连接到一起, module多了
这个处理起来很烦的,如果是一个module,当然没问题
2) pin也是hier的,也是同样的问题,
你如果能写到 读入一个hier verilog, 然后perl处理,写出一个flatten的,然后formal过,
就说明你正确了,其实很难的,我都没写出来,写到后来net的连接关系太复杂了,
还要用递归,

其实这个可以用tcl处理简单, perl实在不行的话,
发表于 2011-12-2 12:56:13 | 显示全部楼层
对了,perl有专门的parser module如
use Parse::RecDesent  ;  是万能的parser ,只要写相关的读入语法就行了,
你可以试试,

还有很多这种parser模块,
 楼主| 发表于 2011-12-2 15:32:40 | 显示全部楼层
回复 9# icfbicfb


    好的,谢谢版主,我这就去CPAN找。
    哎,最近受刺激了,见到大牛才知道自己渺小~~~
    正在狂补perl技术中。早点把intermediate perl里的内容搞清楚。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

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

GMT+8, 2024-11-25 08:20 , Processed in 0.020960 second(s), 7 queries , Gzip On, Redis On.

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