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也执行一条指令,并且对比二者执行指(zhǐ)令(lìng)之(zhī)后(hòu)的(de)结(jié)果(guǒ)是(shì)否(fǒu)一致。

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

徐易难.j

为了改善芯片验证质量与效率,产业界转向基于Emulator(硬件仿真器)、FA的硬件仿真平台,其特点在于将REF部署在Host环境,以软硬件(RTL-Host)通信为核心,利用PCIE、以太网、InfiniBand等连接手段在软件(Host侧)和硬件(RTL侧)之间传递信息,实现了对电路仿真的数量级加速。比如香山团队长期维护的DiffTest框架,已经支持硬件仿真加速。

但香山团队发现,RTL-Host架构带来的通信开销,限制了DiffTest对香山等复杂处理器的验证加速效(xiào)果(guǒ)。面(miàn)向(xiàng)这(zhè)一(yī)瓶颈(jǐng),香(xiāng)山(shān)团(tuán)队(duì)提(tí)出(chū)了(le)SVM(可(kě)综(zōng)合(hé)验(yàn)证(zhèng)方(fāng)法(fǎ)),把(bǎ)整(zhěng)个(gè)REF映(yìng)射(shè)到(dào)FA上(shàng)或(huò)者(zhě)Emulator上(shàng),使(shǐ)REF与(yǔ)DUT的(de)通(tōng)信(xìn)都(dōu)在(zài)片(piàn)上(shàng)完(wán)成(chéng),从(cóng)而(ér)避(bì)免(miǎn)通(tōng)信(xìn)开(kāi)销(xiāo)。

但(dàn)SVM架(jià)构(gòu)的(de)构(gòu)建(jiàn),也面临一些挑战。对此,香山团队进行了一系列技术和模型创新。

一是如何确保REF的电路代码实现。REF通常为软件指令集模拟器,如何用硬件描述和实现,尚处于空白。香山团队采用了语义代码迁移技术,通过构造指令操作树,将Spike的基本语义转变成REF或(huò)者(zhě)RTL的(de)语(yǔ)义(yì),支(zhī)持(chí)指(zhǐ)令(lìng)功(gōng)能(néng)、控(kòng)制(zhì)和(hé)状(zhuàng)态(tài)寄(jì)存(cún)器(qì)(CSR)、常(cháng)量(liàng)等(děng)语(yǔ)义(yì)信(xìn)息(xi)自(zì)动(dòng)迁(qiān)移(yí)。

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

三(sān)是(shì)如(rú)何(hé)提(tí)升(shēng)SVM框(kuāng)架(jià)的(de)可(kě)调(diào)试(shì)性(xìng)。香(xiāng)山(shān)团(tuán)队(duì)提(tí)出(chū)了(le)一(yī)种(zhǒng)可(kě)综(zōng)合(hé)的(de)调(diào)试(shì)技(jì)术(shù),当(dāng)CPU执(zhí)行(xíng)出(chū)错(cuò)时(shí),将(jiāng)REF转(zhuǎn)换(huàn)为(wèi)独(dú)立(lì)执(zhí)行的通用CPU。这意味着REF可以作为CPU去读取片上提取器,判断是哪个硬件化断言出错,从而用于调试。

随着香山(shān)处(chù)理(lǐ)器(qì)迭(dié)代(dài)到(dào)第(dì)三(sān)代(dài)架(jià)构(gòu)“昆(kūn)明(míng)湖(hú)”,核(hé)心(xīn)数(shù)量(liàng)增(zēng)加(jiā)至(zhì)16核(hé),并(bìng)构(gòu)建(jiàn)了(le)面(miàn)向(xiàng)高(gāo)性(xìng)能(néng)计(jì)算(suàn)场(chǎng)景(jǐng)的(de)系(xì)统(tǒng)级(jí)SoC架(jià)构(gòu),其(qí)CPU系(xì)统(tǒng)复杂性进一步提升,亟需大规模FA平台与自动化工具链。围绕香山昆明湖16核CPU的大级联FA系统验证,香山团队与EDA企业合见工软进行了实践。

昆明湖验证挑战_副本.j

昆明湖处理器验证挑战

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

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

基于这套方法论,双方实现了四个成果。一是自动化的编译流程。除了必要的Porting之外,时钟转换、自动分割、TDM IP绑定等关键工作都可以交给EDA工具,让用户将最宝贵的时间留给项目本身。二是达成了性能目标,在16核完整版本中将CPU主时钟稳定运行在10.2 MHz。三是在FA原型验证平台上,完整运行一个未经裁剪的、可启动OS的16核高性能昆明湖(hú)RISC-V处理器系统。四是相比传统方法,整体验证效率提升约40%,大幅缩短产品上市时间。

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

更(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ì)

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

在演讲中,晶心科技介绍了其Andes ACE框架与AndesCycle模拟平台,助力加速RISC-V自定义指令的开发与验证流程。据晶心软件工程(chéng)师颜敬哲介绍,开发者将ACE定义文件和精简Verilog文件提交至ACE框架的COPILOT代码生成器,就能获取C语言编程辅助函数接口、汇编器、OpenOCD调试工具等所需的扩展文件。COPILOT还会自动生成控制逻辑(ACE引擎)与指令模块的Verilog代码,开发者可将这些代码集成至现有的AndesCore处理器架构,从而得到定制化的CPU指令。接下来,开发者可基于AndesCycle模拟器,对指令进行性能分析和调试,从而加速自定义指令的开发。

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

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

随(suí)着(zhe)RISC-V生(shēng)态系统的快速发展,SoC系统建模需求日益增长。当前主流的RISC-V仿真工具主要包括QEMU、Spike和Gem5,其建模优势各有不同,比如QEMU运行性能较强,Spike开发较容易,Gem5模拟精度高且可兼容SystemC TLM。但也存在一些痛点。一是QEMU、Spike的精度仅为functional水平,至少需将其精度提升至Near-Cycle级别,才能支(zhī)持(chí)Profiling(性(xìng)能(néng)分(fēn)析(xī))等(děng)工(gōng)具(jù)的(de)扩(kuò)展(zhǎn)。二(èr)是(shì)QEMU、Spike不(bù)支(zhī)持(chí)SystemC TLM-2.0——作(zuò)为(wèi)通(tōng)过(guò)事(shì)务(wu)级通信抽象的标准化接口,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月“一生一芯”暑期宣讲会正式开放内测。

友情链接 集成电路有限公司 - 芯片模拟器网站入口