SoC功能不断丰富,带来的软硬件设计的复杂度不断提升
随着社会应用的不断丰富,芯片要满足日益增长的市场需求,那么芯片设计的选型就非常的关键,从制程、功耗、IP等方方面面的考虑,芯片的设计成本和制造成本在不断上升,厂商要尽量扩大单颗芯片的市场应用范围,也就是说要尽量集成多种功能,以提高公司对芯片投资的回报率。围绕着芯片开展的软件功能的开发作为一种有效的扩大单颗芯片功能范围,显得尤为重要。因为软件一侧也可以集成更多特性,不同软件功能则能满足特定市场化需求。所以围绕着硬件而来的软件代码都达到数十万行甚至更多。
另外,为了提升芯片的处理速度,SoC使用多核越来越普遍,另一个角度来讲,硬件的外设接口也会越来越丰富,出来硬件代码一侧的代码量和功能丰富程度越来越复杂,这种情况也会推动软件开发的复杂度。在芯片开发流程中,除了硬件复杂度提升,其实软件的复杂性也越来越高,这要求软件开发和硬件RTL开发一样,应在设计流程的早期就开始进行,这样芯片公司才能在流片前尽量保证整个芯片功能的准确性,进一步实现早日向市场投放芯片产品的目标。
FPGA的运行速度是软硬件协同仿真的最优选择
基于FPGA的原型验证系统是一种理想的软件开发平台,因为在这个平台上运行软件的速度至少比EDA级别的Simulation仿真等验证技术快数百倍甚至千倍。我们介绍过,Simulation、FPGA prototyping、Emulation这些验证技术在整个芯片验证流程中都占据不同的地位,但只有基于FPGA的原型验证系统才能实现足够快的速度以运行复杂的软件应用与操作系统。一般而言,最佳软硬件协同仿真验证要求系统跑的速度超过10MHz,甚至100 MHz以上的速度更好。而基于FPGA的原型验证系统是唯一能够实现上述速度的解决方案,这也正是FPGA原型验证系统得以在芯片设计公司中广泛应用的原因。
FPGA原型验证性价比更好
基于FPGA prototyping被广泛采用的另一个原因是低成本与高效率。复杂的SoC研发中,数十人甚至上百人的软件小组已屡见不鲜。FPGA的原型验证系统成本较低,部署方便,买供应商提供的对应规模的验证平台就能快速开展验证工作,因此可以被软件开发小组的不同成员广泛采用。只需要几个能迅速简历相应database的工程师就能迅速建立可以run起来的一套database。大多数软件开发工程师采用FPGA原型验证平台都能很快开始设计与软件debug工 作,比采用其它技术要方便且效率高。
FPGA Prototyping的深度调试功能
软件与硬件集成设计与验证是一项重要且艰巨的任务。通常而言,软硬件集成要在硬件RTL设计经过全面测试并确保没有问题之后才能进行。所谓的全面测试,更多的是在EDA级别的Simulation这个阶段一定要充分的验证。实际工作过程中,即便经过了所谓非常完备的Simulation的验证,一些难以发现的系统级的问题还是会在芯片开发后期阶段被验证工程师给debug出来。
SoC芯片中的问题深藏于系统中,软件和硬件之间的交互非常复杂且难以预测,因此 这些故障表现的方式是不确定的。光是构造相应的case就需要验证工程师具备十足的经验,而debug这些问题就更加困难,需要极长的时间,需要进行长期完备的验证工作,如果验证技术速度缓慢,那将非常影响芯片开发周期。此外,一旦验证发现到了问题,设计过程中的实际调试工作也会要求大量的时间和精力。FPGA原型验证系统的供应商一般会自主开发一些提升FPGA移植效率,提升用户管理与硬件管理的工具和深度调试的工具,这样一来,就大大提升了验证的效率。
FPGA Prototyping的发展方向
几乎所有的芯片设计公司都会采用了FPGA原型验证技术进行软硬件协同仿真。尽管讲了FPGA prototyping的诸多优势,但基于FPGA的原型验证系统并不能取代其它验证技术。而是现有各种验证技术的一个重要补充,与现有验证技术更好地集成与补充是FPGA原型验证技术未来发展的主要动力所在,比如加速Simulation级别的复杂IP的验证或者融合原型验证与硬件加速器的验证,将各种验证技术之间的GAP拉通。EDA厂商在FPGA原型验证系统的终极目标,就是为相关芯片设计公司提供一种快速启动工作、快速调试、毫无延迟且修改完善软件或者硬件设计代码后能够快速建立环境的一套验证系统。
本篇技术文章由EETOP 创芯大讲堂职业畅销课及主讲老师撰写。《数字芯片验证入门到实战》课程已经全部更新完毕恢复原价,如咨询内购价添加微信ssywtt即可。《零基础学数字芯片设计》课程连载中,目前7折优惠福利补贴倒计时。