OpenTitan项目设计验证(DV)环境搭建指南

OpenTitan项目设计验证(DV)环境搭建指南

opentitan OpenTitan: Open source silicon root of trust opentitan 项目地址: https://gitcode.com/gh_mirrors/op/opentitan

前言

OpenTitan作为一个开源硬件安全项目,其设计验证(DV)环节对于确保芯片功能正确性和安全性至关重要。本文将详细介绍如何在OpenTitan项目中搭建设计验证环境,帮助开发者快速上手DV工作。

设计验证阶段概述

OpenTitan项目中的硬件开发分为三个主要阶段:

  1. 初始工作阶段:建立基础验证环境和文档
  2. 测试阶段:执行详细的功能验证
  3. 测试完成阶段:完成所有验证目标

本文重点指导如何从初始工作阶段顺利过渡到测试阶段。

准备工作

在开始DV工作前,需要确保:

  • 已完成所有依赖项的安装和软件构建
  • 设计规范文档已经就绪
  • 设计已从规范阶段进入开发阶段

使用uvmdvgen工具创建验证环境

uvmdvgen是OpenTitan提供的自动化验证环境生成工具,它能快速搭建验证框架:

  1. 在DUT根目录(包含rtl目录的位置)运行工具
  2. 工具会自动创建以下目录结构:
    • dv/:包含完整的测试平台和测试构建文件
    • data/:存放验证相关数据
    • doc/:存放验证文档

建议操作:生成后立即在所有文件中搜索'TODO'标记,完成必要的修改,特别是DUT特定IO接口的连接。

验证文档编写与评审

1. DV文档

  • 描述验证组件清单
  • 包含测试平台框图设计
  • 可使用项目提供的.svg格式模板

2. Hjson测试计划

  • 需要完整编写
  • 遵循testplanner工具的规范要求

完成文档后,应与设计团队进行评审,确保内容完整清晰。

UVM RAL模型生成

对于包含CSR寄存器的设计,需要创建UVM RAL模型:

  1. 仿真流程已支持自动生成RAL模型
  2. 也可手动使用regtool工具生成:
    util/regtool.py -s -t /path-to-dv /path-to-module/data/<dut>.hjson
    

生成的文件会存放在仿真构建临时区域,无需提交到代码库。

支持的仿真工具

OpenTitan DV环境支持:

  • Synopsys VCS(完全支持)
  • Cadence Xcelium(逐步完善支持)

构建和运行测试

运行基础测试

uvmdvgen工具会生成一个空的sanity测试序列:

util/dvsim/dvsim.py path/to/<dut>_sim_cfg.hjson -i <dut>_sanity [--waves <format>] [--tool xcelium]

注意:初始生成的测试平台可能无法立即编译通过,需要根据错误信息进行调试。

波形查看选项

  • VCS用户:--waves vpd
  • Xcelium用户:--waves shm
  • Verdi用户:--waves fsdb

CSR测试

对于包含CSR的设计,可以运行完整的CSR测试套件:

util/dvsim/dvsim.py path/to/<dut>_sim_cfg.hjson -i <dut>_csr_hw_reset [--waves <format>] [--tool xcelium]

完整DV流程

建议开发流程:

  1. 从sanity测试和CSR测试开始
  2. 逐步实现测试计划中的所有测试用例
  3. 参考项目检查清单完成各阶段验证目标

复现CI报告的DV失败

要复现CI环境中的测试失败:

  1. 确保使用与CI相同的VCS版本
  2. 获取CI使用的合并分支:
    git fetch upstream pull/<PR_number>/merge
    git checkout -b <temp_branch> FETCH_HEAD
    
  3. 使用相同种子运行测试:
    util/dvsim/dvsim.py hw/ip/uart/dv/uart_sim_cfg.hjson -i uart_smoke --fixed-seed=<seed> [--waves <format>]
    

结语

本文详细介绍了OpenTitan项目设计验证环境的搭建流程。通过遵循这些步骤,开发者可以快速建立验证环境并开始DV工作。在实际开发过程中,建议参考项目中的UART DV实现作为范例。

opentitan OpenTitan: Open source silicon root of trust opentitan 项目地址: https://gitcode.com/gh_mirrors/op/opentitan

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

钱勃骅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值