基于RISC-V和FPGA的SOC平台的验证文献综述

 2022-11-28 08:11

文 献 综 述

芯片是信息社会的基石,支撑信息生活的应用与服务软件必须运行在计算芯片上才能实现其功能。软件的需求形形色色,但芯片却只能提供有限的几类选择。这种软硬件不对称的根源在于芯片设计与生产的门槛极高[1]

对于初创企业和高校的科研团队来说,芯片设计的门槛极高,这是因为芯片设计与制造的每个环节都有巨额的成本。芯片设计制造涉及EDA工具的授权与使用、前端逻辑设计与验证、IP模块的选用与购买、模块集成测试、后端物理设计以及最终的流片与封装[2]。其中,EDA工具和IP模块都需要高昂的授权费用;逻辑设计开发效率低下,容易出错;测试验证迭代周期漫长,硬件问题难以定位;前后端交接效率低下;流片封装成本高昂,而且需要竞争晶圆代工厂的产能。这样的高门槛极大地阻碍了芯片领域新鲜血液的出现与创新,同时由于失败成本极高,测试与验证方面的投入不得不进一步加大,使得门槛进一步提高,在领域多样性的发展层面形成一个死锁[3]

虽然芯片领域出现了高度的分工,但在传统的芯片设计授权模式下,指令集和公版设计都要收取一笔客观的授权费用,同时再针对指令集收取版税,这对芯片公司来说是不小的开销。同时,对公版设计的修改往往会被加以限制,想要深入修改还需要再支付一笔费用。这阻碍了芯片公司的创新,使得深入核心内部的充分改造与优化有着高昂的额外成本。创新性的功能实现与优化设计往往只能以IP核的形式在芯片外部实现,在印刷电路板(Printed Circuit Board, PCB)上与芯片互联,但这样便限制了性能、增加了能耗、浪费了面积[4]

如果开源芯片能够普及,首先可以节省IP模块方面的费用,降低一定程度的研发成本,同时由于开源的设计可以由社区持续地改进,所有人都能享受到最新、最优化的成果,这样便可以提高行业整体的发展水平。繁荣的开源社区往往会催生脱离个别商业公司限制的统一的开源工具链。对于芯片领域来说,则是EDA工具的授权费用得以节省,同时由于工具链的统一,设计经验和代码资源的复用将变得更加容易,在一定程度上能够进一步提升开发的效率。如果以开放指令集代替版权指令集,除了能节省研发和生产的成本外,还能使软件生态更加繁荣、统一、开放[5]

自20世纪70年代开始的开源软件运动已经通过互联网领域的市场繁荣证明了自己的价值。形成统一标准并持续、开放地发展源码的结果是企业能够迅速地对市场做出反应,提供产品,或者以极低的成本验证创新性的项目[6]

FPGA的出现使得以源码形式发布硬件设计变得更为可行。通过EDA工具将源码进行综合,并存储在闪存等外部持久化存储设备中,与FPGA芯片和其他芯片一起焊接在PCB上,接通电源后将电路设计烧录到FPGA中,这样便在一定程度上获得了可以工作的硬件系统。约定好FPGA芯片型号和其他另购的基础部件后,一个开源硬件的硬件描述代码便可以快速地部署到真实的硬件中,方便他人进行生产制造,而不需要对源代码进行修改和适配[7]。处理器的核心是硬件系统里不可或缺的组成部分,FPGA使得通过源码发布的软核(以源代码形式发布,部署在FPGA上,系统断电后无法保存结构的处理器核心,与之相对的硬核则直接生成固定的集成电路,分发给使用者的处理器核心,处理器的功能和结构无法修改)变得可用,维持并促进了软核的用户生态和社区发展[8]

但是开源芯片社区仍然存在着不足。首先,对于最终的流片而言,只提供源码级IP核并不只是增加修改逻辑功能那么简单,FPGA和专用集成电路(Application Specific Integrated Circuit, ASIC)的时序特性不尽相同,芯片工艺、代工厂之间也存在着差异,这些差异会深刻影响前端逻辑实现的决策,这意味着获取的芯片源码仍然要经历大量的适配性调整[9]。同时,开源芯片使用的架构往往不同,有些甚至试图兼容具有商业版权的指令集,这就给软件生态带来了极大的分裂,前人的软件开发与移植成果很可能不能在新的芯片上加以复用,各芯片最理想的情况也只能是使用最基本的系统运行库,任何高级软件都要由有需求的组织负责移植,并测试和验证正确性;由于用户数量较少,软件代码版本往往存在一定的滞后性。这些都是对运行在芯片上的软件生态不利的因素,而这些不利因素会反过来制约企业确立项目时对开源芯片的考量。在后端工具方面,对于中高端的芯片,依然缺乏功能完备的开源EDA工具链与工艺库(工艺库指用于生成电路的基础原件集合,工艺库越先进,可发掘的性能空间就越大,对电路布线的要求就越宽松)[10]

开放指令集RISC-V致力于解决软件生态和硬件平台问题,越来越多的现代开发工具和开发框架则在一定程度上缓解了调整源码和复用代码的难度。RISC-V便是为了解决上述问题而诞生的开源精简指令集架构,由UCB于2010年发布[11]

RISC-V具有三大优势,RISC-V最大的优势就是开源和免费。免费意味着RISC-V可以帮助开发者低成本完成CPU设计,如果最终量产,那么就免去面对版税纠纷[12]。 RISC-V第二个优势就是简单。基础指令集只有40多条,短小精悍的架构和模块化指令集让使用RISC-V技术的芯片设计者,可以开发出很简单的 RISC-V CPU。该 CPU 功耗可以很小,代码密度也比较低。为了满足嵌入式和物联网对代码体积的高要求,RISC-V定义了一种可选的压缩(Compressed)指令子集,由字母C表示,也可以由RVC表示。测试表明,RV32C 的代码体积相比RV32的代码体积减少了40%,与ARM、MIPS和 x86等架构相比,都有不错的表现,甚至与ARM Thumb-2基本一样[13]。RISC-V第三个优势是灵活性。RISC-V 架构通过预留大量的编码空间和4条用户指令,可以帮助用户扩展指令集。这个特性在现在的AIoT和信息安全市场,获得了特别的关注。RISC-V商业IP公司,比如,Andes(晶心科技),还提供了定制化指令工具Andes Custom Extension,让用户在做应用加速的时候,可以达到更快、更有效率的方式[14]

剩余内容已隐藏,您需要先支付 10元 才能查看该篇文章全部内容!立即支付

发小红书推广免费获取该资料资格。点击链接进入获取推广文案即可: Ai一键组稿 | 降AI率 | 降重复率 | 论文一键排版