Palladium 事务级实战 · 04 从本地仿真接入 Palladium
按官方分离编译流程导出 task、映射硬件并绑定软件 host,逐阶段保留证据。
先修知识完成 Palladium FIFO 六章基础课程,理解同步 FIFO、非阻塞赋值与 VALID/READY。
适用环境本地 Python 3 + Icarus Verilog;目标参考 WXE 24.05 ISR5 / Xcelium 配套环境。
验证状态13 项本地 RTL 场景、6 项测量校验测试通过;Cadence 编译、Palladium 映射与设备性能尚未实测。
先读版本边界与验证范围
以下商业工具配置依据用户提供的 WXE 24.05 ISR5 文档整理,当前没有执行 Cadence 编译或设备运行。vlan、ixcom、Xcelium 的支持组合、许可证、资源分配与站点初始化应沿用所在团队已验证环境。不要将此脚本视为所有版本通用命令,也不要把本地 Icarus 的 PASS 当作映射成功;先运行站点最小示例再接入本工程。
独立构建目录与完整参考配置
脚本拒绝复用已存在的输出目录,避免旧快照与新 host 混合。硬件编译定义 IXCOM_UXE,启用 tb_export;host 单独定义 PALLADIUM_HOST,移除本地逐拍监视器。xmvlog 使用 ixcom 生成的库映射,xmelab 和 xrun 分别使用生成的参数文件;发生层次或绑定错误时应先核对这些产物,而不是手工拼接别的构建目录。
- 先执行 python3 test.py
预期与判定:本地语义与 CSV 对照全部通过
- 初始化站点环境,再执行 bash scripts/site_reference.sh sim build-sim
预期与判定:预期软件仿真成功;本网站尚未执行该商业工具步骤
- 执行 bash scripts/site_reference.sh tba build-tba
预期与判定:预期依次生成 vlan / ixcom / host / elaborate / run 日志
- 逐一核对工具退出码与设备结果
预期与判定:真实 TBA_PASS、CSV 和构建记录齐全才算目标验收
实验包中的实际源码;本地 Icarus 已验证。商业工具脚本为待目标环境验证的参考。
#!/usr/bin/env bash
# WXE 24.05 reference integration, NOT tested with Cadence tools.
# Start after the authorized site environment is initialized.
# Usage: bash scripts/site_reference.sh sim|tba NEW_BUILD_DIR
set -euo pipefail
mode=${1:?sim or tba}; out=${2:?new build directory}
case "$mode" in sim|tba);; *) echo 'mode must be sim or tba' >&2; exit 2;; esac
root=$(cd "$(dirname "$0")/.." && pwd)
if [ -e "$out" ]; then echo 'BUILD_EXISTS: use a fresh directory' >&2; exit 2; fi
mkdir -p "$out"
cd "$out"
if [ "$mode" = sim ]; then
xrun -64 -sv -top hw_top -top tb_host -c \
+define+PALLADIUM_HOST \
"$root/rtl/course_fifo.sv" "$root/rtl/batch_engine.sv" \
"$root/rtl/fifo_link.sv" "$root/rtl/clk_gen.sv" \
"$root/rtl/hw_top.sv" "$root/tb/tb_host.sv" 2>&1 | tee compile.log
xrun -64 -R +N=64 +BATCH=16 2>&1 | tee run.log
else
# Separate hardware compile from host compile; keep generated library mapping.
vlan -64 -sv -define IXCOM_UXE \
"$root/rtl/course_fifo.sv" "$root/rtl/batch_engine.sv" \
"$root/rtl/fifo_link.sv" "$root/rtl/clk_gen.sv" \
"$root/rtl/hw_top.sv" 2>&1 | tee vlan.log
ixcom -64 -top hw_top +dut+hw_top -nccompile +iscDelay+clk_gen -ua 2>&1 | tee ixcom.log
xmvlog -64 -sv -define PALLADIUM_HOST -cdslib xc_work/cds.lib -hdlvar xc_work/hdl.var \
"$root/tb/tb_host.sv" 2>&1 | tee host-compile.log
xmelab -64 -f xc_work/xmelab.f tb_host -access rwc 2>&1 | tee elaborate.log
xrun -64 hw_top -f xc_work/xrun.f +N=64 +BATCH=16 +xcprof \
-input "$root/scripts/run_tba.tcl" 2>&1 | tee run.log
fi
启动、复位与 profiling 的使用时机
本例通过硬件导出 task 完成复位,不依赖教程其他示例中的外部 deposit 层次路径。运行 Tcl 采用 xc on -tbrun 后 run,软件 host 调用 reset_hw 再提交请求。参考脚本的 +xcprof 用来诊断启动与交互开销;正式墙钟性能比较要另开关闭 profiling 的运行,保持两种模式的测试窗口一致,不能将诊断日志直接作为基准成绩。
| 项目 | 规定 / 观察结果 |
|---|---|
| 本地预期 | TBA_PASS,64 字节,BATCH=16,4 次调用 |
| 目标预期 | 相同功能输出;必须现场记录,本站没有设备日志 |
| 配置产物 | xc_work/cds.lib、hdl.var、xmelab.f、xrun.f |
| 版本证据 | WXE / Xcelium 版本、硬件资源、源码与构建标识 |
实验包中的实际源码;本地 Icarus 已验证。商业工具脚本为待目标环境验证的参考。
# Reference only: verify site/tool compatibility and actual swap-in logs.
# Clock/reset live under hw_top; do not reuse the SA script's software run 40ns.
xc on -tbrun
run
故障练习:找不到 task 或绑定到错误层次
本地层次调用存在,不代表商业分区后接口必然可见。若 elaboration 报无法解析 hw_top.link 或导出 task,应检查硬件顶层、接口实例名、IXCOM_UXE 宏和生成配置的归属。不要凭错误文本猜测厂商错误编号;记录真实首条诊断及完整命令,以便按照安装版本的文档定位问题。
完成检查
- 每个商业工具步骤的验证状态如实记录。
- 硬件和软件使用同一构建生成的配置。
- 实际设备 PASS、CSV 与日志都保留。
延伸阅读与来源
本文为黄河电子原创教学说明。产品命令与支持范围请以实际安装版本的官方文档为准。
- Cadence Palladium 官方入口;WXE 24.05 TBA Tutorial
TBA Tutorial 第 36–39 页;compileIXCOM 第 269 页;SAProfiling 第 21–24 页。页码指用户提供的本地安装文档印刷页;公开链接为产品入口,并非受限手册下载。
继续阅读
硬件仿真首次使用前的工程检查清单
准备版本、输入和模型,减少第一次编译的无效往返。
如何选择 SA/ICE 及交互方式
根据测试环境所在位置与目标接口要求选择运行流程。
完成最小设计的编译运行
把第一次平台运行拆为有检查点的五个阶段。
黄河电子