• 支付宝首页搜索框搜索“572484805”,可领十元红包!
  •    3个月前 (01-27)  数字后端实现 |   抢沙发  91 
    文章评分 0 次,平均分 0.0
    [收起] 文章目录

    数字IC后端设计实现中Magnet placement详细用法

     

    最近小编一直也比较忙,今天趁周末分享一个数字IC后端实现中用的比较多的几种应用,绝对干货,请自备茶水。说到magnet placement,我相信大家应该都不陌生,今天吾爱IC社区小编将全面介绍这个命令的几种应用场景及其注意事项。

    推荐阅读

     

    史上最全的数字IC后端培训视频下载

     

    低功耗设计中Isolation cell

     

    数字IC后端设计实现中Magnet placement详细用法

    对于低功耗设计,基本上要用到isolation cell和level shifter。吾爱IC社区小编之前推送过低功耗设计实现方面的经验分享,介绍过对于一个需要做power domain的A模块而言,其输出端需要加isolation cell,而且这些isolation cell的input端不能插任何的buffer。

    既然不能插buffer,那这类Isolation cell的摆放就不能纵容工具随意摆放,因为摆放的远了,很有可能会有max transition violation。一旦有violation,则无法fix。因此采取的做法就是对这类isolation cell进行magnet placement。做完magnet placement后的效果如下图所示。

    数字IC后端设计实现中Magnet placement详细用法

     

    如果项目已经到后期(离Tapeout只有一周的时间了,即不允许你重新跑flow),你发现在这类isolation cell的input端加了很多的buffer。碰到这种情况,怎么办呢?

     

    淡定,淡定,再淡定!既然有问题,就一定有解决方法(但是尽量还是要走正规流程)。这里简单提一下解决方法。主要通过eco的方式,断线,连线,并将isolation cell和buffer互换位置。这个方法可以做到timing上影响最小。具体的实现脚本可以前往小编知识星球上查看下载(星球年前只开放若干种门票哦!)。

     

     

    跨电压域中的Level shifter

     

    在跨电压域中首先要选好Level shifter的种类,是普通的level shifter(LS)还是enable level shifter(ELS)。其次要确定Level shifter是要加在source端还是destination端,这个就决定了所用level shifter的类型。最后确定到底level shifter的哪一端是不能插buffer的。涉及电压域的数字后端实现,就是这三点,掌握好了,超级简单,爽歪歪。

     

    如下图所示为一个实际案例。对于从power domain输出端到top的level shifter需要选用ELS,而且是加在source端的ELS。而从top到power domain的level shifter选用LS即可,加在destination端。因此,需要将下图中level shifter朝power domain方向的那一段设置dont_touch,并且是将level shifter和power domain的输出端做magnet placement。完成magnet placement后的效果如下图所示。

    下图中的level shifter之间为何不是一个个abut摆放呢?小编告诉你这是故意而为之,大家知道是基于什么方面的考虑吗?

     

    数字IC后端设计实现中Magnet placement详细用法

     

    Mux后的ICG

     

    很多时候我们希望clock tree上mux后面带的ICG能够跟MUX摆放在一起。为什么要这样做呢,大家好好思考下。为了实现这个目的,我们仍然可以用magnet placement来快速实现。只需要搞清楚那些mux控制哪些ICG,然后用一个命令就可以快速实现需求。

     

    之所以这么做主要还是低功耗方面的考虑,希望ICG的clock tree latency能够短一些,省一些leakage。但是这样做也是存在弊端的。为什么呢?这样做很有可能会导致动态IR Drop出现问题,是一个潜在的风险。

     

     

    Register到io需要做data balance

     

    这种场景也比较多见。小编之前也分享过某公司的校招笔试题,那道题就是考察data balance的问题。主要有两种方法实现。

     

    第一种:在所有register的输出端定义时钟,将io 设置为floating pin,并且将这些时钟做clock inter-balance即可。

     

    第二种:将这些register和io进行magnent placement,使得这些寄存器摆放在io附近。

     

     

    其他情况

     

    数字IC后端设计实现中Magnet placement详细用法

    粉丝福利(个人编制的一道题目,知识点覆盖整个数字后端P&R)

     

    数字IC后端设计实现中Magnet placement详细用法

    小编知识星球简介:

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

    • ICC/ICC2 lab的编写

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

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

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

    • 时钟树结构分析

    • 低功耗设计实现

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

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

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

    数字IC后端设计实现中Magnet placement详细用法

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

     

    除特别注明外,本站所有文章均为吾爱IC社区原创,转载请注明出处来自http://www.52-ic.com/?p=3875

    关于

    发表评论

    表情 格式

    暂无评论

    切换注册

    登录

    忘记密码 ?

    您也可以使用第三方帐号快捷登录

    切换登录

    注册

    扫一扫二维码分享