soc/sw/NEW_TESTS_README.md

新增测试说明

概述

根据验证脚本分析,已添加以下缺失的测试用例:

新增的测试

1. C 语言测试

1.1 spi_test

  • 路径: soc_test_c/spi_test/spi_test.c
  • 说明: SPI0 (QSPI控制器0) 的基础测试
  • 基地址: 0x20000000
  • 功能: 测试 SPI 读写操作
  • 验证脚本: 已在 soc_test.py 中定义(已修复配置)

1.2 i2c1_read_test

  • 路径: soc_test_c/i2c1_read_test/i2c1_read_test.c
  • 说明: I2C1 控制器读测试
  • 基地址: 0x20050000
  • 功能: 测试 I2C1 读操作
  • 验证脚本: 已添加到 soc_test.py

1.3 i2c1_write_test

  • 路径: soc_test_c/i2c1_write_test/i2c1_write_test.c
  • 说明: I2C1 控制器写测试
  • 基地址: 0x20050000
  • 功能: 测试 I2C1 写操作
  • 验证脚本: 已添加到 soc_test.py

2. UVM 测试

2.1 i2c1_read_uvm_test

  • 路径: soc_test_uvm/i2c1_read_uvm_test/i2c1_read_uvm_test.sv
  • 说明: I2C1 控制器读测试(UVM 环境)
  • 基地址: 0x20050000
  • 功能: 使用 UVM 验证环境测试 I2C1 读操作
  • 验证脚本: 已添加到 soc_test.py

2.2 i2c1_write_uvm_test

  • 路径: soc_test_uvm/i2c1_write_uvm_test/i2c1_write_uvm_test.sv
  • 说明: I2C1 控制器写测试(UVM 环境)
  • 基地址: 0x20050000
  • 功能: 使用 UVM 验证环境测试 I2C1 写操作
  • 验证脚本: 已添加到 soc_test.py

验证脚本更新

修改内容

  1. 修复 spi_test 配置
  2. 原配置: uvm_en='' 且使用 +UVM_TESTNAME=1111(配置不一致)
  3. 新配置: uvm_en='0' 且移除 UVM_TESTNAME(改为标准 C 测试)

  4. 添加 I2C1 测试

  5. 添加 i2c1_read_test (C 测试)
  6. 添加 i2c1_write_test (C 测试)
  7. 添加 i2c1_read_uvm_test (UVM 测试)
  8. 添加 i2c1_write_uvm_test (UVM 测试)

  9. 删除重复定义

  10. 删除了重复的 soc_dma_test 定义(原第 120-127 行)

地址映射

外设 基地址 说明
SPI0 0x20000000 QSPI 控制器 0
SPI1 0x20040000 QSPI 控制器 1
UART0 0x20010000 UART 控制器
I2C0 0x20030000 I2C 控制器 0
I2C1 0x20050000 I2C 控制器 1

测试覆盖度更新

更新前

  • C 测试: 15/16 (93.75%)
  • UVM 测试: 13/13 (100%)
  • 总体: 28/29 (96.55%)

更新后

  • C 测试: 18/18 (100%) ✅
  • UVM 测试: 15/15 (100%) ✅
  • 总体: 33/33 (100%) ✅

新增测试统计

  • C 测试: +3 个(spi_test, i2c1_read_test, i2c1_write_test)
  • UVM 测试: +2 个(i2c1_read_uvm_test, i2c1_write_uvm_test)
  • 总计: +5 个测试用例

运行测试

运行单个测试

cd /root/project/yueanic_code_lj_debug/SOC3.0/soc/sim
source env.csh
yrun -testfile soc_test -testname spi_test
yrun -testfile soc_test -testname i2c1_read_test
yrun -testfile soc_test -testname i2c1_write_test

运行 UVM 测试

yrun -testfile soc_test -testname i2c1_read_uvm_test
yrun -testfile soc_test -testname i2c1_write_uvm_test

运行所有测试

yrun -testfile soc_test -testlist all_test

注意事项

  1. I2C1 基地址: 确认 I2C1 的基地址为 0x20050000(根据 APB 地址映射)
  2. Makefile: 新测试目录已包含必要的 Makefile 和链接脚本
  3. 依赖文件: 所有测试都依赖 common/common.c 中的辅助函数

验证状态

  • ✅ 所有测试文件已创建
  • ✅ 验证脚本已更新
  • ✅ 重复定义已删除
  • ✅ 配置问题已修复

测试覆盖度已达到 100%(从验证脚本角度)。