在 CPU 上运行并验证打包 RTL
提交有界组合逻辑网表请求,并独立重放已保存的结果。
在 Linux 上使用 Altifigence CLI 0.1.9 执行此本地工作流。
读取已保存的结果之前,确认退出状态为 0。单独保留标准错误输出,并检查下文所述的结果字段。
保存完整的 CPU 请求
使用以下完整文档创建 packed-request.json。此示例使用 1 个通道和 1 帧:输入字将唯一的输入位置位,缓冲单元将其复制到输出。后端已显式指定。CPU 请求的设备内存预算为零。首次尝试此示例时,请保持 schema 和网表结构完整,再为您自己的组合逻辑网表调整有界激励。
{
"schema": "altifigence.rtl.packed-request.v1",
"backend": "cpu",
"netlist": {
"schema": "logic-netlist-0",
"top": "buffer",
"input_sha256": "ce4c5490bac02643968670ee055c3575a7ed23bad13bd33b1057e8d9b17a1c3a",
"ports": [
{
"name": "a",
"direction": "input",
"bits_lsb0": [
{
"net": 0
}
]
},
{
"name": "y",
"direction": "output",
"bits_lsb0": [
{
"net": 1
}
]
}
],
"nets": [
{
"id": 0
},
{
"id": 1
}
],
"cells": [
{
"id": 0,
"name": "buffer",
"output": 1,
"kind": {
"op": "buf",
"a": {
"net": 0
}
}
}
]
},
"lanes": 1,
"frames": 1,
"stimulus": [
1
],
"timeout_ms": 1000,
"device_memory_bytes": 0
}运行并保存原生结果
alti compute rtl-capabilities
alti compute rtl-simulate --request packed-request.json > packed-result.json命令成功后,读取 packed-result.json。原生结果包含请求、请求摘要、仿真报告、output_words 和 net_toggle_counts。对于此单比特缓冲器请求,output_words 为 [1]。请保留整个结果文件:验证使用完整工件,而不是摘录。标准错误单独承载 CLI 执行回执,与写入标准输出的原生 JSON 分开。
重放已保存的结果
alti compute rtl-verify --request packed-result.json{"schema":"altifigence.rtl.packed-verification.v1","valid":true,"cuda_executed":false}所示验证文档为摘录;完整文档还包含工件摘要。验证会在 CPU 上重放已保存的数学结果。将此输出与原始请求和结果一同保存,以便其他审查者重复同一检查。
修正通道数错误
将此请求中的 lanes 改为 0,会产生错误码 resource-limit,消息为 packed request exceeds count, time or explicit device budget limits。将 packed-request.json 中的 lanes 恢复为 1,并保持示例中的其他字段不变。然后使用以下命令重新生成完整结果并进行验证。
alti compute rtl-simulate --request packed-request.json > packed-result.json
alti compute rtl-verify --request packed-result.json