# simple_uvm **Repository Path**: jxzsxsp/simple_uvm ## Basic Information - **Project Name**: simple_uvm - **Description**: SimpleUVM一个基于UVM的验证平台框架,通过此框架可以快速高效的创建验证平台。 - **Primary Language**: Verilog - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: https://mp.weixin.qq.com/mp/appmsgalbum?__biz=MjM5MTYwMTY0NQ==&action=getalbum&album_id=2938281878065758214#wechat_redirect - **GVP Project**: No ## Statistics - **Stars**: 11 - **Forks**: 1 - **Created**: 2022-02-28 - **Last Updated**: 2025-02-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: uvm, SimpleUVM, 验证 ## README # SimpleUVM #### 介绍 SimpleUVM是一个基于UVM的验证平台框架,通过此框架可以快速高效的创建验证平台。 #### 安装教程 1. 在Linux系统上安装VCS、NCSIM和QUESTASIM,三者安装一个就可以,推荐安装VCS,不同环境下使用NCSIM和QUESTASIM可能会有一些问题,这里就不介绍详细的安装过程; 2. 下载UVM库代码 https://www.accellera.org/downloads/standards/uvm ,将下载的压缩包解压到指定目录,这里推荐目录为 `~/uvm` ,可以下载不同版本的UVM,目前只支持uvm-1.1d和uvm-1.2; ![](images/uvm_libs.png) 如上图可以看到我已经下载了uvm-1.1d和uvm-1.2两个版本的UVM。 3. 克隆本仓库代码到任意目录; ``` git clone https://gitee.com/jxzsxsp/simple_uvm.git ``` #### 使用说明 1. 进入仓库代码目录simple_uvm; ``` cd simple_uvm # 如果setup.sh或bin目录下的命令无法执行时,可以给命令文件添加可执行权限 chmod +x setup.sh bin/* ``` 2. 设置环境; ``` source setup.sh VCS # 默认使用uvm-1.1d 或 . setup.sh VCS # 使用uvm-1.2 source setup.sh VCS uvm-1.2 # 使用NCSIM,默认使用uvm-1.1d source setup.sh NCSIM ``` 3. 创建验证平台; ``` simple_uvm create fifo # 创建一个验证FIFO模块的UVM验证平台,创建成功后在当前目录下生成一个fifo_test目录,包含UVM验证平台的一些基本文件 ``` ![](images/001.png) 如上图所示,FIFO的验证平台就已经创建好了,接下来就是跑一下测试case了。 4. 执行验证平台case; ``` cd fifo_test # 进入新创建的验证平台的目录 simple_uvm run test_case0 # 执行test_case0 simple_uvm run test_case1 # 执行test_case1 ``` ![](images/002.png) ![](images/003.png) 如上图所示,我们的验证平台已经可以跑通了。当然此时的验证平台还没有任何验证功能,还需要把我们需要验证的DUT源码加入到`filelist.f`中,然后修改`if`, `driver`, `monitor`, `transaction`, 再添加不同的验证case。 5. 到这里已成功创建验证平台并运行起来了,接下来可以根据自己设计的DUT修改创建好的验证平台了; - 修改filelist.f,将自己要验证的DUT源码引入进来 - 修改fifo_if.sv,根据DUT修改虚拟接口 - 修改fifo_driver.sv - 修改fifo_monitor.sv - 修改fifo_transaction.sv - 添加test_case #### 开发计划 由于近两年作者一直在从事FPGA开发工作,一直没有时间维护这套框架。作者计划在2024年将会抽出大量时间来继续完善本框架,并且会开发一些真实案例来使用本框架进行验证,并将整个流程输出为教程。帮助更多的人快速掌握UVM验证。 #### 获取更多教程请关注公众号 ![](images/fpga_and_ic.png)