剖析實作報告並保留回條

將已儲存的時序、面積、功耗、壅塞或模擬報告剖析為正規化JSON,然後儲存、列出並重新開啟回條。

在Linux上使用Altifigence CLI 0.1.9,透過隨附的報告引擎將已儲存的文字報告轉換為altifigence.reports.parse.v1回條,並將回條保留在專案中。

選擇報告格式

請挑選與報告相符的--format值。輸入必須是一般的UTF-8文字檔案,大小至多4194304位元組。每種格式會產生各自的正規化結構描述:

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會輸出已儲存的回條。

處理錯誤

引擎會將錯誤輸出到stderr,位於Error:之後,並以非零狀態結束。

若出現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結束,並將JSON寫入stdout。缺少時序值時,其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寫出的原樣儲存該檔案。

若出現report artifact entry does not exist:後接一個ID,請從alti reports artifact list複製一個entryId。

CLI 引擎指令