Implementierungsberichte parsen und die Belege aufbewahren

Parsen Sie einen gespeicherten Timing-, Flächen-, Leistungs-, Congestion- oder Simulationsbericht in normalisiertes JSON, speichern Sie den Beleg anschließend, listen Sie ihn auf und öffnen Sie ihn erneut.

Verwenden Sie Altifigence CLI 0.1.9 unter Linux, um mit der mitgelieferten Reports-Engine einen gespeicherten Textbericht in einen altifigence.reports.parse.v1-Beleg umzuwandeln und Belege in Ihrem Projekt aufzubewahren.

Ein Berichtsformat wählen

Wählen Sie den --format-Wert, der zum Bericht passt. Die Eingabe muss eine reguläre UTF-8-Textdatei mit höchstens 4194304 Bytes sein. Jedes Format erzeugt sein eigenes normalisiertes Schema:

opensta-timing       timing-report.v1
yosys-area           area-report.v1
power                power-report.v1
openroad-congestion  congestion-report.v1
sim-result           sim-result.v1

Einen Bericht parsen

Speichern Sie einen Timing-Bericht im Projekt und parsen Sie ihn. --input ist relativ zum Projekt.

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"

Prüfen Sie, dass der Exit-Status 0 ist. Die jq-Zeile gibt aus:

{"status":"available","schema":"timing-report.v1","start":"in_reg"}

Der Beleg erfasst außerdem operation_id reports.parse, die Eingabe source, byte_length und sha256, die implementation_id des Parsers, diagnostics und den Bericht normalized. claims.execution_performed und claims.signoff_assessed sind false: Der Beleg beschreibt die Datei, die Sie geparst haben.

Belege aufbewahren und erneut öffnen

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 akzeptiert einen unveränderten altifigence.reports.parse.v1-Beleg mit höchstens 16777216 Bytes, prüft dessen Eingabeidentität, Parser-Herkunft und Claims und schreibt ihn im Projekt unter .altifigence/artifacts/reports/. Das zugehörige Manifest altifigence.reports.artifact-manifest.v1 enthält entryId, format, inputSha256, parserImplementationId und relativePath results/<entryId>.json. List gibt die Manifeste als JSON-Array aus; show gibt den gespeicherten Beleg aus.

Nach Fehlern fortfahren

Die Engine gibt Fehler nach Error: in stderr aus und beendet sich mit einem Exit-Status ungleich null.

Bei report input exceeds 4194304 bytes parsen Sie eine Berichtsdatei mit höchstens 4194304 Bytes.

Bei report input must be a regular file and not a symbolic link übergeben Sie den Pfad der Berichtsdatei selbst.

Bei report input is not valid UTF-8 speichern Sie den Bericht als UTF-8-Text und parsen ihn erneut.

Ein erfolgreicher Parse-Vorgang endet mit dem Status 0 und schreibt JSON nach stdout. Wenn Timing-Werte fehlen, ist sein status unavailable und sein Array diagnostics enthält die Warnung REPORT_TIMING_VALUES_NOT_FOUND. Stellen Sie einen Timing-Bericht mit Timing-Werten bereit, etwa mit den obigen Zeilen Startpoint:, Endpoint: und slack, und parsen Sie ihn mit --format opensta-timing.

Bei report parse receipt is invalid: unexpected operation schema or version speichern Sie die Datei genau so, wie alti reports parse sie geschrieben hat.

Bei report artifact entry does not exist: gefolgt von einer ID kopieren Sie eine entryId aus alti reports artifact list.

CLI-Engine-Befehle