薄情先生|芯片向右,EDA向左( 三 )


2.虚拟平台建模 , 寄存器行为及硬件功能准确 , 缺乏timing信息 , 或使用cycleaccuracy的建模方式 , 在speedvs.accuracy之间达到一个平衡
3.Emulation
4.RTLsimulation
5.FPGA原型为软件开发提供环境
6.实体芯片为软件开发提供环境
同时IP还与综合工具 , 架构空间探索工具及平台深度整合 , 确保需求多变 , 先进工艺 , 约束严格的挑战下SOC对IP的使用高效 , 稳定 , 安全 , 易用 。 将这个事情交给EDA或像ARM这样的IP寡头做 , 这是相比SOC厂商自研和自选IP更加左移 , 更加高效的一种商业和技术场景 。
IP开发和复用的另外一个考量因素是Fab 。 对于更先进的技术节点 , 如何给SOC提供高效的IP复用和开发机制 , 这是IP开发人员 , SOC厂商和EDA合作伙伴之间的协作开发过程 。 它随着PDK的发展而发展 , 包括对RC提取 , EM规则的更改 , 包括新的寄生/器件上限等 , 一直到工艺技术成熟为止 。
Validation向左 , Verification向右来到了验证星球 , 随着上述IP解决方案的演化 , IP复用 , 建模 , VIP和生态发展以及软硬协同设计重新兴起 , 验证方法学也发生了很多相应的变化 , 传统verification是一个有限的逻辑问题 , 这是由仿真的机制决定的 , 靠有限空间的逻辑计算 , 理论上可以帮你找到你能想到的bug 。 但实际上芯片真实的工作场景要更chaos一些 , 保证质量不能只靠仿真 , 而且加上时间约束的话 , 这更加是一个不可能完成的任务 。 这 , 就是验证3.0需要解决的问题 。
在IP复用的年代 , 90年代后期 , 验证有了自己专属的语言和方法学 , 开启了SystemVerilog和UVM的黄金时代 。 这个时代的两个重要武器是constrained-randomstimulusautomatedtestcreation以及coveragemetricsdrivencoverageclosure.自动化和可扩展的程度大幅度提升 , 并使得VIP复用成为可能 。 但仍然是以bottom-up的验证策略为主 。
在10年代 , 随着验证方法学进一步演化 , top-down展现了完全不同的思路和格局 , 软件驱动的场景验证大放异彩 。 需要理解系统场景 , 用户场景 , 理解软件和硬件的协同 。 这是传统HVL方式无法企及的高度 , 随着simulation,emulation,FPGA原型验证 , 虚拟原型验证 , validation的兴起 , 对自动化程度 , 工具使用 , 软件工程还有设计方法都有很高的要求 。
验证的目标也从传统的发现bug , 找出所有的bug转移到保证芯片质量 , 进而在设计过程中内建质量 , 跨整个产品周期 , 在设计的每一步 , 最好是每一天 , 每个层级都能保证质量 , 向前迭代 , 一直往前走 , 避免返工 。 这样 , 走到最后 , 质量就是有保障的 。
这两个目标是有本质区别的 。 后者更加拟合我们现在所倡导的一种shiftleft的方法学 。
具体体现在
将验证的工作跨整个产品周期 , 深度融合了持续验证的思想 , 包括系统级 , 架构级 , pre-rtl , rtl,post-rtl , post-silicon , 跨产品周期的软件验证 , 安全验证 , 这是时间维度的shiftleft,shiftright