Virtuoso 레이아웃은(는) 무엇을 하나요?
레이아웃 읽기, 디바이스 배치, 매칭 및 배선, 핀/비아, GDS 및 DRC/LVS/PEX를 담당합니다. 물리적 검증이 완료되면 포스트-레이아웃 시뮬레이션 측정은 virtuoso-testbench에, 파라미터 최적화는 virtuoso-params에 넘깁니다.
사전 확인
먼저 플랫폼 규칙과 환경 설정 프로토콜을 읽고, 공유 로컬 구성을 읽은 후 필요에 따라 연결합니다. lib/cell/view, PDK, 공정 바인딩, 스키매틱 버전, 목표 면적/매칭/전류/기생 요구 사항을 명확히 합니다. 기술 바인딩은 데이터베이스에서 조회하며, 과거 라이브러리 상태를 신뢰하지 않습니다.
layout-python-api.md와 layout-skill-api.md를 읽고 실제 설치된 시그니처와 대조합니다. 기술 바인딩 인터페이스는 library-python-api.md를 참조하십시오.
편집 흐름
- 계층 구조, 실제 디바이스 및 터미널 지오메트리, 유효한 레이어/퍼포즈, 제조 그리드, viaDefs 및 기존 레이아웃을 읽습니다. 스크린샷으로 연결 좌표를 추측하지 마십시오.
- 배치 및 배선 전략을 수립하고, 필요한 대칭, 매칭, 동심, 가드 링, 전원 및 민감 신호 제약 조건을 설명합니다. 규칙은 구성에서 선택한 실제 PDK에서 가져오며, 다른 공정의 값을 하드코딩하지 않습니다.
- 기본적으로
modify()를 사용하고, 새 뷰에서만create()를 사용합니다. 먼저 덮어쓰기가 발생하는지 확인하십시오. 확인된 PCell과 파라미터를 사용하여 디바이스를 생성하며, 복잡한 공정 디바이스를 수동 그리기로 대체하지 마십시오. - Python 좌표는 tuple/list를 사용하고, SKILL 좌표는 API 빌더가 생성합니다. label/via/PCell을 스크립트로 생성할 수 있는지는 실제 함수와 현재 버전으로 확인하며, 이전 요리책의 "GUI 필수" 결론을 그대로 따르지 않습니다.
- 공정 규칙에 맞는 배선 방향과 그리드를 사용합니다. 직각 배선은 일반적인 시작점이지만, 방향과 각도는 PDK가 결정합니다. 핀 레이블은 올바른 레이어/형상 위에 배치하며, 레이블이 자동으로 완전한 전기적 터미널을 가진 핀과 동일하지는 않습니다.
- 저장 후 지오메트리와 포트를 다시 읽고 스크린샷으로 확인합니다. 확대 시 작은 도형이 보이지 않으면 먼저 도형 개수와 bbox를 읽고 중복 생성하지 않습니다.
검증 및 전달
verification.md에 따라 스트림 맵 / 덱 / 탑 셀을 준비하고, 이번 새 GDS를 내보낸 후 현재 실행 로그를 확인합니다. DRC, LVS, PEX 상태를 각각 보고하며, 한 항목의 통과로 다른 항목의 통과를 추정할 수 없습니다. 도구, 라이선스 또는 덱이 없는 경우 레이아웃과 검증 계획을 전달하고 상태를 '미실행'으로 명확히 표시합니다.
레이아웃이 변경된 후에는 관련 검증 결과를 다시 생성하며, 이전 PEX를 현재 레이아웃의 결과로 사용하는 것을 금지합니다. 전달 항목에는 레이아웃 위치, GDS, 현재 검증 로그, 미해결 항목 및 사용자가 요청한 포스트-레이아웃 시뮬레이션 상태가 포함됩니다.