• 注册
  • 查看作者
  • 数字IC后端自主命题题目深度解析(附知识星球本周问答精选)

    这周是小编过年后的第一个工作周,今天又到周末了,小编公众号依然要更新一篇文章。目前暂定公众号每周一更,主要精力集中在运行知识星球和数字后端培训课程的定制编写。今天分享一道年前小编自己命题,发布在知识星球上的作业题目,这道题目考察的知识点覆盖整个数字后端implementation。

     

    1. 模块A和模块B为两个power domain,其他区域为TOPTOPAlways ON

    2. CORE_CLK下的sink分布在模块A,模块B,各个SRAM时钟端以及TOP区域,即模块A,模块BTOP彼此是同步的;

    3. 模块A中的reg到接口处的逻辑级数特别长,约26级左右,即regoutput到模块A的输出端portdelay比较大,约为1.6ns;CORE_CLK的周期T=2.5ns。

    4. SRAM数量较多,每个memory pin的数量比较多,约500个;

     

    数字IC后端笔试题目

     

    以上为已知条件,请大家思考如下几个问题。这道题的知识点可以涉及数字后端PR全过程,欢迎大家积极参与讨论。这道题如果你能够轻松解答,年薪50万以上不是问题。

     

    1.该设计是否存在不合理性?

    2.为何模块A和模块B要做power domain

    3.模块A和模块B输出端是否需要加isolation cell? 如果需要加isolation cell,有何优缺点?PR过程需要如何处理?

    4.如果Isolation cellinput 不小心被插入buffer甚至inverter pair,而且不允许重新跑flow,应该如何高效解决?

    5.对于hierarchy方式实现的design,如何优化接口处的timing

    6.时钟树综合clock tree synthesis应该要如何做?时钟树结构是否合理?

    7.如果placecto后的timing一致性比较好,routetiming变差200ps,如何分析解决问题?

    8.该设计的timing瓶颈会在哪里?在PR实现时有何难点?

    星球成员回答精选:

     

    张馨然  能力有限,回答就当个笑话看了^_^ 

    1.A B模块channal的处理;sram 要看是否有复用,来决定是否pinpin放,还有尽量挨着core,好routing,也要看数据流什么关系进行摆放。

     

    点评:A和B模块之间的channel确实需要留好,大了则浪费面积,小了则可能有绕线问题,时钟质量可能也不理想。

     

    2.如果A Btop不同voltage,或者有shut down需要做power domain 

     

    点评:之所以做power domain,主要是考虑产品应用方面的需求,比如超低功耗需求的产品。如果不做power domain的话,A和B模块是一直处于ON的状态。

     

    3.假设top 1.5vA 1.2v with shut down B 1.8 v alway on 1A B 模块都需要加iso cellA模块需要带level shift功能的isn cell 2A模块中LSISO放在top区域,只需要一套电源即可,否则放在A中需要second pgB模块放在B top均可,都为alway on,但是不同电压要用不同cell (3)无论放在模块还是top中,都要dont touch

     

    点评:假设条件与题设不符,已经条件模块B是一个Power domain。A模块和B模块的输出端都需要加isolation cell,且isolation cell需要放置在AON的domain,即TOP区域。加Isolation cell后会增加一级的cell delay,会使得模块A和TOP之间的timing更紧。在数字后端实现时,需要选用合适驱动大小的isolation cell,并将isolation cell的input端设置dont_touch。

     

    4.打断iso cell,直接和output直接,在连接buf 

     

    点评:思路是对的,但是如果仅仅是改变连接关系,可能此时Isolation cell的位置距模块A/B的输出端较远,可能存在max transition的问题。因此,还需要将isolation cell的位置和buffer的位置互换下。如果插入的是inverter pair,处理起来要稍微复杂点。相应的处理脚本已经发布在星球上。

     

    5.我现在的flowtop down的,有前端单独给我partationsdc,我的做法一般是加严端口,为top服务。 

     

    点评:子模块接口处加紧io的约束,但是需要掌握好度的问题。

     

    6.针对这个不好分析。 

     

    点评:时钟CORE_CLK太早分叉(模块A和TOP),common path太短,CRPR补偿不尽人意,严重影响整个design的timing(特别是当clock tree latency比较长的时候)。因此,需要对时钟进行ECO,并添加clock guide buffer来人为将common path做长。

     

    7.route后变差的话,route主要是有真实datanet,可以用高金属层;也进行了fix hold动作,可能修过头了;或者useful skew前面用得过很了,修hold过头了

     

    点评:要找route后timing变差的原因,首先需要知道cto和route之间的区别,不外乎就是route后有真实的绕线了,不再是根据global route来估算RC。既然有实际绕线了,就还可能存在绕线线之间的串扰crosstalk。除了这些实质性的问题外,就是两个阶段的timing correlation问题,比如timing derating,clock uncertainty,rc scale fator等设置问题。

     

    第八问留给各位思考。

     

    青玄  我现在初学PR,但是在星大社区仔细看过第四个问题的解决办法,对isolation的输入和buffer输出端断开连接到buffer输入eco,不知道我的回答对不对

     

    Andy 回复 吾爱IC  5.对于hierarchy设计是否应该用ilm model呢? 模块实现时,端口时序修不干净,该如何解决?

     

    点评:用ILM和ETM model都可以。模块实现时能做的就是将接口相关path上的data path优化到极致,对应top的path也需要优化。如果这样做之后仍然搞不定,那就需要改设计或者做pipeline。

     

    今年你们发年终奖了吗? 聊聊年终奖背后的市场逻辑

     

    星球本周问答精选

     

    以下几个问答挑选自小编知识星球上星友提问,分享给各位。限于篇幅,小编的回答和点评,请移步知识星球查看。

     

    1.匿名用户 提问: 版主FEtweaker修完timing后,BE ecoRoute之后clock会被变成routeddetour的,ecoRoute之前clockfix的,有什么原因会导致呢?

     

    2.我爱ic 提问: 亲,logically_exclusive physically_exclusive有什么区别?目前只知道exclusive pin指只在当前skew groupbalance,其他group里包含这些pin也不作balabce

     

    3.匿名用户 提问: 大佬您好,关于cts这一块,面试官会感兴趣哪些方面?

    其实这个问题看公众号和星球上的问题足以应对资深工程师的面试

    4.匿名用户 提问: 星住,请教一下我做cts的时候,根据cell分布大致平均分,预先插入了2driver,现在问题是单个treelatency真的好差,被插入了好多的inv,树真的好长,请问一般情况怎么做短latency呢?用大buffer?控制tree的级数?好的绕线层?都已经尝试了!!并且设了latency,并没有什么用!请星主指导一下

     

    5.匿名用户 提问: 群主,为什么加decapir会变好啊?

    6.小娟姐姐 提问: 请问针对该题以下解答是否正确 1、最高工作频率计算 TCLK  >= [Tlaunch + Tck2q + Tdp] – Tcapture + Tsetup TCLK  >= 0+2+5– 2 +3 = 8 ns 最高频率为125MHz 2FF2 hold slack [Tlaunch + Tck2q + Tdp] - [Tcapture + Thold] =0+2+52+6= -1 存在hold违例. 修复方法: 删除>=1 capture 路径Buffer 或插入>=1 launch 路径Buffer

    7.梦飞 提问: 星主,最近一直在看cts方面的资料,心中还是有比较多疑惑,想请您百忙中抽出时间来解答一下,非常感谢!CTS中的一般约束max clock transitionmax clock fanout,max capacitance,uncertainty,skewlatency应该怎么设?主要是参考哪些信息来设置?

    8.匿名用户 提问: 请问动态IR-drop分析中有10%的压降。虽然是符合规定,但有一点搞不清楚,例如在timing signoff中逻辑库中描述的电压是ss0.81vtt0.9vff下为0.99v按照这些电压值来signoff,是在哪里考虑到那10%的压降,或者说是如何保证出现10%压降后时序仍然是没问题的?谢谢

    9.ICer 提问: 星主你好,新年快乐。想请问你一个问题,我有个block cell 数量才40w,利用率一直做不上去,即使不到40%的利用率也还是有几百条short,database感觉是线太多了,绕的太密,但是不是知道从哪儿找到具体的数据来证实,ICC2里面提供这样的命令吗,谢谢

    10.匿名用户 提问: 小编,请教一下时钟树要怎么做怎么balance skew

    小编知识星球简介

    在这里,目前已经规划并正着手做的事情:

    • ICC/ICC2 lab的编写

    • 基于ARM CPU的后端实现流程

    • 利用ICC中CCD(Concurrent Clock Data)实现高性能模块的设计实现

    • 基于ARM 四核CPU  数字后端Hierarchical Flow 实现教程

    • 时钟树结构分析

    • 低功耗设计实现

      定期将项目中碰到的问题以案例的形式做技术分享

    在这里,各位可以就公众号推文的内容或者实际项目中遇到的难题提问,小编会在24小时内给予解答(也可以发表你对数字后端设计实现中某个知识点的看法,项目中遇到的难点,困惑或者职业发展规划等)。

    反正它是一个缩减版的论坛,增强了大家的互动性。更为重要的是,微信有知识星球的小程序入口。星球二维码如下,可以扫描或者长按识别二维码进入。目前已经有113星球成员,感谢这113位童鞋的支持!欢迎各位铁杆粉丝加入!终极目标是打造实现本知识星球全员年薪百万的宏伟目标。(星球的门票即将调整到228元/年,有需求的朋友趁早上车,目前价格已经提高至208元/年,折算每天需要六毛钱 

     

    点击下方“阅读全文”了解更多

    本篇文章来源于微信公众号: 吾爱IC社区

  • 0
  • 0
  • 0
  • 833
  • 单栏布局 侧栏位置: