2핀 맨해튼 경로 만들기
범위가 제한된 DBU 그리드에서 넷 하나를 배선하고 선분과 총길이를 확인하세요.
Linux에서 Altifigence CLI 0.1.9를 사용해 작은 로컬 2핀 맨해튼 경로를 만드세요. 입력은 데이터베이스 단위로 표현한 소스 및 싱크 좌표를 사용해 직사각형 그리드와 순서가 있는 넷을 정의해요. 이 예제는 40 x 40 그리드 안에서 (10, 10)의 소스 하나를 (30, 30)의 싱크 하나에 연결해요. 명령을 실행하기 전에 route-input.json으로 저장하세요.
종료 상태가 0인지 확인한 뒤 저장된 결과를 읽으세요. 표준 오류를 별도로 보관하고 아래에 설명한 결과 필드를 확인하세요.
경로 입력 준비하기
{
"grid_bounds": {
"x_min": 0,
"y_min": 0,
"x_max": 40,
"y_max": 40
},
"nets": [
{
"net_id": "net_z",
"source": {
"x": 10,
"y": 10
},
"sink": {
"x": 30,
"y": 30
}
}
]
}각 넷에 비어 있지 않은 고유 식별자를 지정하고 양 끝점을 모두 그리드 안에 두세요. 생성기는 입력 넷 순서를 유지해요. 수평 선분을 먼저 만든 다음 수직 선분을 만들며 길이가 0인 선분은 생략해요. 이 규칙 덕분에 이 예제는 좌표만으로 쉽게 검토할 수 있어요.
경로 생성 실행하기
alti physical capabilities
alti physical two-pin-manhattan-route < route-input.json > route-result.jsonroute-result.json에서 local-two-pin-manhattan-route schema, 요청된 입력, 입력 다이제스트, routes 및 총 맨해튼 길이를 확인하세요. 이 예제에서는 (10, 10)에서 (30, 10)까지의 수평 선분 뒤에 (30, 30)까지의 수직 선분이 나와요. 각 선분은 20 DBU이고 총길이는 40 DBU예요. 생성을 반복할 수 있도록 원래 입력을 결과와 함께 보관하세요.
결과 확인하기
경로 결과에서 선택한 필드가 아래에 있어요. 전체 결과에는 입력 다이제스트와 선분 좌표도 포함돼요.
{"schema":"altifigence.physical.local-two-pin-manhattan-route.v0","execution_performed":true,"requested_net_order":["net_z"],"total_manhattan_length_dbu":40}거부된 입력 확인하기
싱크의 x 좌표가 41이면 이 그리드 밖에 있으므로 invalid_job과 종료 코드 13이 반환되며 job input is not an admitted local Physical job이라는 메시지가 나와요. sink.x를 그리드 안의 30으로 되돌린 다음 생성을 다시 실행하세요.