
目前主流的验证方法,几乎都在解决这句话的后半部分,并默认前半部分没有问题。无论是仿真、硬件仿真加速、形式验证、约束随机测试平台,还是覆盖率收敛,这些方法都将规格说明视为既定前提,检验实际实现是否符合规格要求。整个行业在这方面已经取得了显著进步。根据Wilson Research Group开展的三次功能验证研究,2016年至2024年间,作为ASIC功能缺陷根本原因的“设计错误”占比从75%下降到60%,“规格变更”占比则从59%下降到43%。
然而,对于这句话的前半部分,行业并没有取得类似的进展。在同样的三次调查中,“规格说明错误或不完整”的占比分别为56%、58%和59%,基本没有变化,甚至略有恶化。(这些数字表示受访者中将相应因素列为问题原因的比例。由于调查允许多选,因此各项比例相加不等于100%。)
如果某项需求从一开始就被理解错了,那么,任何建立在同样错误理解之上的验证方法,都无法发现这个问题。只有让设计在真实的软件、流量和接口环境中接受检验,并与提出需求的客户直接对接,才能发现这类偏差。这正是FPGA原型验证的价值所在,也解释了为什么原型验证已经从项目后期用于承载软件开发的工具,转变为解决行业长期忽视的另一半问题的核心手段。
通常,人们会从软件开发的角度理解“验证前移”(Shift Left),也就是让软件团队在首片硅片回片前6至9个月就开始工作。这确实能够带来价值,但仍然低估了原型验证的作用。同一个能够启动整套软件栈的原型系统,也可以在规格尚未完全确定时交给客户、合作伙伴或标准组织使用。此时,团队仍然能够回答“我们设计的芯片是否真正符合需求”这个问题,而且只有在这个阶段,答案才有可能以较低的成本得到验证。
这种方式改变了提出问题的人和场景。在实验室里,测试平台验证的是设计人员事先想到的问题,而覆盖率模型也是根据规格说明编写的。如果规格本身存在错误,验证过程自然可能遗漏这些问题。
但当原型系统交到客户手中,团队就会遇到此前无人想到的问题,包括客户自己的工作负载、驱动程序栈,以及互操作性或合规性测试套件。也正是在这个过程中,团队才可能发现,某个缓冲区是按照错误的流量模型设计的,指定接口无法满足延迟预算,或者客户认为必须具备的某种工作模式实际上从未实现。
这些都属于规格错误,而不是实现过程中的逻辑缺陷。调查数据恰恰表明,规格错误是行业至今没有明显改善的问题。
验证前移的时间节点也需要进一步提前。软件开发阶段的验证前移,通常从RTL足够稳定、可以启动软件时开始;但规格说明在更早的架构定义阶段就可能存在不确定性,而许多成本高昂的决策恰恰是在这个阶段作出的。
只有能够快速搭建起来的原型系统,才能在架构方案尚未最终确定、仍然可以调整时,对其进行实际验证。而且,这些验证还可以直接在真正会检验设计的环境中进行,例如客户办公室、合作伙伴的集成实验室、互操作性测试活动或展会现场。
这也重新定义了FPGA原型验证平台最重要的能力。如果它的价值在于尽早、反复地搭建可运行的系统,并将系统带到其他人的现场使用,那么,容量只是基本门槛,易用性才是决定效率的关键因素。
S2C专注于ASIC和SoC验证领域超过20年,并围绕这四个方面构建了Prodigy原型验证平台和PlayerPro工具链。
在FPGA原型验证过程中,大部分时间并不是消耗在FPGA内部,而是花在围绕FPGA搭建系统上,包括配置与目标系统相匹配的存储器、接入支持相应协议的PHY,以及设置能够让真实固件启动的处理器适配器。
S2C通过提供100多种可直接用于原型验证的子卡和参考设计,以及50多个可直接用于原型验证的IP模块,减少了这些准备工作。这些资源按照实际项目的需求进行分类,涵盖Arm处理器适配器、DDR4/LPDDR4存储器模块、高速GT接口外设(QSFP28/QSFP-DD、Mini-SAS、PCIe根复合体和端点)、嵌入式与多媒体接口(HDMI 2.0、DisplayPort、MIPI D-PHY)、eMMC和Flash,以及支持Arm JTAG的GPIO。
标准化的系统环境还有助于原型系统在不同地点之间转移。Prodigy系统可以装箱运输,并在客户现场、合作伙伴实验室或展会展台重新部署和调试,抵达后即可运行真实的软件栈。这是将硬件仿真器固定在机架上的方案难以轻易提供的能力。
如果原型系统希望在项目早期发挥作用,就必须在早期具备良好的可观测性。
虚拟JTAG可以替代物理FPGA调试线缆,因此,即使在远程环境下,标准的Vivado程序下载和调试流程也能继续使用。VIO和AXI后台访问功能可以通过以太网或USB运行。与此同时,调试IP具备多FPGA协同能力,而不是针对每个设备单独配置。这意味着,为FPGA_3添加调试功能时,不需要再对FPGA_1重复进行同样的配置。
通过PCIe运行的AXI事务转换器是ProtoBridge的基础,它能让主机软件以高带宽访问正在运行的原型系统,从而真正支持硬件与软件协同开发。
如此一来,原本需要几天才能完成的调试流程,有可能缩短到几分钟。
在原型验证中,最困难的工作往往发生在最开始的阶段:如何将大型设计划分到多片FPGA上,并使整个系统成功运行。
PlayerPro-CompileTime能够自动完成从RTL到比特流的整个流程,包括门控时钟转换、存储器映射、调试IP插入、RTL分区,以及针对每片FPGA进行综合和布局布线。整个流程采用由时分复用(TDM)驱动的多策略调度机制。
其中,有两项能力尤其重要,因为它们恰恰是许多企业自建流程容易遇到问题的地方。
第一项是面向PCIe以及10G、40G、100G、200G和400G以太网的高速桥接器(Speed Bridges)。借助这一功能,即使FPGA实现无法原生支持目标接口速率,也能够运行针对高速接口设计的逻辑。
第二项是支持后台访问的存储器模型。它可以将DDR5、LPDDR5和HBM3控制器连接到板卡上实际安装的DDR4存储器,从而在原型验证中实现存储器接口适配。
这两项能力决定了设计能否真正运行起来。能够将设计装入FPGA,并不意味着整个设计就能正常工作。
硬件平台本身也必须具备足够的承载能力。Prodigy Logic System S8-100基于AMD Versal Premium VP1902构建,每个核心模块可承载约1亿个ASIC等效逻辑门,配备1850万个系统逻辑单元、858Mb内部存储器和6864个DSP。使用两个模块,承载能力可以扩展到约2亿个ASIC等效逻辑门;使用四个模块,则可以扩展到约4亿个。
不过,还有一个更加关键的指标,那就是I/O能力。该系统配备2212个XPIO,速率最高可达56Gbps,同时支持GTM/GTYP收发器,电压可在1.0V至1.5V之间选择。
在大型多FPGA设计中,设计可能在逻辑资源耗尽之前,就已经受到I/O引脚数量的限制。时分复用(TDM)能够缓解引脚资源的限制,但也可能降低实际带宽并增加延迟,从而影响原型验证过程中所评估的时序行为。
原型系统必须能够与最终芯片所使用的处理器、IP和软件栈进行交互。
S2C已经与相关组件供应商开展了合作和适配工作,涉及多个方向:Arm方面包括Smart IoT,以及与Xylon和ZC合作的下一代汽车电子电气(E/E)架构;Andes方面包括AX46MPV和AX66 RISC-V处理器内核;BOSC方面包括一款集成片上网络(NoC)的16核RISC-V处理器;Sirius方面涉及Wi-Fi 6和蓝牙射频IP;玄铁方面则涉及C925处理器。
实际项目中,原型系统需要启动和验证的许多子系统,在用户的RTL代码导入之前,就已经在Prodigy平台上完成过测试。
本文转自媒体报道或网络平台,系作者个人立场或观点。我方转载仅为分享,不代表我方赞成或认同。若来源标注错误或侵犯了您的合法权益,请及时联系客服,我们作为中立的平台服务者将及时更正、删除或依法处理。
