数字后端知识点扫盲——芯片harden block的划分

         

       后端在floorplan阶段,如何摆放macro是一个很重要的问题,如果采用层次化设计,对于每一个block来说都需要在block内部把锁分配的macro摆好,如果某一个block里的macro很多,而且又很大,std cell再多一些,这样的话每个block的面积就会很大,相应的这个block的floorplan就比较难做,而其他的block的面积很小,这样的design就不太好,我们总是希望所有的block都能有差不多的面积,平均且充分的利用芯片的每一块面积,这就需要在block划分初期就做好预估。

         这个问题需要前端和后端协调配合,block的划分是需要前端提供带有hierarchical结构的netlist,然而前端在做herarchical的综合的时候,并不会过多考虑后端物理层面的信息,因此可能综合出来的netlist各个block物理上不是那么均衡,当然,这种netlist也是可以物理实现的,知识对于有些要求比较高的design来说,最后出来的性能可能会有所不足,这个时候后端工程师就可以反馈,比如说,把某个block的某个macro综合到另一个block里面去,或者两个block就直接merge变为综合成一个block,收到反馈后,前端工程师就可以重新综合,再给我们新的netlist来做block的划分。

           以上这个过程可能需要迭代几次才能达到最佳效果,但是这样会花费很多时间,导致芯片设计周期变长,一种更快的方案是,前端首先综合出打平的netlist,就是不带任何hierarchical信息的,出这种netlist的速度应该会相对快一些,后端拿到打平后的netlist,就知道macro以及有关std cell的面积了,这样后端就可以直接通过这些物理信息和逻辑信息来划分harden block,再把分配好的结果给前端,前端就可以参考这样的分配来做hierarachical层级,不管是打平的综合还是hierarchical的综合,出来的cell count或者面积是差不多的,因此后端在拿到hierarchical的netlist之后,做出来的block物理情况应该也与之前用打平 netlist的预估差不多。

          有一个可能疑惑的地方是,这里前端给的netlist永远是总的芯片的所有的netlist,不管是flatten还是带有hieracrchical结构的netlist都是一个file,后端也会做netlist的划分,不过是根据前端给的那份netlist切割成好多个netlist给不同的block来用,相当于把一个设计文件变成多个文件,每一个block拿一个,分割的依据是总的netlist的hierarchical结构(即若干个子系统)。

有的时候资本家觉得上面的方法还是慢,并且还想追求比较好的芯片性能,就有人想出了更为讨巧的办法,这个方法牺牲了一定的准确度,但大大提高了速度,就是说前端在综合之前就把IP和所有macro的信息提供给后端,而后端专门有工程师来利用大数据机器学习的方法预估出每个IP相关的std cell count和面积,没错,机器学习也应用到芯片领域了,一哥ip在之前的芯片中用的越多,样本越大,学习的效果就越好,后端就可以根据这一份预估的结果来进行block的划分,然后把划分的结果反馈给前端,前端就可以直接按照这个方案综合,综合次数最少只需要一次,芯片设计周期大大缩短,但是相应的划分的准确度也比较难以保证。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值