软件仿真拥有最佳的信号可见性和调试灵活性,被大多数工程师熟练使用,能够高效捕获很多显而易见的常见错误。
然而,由软件实现的数字仿真过程运行速度有限,很难做到100%代码覆盖。导致那些深度隐藏的设计问题,将不可避免的逃逸,只能以FPGA在线调试方式解决。
01
为什么全局可观测能力如此重要
如果说调试是自动化最后的堡垒,那么数据则是调试的生命线。
在很大程度上,代码是写出来的,更是调试出来的。
走在异构计算、硬件加速最前沿的EDA硬件辅助验证行业,一直代表了FPGA调试验证的最先进水平。
不管是硬件仿真平台(Emulation)、原型验证系统(Prototyping),或是最新将两者功能合二为一的EP1或者P2E,使得FPGA硬件在线调试,像软件调试一样,所见即所得。
能够为用户提供与软件仿真类似的100%信号可见性,用于高效定位和修复设计问题。
如果说数字仿真器是为IC设计画素描,那么用FPGA构建的仿真加速器,则有3D立体克隆效果。但这些昂贵的高端平台,主要服务需要流片的超大规模IC设计。
近四十年来,始终不能惠及众多的FPGA应用开发人员。
出厂状态的FPGA芯片,内部只是空白的门海阵列,用户使用时,是将设计的结果文件,即生成的位流(Bitstream)载入到芯片后,完成硬件电路的配置定制过程,与ASIC芯片的流片生产过程类似。
也被视为价格亲民的“ASIC”芯片。
不同的是,对于ASIC芯片设计,用EDA硬件辅助验证工具进行详尽的硅前验证,工程师拥有充足的武器库,尽可能实现设计的“零缺陷(Zero Bug)”,减少流片失败风险。
而FPGA用户应用开发过程中的硬件电路设计,是在自家作坊完成。
可以是团队,甚至“一人成团”的全栈工程师,完成从设计、调试、验证等全部生产“制造”流程。
全局可观测调试能力Full Visibility & Debugging,对提升设计生产力的重要作用,不言而喻。
在软件行业,如果某个系统是不可观测的,往往意味着距离“崩溃”不远了。
一旦真正出现问题,将额外花费工程师解决问题的时间成本。
但FPGA工程师除外,更像是工作常态。
与以往相比,现在的商用FPGA芯片容量规模更大,大量的功能模块、嵌入式软件、第三方IP核被集成使用,设计更为复杂。
不同于软件行业已经有大量工具和越来越多的APIs,构建整个技术栈,硬件行业还相对保守,也更为封闭。
在有限EDA工具支持下,很大程度上,FPGA应用开发,更依赖工程师经验解决调试问题。
人工经验不可复制,也很难规模推广使用。
Everything Wrong with FPGAs
Source:X.Org Developer's Conference 2019, Ben Widawsky, Intel
在人工智能大语言模型在信息技术领域显示其独特的思辨能力和编程优势时,FPGA行业,以及建立FPGA之上的EDA硬件辅助验证行业,可能是少有的AGI"法外之地"。
既没有大量数据可供训练,并且在芯片物理信号的观测和理解方面,也还欠缺。
在软件行业已经进化到海量APIs的云原生时代,熟练驾驭FPGA的硬件工程师,就像是维多利亚工业时代的高手,沿用刀耕火种的白鹿原时代工具,在智能化时代精心打磨高科技产品。
如果再拥有先进可观测工具的加持,就像是英雄配宝刀,更会如虎添翼,事半功倍。
换而言之,可以把开发过程中的脏活、累活,重复性的体力活,这些没有“颜值”的事丢给工具辅助完成,从而使工程师能够聚焦自己的核心竞争力,提升开发效率。
FPGA功能的强大,不仅取决于芯片本身,也与EDA工具的使用密不可分,更是用户得以降低经验门槛,减少不确定性风险的利器。
一直以来,对于FPGA硬件调试,工程师普遍抱怨的是可见性差,在需要流片的IC设计行业,对验证工程师来说,更是如此。
对FPGA运行状态下的全可观测能力(Global System Visibility),已成为领先EDA公司提供硬件辅助验证服务,与性能(Speed)、设计容量(Capacity)共同组成三大核心能力。
2021年,巨头新思科技已经把调试验证的服务能力,视为超越设计分割(Partionning)、管脚时分复用(TDM)等超大规模IC设计、多FPGAs板卡才会用到的先进技术,成为EDA厂商新的核心竞争力:
High Debug Productivity is the Prototyping Game Changer
随着SoC芯片设计复杂度的剧增,带来了更大的调试验证挑战。
该功能也从原先非常昂贵的硬件仿真平台(Emulation)的专属高级功能,降维到高性能原型验证系统(Prototype)必备的基础能力。
使用硬件调试工具,特别是与芯片物理层0/1数据直接交互的软件,就像是将人脑逻辑与机器指令进行实时转译,无需重编译,所见即所得。
如果说软件开发,工程师拥有丰富的可观测工具和调试手段,得以加快问题收敛,提升工作效率。
那么硬件则更吃经验,需要从观测的有限信号数据中,主要依靠“人脑算力”,脑补全局的运行波形图,再做判断,有些类似于2018年微软数据中心用于AI推理的“脑波(BrainWave)”。
这是FPGA工程师多年的项目历练,才能达成的至高境界。
有限的硬件调试工具要么由芯片厂商提供,近乎免费,或者源于EDA厂商,软硬件绑定使用,价格不菲,获取使用不易。
免费的烧脑,比较费工程师发量。
昂贵的费钱,需要公司花费成本。
比如专用深度调试工具EXOSTIV,作为ILA、SignalTAP等片上逻辑分析仪的升级增强版,国内市场代理价在15万到30万之间,大多数FPGA工程师无缘享受。
用于EDA硬件辅助验证的配套调试软件,就更像是奢侈品,其强大调试验证能力,对多数工程师而言,只闻其名,未见其形。
使用过的寥寥无几,距离更为遥远。
最常见的信号追踪调试方式,需要在RTL或者网表中预埋探针,占用宝贵的片上资源,却只能获取有限的可观测能力。
随着FPGA应用的设计规模和复杂度持续增长,使得一旦出现问题,迅速识别真正的问题模块,非常具有挑战性。
按照西门子的观点,现在的FPGA硬件在线调试,正被迫经历二十年前超大规模IC设计项目,类似的复杂调试验证挑战 。
特别是实物级在线调试,正成为整个设计开发工作的主要瓶颈。
按照网友的说法"软件好歹还可以自学成才,硬件属于完全不能自学的那种"。
设计部署前的上板调试验证过程,一边是产品交付压力倍增,一边要抽丝剥茧细致入微,就是“动手+脑力波形”混用才能解决问题的实际应用。
是技术活,也是堆人手吃经验的体力活,从现在AI代替的进展看,围棋、艺术等“纯”脑力人类优势项目已经被陆续“攻破”,最难取代的反而是物理层面的“蓝领体力劳动”。
简单换算,约等于FPGA工程师将是守护人类尊严的最后看门人之一。
对于开发过程中所需的调试验证工作,当设计中可能的BUG,和FPGA厂商工具可能的BUG,都耦合在一起时,调试更是难上加难。
特别是国产化替代进程加快的大背景下,国产FPGA与对标替代的具体芯片型号,也可能在BRAM、DDR,高速通信接口等细节方面,存有差异或细微差别。
对于工期紧,任务重的项目承接乙方来说,假设选用的是以赛灵思公司为对标的国产“同款FPGA”芯片型号,即便是在Vivado环境中已经可以“正常运行”,但IP核、位流也可能需要不断“打补丁”。
更是进一步增加了额外的开发使用难度。
硬件在线调试时间增加的一个主要原因是,首先需要根据个人工程经验,识别问题来源。
如果在线抓取的信号数量有限,通常需逐步修改待观测信号,难免会经历多次本无必要的硬件重新编译和迭代过程。
FPGA容量规模越大,每次编译时间越长;设计越复杂,越是繁琐费时。
一旦出现问题,是否能够快速识别真正的问题模块,会变得更加重要。
如果只采用信号追踪工具的工作方式,一旦检测到错误(Detected Failure),只能针对假设存在问题的模块(Assumed Bug),选择其中的一部分信号进行跟踪观测,再对设计进行修改,重编译后运行。
个人经验越丰富,调试时收敛问题所需时间,才会越少,反之则不然。
如果对设计进行修改后,错误现象仍然存在,还需要重新设定待观测信号,再重新编译执行,如此循环往复。
02
如何获取FPGA的全局信号可观测能力
FPGA也是芯片,其内部的信号是不可见的。
能够在运行时获取尽可能多的数据,是做出正确决策的第一步,更是解决疑难调试问题的起手式。
有限可观测能力的调试,由于缺少整个系统的全景视图,通常只能以试错方式解决问题。
此外,还有可能会出现对问题模块的误判,反而掩盖真正问题(Actual Bug),由此导致不必要的重新编译迭代。
换而言之,如果缺乏对全局、整个系统的可观测能力,将难免会拉长调试验证周期,进而影响项目进度和产品上市时间。
大多数FPGA工程师使用的EDA工具,用英特尔在2019年所说的,就像是芯片厂商的“恩赐”,既没得选,可选择的也不多
目前,有三种方式用于获取信号可观测能力:
基于信号追踪的方式
Trace-based Techniques
这也是硬件设计开发流程中,工程师最为熟练使用的常规手段。
目前被工程师广泛使用的的调试工具,都是采用信号追踪方式,如ILA、SignalTAP、Synopsys Identify等,但可观测范围受限,通常只能获取整个系统的一部分信号。
基于电路扫描链的方式
Scan-based Techniques
为了弥补信号追踪方式在可观测能力上的局限,新出现基于电路扫描链的调试技术。
通过自动或手工方式,对RTL设计增加额外的扫描链逻辑,以获得对设计内部信号的全面可观测能力。
但因面积和性能开销较大,目前只在研究探索阶段,尚未得到推广应用。
基于芯片数据回读的先进调试技术
Readback-based Advanced Techniques
这也是各家EDA公司,提供硬件辅助验证服务的通用技术。
绕过了以ILA为代表的信号追踪方式固有的“信号观测能力有限”,"可能需要重编译",“需要占用FPGA片上资源”三大限制,是前者的强力补充。
最昂贵的硬件仿真平台,早在二十年前从产品推向市场之初就使用该技术,帮助用户提升对超大规模IC设计的调试验证效率。
赋予了硬件仿真平台与数字仿真器类似的可视化调试能力。
芯片数据的回读技术,可以追溯到赛灵思公司非常早期的Virtex FPGA芯片。
尽管是以接近毫秒级的“慢速”方式实现,但具有不需要重新编译等优点。
能够在任意时刻查看所有寄存器、存储单元的值,获得对全系统状态的完整可观测能力。只是部署使用所需的技术门槛过高。
Prototype Visibility Frontier
摩尔定理不只是带来芯片性能提升,同样推动了EDA工具的质变。
但代表 FPGA 最先进调试验证能力的EDA硬件辅助验证专用设备,配置的要么是太臃肿的复杂大软件,要不就是技术曲线过于陡峭、需要额外专业培训才能使用的昂贵工具套餐。
随着FPGA芯片制程工艺和自身技术进化,先进易用的EDA工具,是用户得以降低经验门槛,减少不确定性风险的利器。
在EDA硬件辅助验证行业尚未进入“书同文、行同伦、车同轨”的三巨头寡头共治之前,新思科技建议小规模设计,用户就直接在自己的板卡上做验证;大规模设计,用赛灵思的FPGA板卡,只有超大规模IC设计,才推荐使用自己的王牌产品HAPS。
在计算加速时代,我们希望回归本源,提供经济易用的全新解决方案,用户能够以更快更高效方式,交付更好的产品,加速取得成功。