EDA如何支持RISC-V?

【导语】RISC-V以其高度可定制、模块化及多样化的应用场景,为计算产业带来了高效、灵活与开放的新机遇。然而,这一创新技术也对芯片的验证调试提出了新的挑战。在第五届RISC-V中国峰会上,业界聚焦于如何通过IP、EDA等设计工具提升RISC-V处理器的开发、验证与调试效率。多家EDA企业与研发团队展示了最新的验证方法学、工具链创新以及开源EDA解决方案,旨在充分发挥RISC-V指令集的优势,加速芯片设计与验证进程。

RISC-V具有高度可定制、模块化、场景多样的特点,在为计算产业带来高效、灵活、开放、易协作等一系列优势的同时,也对芯片的验证调试带来新的考验。在近日举行的第五届RISC-V中国峰会(以下简称“峰会”)上,如何从IP、EDA等设计工具层面,提升RISC-V处理器的开发、验证和调试效率,以充分发挥RISC-V指令集的优势,成为业界关心的焦点。

新的验证方法学:提升RISC-V处理器验证效率和质量

仿真验证是芯片实现设计目标和功能正确的必备步骤,直接影响芯片设计的成功率。在峰会展区,记者在思尔芯、芯华章等EDA企业展台都看到了原型验证平台。据思尔芯工作人员介绍,基于FA原型验证平台和操作系统,RISC-V设计企业可以将写好的代码通过FA进行硬件实现和模拟,继而开展功能开发和Debug,完整这套流程后就可以进行客户演示。“这样的好处有两个,一是给客户信心;二是客户可以将这套完整的、堪比流片后的环境融入自己的系统,做进一步的开发。”

思尔芯_副本.j

思尔芯原型验证平台

目前,RISC-V处理器常用的仿真框架是协同仿真验证,其原理是将待测设计(DUT)与参考模型(REF)一起仿真。DUT每执行一条指令,REF也执行一条指令,并且对比二者执行指令之后的结果是否一致。

但RISC-V的技术趋势,正在给协同仿真验证带来挑战。首先是RISC-V指令集的复杂度迅速膨胀。比如RVA23有33个必选扩展、830页指令集手册,相比2019年已经翻倍,且不同的RISC-V扩展有不同的验证需求,导致验证难度提升。其次是处理器的电路仿真速度正在放慢。尤其是最常使用的软件仿真,其速度随着处理器规模扩大而大幅下降。

徐易难.j

为了改善芯片验证质量与效率,产业界转向基于Emulator(硬件仿真器)、FA的硬件仿真平台,其特点在于将REF部署在Host环境,以软硬件(RTL-Host)通信为核心,利用PCIE、以太网、InfiniBand等连接手段在软件(Host侧)和(hé)硬(yìng)件(jiàn)(RTL侧(cè))之(zhī)间(jiān)传(chuán)递(dì)信(xìn)息(xi),实(shí)现(xiàn)了(le)对(duì)电(diàn)路仿(fǎng)真(zhēn)的(de)数(shù)量(liàng)级(jí)加(jiā)速(sù)。比(bǐ)如(rú)香(xiāng)山(shān)团(tuán)队(duì)长(zhǎng)期(qī)维(wéi)护(hù)的(de)DiffTest框(kuāng)架(jià),已(yǐ)经(jīng)支(zhī)持(chí)硬(yìng)件(jiàn)仿(fǎng)真(zhēn)加(jiā)速(sù)。

但(dàn)香(xiāng)山(shān)团(tuán)队(duì)发(fā)现(xiàn),RTL-Host架构带来的通信开销,限(xiàn)制(zhì)了DiffTest对香山等复杂处理器的验证加速效果。面向这一瓶颈,香山团队提出了SVM(可综合验证方法),把整个REF映射到FA上或者Emulator上,使REF与DUT的通信都在片上完成,从而避免通信开销。

但SVM架构的构建,也面临一些挑战。对此,香山团队进行了一系列技术和模型创新。

一是如何确保REF的电路代码实现。REF通常为软件指令集模拟器,如何用硬件描述和实现,尚处于空白。香山团队采用了语义代码迁移技术,通过构造指令操作树,将Spike的基本语义转变成REF或者RTL的语义,支持指令功能、控制和状态寄存器(CSR)、常量等语义信息自动迁移。

二是如何提升硬件REF的执行效率。香山团队提出了硬件参考模型(SRef)设计:当DUT提交N条指令,SRef执行N条指令,并对比结果。同时,通过全流水无阻塞的工作流程,消除RISC-V指令间的控制依赖。

三是如何提升SVM框架的可调试性。香山团队提出了一种可综合的调试技术,当CPU执行出错时,将REF转换为独立执行的通用CPU。这意味着REF可以作为CPU去读取片上提取器,判断是哪个硬件化断言出错,从而用于(yú)调(diào)试(shì)。

随着香(xiāng)山(shān)处理器迭代到第三代架构“昆明湖”,核心数量增加至16核,并构建了面向高性能计算场景的系统级SoC架构,其CPU系统复杂性进一步提升,亟需大规模FA平台与自动化工具链。围绕香山昆明湖16核CPU的大级联FA系统验证,香山团队与EDA企业合(hé)见(jiàn)工(gōng)软(ruǎn)进(jìn)行(xíng)了(le)实(shí)践(jiàn)。

昆(kūn)明(míng)湖(hú)验(yàn)证(zhèng)挑(tiāo)战(zhàn)_副(fù)本(běn).j

昆(kūn)明(míng)湖(hú)处(chù)理(lǐ)器(qì)验(yàn)证挑战

合见工软验证产品线市场总监曹梦侠表示,构建大型FA系统有三个难点。首先是如何将大规模设计切割到不同的FA中,这是困扰产业界几十年的难题;其次是切割后如何保证功能正确;再次是怎么建立精确的时序模型。

面向以上难点,合见工软和香山团队建立了提出了一套系统化的多核处理器 FA验证方法论,包括设计移植与适配、编译迭代效率与资源优化使用的最大化平衡、渐进式启动策略与软硬协同调试技术。

基于这套方法论,双方实现了四个成果。一是自动化的编译流程。除了必要的Porting之外,时钟转换、自动分割、TDM IP绑定等关键工作都可以交给EDA工具,让用户将最宝贵的时间留给项目本身。二是达成了性能目标,在16核完整版本中将CPU主时钟稳定运行在10.2 MHz。三(sān)是(shì)在(zài)FA原(yuán)型(xíng)验(yàn)证(zhèng)平(píng)台(tái)上(shàng),完(wán)整(zhěng)运(yùn)行(xíng)一(yī)个(gè)未(wèi)经(jīng)裁(cái)剪(jiǎn)的(de)、可(kě)启(qǐ)动(dòng)OS的(de)16核(hé)高(gāo)性(xìng)能(néng)昆(kūn)明(míng)湖(hú)RISC-V处(chù)理(lǐ)器(qì)系(xì)统(tǒng)。四(sì)是(shì)相(xiāng)比(bǐ)传(chuán)统(tǒng)方法,整体验证效率提升约40%,大幅缩短产品上市时间。

未来,双方希望EDA企业协同推动RISC-V验证方法学标准化。北京开源芯片研究院(以下简称“开芯院”)高级工程师李贤飞表示,希望EDA厂商能开发更多支持CPU核心之外验证场景的特性,包括动态功耗验证和低功耗验证。同时,开芯院希望与EDA厂商一起构建工具链,包括Emulator与UVHS(原型验证)的混合验证模式;在多核验证方法学上,构建存储一致性协议的验证方法学,探索跨核事件的追踪框架。此外,基于EDA厂商提供的新方案、新技术和新方法,探索温榆河NOC的相关应用,开发基于Emulator的CPU Tracer类的调试工具,并增加功耗—性能联合分析能力,为SoC设计提供更全面的评估维度。

更(gèng)精(jīng)微(wēi)的(de)工(gōng)具(jù)链(liàn):释(shì)放(fàng)RISC-V可(kě)定(dìng)制(zhì)可(kě)扩(kuò)展(zhǎn)优(yōu)势(shì)

可(kě)定制、可扩展是RISC-V的天然优势,但要让开发者便捷高效地开发出能运行在CPU上的定制化指令,依然需要工具链从更细颗粒度予以支持。

在演讲中,晶心科技介绍了其Andes ACE框架与AndesCycle模拟平台,助力加速RISC-V自定义指令的开发与验证流程。据晶心软件工程师颜敬哲介绍,开发者将ACE定义文件和精简Verilog文件提交至ACE框架的COPILOT代码生成器,就能获取C语言编程辅助函数接口、汇编器、OpenOCD调试工具等所需的扩展文件。COPILOT还会自动生成控制逻辑(ACE引擎)与指令模块的Verilog代码,开发者可将这些代码集成至现有的AndesCore处理器架构,从而得到定制化的CPU指令。接下来,开发者可基(jī)于(yú)AndesCycle模(mó)拟(nǐ)器(qì),对(duì)指(zhǐ)令(lìng)进(jìn)行(xíng)性(xìng)能(néng)分(fēn)析(xī)和(hé)调(diào)试(shì),从(cóng)而(ér)加(jiā)速(sù)自(zì)定(dìng)义(yì)指(zhǐ)令(lìng)的(de)开(kāi)发(fā)。

基(jī)于(yú)RISC-V指(zhǐ)令(lìng)集的(de)ASIC(专(zhuān)用(yòng)集成(chéng)电(diàn)路)芯(xīn)片被视为AI芯片架构创新的重要契机。威尔逊研究小组研报显示,ASIC项目平均50%的时间用于验证,验证耗时最少的项目通常复用经过预验证的IP模块。反之,验证耗时较长的项目往往涉及大量新开发的IP模块。

为降低RISC-V企业的IP验证成本,西门子EDA团队带来了端到端RISC-V调试和追踪解决方案Ultra Sight-V,包括硬件IP层面的运行控制、高效追踪、高效调试IP、经过预验证和量产验证的IP、UVM(通用验证方法学)验证环境、系统可扩展性等,USB、JTAG、AXI等(děng)接(jiē)口(kǒu),主机(jī)软(ruǎn)件(jiàn)套(tào)件(jiàn)和(hé)兼(jiān)容(róng)第(dì)三(sān)方(fāng)工(gōng)具(jù)的(de)用(yòng)户(hù)环(huán)境(jìng)。在(zài)调(diào)试(shì)RISC-V核(hé)心(xīn)的(de)IP硬(yìng)件(jiàn)中(zhōng),西(xi)门(mén)子(zi)团(tuán)队(duì)提(tí)供(gōng)了(le)RISC-V高(gāo)效(xiào)追(zhuī)踪(zōng)(E-Trace),能(néng)够(gòu)对(duì)RISC-V指令进行高度压缩。开启RISC-V追踪的可扩展功能后,压缩率——即测试基准程序的BPI(记录一条指令所需比特数)下降40%。这意味着利用E-Trace进行追踪,在相同时间下消耗的带宽更少,在相同的存储空间和带宽下可以追溯更长时间之前发生的错误。

随着RISC-V生态系统的快速发展,SoC系统建模需求日益增长。当前主流的RISC-V仿真工具主要包括QEMU、Spike和Gem5,其建模优势各有不同,比如QEMU运行性能较强,Spike开发较容易,Gem5模拟精度高且可兼容SystemC TLM。但也存在一些痛点。一是QEMU、Spike的精度仅为functional水平,至少需将其精度提升至Near-Cycle级别,才能支持Profiling(性能分析)等工具的扩展。二是QEMU、Spike不支持SystemC TLM-2.0——作为通过事务级通信抽象的标准化接口,SystemC TLM-2.0实现了不同厂商RISC-V模型在同一虚拟平台上的即插即用兼容性,方便集成到第三方VP。三是模型软件接口不友好,没有为集成自定义指令提供足够便利。

建模_副本.j

各类仿真工具建模特点

面向以上痛点,芯来科技构建了Nuclei Model。据芯来科技建模工程师徐子泰介绍,Nuclei Model在ISS基础上建立Timing Model(时序模型),使RISC-V SoC系统达到 Near Cycle的建模精度。构建时序模型之后,还需进行Profiling。Nuclei Model有两种Profiling方式,其一是将指令解码后,将PC(程序计数器)和Cycle(周期数)输出给Profiling处理单元,再通过Gprof等性能分析工具呈现CPU占用率,进而分析性能瓶颈。其二是通过火焰图,芯来团队结合了Flame Chart和Flame Graph两种火焰图的优点,实现了带时间轴属性,调用栈关系以及多线程应用程序可视化等特点的火焰图。基于Profiling定位热点函数后,再结合自定义指令,可以快速优化算法程序。

为了进一步发挥RISC-V“任何用户都可以不受限制地获得RISC-V指令集”的开放性优势,中国科学院大学于2019年启动“一生一芯”开源处理器芯片教学流片实践项目计划,以开源处理器芯片为切入点,让学生可以带着自己设计的处理器芯片毕业。中国科学院计算所副研究员解壁伟在峰会现场表示,RISC-V的价值在于人人都可以定制自己的芯片,这一目标的实现需要开源EDA。

“开源EDA的作用,就如GCC等开源编译器之于开源软件生态。”解壁伟表示。其所在的开源芯片生态团队推出了ECOS Studio开源芯片设计解决方案,推动EDA工具及工具链开源,构建基于开源EDA工具链的SoC和后端学习流程及讲义。据悉,这套解决方案已经在今年7月“一生一芯”暑期宣讲会正式开放内测。