계층 회로도 작성
계층 회로도(hierarchical schematic)는 도면을 나누는 방법이 아니라 설계를 나누는 방법이다. 평면 다중 회로도가 큰 도면을 여러 장으로 분할하는 것이라면, 계층은 회로를 인터페이스가 정의된 블록으로 분할하고 그 블록을 상위 도면에 배치한다.
최상위 한 장이 그 제품의 구조도가 된다.
평면 구성과의 차이·병용 근거는 다중 회로도와 계층 회로도가 소유한다. 이 문서는 계층으로 정한 뒤 실제로 어떻게 구성하고 그리는가를 다룬다.
1. 계층 회로도의 목적
섹션 제목: “1. 계층 회로도의 목적”| 목적 | 계층이 만드는 결과 |
|---|---|
| 구조의 가시화 | 최상위 한 장이 블록과 그 사이의 신호를 전부 보여 준다 |
| 인터페이스의 명시 | 블록이 바깥과 주고받는 신호가 도면에 그려진다 — 검색으로 찾아낼 대상이 아니다 |
| 재사용 | 검증이 끝난 블록을 다음 프로젝트로 옮긴다. 옮길 단위가 정의되어 있기 때문이다 |
| 반복의 관리 | 같은 회로가 여러 벌 들어가는 설계를 도면 하나로 관리한다 |
| 분담 | 블록의 경계가 담당의 경계가 된다. 병합 시 충돌 지점이 인터페이스로 한정된다 |
| 이름의 격리 | 지역 이름이 블록 안에 갇혀 다른 블록의 같은 이름과 섞이지 않는다 |
| 검토 순서의 강제 | 검토자가 구조를 먼저 확인하고 세부로 내려간다 |
목적이 하나라도 해당하지 않으면 계층으로 내릴 이유가 없다. 인터페이스를 정의하고 유지하는 비용은 실재하며, 도면 서너 장 규모에서는 그 비용이 이득을 넘는다.
2. 계층의 구조와 용어
섹션 제목: “2. 계층의 구조와 용어”| 용어 | 뜻 |
|---|---|
| 최상위 시트 | 계층의 최상단. 회로가 아니라 블록과 그 사이의 신호를 담는다 |
| 부모 · 자식 | 블록을 배치한 쪽이 부모, 그 블록이 가리키는 도면이 자식이다 |
| 말단 시트 | 자식을 갖지 않는 시트. 회로는 여기에 있다 |
| 블록(시트 심볼 · sheet symbol) | 부모 도면에 배치하는 사각형. 자식 도면 하나를 가리킨다 |
| 시트 핀(sheet pin) | 블록 테두리에 붙는 접점. 부모 쪽 끝이다 |
| 계층 포트(hierarchical port) | 자식 도면 안쪽에 배치하는 짝. 자식 쪽 끝이다 |
| 경로 | 시트 이름의 연쇄. "/신호처리/ADC" |
| 깊이 | 최상위에서 그 시트까지의 단계 수 |
| 인스턴스 | 도면 하나가 계층에 배치된 각각의 자리 |
2.1 경로가 이름의 범위를 만든다
섹션 제목: “2.1 경로가 이름의 범위를 만든다”계층 안의 지역 이름은 시트 경로를 앞에 붙인 문자열이 된다. 시트 ADC 안의 라벨 DATA 는
"/ADC/DATA" 이고, 다른 블록의 DATA 와 섞이지 않는다. 최상위는 경로가 "/" 이므로 접두사가
붙지 않는다.
이 규칙이 계층의 실질이다. 블록을 늘려도 이름 공간이 오염되지 않는 이유가 여기에 있다.
3. 블록의 경계면
섹션 제목: “3. 블록의 경계면”부모의 시트 핀과 자식의 계층 포트는 같은 넷 이름 문자열을 만들어 한 넷이 된다. 잇는 절차가 따로 있는 것이 아니므로, 짝은 이름으로만 맺어진다 — 위치도 순서도 모양도 관여하지 않는다. 산식은 다중 회로도와 계층 회로도 §3.2 가 소유한다.
3.1 인터페이스는 그리기 전에 확정한다
섹션 제목: “3.1 인터페이스는 그리기 전에 확정한다”블록을 그리기 전에 그 블록이 주고받을 신호 목록을 표로 적는다.
| 항목 | 정할 것 | 적지 않으면 |
|---|---|---|
| 이름 | 블록 안과 밖에서 같은 이름 | 짝이 맺어지지 않는다 |
| 방향 | 입력 · 출력 · 양방향 | 출력끼리 이은 실수를 검사가 잡지 못한다 |
| 폭 | 단일 신호인가 버스인가 | 한쪽만 버스(bus)로 선언되어 넷이 갈린다 |
| 전기적 성격 | 전압 계통 · 구동 능력 · 종단(termination) 유무 | 블록을 옮길 때 전제가 함께 가지 않는다 |
| 선택성 | 쓰지 않을 수 있는 신호인가 | 미결선 포트가 경고로 남는다 |
3.2 인터페이스 신호 수가 경계의 품질을 말한다
섹션 제목: “3.2 인터페이스 신호 수가 경계의 품질을 말한다”블록이 바깥과 주고받는 신호가 수십 개라면 경계가 회로를 가로지른 것이다. 신호 수는 경계를 판정하는 가장 값싼 지표다.
| 신호 수 | 판정 |
|---|---|
| 열 개 이하 | 경계가 기능을 따라 잡혀 있다 |
| 열 개 ~ 스무 개 | 버스로 묶을 것이 남아 있는지 확인한다 |
| 스무 개 초과 | 경계를 다시 정한다 — 한 기능을 둘로 분할했을 가능성이 높다 |
경계를 정하는 원칙 자체는 평면과 같다 — 다중 회로도 작성 §2.
3.3 전원은 포트로 내리지 않는다
섹션 제목: “3.3 전원은 포트로 내리지 않는다”전원·접지는 본래 설계 전체를 관통하므로 전역 이름으로 두고, 계층 포트를 만들지 않는다. 블록마다
VCC 를 포트로 내리면 최상위가 전원선으로 덮여 블록도 구실을 잃는다.
4. 구성 방법
섹션 제목: “4. 구성 방법”4.1 단순 계층과 복합 계층
섹션 제목: “4.1 단순 계층과 복합 계층”| 축 | 단순 계층 | 복합 계층 |
|---|---|---|
| 정의 | 도면 하나가 계층에 한 번 배치된다 | 도면 하나가 여러 번 배치된다 |
| 인스턴스 | 도면과 1:1 | 도면 하나에 인스턴스 여럿 |
| 넷 이름 | 시트 이름이 곧 경로 | 인스턴스 경로가 넷을 가른다 — "/CH1/DATA" · "/CH2/DATA" |
| 참조 지정자(reference designator) | 도면에 적은 그대로 | 인스턴스마다 다시 배정해야 한다 |
| 수정의 파급 | 그 블록만 | 모든 인스턴스에 동시에 |
| 쓰는 자리 | 기능이 서로 다른 블록 | 채널·포트·전원단의 반복 |
복합 계층은 모든 인스턴스가 같다는 전제 위에 선다. 채널마다 달라야 하는 값이 하나라도 있으면 전제가 깨지므로, 그 부품은 반복 블록 밖으로 분리해 상위에 둔다.
4.2 하향식과 상향식
섹션 제목: “4.2 하향식과 상향식”| 축 | 하향식 | 상향식 |
|---|---|---|
| 출발 | 최상위의 블록과 시트 핀 | 이미 그린 회로 |
| 진행 | 블록 안으로 내려가며 회로를 채운다 | 포트를 붙여 블록으로 올린다 |
| 인터페이스 | 먼저 정하고 지킨다 | 회로가 정한 것을 추인한다 |
| 맞는 상황 | 요구가 먼저 정해진 신규 설계 | 검증된 블록·이전 프로젝트의 자산 |
| 위험 | 하위를 그리다 인터페이스가 부족해진다 | 블록마다 인터페이스가 제각각이 된다 |
실무의 진행은 대개 혼합이다. 최상위 블록도는 하향식으로 정하고, 전원·인터페이스처럼 검증된 블록은 상향식으로 올린다. 혼합할 때의 규칙은 하나다 — 올려 쓴 블록도 최상위가 정한 인터페이스 표기 규약에 맞춘다. 맞추지 않으면 최상위에서 블록마다 신호 이름이 달라진다.
4.3 계층의 깊이
섹션 제목: “4.3 계층의 깊이”깊이는 2 ~ 3 단을 넘기지 않는 것이 통례다. 한 단계를 내릴 때마다 인터페이스를 한 벌 더 정의해 옮겨 적어야 하고, 회로 한 곳을 확인하는 데 필요한 이동 횟수가 그만큼 늘어난다.
| 구성 | 결과 |
|---|---|
| 얕고 넓게 — 최상위 아래 블록 여럿 | 어느 회로든 한 단계 아래에 있다. 블록이 늘어도 탐색 비용은 일정하다 |
| 깊게 — 한 줄로 이어진 단계 | 단계마다 신호를 옮겨 적어야 하고, 중간 시트는 배선(routing)만 있는 빈 껍데기가 된다 |
중간 시트에 회로가 없고 신호를 통과시키기만 한다면 그 단계는 불필요하다. 그런 시트는 제거하고 자식을 한 단계 올린다.
4.4 블록의 재사용과 이관
섹션 제목: “4.4 블록의 재사용과 이관”블록을 다음 프로젝트로 옮기려면 그 블록이 자기 완결적이어야 한다.
| 조건 | 확인 |
|---|---|
| 전역 이름을 쓰지 않는다 | 전원·접지 외의 전역 이름이 블록 안에 있으면 옮긴 곳에서 충돌한다 |
| 인터페이스가 문서화되어 있다 | 신호 이름·방향·전기적 성격이 적혀 있는가 |
| 전제가 함께 적혀 있다 | 입력 임피던스(impedance)·전압 범위·필요 종단 — 도면에 없으면 옮길 때 사라진다 |
| 참조 지정자가 대역으로 묶여 있다 | 옮긴 곳에서 번호를 다시 배정할 수 있다 |
| 부품이 라이브러리에 있다 | 심볼·풋프린트(footprint)가 프로젝트 안에만 있으면 함께 옮겨야 한다 |
5. 작성 원칙
섹션 제목: “5. 작성 원칙”| # | 원칙 | 근거 |
|---|---|---|
| 1 | 최상위에 회로를 그리지 않는다 | 블록도와 회로도가 섞이면 어느 층에서 확인할지 정해지지 않는다 |
| 2 | 인터페이스를 먼저 확정한다 | 그리면서 정하면 경계를 넘는 신호가 계속 늘어난다 |
| 3 | 한 블록은 한 기능 | 두 기능을 담은 블록은 재사용되지 않는다 |
| 4 | 깊이는 얕게, 폭은 넓게 | 단계마다 인터페이스 비용이 곱해진다 |
| 5 | 지역 이름을 기본값으로 둔다 | 전역 이름은 블록의 이관 가능성을 파괴한다 |
| 6 | 방향을 반드시 선언한다 | 선언하지 않으면 구동 충돌을 검사가 판정할 근거가 없다 |
| 7 | 반복 블록은 동질하게 유지한다 | 인스턴스마다 다른 값은 상위로 분리한다 |
| 8 | 시트 이름은 기능을 말한다 | 이름이 곧 경로이고, 경로가 곧 넷 이름이다 |
| 9 | 블록 이름과 도면 이름을 일치시킨다 | 어긋나면 도면 목록과 계층 트리가 다른 것을 가리킨다 |
6. 예 — 4채널 수집 보드
섹션 제목: “6. 예 — 4채널 수집 보드”동일한 아날로그 입력 네 벌을 받아 하나의 인터페이스로 내보내는 보드다. 계층이 값을 하는 전형적인 구성이다 — 반복이 있고, 기능 경계가 뚜렷하다.
6.1 블록 구성
섹션 제목: “6.1 블록 구성”| 블록 | 깊이 | 종류 | 내용 |
|---|---|---|---|
| 최상위 | 0 | — | 블록과 그 사이의 신호. 회로 없음 |
| 전원 | 1 | 단순 | 입력 보호 · 레귤레이터 · 시퀀스 |
| 클럭 | 1 | 단순 | 기준 발진 · 분배 |
채널 CH1 ~ CH4 | 1 | 복합 | 같은 도면 하나가 네 번 배치된다 |
| 인터페이스 | 1 | 단순 | 통신 · 보호 · 종단 |
6.2 채널 블록의 인터페이스
섹션 제목: “6.2 채널 블록의 인터페이스”| 신호 | 방향 | 성격 |
|---|---|---|
AIN | 입력 | 아날로그 · 차동 |
CLK | 입력 | 기준 클럭 · 종단은 채널 안에서 |
DATA | 출력 | 직렬 데이터 |
EN | 입력 | 채널 활성 |
네 개다. §3.2 의 기준으로 경계가 기능을 따라 잡혀 있다.
6.3 경로와 참조 지정자
섹션 제목: “6.3 경로와 참조 지정자”| 인스턴스 | 넷 이름 경로 | 참조 지정자 대역 |
|---|---|---|
CH1 | "/CH1/DATA" · "/CH1/AIN" | 100 번대 |
CH2 | "/CH2/DATA" · "/CH2/AIN" | 200 번대 |
CH3 | "/CH3/DATA" · "/CH3/AIN" | 300 번대 |
CH4 | "/CH4/DATA" · "/CH4/AIN" | 400 번대 |
도면에는 저항이 하나뿐이지만 보드에는 네 개가 실재한다. BOM 수량도 네 배가 되고, 배치도 네 벌을 따로 배치한다. 채널마다 대역을 나눠 두면 배치·검사·수리에서 그 부품이 어느 채널의 것인지 번호만으로 판정된다.
6.4 전역으로 둔 신호
섹션 제목: “6.4 전역으로 둔 신호”VCC · VDDA · GND · AGND 넷뿐이다. 나머지는 전부 계층 포트로 내렸다. 그 결과 최상위에는
블록 일곱과 신호 여섯만 남는다.
7. 작성 순서
섹션 제목: “7. 작성 순서”| 단계 | 하는 일 | 산출 |
|---|---|---|
| 1 | 기능 블록을 나누고 경계를 정한다 | 블록 목록 |
| 2 | 블록마다 인터페이스를 표로 적는다 | 신호 이름 · 방향 · 성격 |
| 3 | 반복되는 블록을 식별한다 | 복합 계층으로 둘 대상 |
| 4 | 깊이를 정한다 | 계층 트리 |
| 5 | 최상위에 블록과 시트 핀을 배치한다 | 블록도 |
| 6 | 블록마다 자식 도면을 그린다 | 계층 포트와 회로 |
| 7 | 전역으로 둘 신호를 확정한다 | 전원 · 기준 신호 목록 |
| 8 | 시트별 번호 대역을 배정하고 번호를 매긴다 | 참조 지정자 |
| 9 | 검사를 실행하고 남은 경고를 판정한다 | 검사 보고서 |
2 단계를 건너뛰지 않는 것이 요령이다. 인터페이스를 정하지 않고 그리기 시작하면 경계를 넘나드는 신호가 계속 늘어나 계층이 무의미해진다.
8. 검증 — 구조 축
섹션 제목: “8. 검증 — 구조 축”짝·이름 축의 검사 8종은 다중 회로도와 계층 회로도 §6 이 소유한다. 여기서는 계층 구조 자체에서만 발생하는 것을 다룬다.
| # | 확인 | 증상 |
|---|---|---|
| 1 | 가리키는 블록이 없는 도면 | 그린 회로가 계층에 붙지 않아 넷리스트(netlist)에 나타나지 않는다 |
| 2 | 빈 블록 | 블록은 배치했는데 자식 도면이 비어 있다. 핀만 있고 회로가 없다 |
| 3 | 통과만 하는 중간 시트 | 회로 없이 신호를 옮겨 적기만 한다 — 단계를 제거한다 |
| 4 | 깊이 초과 | 3 단을 넘는 경로가 있다. 확인 비용이 급증한다 |
| 5 | 인터페이스 폭 초과 | 한 블록의 핀이 스무 개를 넘는다 — 경계를 다시 정한다 |
| 6 | 반복 블록의 비동질성 | 인스턴스마다 달라야 하는 값이 블록 안에 남아 있다 |
| 7 | 인스턴스 참조 지정자 충돌 | 두 인스턴스가 같은 번호를 쓴다 |
| 8 | 블록 이름과 도면 이름 불일치 | 계층 트리와 도면 목록이 다른 것을 가리킨다 |
| 9 | 최상위의 낱 부품 | 블록도에 회로가 섞였다 |
9. ImEDA 에서의 계층 회로도
섹션 제목: “9. ImEDA 에서의 계층 회로도”| 축 | 내용 |
|---|---|
| 블록 | 상위 도면에 배치하는 사각형 하나가 하위 회로도 하나를 가리킨다 — 계층 시트 |
| 계층 포트 | 하위 도면 안쪽의 짝 — 포트 |
| 시트 핀 | 하위 도면의 계층 포트 이름에서 파생되어 목록으로 제시되고, 테두리에 순차 배치된다 |
| 넷 라벨 | 그 시트 안에서만 통하는 이름 — 넷 라벨 |
| 저장 형식 | 하위 시트가 부모 파일에 내장된다. 하위 시트 탭의 저장은 최상위 파일로 위임된다 |
| 파일명 필드 | 출처 표시이지 실시간 참조가 아니다. 원본 파일을 고쳐도 따라오지 않는다 |
| 경로 2종 | 이름 경로(넷 이름의 원천)와 GUID 경로(이름 변경과 무관한 식별자)를 함께 갖는다 |
| 형제 이름 유일성 | 같은 부모 아래 시트 이름은 겹칠 수 없다. 겹치면 접미사가 자동으로 붙는다 |
| 시트별 화면 상태 | 시트마다 화면·격자(grid)·확대 상태가 따로 보존된다 |
| 시트별 시작 번호 | 시트 속성의 시작 번호 → 문서 → 프로젝트 순으로 찾아 첫 값을 쓴다(§6.3 의 대역) |
| 계층 순회 | 진입 · 부모로 · 앞 형제 · 뒤 형제 · 최상위로 — 메뉴·툴바·단축키로 이동한다 |
| 연결·검사 | 프로젝트 단위로 항상 유지된다 — 실행하는 기능이 아니라 상시 상태다 |
10. 확정 전 점검 항목
섹션 제목: “10. 확정 전 점검 항목”| 축 | 확인 |
|---|---|
| 목적 | 계층으로 내린 이유가 §1 의 목록에 해당하는가 |
| 구조 | 최상위 한 장이 전체 구조를 보여 주는가 |
| 구조 | 최상위에 낱 부품이 남아 있지 않은가 |
| 구조 | 깊이가 3 단을 넘지 않는가 |
| 구조 | 회로 없이 통과만 하는 중간 시트가 없는가 |
| 경계 | 블록마다 인터페이스 신호 수가 과하지 않은가 |
| 경계 | 한 블록이 한 기능만 담는가 |
| 인터페이스 | 이름 · 방향 · 폭 · 전기적 성격을 적었는가 |
| 인터페이스 | 시트 핀과 계층 포트가 양쪽 다 짝이 있는가 |
| 이름 | 전역으로 둔 이름이 전원·접지·기준 신호뿐인가 |
| 이름 | 시트 이름이 기능을 말하고, 배선 전에 확정되었는가 |
| 반복 | 반복 블록 안에 인스턴스마다 달라야 하는 값이 없는가 |
| 반복 | 인스턴스마다 참조 지정자가 유일한가 |
| 번호 | 시트마다 번호 대역을 배정했는가 |
| 이관 | 다음 프로젝트로 옮길 블록이 자기 완결적인가 |
| 검사 | 남은 경고를 판정하고 기록했는가 |