Analizzare i report di implementazione e conservare le ricevute

Analizza un report salvato di timing, area, potenza, congestione o simulazione in JSON normalizzato, quindi salva, elenca e riapri la ricevuta.

Utilizza Altifigence CLI 0.1.9 su Linux per trasformare un report di testo salvato in una ricevuta altifigence.reports.parse.v1 con il motore dei report incluso e per conservare le ricevute nel tuo progetto.

Scegliere un formato di report

Scegli il valore di --format che corrisponde al report. L’input deve essere un normale file di testo UTF-8 di al massimo 4194304 byte. Ogni formato produce un proprio schema normalizzato:

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

Analizzare un report

Salva un report di timing nel progetto e analizzalo. --input è relativo al progetto.

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"

Verifica che il codice di uscita sia 0. La riga jq stampa:

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

La ricevuta registra anche operation_id reports.parse, l’input source, byte_length e sha256, l’implementation_id del parser, diagnostics e il report normalized. claims.execution_performed e claims.signoff_assessed hanno valore false: la ricevuta descrive il file che hai analizzato.

Conservare e riaprire le ricevute

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 accetta una ricevuta altifigence.reports.parse.v1 non modificata di al massimo 16777216 byte, ne controlla l’identità dell’input, la provenienza del parser e i claim e la scrive sotto .altifigence/artifacts/reports/ nel progetto. Il suo manifest altifigence.reports.artifact-manifest.v1 include entryId, format, inputSha256, parserImplementationId e relativePath results/<entryId>.json. List stampa i manifest come array JSON; show stampa la ricevuta salvata.

Riprendere dopo gli errori

Il motore stampa gli errori su stderr dopo Error: e termina con un codice di uscita diverso da zero.

Per report input exceeds 4194304 bytes, analizza un file di report di al massimo 4194304 byte.

Per report input must be a regular file and not a symbolic link, passa il percorso del file di report stesso.

Per report input is not valid UTF-8, salva il report come testo UTF-8 e analizzalo di nuovo.

Un’analisi riuscita termina con stato 0 e scrive JSON su stdout. Quando mancano i valori temporali, il suo status è unavailable e il suo array diagnostics contiene l’avviso REPORT_TIMING_VALUES_NOT_FOUND. Fornisci un rapporto temporale contenente valori temporali, come le righe Startpoint:, Endpoint: e slack mostrate sopra, e analizzalo con --format opensta-timing.

Per report parse receipt is invalid: unexpected operation schema or version, salva il file esattamente come lo ha scritto alti reports parse.

Per report artifact entry does not exist: seguito da un id, copia un entryId da alti reports artifact list.

Comandi dei motori CLI