在现代SoC芯片验证过程中,不可避免的都会使用FPGA原型验证,或许原型验证一词对你而言非常新鲜,但是FPGA上板验证应该是非常熟悉的场景了。通常有三种方式:第一种,自己制作FPGA电路板,用来验证自身SoC设计;第二种,购买FPGA原厂的开发板,用来搭建FPGA原型验证系统;第三种,对于大型的SoC芯片,一般会购买专业的FPGA原型验证平台,用来搭建其原型验证平台。
为什么SoC验证一定需要FPGA原型验证呢??
基于FPGA原型验证,可以提供更高的验证精度和验证性能;
基于FPGA原型验证,可以提供更加真实的现实世界接口模拟;
基于FPGA原型验证,可以在实验室真实硬件环境测试与展示。
FPGA原型验证可以用来做什么?
由于其高精度和高性能,可以测试实时数据流,更早期地进行软硬件的协同,同步进行硬件与软件的早期开发与验证;
由于其真实世界的模拟,可以在SoC流片之前进行真实世界数据交互效果,可以测到在仿真环境中无法模拟的罕见的一些随机场景,并且可以进行人机交互的测试;
由于其真实硬件展示的特性,可以进行可行性评估与展示,以此给投资者信心。
虽然在Simulation阶段已经对RTL进行了大量的测试,但是原型验证可以结合软件进一步扩展RTL的验证与调试。
01 高性能和高精度
只有基于FPGA的原型设计才能提供正确测试设计的许多方面所需的速度和精度,这是团队进行原型设计的最可能的根本原因。整个团队的目标可能是验证SoC相关的嵌入式软件系统,看它如何在真实硬件上快速运行。
02 实时数据流
验证SoC很难的部分原因是,SoC的状态取决于许多变量,包括其先前的状态、输入序列和SoC输出的更广泛的系统影响。以实时速度运行SoC设计,将其连接到系统的其他部分,使我们能够看到实时条件、输入和系统反馈的即时影响。
一个高清媒体数据流通过一个处理器核心的原型被路由到一个高清显示器。当我们在原型中考虑IP使用时,在图的底部,有来自接收器的音频和高清视频数据流通过原型实时传输到外部监视器的实时HDMI
PHY连接。只有基于FPGA的原型设计才允许这种实时数据流,这不仅给这种多媒体应用带来了巨大的好处,也给许多其他需要对输入数据流进行实时响应的应用带来了极大的好处。
03 软硬件早期集成
在上面的例子中,有一个小的MicroBlaze™ 原型中的CPU以及外围设备和存储器,因此SoC中所有熟悉的模块都存在。在这种设计中,CPU中运行的软件主要用于加载和控制AV处理,然而,在许多SoC设计中,它是需要大部分设计工作的软件。
鉴于软件已经成为SoC开发工作的主导,软件工作处于项目进度的关键路径上的情况越来越普遍。软件开发和验证决定了SoC能够有效达到批量生产的实际完成日期。在这种情况下,系统团队可以做什么来提高软件开发和验证的生产力?硬件系统尽早搭建完成可以及早的进行软硬件系统的协同验证,而FPGA原型验证,正是顺应了这种趋势。
04 软件开发的SoC建模
任何级别的SoC建模都需要我们表示硬件和堆栈,直到当前级别以下的层,以进行验证,并且最佳情况下,我们应该以足够的精度进行工作,以实现最大性能。
例如,堆栈顶部的应用程序开发人员可以在真实的SoC或模型上测试他们的代码。在这种情况下,模型只需要足够精确,以欺骗应用程序,使其认为它运行在真正的SoC上,即,它不需要硬件的周期精度或细粒度可见性。然而,速度很重要,因为在许多情况下,多个应用程序将同时运行并与真实世界数据交互。这种模型对软件层具有“刚刚足够的精度”的方法导致了SoC项目期间不同软件开发人员在不同时间使用的许多不同建模环境。可以使用事务级模拟,以SystemC等语言建模™,以创建以低精度运行但以足够高的速度运行许多应用程序的模拟器模型。如果实时、真实世界数据的处理并不重要,那么我们最好考虑采用这种虚拟原型方法。然而,当整个软件堆栈必须一起运行或必须处理真实数据时,基于FPGA的原型设计变得最有用。
总结
今天的SoC是许多不同专家的工作组合,从算法研究人员到硬件设计师,到软件工程师,再到芯片布局团队,随着项目的进展,每个SoC都有自己的需求。SoC项目的成功在很大程度上取决于上述专家使用的硬件验证、硬件-软件联合验证和软件验证方法。基于FPGA的原型设计为这些专家带来了不同的好处:
对于硬件团队来说,验证工具的速度对验证吞吐量起着重要作用。在大多数SoC开发中,随着项目的成熟,有必要进行多次模拟和重复回归测试。仿真器和模拟器是用于该类型RTL验证的最常用平台。然而,由于运行时间长,即使使用基于TLM的模拟和建模,RTL内或RTL与外部刺激之间的某些交互也无法在模拟或仿真中重新创建。。因此,一些团队使用基于FPGA的原型设计为此类硬件测试提供更高性能的平台。例如,我们可以相对实时地运行整个OS引导,从而节省几天的模拟时间来实现相同的目标。
对于软件团队来说,基于FPGA的原型设计为目标硅提供了一个独特的硅前模型,该模型足够快速和准确,能够在接近最终条件下调试软件。
对于整个团队来说,SoC项目的一个关键阶段是软件和硬件首次相互介绍。硬件将由最终软件以硬件验证计划未单独设想或预测的方式进行测试,从而暴露出新的硬件问题。这在多核系统或运行并发实时应用程序的系统中尤为普遍。如果这种硬件软件的引入是在第一次硅制造之后才发生的,那么温和地说,在那个时候发现新的bug是不理想的。
基于FPGA的原型允许尽早将软件引入硬件的周期准确和快速模型。SoC团队经常告诉我们,基于FPGA的原型设计的最大好处是,当第一块硅可用时,系统和软件一天就能启动并运行。
作者:Jacky Yu
文章来源:芯播客
推荐阅读
一颗芯片的自述:从立项、流片、验证到发布管理的心路历程!
原型验证过程中的ASIC到FPGA的代码转换
芯片软硬件协同验证的痛点推动FPGA原型验证不断向前
更多IC设计请关注IC设计技术专栏。欢迎添加极术小姐姐微信(id:aijishu20)加入技术交流群,请备注研究方向。