littlebot
Published on 2025-04-08 / 0 Visits
0

【源码】基于Verilator和C++的硬件仿真环境

项目简介

本项目基于“一生一芯”计划项目框架修改而来,目的是助力开发者快速掌握Verilator硬件仿真工具。项目提供抽象层Dut,简化仿真测试对象的创建与管理,还支持在虚拟FPGA(nvboard)上运行Verilog设计,方便开发者快速构建和运行硬件仿真,生成波形文件以观察结果。

项目的主要特性和功能

  1. 支持Verilator仿真,能将Verilog源码转换为C++模型并生成可执行的仿真程序。
  2. 提供Dut类抽象层,简化仿真测试对象的创建和管理,便于编写仿真testbench。
  3. 支持在虚拟FPGA(nvboard)上运行Verilog设计,可观察运行效果。
  4. 仿真运行后生成波形文件(如simx.vcd),利于调试和分析。
  5. 借助make命令支持编译、运行仿真和nvboard操作,简化开发流程。

安装使用步骤

环境准备

初始化项目

  • 使用以下命令初始化项目: bash bash init.sh subproject-name
  • 初始化环境变量: bash source set-env.sh

编译和运行仿真

  • 进入npc/目录,使用以下命令进行编译和运行:
  • 编译Verilog源码为C++模型: bash make compile_hw
  • 编译Verilog源码与仿真源码,生成可执行程序: bash make compile_sim
  • 运行仿真程序并生成波形文件: bash make run_sim
  • 在nvboard上运行Verilog设计: bash make run_nvboard

观察结果

  • 仿真运行后,可在npc/目录下查看生成的波形文件(如simx.vcd)。
  • 在nvboard上运行的Verilog设计效果可通过图形界面观察。

注意事项

  • 项目目前不支持用户便捷配置(如是否开启波形等),后续会进一步完善。
  • 可以通过设置TOPNAME变量来指定顶层模块名,例如: bash make run_sim TOPNAME=mux 缺省的TOPNAMEexample

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】