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

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

文章右侧广告为官方硬广告,与吾爱IC社区无关,用户勿点。点击进去后出现任何损失与社区无关。

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

2019 年数字 IC 后端校招笔试题目(附数字后端培训视频教程)

低功耗设计中 Isolation cell

对于低功耗设计, 基本上要用到 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 后的效果如下图所示。

推荐阅读:

低功耗设计实现中 secondary power pin 的连接方法汇总

这些低功耗设计实现经验,你真的懂了吗?

如果项目已经到后期(离 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 摆放呢?小编告诉你这是故意而为之,大家知道是基于什么方面的考虑吗?

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 附近。

其他情况

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

小编知识星球简介:

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

  • ICC/ICC2 lab 的编写

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

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

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

  • 时钟树结构分析

  • 低功耗设计实现

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

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

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

https://mp.weixin.qq.com/s/dVifYoZ2UD9p9LLNwkZEhg

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值