Разбор отчётов о реализации и сохранение квитанций
Разберите сохранённый отчёт о временных характеристиках, площади, энергопотреблении, перегрузке трассировки или симуляции в нормализованный JSON, затем сохраните квитанцию, выведите список квитанций и повторно откройте её.
Используйте Altifigence CLI 0.1.9 в Linux, чтобы преобразовать сохранённый текстовый отчёт в квитанцию altifigence.reports.parse.v1 с помощью поставляемого в комплекте движка отчётов и хранить квитанции в проекте.
Выбор формата отчёта
Выберите значение --format, соответствующее отчёту. Входными данными должен быть обычный текстовый файл UTF-8 размером не более 4194304 байт. Каждый формат создаёт собственную нормализованную схему:
opensta-timing timing-report.v1
yosys-area area-report.v1
power power-report.v1
openroad-congestion congestion-report.v1
sim-result sim-result.v1Разбор отчёта
Сохраните отчёт о временных характеристиках в проекте и разберите его. Путь --input указывается относительно проекта.
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"Убедитесь, что код завершения равен 0. Строка с jq выводит:
{"status":"available","schema":"timing-report.v1","start":"in_reg"}Квитанция также фиксирует operation_id reports.parse, source, byte_length и sha256 входных данных, implementation_id парсера, diagnostics и отчёт normalized. claims.execution_performed и claims.signoff_assessed имеют значение false: квитанция описывает файл, который вы разобрали.
Сохранение и повторное открытие квитанций
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 принимает неизменённую квитанцию altifigence.reports.parse.v1 размером не более 16777216 байт, проверяет идентичность входных данных, происхождение парсера и утверждения (claims) и записывает её в .altifigence/artifacts/reports/ в проекте. Её манифест altifigence.reports.artifact-manifest.v1 включает entryId, format, inputSha256, parserImplementationId и relativePath results/<entryId>.json. List выводит манифесты в виде массива JSON; show выводит сохранённую квитанцию.
Действия при ошибках
Движок выводит ошибки в stderr после Error: и завершается с ненулевым кодом.
При report input exceeds 4194304 bytes разберите файл отчёта размером не более 4194304 байт.
При report input must be a regular file and not a symbolic link передайте путь к самому файлу отчёта.
При report input is not valid UTF-8 сохраните отчёт как текст UTF-8 и разберите его снова.
Успешный разбор завершается с кодом 0 и записывает JSON в stdout. Если значения временных характеристик отсутствуют, его status равен unavailable, а массив diagnostics содержит предупреждение REPORT_TIMING_VALUES_NOT_FOUND. Предоставьте отчёт о временных характеристиках со значениями временных характеристик, например с приведёнными выше строками Startpoint:, Endpoint: и slack, и разберите его с помощью --format opensta-timing.
При report parse receipt is invalid: unexpected operation schema or version сохраните файл точно в том виде, в каком его записал alti reports parse.
При report artifact entry does not exist: с последующим идентификатором скопируйте entryId из alti reports artifact list.