解析实现报告并保存回执
将已保存的时序、面积、功耗、拥塞或仿真报告解析为规范化JSON,然后存储、列出并重新打开回执。
在Linux上使用Altifigence CLI 0.1.9,通过随附的报告引擎将已保存的文本报告转换为altifigence.reports.parse.v1回执,并将回执保存在项目中。
选择报告格式
请选择与报告相匹配的--format值。输入必须是不超过4194304字节的普通UTF-8文本文件。每种格式生成各自的规范化模式:
opensta-timing timing-report.v1
yosys-area area-report.v1
power power-report.v1
openroad-congestion congestion-report.v1
sim-result sim-result.v1解析报告
请将时序报告保存在项目中并解析。--input相对于项目。
PROJECT="$(cd "$HOME/alti-projects/demo-project" && pwd -P)"
mkdir -p "$PROJECT/reports"
cat > "$PROJECT/reports/timing.rpt" <<'EOF'
Startpoint: in_reg
Endpoint: out_reg
slack (MET) 0.80
EOF
alti reports parse --project "$PROJECT" --format opensta-timing --input reports/timing.rpt > "$PROJECT/timing.parse.json"
jq -c '{status, schema: .normalized.schemaVersion, start: .normalized.paths[0].startpoint}' "$PROJECT/timing.parse.json"请确认退出状态为0。jq这一行输出:
{"status":"available","schema":"timing-report.v1","start":"in_reg"}回执还记录operation_id为reports.parse、输入的source、byte_length和sha256、解析器的implementation_id、diagnostics以及normalized报告。claims.execution_performed和claims.signoff_assessed为false:回执描述的是您解析的文件。
保存并重新打开回执
alti reports artifact store --project "$PROJECT" --input timing.parse.json > "$PROJECT/report-manifest.json"
ENTRY_ID="$(jq -r '.entryId' "$PROJECT/report-manifest.json")"
alti reports artifact list --project "$PROJECT"
alti reports artifact show --project "$PROJECT" --entry-id "$ENTRY_ID"Store接受未修改且不超过16777216字节的altifigence.reports.parse.v1回执,检查其输入标识、解析器来源和声明,并将其写入项目中的.altifigence/artifacts/reports/下。其altifigence.reports.artifact-manifest.v1清单包含entryId、format、inputSha256、parserImplementationId以及relativePath为results/<entryId>.json。List以JSON数组形式输出这些清单;show输出已存储的回执。
处理错误
引擎会在Error:之后将错误输出到stderr,并以非零状态退出。
对于report input exceeds 4194304 bytes,请解析不超过4194304字节的报告文件。
对于report input must be a regular file and not a symbolic link,请传入报告文件本身的路径。
对于report input is not valid UTF-8,请将报告保存为UTF-8文本并重新解析。
解析成功时会以状态0退出,并向stdout写入JSON。缺少时序值时,其status为unavailable,且diagnostics数组包含警告REPORT_TIMING_VALUES_NOT_FOUND。请提供包含时序值的时序报告,例如上方的Startpoint:、Endpoint:和时序裕量行,并使用--format opensta-timing解析。
对于report parse receipt is invalid: unexpected operation schema or version,请原样存储alti reports parse所写入的文件。
对于后面跟着ID的report artifact entry does not exist:,请从alti reports artifact list复制一个entryId。