1. 为什么要功能验证?
如果用电子显微镜来观察芯片,你一定会惊呼神奇。微小的芯片包含了数十亿个晶体管,犹如一座复杂庞大的城。
想要设计一座城,像CAD、PS这样的设计软件可不能少。同理,想要设计这样既宏大又细微的芯片,必然需要相应的工具小助手,这便是EDA。面对这样庞大规模的芯片设计,工程师们不仅要确定芯片设计正确,还要确定设计正确的芯片。通常逻辑或功能上的错误占流片失败主要因素的50%。功能验证就能帮助工程师们发现其中的逻辑设计错误、性能不满足、设计代码功能bug等各种问题,最大程度上避免流片失败。
2. 功能验证有哪些?
像软件仿真、硬件仿真、原型验证等,都是现今比较主流的功能验证。
软件仿真,是基于硬件描述语言对数字电路设计进行功能和特性的仿真和验证。虽然它的编译速度和调试能力都很优秀,可反复使用和较低的部署成本也使它脱颖而出,但它的设计规模比较有限,只能针对模块级或芯片级的规模进行仿真。
而硬件仿真则不同,它是对完整封闭的芯片设计进行加速仿真并调试。它可以加速超大设计仿真速度,并支持自动编译和信号全可视,但其部署成本会很高昂,令许多初创企业望而却步。
原型验证则是将设计映射到FPGA。主要是通过模拟芯片的功能和应用环境,来验证芯片整体功能,并提供片上软件开发环境。因为相比硬件仿真,原型验证的运行速度更接近于真实芯片,可以配合软件开发者来进行底层软件的开发。这一流片前的软硬件协同开发,是其最不可替代的地方。
不同的验证方法有不同的优缺点。为了缩短芯片的上市周期,工程师们会在不同设计阶段选择不同的仿真验证工具,提高效率,加速整个芯片上市周期。 科普不易,欢迎点赞、关注加转发,为你带来更多EDA硬核科普。