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