后端在floorplan阶段,如何摆放macro是一个很重要的问题。如果采用层次化设计,对于每一个block来说都需要在block内部把所分配的macro摆好。
如果某一个block里的macro很多,又很大,std cell再多一些,utilization就会很大,相应的这个block的floorplan就比较难做,而其他block的utilization很小,这样的design就不太好。
我们总是希望所有的block都能有差不多的utilization,平均且充分地利用芯片的每一块面积,这就需要在block划分初期就做好预估。
这个问题需要前端与后端协调配合,block的划分是需要前端提供带有hierarchical结构的netlist,然而前端在做hierarchical的综合的时候,并不会过多考虑后端物理层面的信息,因此可能综合出的netlist各个block物理上不是那么均衡。
当然,这种netlist也是可以物理实现的,只是对于有些要求比较高的design来说,最后出来的芯片性能可能会有所不足。
这个时候后端工程师就可以反馈,比如说,把某个block的某个macro综合到另一个block里去,或者两个block就直接merge变为综合成一个block。收到反馈以后,前端工程师就可以重新综合,再给我们新的netlist来做物理实现。
以上这个过程可能需要迭代几次才能达到最佳效果,但这样会需要花费很多时间,导致芯片设计周期变长。一种更快速的方案是,前端首先综合出flatten的netlist,就是不带任何hierarchical信息的,出这种netlist的速度应该相对快一点。
后端拿到flatten的netlist之后,就知道了macro以及有关的std cell的面积了,这样后端就可以直接通过这些物理信息和逻辑信息来划分block,再把分配好的结果给前端,前端就可以参考这样的分配来做hierarchical层级。
不管是flatten的综合还是hierarchical的综合,出来的cell的count或area是差不多的,因此后端在拿到hierarchical的netlist之后,做出来的block物理情况应该也与之前用flatten netlist的预估差不多。
有一个可能疑惑的地方是,这里前端给的netlist永远是总的芯片的所有的netlist,不管是flatten还是带hierarchical结构的netlist都是一个file。
我们后端也会做netlist的划分,不过是根据前端给的那份netlist切割成好多个netlist给不同的block来用,相当于把一个文件变成多个文件,每个block拿一个,分割的依据是总的netlist的hierarchical结构。
有的时候资本家觉得上面的方法还是慢,并且还想追求比较好的芯片性能,就有人想出了更为讨巧的办法。这个方法牺牲了一定的准确度,但大大提高了速度。
就是说前端在综合之前就把ip和所用macro的信息提供给后端,而后专门有工程师来利用大数据机器学习的方法预估出每个ip相关的std cell的area和count。
没错,机器学习也应用到芯片领域了,一个ip在之前的芯片中用的越多,样本量就越大,学习的效果就越好。
后端就可以根据这一份预估的结果来进行block划分,然后把划分结果反馈给前端,前端就可以直接按这个方案综合,综合次数最少仅需一次!芯片设计周期大大缩短,但相应的划分的准确度也较难保证。
八类网线和六类网线的不同表现在哪些方面
iPhone8什么时候上市:取消Home键+新增糖果红色!低调中的奢华,艳而不娇!
比亚迪预计四季度销量将超特斯拉,成为全球纯电动汽车销量第一
智能门锁的出现意味着什么
业界资深人士加盟Exar模拟混合信号产品团队
芯片Block的划分问题解析
GlocalMe随身WiFi 众多旅行达人的必备上网设备
公用照明设备节能控制系统的设计
便携式土壤水分速测仪的功能介绍
相辅相成:无线边缘技术塑造医疗供应链
利用模拟开关实现T1/E1/J1的N+1冗余
四种常见的网络存储技术对比分析
Apple Watch真的要脱离iPhone独立支持LTE网络了 美国运营商将出售该设备
概念验证和原型设计嵌入式系统变得简单
综艺股份首条薄膜太阳能电池生产线于29日正式投产
无线路由器防止蹭网的方法和使用注意事项
国内四足机器人市场潜力爆发,谁能领跑一程
工程师怎样关注自己的健康问题
广凌科技:智慧教室控制面板,新功能全新上线
与众不同的体感试衣镜可解决你的选衣困难症