几十年来,数字芯片设计复杂度不断攀升,使芯片验证面临资金与时间的巨大挑战。在早期,开发者为了验证芯片设计是否符合预期目标,不得不依赖于耗时的仿真结果或是等待实际芯片生产(流片)的成果。无论是进行多次仿真模拟还是面临流片失败,都意味着巨大的时间和金钱成本。
随着EDA(电子设计自动化)验证工具的重要性日益增加,开发者开始寻求减少流片成本和缩短开发周期的方法。其中,使用可编程逻辑芯片(FPGA)来构建有效的验证流程成为一种流行的解决方案。这种方法便是原型验证。它不仅比传统流片便宜,而且比仿真更快,已成为检验设计有效性的首选方式。
特别是在基本功能验证通过后,通过原型验证就可以提前开始驱动的开发,不用等待芯片流片(Tape Out)后的结果。当芯片回片后,应用程序可以直接基于原型验证版本的驱动来进行简单的适配,以便应用于SoC(系统级芯片)上,这极大地控制了SoC芯片的Time-to-Market时间。
1.原型验证的分类
目前的原型验证主要分三类:一类是芯片设计公司自行制作的FPGA板(Build Your Own, 以下简称 BYO)。一类是直接从FPGA制造商,如AMD、Altera等,购买现成的开发板。还有一类是由专业公司提供的商用原型验证系统。随着商用解决方案的崛起,原型验证已普及化,变成芯片设计和软件开发重要的一环。接下来,我将从容量/适用场景、稳定性和性能这几个方面,对这三类原型验证进行简单介绍。
BYO:
• 容量/适用场景:BYO主要适用于小、中型设计,大型设计其容量和灵活性可能受到限制。BYO的优势在于高度定制化,允许设计团队根据特定需求定制硬件。但这同时要求团队具备深厚的电路设计和制造能力。
• 稳定性与性能:在芯片设计中,使用稳定且可靠的验证工具至关重要。BYO的挑战在于必须确保设计的可靠性和稳定性,这通常需要通过反复的测试和验证来实现。由于需要依赖于FPGA工程师的专业水平,稳定性可能难以保证,尤其是在大型设计中。在性能方面,BYO只会对自己关键的部分进行优化调整,虽然针对这些特定场景的深度定制可以实现高性能,但通常来说,它的综合性能可能不如商用平台。
FPGA开发板:
• 容量/适用场景:适合小型设计、软核开发、特定协议开发等。如涉及以太网、MIPI、NVME/M.2 SSD控制、UART/I2C 控制、HDMI/DVI显示控制等。这些开发板提供了快速原型开发的便利,同时具有一定的灵活性和适应性。
• 稳定性与性能:由于来源于主流FPGA厂商,这类开发板通常具有较好的稳定性。它们在特定接口下能够提供高性能,但对于其他I/O支持可能有限。
商用原型验证系统:
• 容量/适用场景:适合各种规模和复杂度的设计。例如思尔芯的Prodigy芯神瞳原型验证解决方案,它提供了广泛的容量范围、丰富的产品线、以及高性价比,在当前市场中十分突出,因此备受市场青睐。其单系统可支持单核、双核、四核、八核,并能进行级联多核组网,最大可支持256核,提供了广泛的容量范围选择。对于小规模设计,芯神瞳支持不同容量的单核,亦可根据客户的设计容量和接口需求,选择最具性价比的解决方案。另外,思尔芯方案同时支持AMD(Xilinx)和Altera。
• 稳定性与性能:除了三大家和思尔芯,大部分商用系统还未经大量市场考验。思尔芯所提供的自主可控的Prodigy芯神瞳原型验证解决方案,其凭借20年的技术积累和全球600+的客户基础,国内市场早已处于领先地位,久经市场考验。经过多次迭代,在材质、架构、系统以及高速PCB仿真技术等方面的不断优化下,大多数情况下系统都能达到高性能。
2.原型验证的几大挑战及解决方案
随着芯片设计越来越大,复杂度越来越高,商用原型验证系统的设计目标已转向使用多颗FPGA芯片,快速实现全芯片设计与高性能的全芯片验证。为了能缩短设计周期,加速产品上市,对于原型验证的选择,不同的项目团队有不同的要求与考量。
FPGA实现团队的要求则包括具备足够的容量和级联功能以避免维护多个剪裁版本,自动分割功能以减少工作量,以及完善的工具链以缩短实现周期,并减轻团队负担。与此同时,软件开发团队需要能够尽早开始在平台上进行软件开发,并且希望在平台上验证完的软件能快速移植到实际芯片上,同时要求接口方案的多样性以及有效的软件调试和观测工具。这些需求共同构成了原型验证技术在当前快速发展下的主要挑战。
针对以上这些要求,BYO、FPGA开发板与商用原型验证系统三者之间又有何差异呢?
首先,FPGA实现团队所需要的多板级联,是为了在单个FPGA板无法提供足够资源支持大型或复杂设计时,通过扩展资源池实现更广泛的系统功能,以模拟更复杂的系统。这也带来了额外的复杂性和挑战,例如复杂的时序控制问题、保持数据一致性和同步的难度、资源分配与管理的复杂性等,无论是自制还是商用,都是一大挑战,在此项技术点上不断攻坚克难。
• BYO:想要实现多板级联方案是很困难的,很大程度上依赖于FPGA工程师的技术水平和经验。
• FPGA开发板:原厂不支持多板级联方案。
• 商用原型验证系统:多数厂商的多板级联方案还不够成熟,且支持的最大规模有限。国内的思尔芯是为数不多可以提供成熟的多板级联方案的厂商,客户端已成功部署百亿门级系统。
在原型验证中,以减少FPGA实现团队工作量和提高准确性为目标,自动分割功能、时分复用(TDM)、并行编译、全自动编译和增量编译等自动化软件的支持,和完善的工具链就变得至关重要。这些全自动的软件使得原型验证的易用性大大提升,但不是所有类型的原型验证都具备,有着明显的差异。
• BYO:易用性较低,所有软件需要自行开发,不支持自动分割,仅能手动操作。
• FPGA开发板:也不支持自动分割,同样需手动操作;其编译依赖于FPGA原厂提供的功能有限的工具。
• 商用原型验证系统:三大家和思尔芯在此方面投入了很久,也经过了充分的市场验证。在这方面,思尔芯的Prodigy芯神瞳就可以支持时序驱动的RTL分割,提供高速且稳定的通用Serdes TDM IP,可以处理大型IP设计,支持高达25Gbps的分割速率和8K:1的时分复用比。此外,还支持多FPGA的并行编译、分布式编译、全自动编译和增量编译,大大减轻了团队的负担。
图为思尔芯Prodigy芯神瞳原型验证解决方案
其次,为了让软件开发团队能够尽早在原型验证平台上开始工作,并确保平台验证的软件能快速移植到真实芯片上,快速环境部署与设计移植效率变得至关重要。这主要取决于高速接口方案和有效的软件调试及观测工具。高速接口如PCIe、USB和Ethernet等可以提高数据传输效率,支持复杂的应用开发,同时促进软件在原型平台的高效运行和准确移植。而高效的调试和观测工具则帮助工程师快速定位问题,易于bring-up。
高速接口方案方面:
• BYO:工程师需要自主开发各种子卡接口和降速桥方案,以及相应的IP开发套件。这不仅难以验证接口的正确性,而且在没有现成子卡或设计的情况下,快速部署可能十分困难,往往需要从零开始设计或修改。这些额外的开发和复用成本在激烈的市场竞争中可能成为负担。
• FPGA开发板:接口定制化集成在主板上,提供扩展接口有限。
• 商用原型验证系统:会提供即插即用的商用接口,增强了可靠性、可扩展性和复用性,不过只有少数平台提供子卡资源。但思尔芯的Prodigy芯神瞳提供超过90种不同的子卡和配件,多样化的模块类别,包括Arm处理器接口模块、嵌入式和多媒体模块等,覆盖了主流应用领域,并已在市场上得到验证,可供直接使用。其多种子卡和参考设计,使用户能够迅速搭建所需的I/O接口和外围设备,实现快速部署原型环境。
图为思尔芯丰富的外设子卡
值得一提的是,原型验证平台与最终的芯片设计之间的兼容性和接口标准化程度也非常重要。这决定了软件从原型验证平台到最终硬件的移植难易程度。但BYO的兼容性取决于更多的前期规划和设计。而FPGA开发板虽然提供标准化接口和支持广泛的开发环境,但可重用性相对有限。相比之下,商用原型验证系统如Prodigy芯神瞳,由于其标准化接口和高度模块化的设计,可以提供较高的可重用性和易迁移性,适应不同的设计需求和目标市场。
调试和观测方面:
• BYO:主要依赖FPGA芯片供应商提供的调试工具,通常限于单个FPGA的调试。
• FPGA开发板:同样依赖于原厂提供的调试工具,通常限于单个FPGA的调试。中低端的开发板上通常不搭载调试用的额外DDR内存,调试局限性大,仅提供JTAG等低速调试手段。
• 商用原型验证系统:大部分也是依赖于 FPGA芯片供应商的调试工具,跨FPGA调试需要使用额外扩展的专用调试板卡。在这方面思尔芯的调试手段更灵活且高效。它不仅支持多配置方式、实时硬件监控、远程系统控制及硬件自检测等功能,特别是基于网络的AXI Transactor,允许用户远程通过网络访问和控制连接到AXI接口的设备,极大地简化了远程调试和测试过程。还具有基于PCIe 的AXI Transactor来提供更大带宽的数据交互。此外,思尔芯还提供MDM Pro调试解决方案,支持多FPGA协同调试,并提供高达125MHz的采样频率和最大64GB的额外DDR内存来存储波形,有效应对多FPGA协同调试的挑战。这些功能的增加主要是由于思尔芯面向广泛的客户需求,而这是其他厂商可能未能提供的。
图为思尔芯提供的芯神瞳协同仿真软件ProtoBridge
3.快速交付与及时响应
在比较BYO、FPGA开发板和商用原型验证系统时,通常还会考虑到芯片公司对于快速交付和及时响应的需求,我们可以从产品交付、技术支持和维修维护这三个方面进行比较:
关于产品交付,BYO的Time-to-Prototype时间就难以预测了,受设计复杂性、资源可用性等多种因素影响。如果项目需求突然增加,BYO可能面临及时供货的挑战,同时将设计移植到FPGA的过程也可能耗时较长。FPGA开发板的交付时间相对稳定,但可能受限于库存或生产周期。相比之下商用原型验证系统,如思尔芯,通常有大量现货可供选择,且得益于有效的供应链管理,能够快速响应客户需求。这种系统的快速交付优势对于时间敏感的项目尤为重要,可以有效减少等待时间,加快整体开发进程。
在技术支持和维修方面,BYO通常缺乏立即可用的专业技术支持。这种情况通常需要依靠内部团队的知识和技能,有时甚至需要寻求外部的咨询服务,这可能导致问题解决的时间延长。另一方面,FPGA开发板虽然通常由原厂商提供技术支持,但这种支持在深度和响应速度方面可能有所限制。相比之下,目前市面上的商用原型验证系统虽然在以上方面有很好的支持,但大多由国外的EDA厂商提供,这些进口产品的交付和技术支持可能会因时间延迟而受到影响,进而影响项目的进度和部署效率。此外,考虑到某些国外品牌在国内的客户基础相对较小,它们可能没有足够的本地团队,例如现场应用工程师(FAE)团队,来提供即时的技术支持。无论是BYO还是FPGA开发板,都存在在故障发生时快速定位问题和提供现场维修服务的困难。不像国内的一些厂商,如思尔芯,就可以提供的全面本地化技术支持和快速响应的FAE服务。在出现问题时,有些厂商甚至能够立即更换设备,或先借用设备给客户,以确保项目的按时进行。
4.整体性成本评估
就上文提到的一些具体考量点,各类原型验证的对比如下:
之所以考虑BYO和FPGA开发板的主要因素就是节约成本,诸多因素综合考虑下来,真的节约成本了吗?由于设计复杂性、专门的软硬件团队要求、功能验证、稳定性考虑以及潜在的板子不稳定问题、软件开发成本、子卡开发、产品交付、技术支持等因素,其中的考量结果显而易见。
相比之下,像思尔芯的Prodigy芯神瞳这样的商用原型验证解决方案是现成的,提供更高的性能、更强的功能以及更广泛的技术支持,可以减少开发时间和资源投入,使团队能够更快地专注于核心开发任务。这也是如今商用原型验证越来越普及的原因。