论文部分内容阅读
BOOM(Berkeley Out-of-Order Machine)是加州大学伯克利分校研发的一款基于RISC-V指令集架构的开源处理器,其主要用于ASIC优化以及FPGA。本文针对BOOM处理器进行时序优化与验证。通过研究处理器微体系结构的实现方式并结合综合报告的关键路径来提出处理器的时序优化方法,以提升处理器整体运行速度,并搭建验证处理器功能的仿真验证平台,完成处理器验证。本文首先对BOOM处理器流水线微体系结构进行研究。采用Synopsys的Design Compiler工具和中芯国际40nm工艺库及其Memory Compiler对处理器进行综合,根据综合结果报告的关键路径对指令译码、寄存器重命名和指令发射三个流水级进行时序优化。通过切割流水线以及优化内部逻辑的方式,在增加了一定时钟周期的情况下提升了处理器运行速度,综合主频提升了14.2%。其次,本文使用指令集模拟器ISS与RTL协同仿真的验证策略对BOOM处理器进行功能验证。同时,为了保证浮点执行单元功能的正确性以及弥补指令集模拟器的缺陷,针对BOOM处理器的浮点执行单元搭建了基于通用验证方法学(UVM,Universal Verification Methodology)的验证平台,对浮点单元支持的全部浮点(54条)指令进行验证,而后将本浮点验证平台集成到BOOM处理器验证平台中进行处理器验证。为了更有效、快速的验证FPU单元,使用业界流行的通用验证方法学以及SystemVerilog语言搭建验证平台,以参考模型结果对比结合代码覆盖率和功能覆盖率的方式来检验DUT的正确性。通过前期的随机激励以及后期增加的定向激励,最终代码覆盖率达到98%,功能覆盖率达到100%,完成FPU验证。最后,在对BOOM处理器验证时通过集成FPU验证平台在体系结构层面上对处理器内部指令执行结果进行对比,实现了计分板自动对比ISS与RTL仿真Log、覆盖率自动收集等功能齐全的处理器验证平台。本文采用的随机指令生成平台可有效加速覆盖率收敛,最终代码覆盖率达到93%,功能覆盖率达到100%,同时针对Chisel转化的RTL中未覆盖代码进行分析。目前,通过对优化流水级以及验证后的BOOM处理器上版测试未出现明显异常。该处理器已在FPGA开发板独立启动操作系统,并且可以单独运行定点以及浮点30余项测试程序,本文最终完成了对BOOM处理器的优化与验证工作。