Palladium 事务级实战 · 01 从信号级 SA 划出事务边界
保留 4×8 FIFO,以相同输入与逐字节结果建立迁移基线;先决定什么留在软件,什么进入硬件。
先修知识完成 Palladium FIFO 六章基础课程,理解同步 FIFO、非阻塞赋值与 VALID/READY。
适用环境本地 Python 3 + Icarus Verilog;目标参考 WXE 24.05 ISR5 / Xcelium 配套环境。
验证状态13 项本地 RTL 场景、6 项测量校验测试通过;Cadence 编译、Palladium 映射与设备性能尚未实测。
迁移的是交互边界,保留的是功能契约
信号级 SA 中,软件测试平台经常参与逐拍驱动和观察;事务级加速把一段可独立完成的引脚操作交给硬件侧 transactor。这里保持原来的 4×8 FIFO 不变,将一组字节的写入、等待 full、读出及结果收集封装为一次 exchange。两种驱动的周期安排不同,验收要求是数据与顺序一致,不要求波形逐周期相同。
建立可以重跑的信号级基线
先保存原 FIFO 与原驱动的结果,再引入新驱动。实验采用确定性字节序列 (17×序号+3) mod 256,共 64 字节;每个批大小的 CSV 必须与信号级基线逐笔相等。不能只比较最后一个字节或 PASS 字符串,否则丢失、重复和乱序可能互相抵消。测试脚本在临时目录独立构建,并保存源码摘要及场景结果。
- 安装并记录 Python / Icarus 版本
预期与判定:两个可执行程序和 vvp 均可找到
- 解压工程,在根目录运行 test.py
预期与判定:13 个正向与故障注入场景通过
- 检查 baseline 和 batch16 结果
预期与判定:基线 64 字节;batch16 为 4 次调用、116 个 ACTIVE 周期
- 运行测量校验测试
预期与判定:6 项通过;只验证统计器,不代表设备测量
在解压后的 palladium-tba 目录执行;需要 iverilog、vvp 和 Python 3。
python3 test.py
python3 measure.test.py
cat results/local-validation.json按数据所有权划分软硬件工作
随机化、文件读写、参考模型、CSV 输出与结果判定留在软件;FIFO 时钟、复位执行、每拍流控、读延迟处理和响应保持放在硬件侧。软件可以等待一次事务完成,但不应再为了打印 count 而每拍读取跨边界信号。本工程将本地逐拍响应稳定性监视器放在条件编译区,目标 host 编译定义 PALLADIUM_HOST 时移除它。
| 项目 | 规定 / 观察结果 |
|---|---|
| 软件 tb_host | 构造固定向量、检查 id / 长度 / 状态 / 每个字节 |
| 硬件 fifo_link + batch_engine | 调用转握手、逐拍执行、收集响应 |
| 时钟 clk_gen | #5 为语言级模型,目标依赖 +iscDelay 转换 |
| 本地 CSV 一致 | 功能证据;不是实际 SA/TBA 设备加速比 |
实验包中的实际源码;本地 Icarus 已验证。商业工具脚本为待目标环境验证的参考。
module hw_top #(parameter HOLD=0);
wire clk;
clk_gen cg(clk);
fifo_link #(.HOLD(HOLD)) link(clk);
batch_engine engine(clk,link.rst,link.req_valid,link.req_ready,link.req_id,
link.req_len,link.req_data,link.rsp_valid,link.rsp_ready,link.rsp_id,
link.rsp_len,link.rsp_status,link.rsp_data,link.rsp_cycles);
endmodule
故障练习:改成 task 后运行仍然很慢
接口改名不等于减少同步。若 host 每个字节调用一次,或者背景监视器持续跨边界读取信号,仍会产生频繁交互。先检查调用次数及软件中的时钟等待,再在真实设备上采样通信与运行时间;不要为了提升表面吞吐而关闭逐字节结果检查,性能比较必须使用相同有效工作量。
完成检查
- 原 FIFO 源码未改变,CSV 逐笔一致。
- 能够指出每一项软件和硬件职责。
- 没有把本地层次 task 调用描述为已运行的 Palladium TBA。
延伸阅读与来源
本文为黄河电子原创教学说明。产品命令与支持范围请以实际安装版本的官方文档为准。
- Cadence Palladium 官方入口;WXE 24.05 TBA Tutorial
TBA Tutorial 第 13–14、22–23、36–39 页。页码指用户提供的本地安装文档印刷页;公开链接为产品入口,并非受限手册下载。
继续阅读
硬件仿真首次使用前的工程检查清单
准备版本、输入和模型,减少第一次编译的无效往返。
如何选择 SA/ICE 及交互方式
根据测试环境所在位置与目标接口要求选择运行流程。
完成最小设计的编译运行
把第一次平台运行拆为有检查点的五个阶段。
黄河电子