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.v1Analizzare 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.