Phân tích báo cáo triển khai và lưu các biên nhận

Phân tích báo cáo timing, diện tích, công suất, tắc nghẽn hoặc mô phỏng đã lưu thành JSON chuẩn hóa, rồi lưu, liệt kê và mở lại biên nhận.

Dùng Altifigence CLI 0.1.9 trên Linux để chuyển một báo cáo văn bản đã lưu thành biên nhận altifigence.reports.parse.v1 bằng engine báo cáo đi kèm, và để giữ các biên nhận trong dự án.

Chọn định dạng báo cáo

Chọn giá trị --format khớp với báo cáo. Đầu vào phải là tệp văn bản UTF-8 thông thường có kích thước tối đa 4194304 byte. Mỗi định dạng tạo ra lược đồ chuẩn hóa riêng:

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

Phân tích một báo cáo

Lưu báo cáo timing trong dự án và phân tích nó. --input là đường dẫn tương đối so với dự án.

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"

Xác nhận trạng thái thoát là 0. Dòng jq in ra:

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

Biên nhận cũng ghi operation_id reports.parse, source, byte_length và sha256 của đầu vào, implementation_id của trình phân tích, diagnostics và báo cáo normalized. claims.execution_performed và claims.signoff_assessed là false: biên nhận mô tả tệp bạn đã phân tích.

Lưu và mở lại biên nhận

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 chấp nhận một biên nhận altifigence.reports.parse.v1 chưa sửa đổi có kích thước tối đa 16777216 byte, kiểm tra danh tính đầu vào, nguồn gốc của trình phân tích và các khẳng định của nó, rồi ghi vào .altifigence/artifacts/reports/ trong dự án. Manifest altifigence.reports.artifact-manifest.v1 của nó gồm entryId, format, inputSha256, parserImplementationId và relativePath results/<entryId>.json. List in các manifest dưới dạng mảng JSON; show in biên nhận đã lưu.

Xử lý lỗi

Engine in lỗi ra stderr sau Error: và thoát với trạng thái khác không.

Với report input exceeds 4194304 bytes, hãy phân tích tệp báo cáo có kích thước tối đa 4194304 byte.

Với report input must be a regular file and not a symbolic link, hãy truyền đường dẫn của chính tệp báo cáo.

Với report input is not valid UTF-8, hãy lưu báo cáo dưới dạng văn bản UTF-8 và phân tích lại.

Một lần phân tích thành công thoát với trạng thái 0 và ghi JSON ra stdout. Khi thiếu các giá trị timing, status của nó là unavailable và mảng diagnostics chứa cảnh báo REPORT_TIMING_VALUES_NOT_FOUND. Hãy cung cấp báo cáo timing có các giá trị timing, chẳng hạn các dòng Startpoint:, Endpoint: và slack ở trên, rồi phân tích bằng --format opensta-timing.

Với report parse receipt is invalid: unexpected operation schema or version, hãy lưu tệp đúng như alti reports parse đã ghi.

Với report artifact entry does not exist: theo sau là một id, hãy sao chép một entryId từ alti reports artifact list.

Các lệnh engine của CLI