概述
今天给大家聊一聊芯片后端的两种设计思路:展平式设计(flatten)和层次化设计(hierarchical)。其实在很多工程项目中应该都有类似的设计方法学,对于芯片设计来说也不例外,这两种设计思路决定了我们的芯片将会如何物理实现。
展平化的设计方法是一种自下而上的设计思路,这种设计方法会一下子导入所有芯片中所需要的元件,而每个元件都要经过充分的验证,确保各个元件的功能无误。而后将所有这些原件组合,构成整个芯片系统。工程师在设计的时候,可以随意调动任意一个原件,也就是说所有元件都是看得到的,没有所谓的黑匣子。其实大家就可以单纯地理解为就是可以看到芯片所有内容的完整的设计。
层次化的设计方法是一种自上而下的设计思路。对于前端设计来说,它会首先分析整个芯片要实现的功能,而后划分(partition)为不同的功能模块(block),在划分的时候只关心每个模块的输入输出,不考虑模块内部具体是怎么构成的。之后再考虑每个模块要如何设计,模块的设计也可以分为展平化和层次化,最终最低一级的模块一定是要展平化设计的。对于后端实现来说可以完全遵循前端给的划分好的block,但如果前端给了展平式的网表,后端同样可以划分不同的block来做,这样对后端来说也是层次化设计。对于每个block,都会划分出它自己的netlist、sdc、lef、lib、upf等等。每位工程师可以负责单一的一个block,在block内部进行展平化设计,保证时序收敛,没有DRC等等,而后由一位工程师在top层将所有block联系起来,最终做到整个chip功能正常。
展平化设计的优点是可以看到chip中所有cell的信息,更容易做时序收敛,出现的violation也相对更好解。缺点是这种方法对于大型design来说,计算量过大,而且人员不好分配,很难充分利用资源,导致设计周期偏长。要知道芯片设计中,在保证良率的同时也要追求速度,当然这些都是资本的考量了。层次化设计最大的优点就是可以并行处理多个block,可以充分利用公司资源,大大减少了设计周期。然而需要在partition初期就对block进行充分的预估,做好timing的裕量(timing budget),可能会出现有些block好做,有些block难做的情况,甚至一些block无法做到时序收敛。这个时候就需要重新调整分配,或者进行局部的重新综合。而最终signoff的时候也是要flatten的看结果,相对比较复杂一些。
而对于现在2021年末,几乎所有design都是所谓的大型design了,很少有公司还会纯粹采取展平化设计思路,层次化设计已经渐渐成为主流。并且随着design越来越复杂,还会出现三层的设计结构,这也对我们后端设计工程师带来不小的挑战。
微信公众号:伟酱的芯片后端之路
最后
以上就是狂野蓝天为你收集整理的展平式设计和层次化设计方法的全部内容,希望文章能够帮你解决展平式设计和层次化设计方法所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复