구현 보고서를 파싱하고 영수증 보관하기

저장된 타이밍, 면적, 전력, 혼잡도 또는 시뮬레이션 보고서를 정규화된 JSON으로 파싱한 다음, 영수증을 저장하고 목록을 확인하고 다시 엽니다.

Linux에서 Altifigence CLI 0.1.9를 사용해 내장 보고서 엔진으로 저장된 텍스트 보고서를 altifigence.reports.parse.v1 영수증으로 변환하고, 영수증을 프로젝트에 보관하세요.

보고서 형식 선택하기

보고서와 일치하는 --format 값을 고르세요. 입력은 최대 4194304바이트의 일반 UTF-8 텍스트 파일이어야 합니다. 각 형식은 고유한 정규화 스키마를 생성합니다:

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바이트)을 받아 입력 식별 정보, 파서 출처, 클레임을 확인한 다음 프로젝트의 .altifigence/artifacts/reports/ 아래에 기록합니다. altifigence.reports.artifact-manifest.v1 매니페스트에는 entryId, format, inputSha256, parserImplementationId, relativePath results/<entryId>.json이 포함됩니다. List는 매니페스트를 JSON 배열로 출력하고, show는 저장된 영수증을 출력합니다.

오류 해결하기

엔진은 오류를 Error: 뒤에 붙여 stderr에 출력하고 영이 아닌 종료 상태로 종료합니다.

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:, 슬랙 줄과 같은 타이밍 값이 포함된 타이밍 보고서를 제공하고 --format opensta-timing으로 파싱하세요.

report parse receipt is invalid: unexpected operation schema or version이 표시되면 파일을 alti reports parse가 쓴 그대로 저장하세요.

report artifact entry does not exist: 뒤에 ID가 이어지면 alti reports artifact list에서 entryId를 복사하세요.

CLI 엔진 명령어