IP验证环境资料.md
SoC V1.1 — IP 级验证环境资料(ISP / QSPI / PINMUX)
工程母本:
/project/SOC_V1.1/To_Customer/
文档结构:每个 IP 按 ① Spec ② Testplan ③ 验证环境 ④ Test ⑤ Makefile/脚本 展开。
Spec / Testplan 详细版(推荐阅读):
- ISP_Spec与Testplan.md — 算法、时序、需求跟踪、用例步骤、SB 规则、出口准则
- QSPI_Spec与Testplan.md — 寄存器位域、控制器 FSM、8 个用例逐步、SB 检查点
- PINMUX_Spec与Testplan.md — 复用编码、寄存器映射、SVA、形式验证用例
声明:寄存器位宽/访问属性以ral_qspi.sv、RTL 为准;工具链路径以服务器Makefile为准。
0. 三个 IP 包在课程中的位置
flowchart LR
subgraph SoC["soc/ 整片仿真"]
Ibex --> Matrix
Matrix --> APB["APB: UART/I2C/QSPI"]
Matrix --> ISP_DMA["ISP+DMA 链"]
Matrix --> SRAM
end
subgraph IP["To_Customer 并列 IP 包"]
ISP["ISP/ UVM+cmodel"]
QSPI["QSPI/ UVM+RAL"]
PM["PINMUX/ FPV"]
end
ISP -.->|RTL 同源| ISP_DMA
QSPI -.->|RTL 同源| APB
PM -.->|pad 复用| SoC
| IP | 目录 | 验证手段 | 与 SoC 关系 |
|---|---|---|---|
| ISP | ISP/ |
UVM + C 参考模型产金 | SoC 内 ip/isp/ 含 DMA 扩展;IP 台子 dut.f 不含 isp_dma |
| QSPI | QSPI/ |
UVM + RAL + qspi_device |
与 soc/ip/apb_subsystem/rtl/qspi 同源 SPI master |
| PINMUX | PINMUX/ |
VC Formal + SVA | 与 soc/ip/pad 中 pin_mux 同类逻辑;SoC 用 test.v 固定部分 pad 映射 |
一、ISP 验证环境
0.1 目录结构
ISP/
├── rtl/ # DUT:isp_top、dgain、demosaic_lite、utils
│ ├── isp_top.v
│ ├── isp_dgain.v
│ ├── isp_demosaic_lite.v
│ └── rtl.f
├── cmodel/ # 参考模型源码(编译得到 isp_demosaic)
│ ├── isp.cpp
│ ├── common.h
│ └── isp_demosaic # 已编译可执行文件(run_* 时需 cp 到运行目录)
├── tb/
│ ├── env/ # UVM:if/agent/env/monitor/scoreboard/tb_top
│ └── tests/ # isp_test.sv、isp_basic_sequence.sv
└── sim/
├── Makefile
├── dut.f # 仅 lite 图像链 RTL
└── tb.f
1. IP Spec 描述
完整 Spec(模块层次、算法、寄存器、时序、边界):见 ISP_Spec与Testplan.md 第一部分。
1.1 功能与数据通路
isp_top 在 pclk 域处理 Bayer RAW 视频流,可选两级处理(由宏 USE_DGAIN / USE_DEMOSIC 与端口使能共同决定):
flowchart LR
IN["in_href/vsync/raw"] --> DG{"dgain_en?"}
DG -->|1| DGain["isp_dgain"]
DG -->|0| MUX1["vid_mux 旁路"]
DGain --> MUX1
MUX1 --> DM{"demosic_en?"}
DM -->|1| Dem["isp_demosaic"]
DM -->|0| MUX2["vid_mux 旁路"]
Dem --> MUX2
MUX2 --> OUT["dm_href/vsync + R/G/B"]
| 参数 | 默认值(TB 实例) | 含义 |
|---|---|---|
BITS |
8 | 像素位宽 |
WIDTH |
256 | 行内最大像素数(参数化上限) |
HEIGHT |
10 | 帧行数参数(TB 中 sequence 可更大) |
BAYER |
0 | 0:RGGB,1:GRBG,2:GBRG,3:BGGR |
1.2 端口清单
| 信号 | 方向 | 说明 |
|---|---|---|
pclk, rst_n |
in | 像素时钟、低有效复位 |
in_href, in_vsync, in_raw[7:0] |
in | 输入行有效、帧同步、RAW 数据 |
dm_href_o, dm_vsync_o |
out | 输出行/帧同步 |
dm_r_o, dm_g_o, dm_b_o |
out | 去马赛克后 RGB(8bit) |
dgain_en, demosic_en |
in | 数字增益 / 去马赛克使能 |
dgain_gain[7:0], dgain_offset[7:0] |
in | 增益系数与偏移 |
1.3 与 SoC 内 ISP 的差异(集成验证必读)
| 对比项 | ISP/sim/dut.f |
soc/filelist/isp.f |
|---|---|---|
| 图像处理核 | isp_demosaic_lite + isp_dgain + isp_top |
同上 + isp_dma.v |
| 总线侧 | 无 | rdma2isp.v、isp2wdma.v(AHB 主从) |
| 验证目标 | 算法像素正确性 | CPU/DMA 搬数 + 片上通路 |
2. IP Testplan
完整 Testplan(需求跟踪、用例矩阵、逐步操作、覆盖率、出口准则):见 ISP_Spec与Testplan.md 第二部分。
| ID | 类别 | 验证目标 | 通过准则 | 关联组件 |
|---|---|---|---|---|
| TP-ISP-01 | 复位 | rst_n 释放后无 X,控制默认 |
仿真无 UVM_FATAL | isp_tb_top |
| TP-ISP-02 | 时序 | in_vsync 脉冲、in_href 行内有效、isp_dummy_cycle 行间隔 |
driver 与 DUT 握手一致 | isp_driver |
| TP-ISP-03 | 功能 | demosic_en=1 时 Demosaic |
scoreboard 比对通过 | isp_scoreboard |
| TP-ISP-04 | 约束随机 | isp_width/height ∈ [10,512],dgain_gain ∈ [1,100] |
randomize 无冲突 | isp_txn constraints |
| TP-ISP-05 | 参考模型 | C model 与 RTL 输出一致 | R/G/B 逐像素 ±2(边界除外) | isp_demosaic + result_*.txt |
| TP-ISP-06 | 覆盖率 | 行/条件/翻转 | VCS -cm line+cond+tgl |
Makefile comp |
边界屏蔽规则(scoreboard):仅当 line_cnt>3、pixl_cnt>3 且 pixl_cnt<253、且金/实测均非 0 时,才比较;容差 ±2 灰度级。
3. 验证环境介绍
3.1 UVM 组件关系
flowchart TB
T["isp_test"] --> SEQ["isp_basic_sequence"]
SEQ --> VSQR["isp_virtual_sequencer"]
VSQR --> SQR["isp_agent.sequencer"]
SQR --> DRV["isp_driver → isp_if → DUT"]
DUT --> MON["isp_monitor"]
MON --> SB["isp_scoreboard"]
SEQ -->|"写 isp_input.txt"| CM["./isp_demosaic"]
CM -->|"result_r/g/b.txt"| SB
| 文件 | 类/模块 | 职责 |
|---|---|---|
isp_if.sv |
interface | 绑定 DUT 全部端口;driver 还驱动 isp_width/height 供 monitor 使用 |
isp_txn.sv |
sequence_item | 二维 pixl_data[][]、data_fmt[][](Bayer 格式枚举)、使能与尺寸 |
isp_driver.sv |
driver | 见下节「驱动时序」 |
isp_monitor.sv |
monitor | 在 dm_vsync_o 帧起始后,按 dm_href_o 采样整行 R/G/B,打成 isp_line 送 SB |
isp_scoreboard.sv |
scoreboard | 帧起始打开 result_r/g/b.txt,每行 16 个十六进制像素与 monitor 比对 |
isp_env.sv |
env | isp_agt + isp_mon + isp_sb + my_sqr |
isp_tb_top.sv |
top | 10ns 周期时钟;#100000ns 超时;FSDB dump |
3.2 Driver 驱动时序(与波形对照)
- 拉低各控制,等待
posedge pclk。 in_vsync=1保持 10 个pclk,再拉低(帧同步脉冲)。- 对
j=0..isp_height-1: - 对
i=0..isp_width-1:in_href=1,in_raw=pixl_data[j][i],每像素 1 拍。 - 再跑
isp_dummy_cycle拍:in_href=0,in_raw=0(行消隐)。
3.3 参考模型与金文件格式
isp_basic_sequence 流程:
randomize事务(默认约束:demosic_en==1,dgain_en==0,isp_width==256,isp_height==20等)。- 按 RGGB 棋盘 规则填充
data_fmt/pixl_data(偶行/奇行 R、B 像素加偏移+0x40)。 - 写
isp_input.txt:每行 16 个0x..十六进制像素。 - 执行
$system("./isp_demosaic")→ 生成result_r.txt、result_g.txt、result_b.txt(格式同输入)。 start_item驱动 DUT;monitor/scoreboard 在输出侧比对。
运行前准备:make run_isp_test 会把 ../isp_demosaic 拷入用例目录;若报找不到可执行文件,在 ISP/sim 下确认 cmodel/isp_demosaic 存在且可执行。
4. Test 介绍
| UVM Test | Sequence | 步骤摘要 |
|---|---|---|
isp_test |
isp_basic_sequence |
产输入 → 跑 C model → 驱动一帧 RAW → SB 比对 RGB |
当前母本 仅 1 个 uvm_test;扩展用例可复制 isp_test.sv 并改写 sequence 约束(如打开 dgain_en)。
5. Makefile 介绍(ISP/sim/Makefile)
5.1 变量
| 变量 | 典型值 | 说明 |
|---|---|---|
UVM_HOME |
Synopsys 安装路径 | UVM 1.2 源码 |
UVM_VERBOSITY |
UVM_HIGH |
日志级别 |
TEST |
qspi_test(笔误) |
勿直接 make run;用 run_isp_test |
VCS |
含 -ntb_opts uvm-1.2、-cm line+cond+tgl、Verdi PLI |
编译选项 |
SIMV |
./simv +UVM_TESTNAME=$(TEST) ... |
运行选项 |
5.2 目标详解
| 目标 | 步骤 |
|---|---|
comp |
删除并创建 comp/ → 拷贝 dut.f、tb.f → sed 把 ../ 改为 ../../ → VCS 编译生成 simv |
run |
在 comp/ 外执行 $(SIMV)(依赖 TEST) |
run_<名> |
新建目录 → 拷贝 comp/* → cp ../isp_demosaic ./ → +UVM_TESTNAME=<名> |
debug_<名> |
同 run_<名>,保留目录便于 Verdi 后仿真 |
clean |
删除 simv、覆盖率库、csrc 等 |
5.3 推荐操作与排错
cd /project/SOC_V1.1/To_Customer/ISP/sim
make comp
make run_isp_test
# 波形:用例目录下 tb.fsdb(若开启 dump)
| 现象 | 可能原因 |
|---|---|
UVM_FATAL 找不到 test |
用了 make run 且 TEST=qspi_test |
SB 大量 R/G/B mismatch |
未拷贝 isp_demosaic 或 result_*.txt 未生成 |
| 仿真超时 | isp_tb_top 100µs 限制;检查 driver 是否死循环 |
二、QSPI(APB SPI Master)验证环境
0.1 目录结构
QSPI/
├── rtl/qspi/ # apb_spi_master + fifo/tx/rx/clkgen/controller
├── tb/
│ ├── env/ # apb_agent, ral, qspi_device, scoreboard, tb_top
│ ├── tests/ # *_test.sv + *_sequence.sv
│ └── ral_gen/ # 与 env/ral_qspi.sv 同族
├── sim/
│ ├── Makefile
│ ├── dut.f
│ └── tb.f
└── read_me # cd sim; make comp; make run_{test_name}
1. IP Spec 描述
完整 Spec:见 QSPI_Spec与Testplan.md 第一部分(模块层次、全寄存器位域、控制器 FSM、STATUS 拼装、典型事务序列)。
1.1 接口
- APB 从设备:
HCLK/HRESETn+ 标准PADDR/PWDATA/PWRITE/PSEL/PENABLE/PRDATA/PREADY/PSLVERR(TB 里信号名PCLK/PRST等)。 - SPI 主机:
spi_clk、spi_csn0~3、spi_sdo0~3、spi_sdi0~3、spi_oe0~3。 - 中断:
events_o→qspi_vif.interrupt。
1.2 寄存器映射(RAL ral_block_qspi)
APB 字对齐,小端 uvm_reg_map,基址偏移如下:
| 偏移 | 寄存器 | 主要字段 | 访问 |
|---|---|---|---|
0x00 |
SPI_CTRL | [0]RD [1]WR [2]QRD [3]QWR [4]SRST [11:8]CS |
控制位多为 WO |
0x04 |
SPI_STATUS | [6:0]STATUS [20:16]RXELEMS [28:24]TXELEMS |
RO 为主 |
0x08 |
SPI_CLKDIV | [7:0]CLKDIV |
RW |
0x0C |
SPI_CMD | [31:0]CMD |
RW |
0x10 |
SPI_ADR | [31:0]ADR |
RW |
0x14 |
SPI_LEN | [5:0]CMDLEN [13:8]ADDRLEN [31:16]DATALEN |
RW |
0x18 |
SPI_DUM | [15:0]DUMMYRD [31:16]DUMMYWR |
RW |
0x1C |
SPI_TXFIFO | [31:0]TX |
写 FIFO |
0x20 |
SPI_RXFIFO | [31:0]RX |
读 FIFO |
0x24 |
SPI_INTCFG | [4:0]TXTH [12:8]RXTH [31]EN |
RW |
0x28 |
SPI_INTSTA | [0]TXINT [1]RXINT |
RO |
SPI_CTRL 典型用法(sequence 中常见写值):
0xF08:置位 QWR 等,发起四线写类传输。0xF04:置位 QRD,发起读。0x?+ SRST:软复位 FIFO/状态(见qspi_soft_reset_sequence)。
1.3 行为从机 qspi_device(Spec 摘要)
文件头注释定义与 scoreboard 一致的 命令字:
| 命令值 | 含义 |
|---|---|
0x6 |
Write Enable |
0x4 |
Write Disable |
0x3 |
Read Data |
0x2 |
Page Programming |
参数:command_width=16,addr_width=16,data_width=32(可通过 interface 配置)。内部 FSM:IDLE → COMMAND → ADDR → WDATA/RDATA_DUMMY → RDATA 等。
TB 连接:DUT 的 SDO 接 Device 的 SDI,实现环回;qspi_tb_top 中交叉连线。
2. IP Testplan
完整 Testplan:见 QSPI_Spec与Testplan.md 第二部分(QSPI-T01~T08 逐步、回归列表、出口准则)。
| ID | 目标 | Test | 激励要点 | 检查 |
|---|---|---|---|---|
| TP-QSPI-01 | 寄存器读写 | qspi_reg_rw_test |
RAL get_registers 遍历 write/read |
set_check_on_read(STATUS/FIFO 除外) |
| TP-QSPI-02 | Page 写 + 读回 | qspi_read_test |
写 CMD/ADR/TXFIFO/LEN/DUM/CTRL,轮询 STATUS,再读 RXFIFO |
SB + 从机 device_data |
| TP-QSPI-03 | 分频 | qspi_clk_test |
改 CLKDIV |
SPI 时钟周期 |
| TP-QSPI-04 | 长度域 | qspi_data_length_test |
变 CMDLEN/ADDRLEN/DATALEN |
传输拍数 |
| TP-QSPI-05 | Dummy | qspi_dummy_test |
SPI_DUM |
波形 dummy 段 |
| TP-QSPI-06 | 中断 | qspi_interrupt_test |
INTCFG 阈值 + 多笔 TX |
qspi_vif.interrupt 与 UVM_ERROR |
| TP-QSPI-07 | 软复位 | qspi_soft_reset_test |
SPI_CTRL.SRST |
FIFO 清空、SB qspi_tx_fifo |
| TP-QSPI-08 | 异常长度 | qspi_abnormal_length_test |
非对齐/超大 DATALEN |
错误上报或超时 |
| TP-QSPI-09 | 协议一致性 | 全部 | APB 写寄存器触发 SPI | qspi_scoreboard 维护 qspi_reg[]、device_data[] |
3. 验证环境介绍
3.1 架构
flowchart TB
T["qspi_*_test"] --> SEQ["*_sequence"]
SEQ --> VSQR["qspi_virtual_sequencer"]
VSQR --> APB["apb_agent → DUT APB"]
VSQR --> RAL["ral_block_qspi + reg_adapter"]
DUT["apb_spi_master"] <-->|SPI 4线| DEV["qspi_device"]
APB --> SB["qspi_scoreboard"]
MON["qspi_monitor"] --> SB
| 组件 | 说明 |
|---|---|
| apb_agent | apb_driver/monitor/sequencer;monitor 事务 → SB apb_fifo |
| reg_adapter | RAL 总线适配到 APB sequencer |
| qspi_rgm | build() + lock_model();set_auto_predict(1) |
| qspi_scoreboard | 跟踪 0x00 CTRL 启动写、0x1c TXFIFO 入队、0x10 地址与 device_data[addr] 一致性 |
| qspi_monitor | 观测 SPI 线事务 → qspi_txn |
3.2 Scoreboard 核心逻辑(读波形前先看)
- APB 写
paddr==0且 CTRL 中 PAGE_PROGRAMMING(qspi_reg['hc][31:16]==2)且 QWR 置位:按SPI_ADR、SPI_LEN.DATALEN从qspi_tx_fifo弹出数据写入device_data[]。 - 写 SRST 且 busy:清空 FIFO,并按长度清零
device_data区间。 - 写
0x1cTXFIFO:push 到qspi_tx_fifo(或 pending 写路径)。 - SPI monitor 侧与
device_data读回比对(详见qspi_scoreboard.sv后半部分)。
4. Test 介绍(逐步)
4.1 qspi_reg_rw_test
- Sequence:
qspi_reg_rw_sequence - 步骤:
qspi_rgm.get_registers(regs)→ 对每个寄存器write随机数 →read回读;SPI_STATUS/SPI_TXFIFO/SPI_RXFIFO关闭 read check。
4.2 qspi_read_test
- Sequence:
qspi_read_sequence - 写阶段:
SPI_CMD=0x00020000,随机SPI_ADR,TXFIFO=0x12345678,LEN=0x00201010,DUM=0x00080008,CTRL=0xF08;轮询SPI_STATUS直到[5:0]==1。 - 读阶段:
CMD=0x00030000,CTRL=0xF04,再轮询 STATUS,读 RXFIFO。
4.3 qspi_interrupt_test
- 随机
TXTH∈[1:6]、RXTH∈[1:4],写INTCFG(EN=1)。 - 连续写多笔 TXFIFO,根据阈值 期望是否拉中断;不符合则
`uvm_error。
4.4 其它用例
| Test | Sequence | 侧重 |
|---|---|---|
qspi_clk_test |
qspi_clk_sequence |
CLKDIV 与 SCK 周期 |
qspi_data_length_test |
qspi_data_length_sequence |
SPI_LEN 各域 |
qspi_dummy_test |
qspi_dummy_sequence |
SPI_DUM |
qspi_soft_reset_test |
qspi_soft_reset_sequence |
SRST(类在 qspi_soft_reset.sv) |
qspi_abnormal_length_test |
qspi_abnormal_length_sequence |
边界/异常 DATALEN |
运行:make run_qspi_reg_rw_test(+UVM_TESTNAME 与目录名、类名一致,去掉 _test 后缀的是错误理解——母本规则是 目录名 = 类名 = qspi_reg_rw_test)。
5. Makefile 介绍(QSPI/sim/Makefile)
与 ISP 同模板(comp / run_% / debug_%),区别:不需要 isp_demosaic。
cd /project/SOC_V1.1/To_Customer/QSPI/sim
make comp
make run_qspi_read_test
make run_qspi_interrupt_test
| 注意点 | 说明 |
|---|---|
缺省 TEST=qspi_test |
不存在 该 uvm_test,必须 run_<完整类名> |
| 覆盖率 | -cm line+cond+tgl,与 ISP 相同 |
| Verdi | comp/ 内拷贝 run_verdi(若存在) |
三、PINMUX 验证环境(FPV)
0.1 目录结构
PINMUX/
├── rtl/
│ ├── pin_mux.v # 复用逻辑核心
│ ├── pin_mux_rf.v # 复用寄存器
│ ├── pin_mux_rf_top.v # APB 配置口
│ ├── gnrl_io_pad.v
│ ├── TPPADLRCMCUDB.v
│ └── filelist # RTL + SVA
└── FPV/
├── assertion/
│ ├── pinmux.sva # 属性模块 sva_checker
│ └── pinmux_vlog_bind.sva # bind 到 DUT
└── solution/
├── batch.tcl
├── readme # vcf -verdi -f batch.tcl
└── results.txt # 证明结果(运行后生成)
1. IP Spec 描述
完整 Spec:见 PINMUX_Spec与Testplan.md 第一部分(复用编码 000~100、典型 pad 表、APB 寄存器映射、SVA 逐条)。
1.1 功能
pin_mux_rf_top:APB 配置r_io_reuse_pad1~r_io_reuse_pad20,每位 [2:0] 选择 pad 功能(SPI/UART/I2C/GPIO 等,编码见 RTL)。pin_mux:把内部 spi0/spi1、uart、i2c0/i2c1 等信号按复用寄存器接到pad[24:1]。- PAD 单元:驱动强度、输入缓冲等(工艺相关)。
1.2 与 SoC test.v 的 pad 映射(集成仿真参考)
SoC 片级 TB 对部分 pad 固定连接(便于 SPI 环回),例如:
| pad | 方向/连接 |
|---|---|
| 21 | clk_cpu(force) |
| 22 | rst_n_cpu(force) |
| 23/24 | 时钟/复位相关 |
| 1 | spi0_clk |
| 2 | spi0_csn0 |
| 3,6,9,12 | spi0_sdi* |
| 4,7,10,13 | spi0_sdo*(DUT 输出驱动 pad) |
FPV 中 sva_checker 监视的是 逻辑复用关系,不要求与 test.v 的固定映射相同,但 属性应与生成的 pin_mux 网表一致。
2. IP Testplan(形式验证)
完整 Testplan:见 PINMUX_Spec与Testplan.md 第二部分(PM-F01~F04、batch.tcl 步骤、属性评审清单、出口准则)。
| ID | 类型 | 属性/覆盖 | 意图 |
|---|---|---|---|
| TP-PM-01 | assert | assert_spi0_csn0_pad_2_15 |
spi0_csn0 有效且 pad15 复用为 0 时,应体现在 pad[15] |
| TP-PM-02 | assert | assert_spi0_csn0_cannot_map_to_pad_3 |
CSn 不应错误出现在 pad3(与 pad15 条件配合,见 SVA 全文) |
| TP-PM-03 | assume | assume_i2c_signal |
pad3 为 I2C(2) 时 pad4 也为 I2C |
| TP-PM-04 | assume | assume_qspi0_signal |
pad3 为 QSPI(1) 时 pad4/5/6 同为 QSPI |
| TP-PM-05 | cover | cov_spi0_csn0_pad2 / pad15 |
功能覆盖:CSn 映射到 pad2 或 pad15 |
注意:交付 SVA 仅示例少量属性;完整 pinmux 规格需结合 RTL 与课程讲义扩展 assert。
3. 验证环境介绍
3.1 batch.tcl 逐步说明
| 步骤 | Tcl 命令 | 含义 |
|---|---|---|
| 1 | set_app_var fml_mode_on true |
形式验证模式 |
| 2 | read_file -top pin_mux -f ../../rtl/filelist |
读入 RTL + bind SVA |
| 3 | create_clock cpu_clk/apb_clk -period 100 |
两路时钟约束 |
| 4 | create_reset cpu_reset_n/apb_reset_n -high |
高有效复位 |
| 5 | sim_run -stable / sim_save_reset |
稳态与复位场景 |
| 6 | check_fv -block |
分块证明 |
| 7 | report_fv -list > results.txt |
输出结果列表 |
3.2 filelist 内容
../../rtl/TPPADLRCMCUDB.v
../../rtl/pin_mux_rf.v
../../rtl/gnrl_io_pad.v
../../rtl/pin_mux.v
-sverilog
../../FPV/assertion/pinmux.sva
../../FPV/assertion/pinmux_vlog_bind.sva
+define+INLINE_SVA
4. Test 介绍(FPV)
无动态 testbench;验证用例 = 属性集合。
| 产出 | 位置 | 用法 |
|---|---|---|
| 证明通过/失败 | FPV/solution/results.txt |
查 report_fv 列表 |
| 反例波形 | Verdi + vcf -verdi -f batch.tcl |
调试 assume 过强或 RTL 错 |
5. Makefile / 运行入口
无 Makefile。标准流程:
cd /project/SOC_V1.1/To_Customer/PINMUX/FPV/solution
vcf -verdi -f batch.tcl # 需 VC Formal + license
# 或批处理: vcf -f batch.tcl
四、IP 包 ↔ SoC 集成对照表
| 验证项 | IP 台子 | SoC soc/ |
|---|---|---|
| ISP 像素算法 | ISP/sim + cmodel |
sw/isp_test + CPU/DMA |
| QSPI 寄存器/协议 | QSPI/sim + RAL |
sw/spi_test + test.v pad SPI0 |
| Pinmux 静态连接 | PINMUX/FPV |
整片 soc_top + test.v pad 映射 |
| UART/I2C | 无独立包 | 仅 SoC:apb_subsystem + sw/uart_test 等 |
更完整的 整片架构、Makefile、sw/ 场景 见 SOC验证环境详解.md。
维护:母本增删 test 或改 ral_qspi.sv 偏移后,请同步更新本文寄存器表与 make run_* 列表。