电子设计自动化—— Electronic Design Automation,简称 EDA。作为芯片设计最上游,EDA 软件的工作,是要在芯片那么小的空间进行布局布线、版图、设计规则检查等,好比在米粒上刻出航空母舰模型。
在 EDA 问世之前,设计人员必须通过手工完成电路设计和布线等基础工作。随着芯片集成度提高和性能的多元化,令芯片设计要求也变得越来越复杂,一个指甲盖大小的芯片上要集成数百亿颗晶体管,这样细微且宏大的工程,早已不是单纯人力范围所能覆盖,EDA 的重要性不言而喻。
根据应用场景的不同,EDA 工具的使用主要分为设计、验证和制造三大类。大规模集成电路设计复杂性的提升,使芯片验证面临资金与时间的巨大挑战。早期开发者想验证芯片的设计是否符合预设,只有等待极其漫长的模拟结果,或是等待流片成果,而一旦结果不如预期,不管是再次模拟或是二次流片,都将产生极高的成本。因此,当 Xilinx 推出现场可编程逻辑门阵列(FPGA)时,开发者即可通过用 FPGA 板拼凑出有效的流程来对设计进行验证,FPGA 原型验证这一解决方案就此应运而生,这一比流片便宜、比仿真要快的方式,已成为开发者检验设计有效性的不二选择。
01 基于 FPGA 的物理原型验证
就像是建筑师设计完楼房、开始建造前,需要通过模型去测试防震、防风、结构强度等各种参数,芯片和系统开发者也需要在流片前对设计进行“原型验证”——就是模仿真实软件应用条件下的芯片和系统表现是否满足了实际应用场景要求。
FPGA 的应用范围广泛,通信、计算、控制等领域等都有它的建树,并且由于其具有内部电路可重构的特点,几乎可以完全映射芯片的逻辑设计,也被当作一种性价比优越的芯片验证基础设施。FPGA 原型验证已是当前原型验证的主流且成熟的芯片验证方法——它通过将 RTL 移植到现场可编程门阵列(FPGA)来验证 ASIC 的功能,并在芯片的基本功能验证通过后就可以开始驱动的开发,一直到芯片 Tape Out 并回片后都可以进行驱动和应用的开发。当芯片回片后,应用程序可以直接基于 FPGA 版本的驱动来进行简单的适配,即可以应用到 SoC 芯片上,将 SoC 芯片 Time-to-Market 的时间控制的很完美。除了可以提前进行软件开发外,从成本上来说,FPGA 原型验证是一个性价比很高的验证手段,在价格上可以说非常的亲民。更重要的 FPGA 原型在运行速度上也技高一筹:它在速度上当然比 EDA 验证高了好几个数量级,即使是与 Emulator 相比,其性能上也有碾压式的优势。在这种种优势中,“流片前的软硬件协同开发”是 FPGA 物理原型验证最不可替代之处,提早基于该技术平台进行软件驱动开发和应用开发,对于缩短最终芯片 Time-to-Market 周期意义重大。
在软硬件深度定制化、要求芯片到应用的一站式交付的今天,FPGA 原型平台的重要性进一步提升。2000 年,一家创立于瑞典的公司 Hardi Electronics 正式推出一款基于 FPGA 的原型系统 HAPS,HAPS 可以通过多种方式快速组装 ASIC 原型系统,为客户在关键验证阶段节省数月的时间。2007 年,Synplicity 以 2400 万美元的金额收购了 Hardi,而 Synopsys 在 2008 年以 2.27 亿美元收购了 Synplicity,HAPS 经历几代人于 2014 年发展至 HAPS-80,至今仍是业界最快的原型验证加速平台。
02 物理原型验证工具的几大挑战及解决方案
1 容量限制和性能要求 对于大型的设计(大于 2 千万等效 ASIC 门),一块 FPGA 往往容纳不下,此时必须将多块 FPGA 互联才能验证整个设计,在这种情况下,就需要对大型的设计进行 Partition 即分割。Partition 引入了新的问题,而这些问题其实在芯片中并不存在,很多时候耗费很多人力去实现一个可用的 Partition 方案,仅仅是受限于 FPGA 的容量而不得已的处理办法。
Partition 引入的最大问题是对 I/O 的需求激增,虽然 FPGA 有超过 1000 个可用的 I/O,但是一个完整的 SoC 如果被拆分成规模相当的几个部分时,每个部分之间的互联信号数量往往会远超 1000 个,所以在 I/O 数量受限时,必须采用 TDM(Time Division Multiplex),即 FPGA 内部的多个并行信号转为高速串行信号,通过 FPGA I/O 传输到另一块 FPGA,然后再进行解复用,转换成并行信号,实现信号从一个 FPGA 到另一块 FPGA 的传递。引入了 TDM 虽然解决了 I/O 瓶颈,但是 Mux 和 De-Mux 引入了额外的延时,导致 Cross-FPGA 的 Path 成为 Critical Path,进一步降低了 FPGA 的可运行频率,可以说 Partition 是不得已而为之的方案,最终的结果只是得到一个可用的方案而非理想的方案。
另一个方面,由于在 SoC 原型验证中模块常常会增减,导致需要频繁的改动 Partition 方案,如果手动去处理,则需要花费很多精力才能得到一个上文提到可用但折中的方案。此外,处理大量的 Cross-FPGA 信号非常容易出错,所以对于大型的 SoC FPGA 原型验证,必须采用自动化的工具去完成 Partition,这对 EDA 工具而言亦是全新的挑战。
新思科技 HAPS 原型验证解决方案,具有独一无二的自动可干预分割功能,同时提供了系统级跨 FPGA 的时序分析工具,为 HSTDM IP, 缆线和 I/O 提供时序模型,可以方便地处理 TDM 路径上的多个约束,为多 FPGA 的设计提供了优化且可靠的时序,保证了平台的高速性能和稳定性。
2 迭代速度
由于 SoC 芯片的设计频率很高,为了让原型验证平台尽可能和 SoC 芯片性能接近,开发者期望让 FPGA 原型平台运行在尽可能高的频率上,但是由于 SoC 的 RTL 代码是为芯片实现设计,大量深层次组合逻辑的存在(这样可以节省芯片面积),导致了 SoC RTL 代码在 FPGA 上实现时时序收敛困难,往往只能达到几 MHz。对于大型的 SoC,内部的 CPU/GPU/CODEC/NPU 等计算和编解码模块逻辑复杂,往往成为整个设计的 Timing Wall,导致时序优化过程会占据 FPGA Implementation 过程 30-40%的时间。
基于新思科技 HAPS 原型验证解决方案,在对设计进行分割和时序优化的同时,也充分考虑到后续 FPGA 布局布线的挑战,在综合时,HAPS 采用独特的技术,增强和优化单 FPGA 的综合结果,可以有效的减少后期 Vivado 布局布线的时间,并结合多核多进程综合等技术,有效减少各个环节的时间,加快迭代速度。
3 接口方案
外部子板和 FPGA I/O 之间的高速同步接口一直以来都是 FPGA 的痛点和难点:一方面,相比于 ASIC,FPGA 在 I/O 时序方面可以调整的空间有限,它不能像 ASIC 一样可以通过时序约束来灵活调整 FPGA I/O 信号之间的 Skew,导致并行信号接口之间的 Path Skew 很难控制在一个比较理想的范围内,最终会导致数据采样失败,降低频率往往是一种有效的办法,但是有些控制器和 PHY 之间的接口是需要满足标准规范的,不能无限制的降低,对于这种情况有时只能想尽办法尝试修复时序,甚至需要修改代码。
另一方面,原型验证使用的子板数量不大,市场上往往没有销售,很多时候需要自行设计,进一步给调试带来了不确定性,也延长了调试周期。高速接口的调试往往消耗了大量的人力资源,很多时候都是靠调试的经验和灵感解决问题,这么做不仅费时费力,而且效果不佳。
新思科技 HAPS 原型验证解决方案,给用户提供了多种灵活的接口方案,包含丰富的外部子卡集合,降速桥方案;还和业界伙伴通过 HAPS Connect Program,为使用者提供了更广泛的扩展空间。
4 可观测性 FPGA 也是芯片产品,所以内部的信号无法直接观测。通常需要借助于 FPGA 的 Debug 工具在生成 Bit 文件前选取要观察的信号。当 Bit 文件加载运行时,必须通过配套的 Debug 工具观察指定的信号波形,但是受限于 Block RAM 的容量以及信号优化等原因,如此调试的效率比较低。
新思科技 HAPS 原型验证平台提供了多种灵活的调试手段。DTD(深度跟踪调试)功能,为用户提供了多 FPGA 实时速度的 RTL 级别信号联合波形调试,可以观测上千信号秒级的波形,进一步结合 Verdi/Siloti 的关键信号提取功能,可显著的扩大信号观测的范围。GSV 是另外一个被用户广泛采用的调试功能,它可以提供设计内部所有寄存器的快照,在多种实际调试场景有效的帮助软硬件团队分析定位系统问题。
5 产品的成熟度
原型验证是一项壁垒颇高的技术,串联着芯片设计和最终应用,需要极强的适用性和灵活度来适应发展迅速和多样性的芯片研发,通过和一线芯片研发人员的通力合作,打造使用生态圈,不断进化和迭代技术才能始终帮助芯片开发者实现“Shift-Left”研发,加快产品上市时间。
新思科技自 2003 年起推出第一款原型验证产品 HAPS-10 起,持续推出 7 代产品,久经市场检验, 并为满足不断演进的原型验证需求,补充了诸多独一无二的产品功能,如 UMRBus, Hybrid 原型验证,基于 UPF 的低功耗系统验证, HAPS GateWay 等,是加快软件开发和芯片设计验证的最佳解决方案。全球 200 多家公司都已经部署了最新一代 HAPS-80,包括前十大半导体公司中的九家,其出货量在今年超过 3000 台。
国内目前也有逾 50 家芯片设计企业部署了 HAPS 平台,进一步验证了 HAPS 原型验证的市场领先地位。
各类 FPGA 原型验证平台技术对比
目前市面上常见的 FPGA 原型验证平台可以分为两大类别,一类是芯片设计公司自己制作的 FPGA 板(Build Your Own, 以下简称 BYO); 另一类是商用 FPGA 平台,比如新思科技的 HAPS 方案。
就上文提到的一些具体考量点,各类原型验证平台的对比如下:
显而易见,新思科技的 HAPS 方案,在全面性,成熟度,和对大规模设计的支持上,都占有绝对明显的优势。
03 物理原型
验证工具的应用不止于芯片
芯片是硬件产业,也是软件产业,同时涉及下游的应用场景还有上游的高精度设计。在科技赋能的智能化时代,芯片不仅支撑数字经济的各个方面,在赋能各产业的作用也不容小觑,从 5G,自动驾驶汽车,人工智能等,芯片的应用几乎遍布所有可能想象的电子产品,甚至包括航空航天到军工技术的所有方面。随着人工智能和 5G 的加速发展,以及加快数字化时代的新基建的开展,未来芯片的应用场景会越来越多,定制化芯片的需求也会越来越大。而作为手握未来世界之门钥匙的开发者们必须要和系统厂商更紧密的协作研发,才能让芯片技术创新最终赋能科技应用。
以人工智能的人脸识别场景为例,在海量人群中搜索走失儿童需要超强的快速反应能力,才能在第一时间抓住机会识别并找到目标对象,其中软件支持了人工智能的算法,芯片所提供的超强算力让复杂的算法在毫秒内实现推断。物理原型验证让软件的开发和芯片的研发得以同步进行,而不用互相等待。这一技术将推动芯片和科技应用的生态结合,让科技的进步进入极速模式,加速未来的想象变为现实。