Analisar relatórios de implementação e guardar os comprovantes

Analise um relatório salvo de temporização, área, potência, congestionamento ou simulação para obter JSON normalizado e, depois, armazene, liste e reabra o comprovante.

Use o Altifigence CLI 0.1.9 no Linux para transformar um relatório de texto salvo em um comprovante altifigence.reports.parse.v1 com o mecanismo de relatórios incluído e para guardar comprovantes no seu projeto.

Escolher um formato de relatório

Escolha o valor de --format que corresponde ao relatório. A entrada deve ser um arquivo regular de texto UTF-8 de no máximo 4194304 bytes. Cada formato produz seu próprio esquema normalizado:

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

Analisar um relatório

Salve um relatório de temporização no projeto e analise-o. --input é relativo ao projeto.

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"

Exija o status de saída 0. A linha do jq imprime:

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

O comprovante também registra operation_id reports.parse, a source da entrada, byte_length e sha256, o implementation_id do analisador, diagnostics e o relatório normalized. claims.execution_performed e claims.signoff_assessed são false: o comprovante descreve o arquivo que você analisou.

Guardar e reabrir comprovantes

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 aceita um comprovante altifigence.reports.parse.v1 não modificado de no máximo 16777216 bytes, verifica a identidade da entrada, a procedência do analisador e as declarações, e o grava em .altifigence/artifacts/reports/ no projeto. Seu manifesto altifigence.reports.artifact-manifest.v1 inclui entryId, format, inputSha256, parserImplementationId e relativePath results/<entryId>.json. List imprime os manifestos como um array JSON; show imprime o comprovante armazenado.

Resolver erros

O mecanismo imprime os erros em stderr depois de Error: e termina com status diferente de zero.

Para report input exceeds 4194304 bytes, analise um arquivo de relatório de no máximo 4194304 bytes.

Para report input must be a regular file and not a symbolic link, passe o caminho do próprio arquivo de relatório.

Para report input is not valid UTF-8, salve o relatório como texto UTF-8 e analise-o novamente.

Uma análise bem-sucedida termina com o status 0 e grava JSON em stdout. Quando faltam valores de temporização, seu status é unavailable e seu array diagnostics contém o aviso REPORT_TIMING_VALUES_NOT_FOUND. Forneça um relatório de temporização com valores de temporização, como as linhas Startpoint:, Endpoint: e slack acima, e analise-o com --format opensta-timing.

Para report parse receipt is invalid: unexpected operation schema or version, armazene o arquivo exatamente como alti reports parse o gravou.

Para report artifact entry does not exist: seguido de um ID, copie um entryId de alti reports artifact list.

Comandos de engine da CLI