Analizar informes de implementación y conservar los comprobantes

Analice un informe guardado de temporización, área, potencia, congestión o simulación para obtener JSON normalizado y, después, almacene, enumere y vuelva a abrir el comprobante.

Utilice Altifigence CLI 0.1.9 en Linux para convertir un informe de texto guardado en un comprobante altifigence.reports.parse.v1 con el motor de informes incluido y para conservar comprobantes en su proyecto.

Elegir un formato de informe

Elija el valor de --format que corresponda al informe. La entrada debe ser un archivo regular de texto UTF-8 de, como máximo, 4194304 bytes. Cada formato produce su propio 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

Analizar un informe

Guarde un informe de temporización en el proyecto y analícelo. --input es relativo al proyecto.

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"

Compruebe que el estado de salida sea 0. La línea de jq imprime:

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

El comprobante también registra operation_id reports.parse, la entrada source, byte_length y sha256, el implementation_id del analizador, diagnostics y el informe normalized. claims.execution_performed y claims.signoff_assessed son false: el comprobante describe el archivo que analizó.

Conservar y volver a abrir comprobantes

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 acepta un comprobante altifigence.reports.parse.v1 sin modificar de, como máximo, 16777216 bytes, comprueba la identidad de su entrada, la procedencia del analizador y las declaraciones, y lo escribe bajo .altifigence/artifacts/reports/ en el proyecto. Su manifiesto altifigence.reports.artifact-manifest.v1 incluye entryId, format, inputSha256, parserImplementationId y relativePath results/<entryId>.json. List imprime los manifiestos como una matriz JSON; show imprime el comprobante almacenado.

Resolver errores

El motor imprime los errores en stderr después de Error: y termina con un estado de salida distinto de cero.

Si aparece report input exceeds 4194304 bytes, analice un archivo de informe de, como máximo, 4194304 bytes.

Si aparece report input must be a regular file and not a symbolic link, pase la ruta del propio archivo de informe.

Si aparece report input is not valid UTF-8, guarde el informe como texto UTF-8 y analícelo de nuevo.

Un análisis correcto termina con el estado 0 y escribe JSON en stdout. Cuando faltan valores temporales, su status es unavailable y su matriz diagnostics contiene la advertencia REPORT_TIMING_VALUES_NOT_FOUND. Proporcione un informe temporal con valores temporales, como las líneas Startpoint:, Endpoint: y slack anteriores, y analícelo con --format opensta-timing.

Si aparece report parse receipt is invalid: unexpected operation schema or version, almacene el archivo exactamente como lo escribió alti reports parse.

Si aparece report artifact entry does not exist: seguido de un ID, copie un entryId de alti reports artifact list.

Comandos de motor de la CLI