草帽王子 发表于 2021-7-22 18:04:17

一个能生成RISC-V内核的“神器”

如果您一直在研究开放标准RISC-V ISA CPU内核,那么您很有可能遇到过WARP-V。对于新手来说,WARP-V是用TL-Verilog(事务级Verilog)编写的RISC-V CPU内核生成器,不仅支持RISC-V,还支持MIPS ISA。由于其在少量代码中具有无与伦比的架构可扩展性,业界已经对WARP-V讨论了一段时间。

TL-Verilog的诞生促进了WARP-V CPU内核生成器的发展。几十年来,数百名工程师一直致力于设计一个更复杂的单核CPU,以实现更高的单核性能。但随着半导体行业的最新发展,拥有数十年CPU内核设计经验的开发人员和工程师Steve Hoover提出了在仅1.5周内开发WARP-V内核的想法,而无需使用先进的CPU微架构技术。

我们想到的一个重要问题是,当我们拥有Verilog和VHDL时,为什么还要另一种HDL,TL-Verilog。(剧透:TL-Verilog不是硬件描述语言)。这样做有几个原因,例如将CPU设计得简洁、灵活和明确。使用TL-Verilog,与SystemVerilog中的单周期设计相比,1到7周期流水线深度的代码大小几乎减少了一半。发生这种情况是因为TL-Verilog模型的大小是其Verilog等效模型的一半。当我们查看其他HDL时,它们更多地用于静态设计的描述,但这不是TL-Verilog背后的概念,因为它是为设计过程而构建的,因此是一种硬件设计语言。


一、什么是WARP-V CPU内核生成器?

回到WARP-V核心,就核心的灵活性而言,它可以实现像微控制器一样的单级CPU,甚至可以实现7级通用处理器。作为一个开源项目,您现在可以使用小源代码使其适合于您的应用程序。WARP-V CPU核心功能只有CPU核心实现,没有虚拟内存、缓存和I/ o。通过可定制的ISA,您现在可以添加可选的RISC-V扩展,比如基本整数指令集(E)、整数乘法和除法的标准扩展(M)、单精度浮点数(F)和位操作(B)。

当我们查看WARP-V的CPU设计微架构时,我们可以注意到每条垂直的绿线将虚拟流水线阶段分开。所有这些虚拟流水线阶段都可以映射到单个物理阶段或不同的物理阶段。由于是RISC-V实现,解码、分支目标计算和寄存器都映射到同一个物理阶段。代码是通过使用宏预处理器M4开发的,您可以将生成的代码作为源代码并调整微架构。


但是当我们谈论核心的灵活性时,要满足这一点,还必须有灵活的验证建模。作为一个开源项目,它为许多贡献者提供了一个工作和了解设计核心的集成水平的机会。在GSoC(Google Summer of Code)2018上,TU Delft的硕士生 Hadnagy与Steve Hoover一起展示了TL-Verilog在验证建模方面的使用和灵活性优势。


二、WARP-V的下一步是什么?

在我们谈论WARP-V的未来发展之前,让我们先了解如何开始使用这个CPU内核生成器。要配置WARP-V,您可以在Makerchip中使用IDE进行编译和调试时通过命令行修改参数。假设您已经学习了TL-Verilog和Makerchip的教程,您可以在“NAV-TLV”窗口中选择、编译和处理模型。

(创客集成开发环境)

即使WARP-V不一定是最佳选择,它也是一种使CPU通用化的方法。围绕WARP-V可以做的事情可能不多,但您肯定可以处理其他相关的工作负载,例如使其成为多核以显示事务流程,甚至可以在TL-Chisel上工作。设计师Steve Hoover引述道:“RISC-V解放了ISA。现在是解放CPU和其他组件的时候了。为更大的事情保留专利。”


页: [1]
查看完整版本: 一个能生成RISC-V内核的“神器”