다중 회로도와 계층 회로도
회로가 한 장에 들어가지 않으면 나눠야 한다. 나누는 방법은 둘이고, 둘은 서로를 대체하지 않는다.
평면은 도면을 나누고, 계층은 설계를 나눈다.
구조를 정한 뒤의 작성 방법은 각각의 문서가 소유한다 — 다중 회로도(schematic) 작성 · 계층 회로도 작성.
1. 두 구조의 차이
섹션 제목: “1. 두 구조의 차이”평면 다중 회로도는 큰 도면을 여러 장으로 자른 것이다. 시트끼리 부모·자식 관계가 없고 모두 같은 층에 있다. 시트를 넘는 신호는 이름이 같아서 이어진다.
계층 회로도(hierarchical schematic)는 상위 도면에 하위 도면을 가리키는 사각형을 배치한다. 그 사각형의 테두리에 붙은 시트 핀(sheet pin)이 하위 도면의 계층 포트(hierarchical port)와 짝을 이루고, 신호는 그 짝을 통해 오르내린다.
| 축 | 평면 다중 회로도 | 계층 회로도 |
|---|---|---|
| 시트 관계 | 모두 같은 층 | 부모와 자식 |
| 신호를 넘기는 수단 | 전역 이름(포트·전원) | 시트 핀 ↔ 계층 포트 |
| 넷 이름의 범위 | 사실상 전부 전역 | 블록 안에 가둘 수 있다 |
| 블록의 경계 | 도면 경계일 뿐 | 인터페이스가 명시된다 |
| 같은 회로의 반복 | 복사해서 붙인다 | 한 도면을 여러 번 배치한다 |
| 그리는 비용 | 낮다 | 시트 핀·포트를 맞추는 만큼 든다 |
| 확인 비용 | 신호를 추적하려면 여러 장을 탐색해야 한다 | 블록도에서 구조가 먼저 보인다 |
차이의 핵심은 인터페이스가 그려지는가다. 평면에서 어떤 시트가 바깥과 주고받는 신호가 무엇인지 알려면 시트 전체를 조회해 전역 이름을 집계해야 한다. 계층에서는 부모에 배치된 사각형의 핀 목록이 곧 그 블록의 인터페이스다.
2. 두 구조가 함께 필요한 이유
섹션 제목: “2. 두 구조가 함께 필요한 이유”한쪽이 항상 낫다면 다른 쪽은 남아 있지 않았을 것이다. 둘은 비용을 내는 자리가 다르다.
| 상황 | 맞는 구조 | 이유 |
|---|---|---|
| 도면 서너 장 규모 | 평면 | 계층의 인터페이스 정의 비용이 이득을 넘는다 |
| 시트마다 기능이 뚜렷이 갈린다 | 평면 | 나누는 것으로 충분하다 |
| 같은 회로가 여러 벌 들어간다 | 계층 | 한 도면을 여러 번 배치한다. 고치면 전부 고쳐진다 |
| 여러 사람이 분담해 작성한다 | 계층 | 블록의 경계가 곧 담당의 경계다 |
| 다음 프로젝트에 블록을 옮긴다 | 계층 | 인터페이스가 정의된 단위여야 옮길 수 있다 |
| 이름 충돌이 잦다 | 계층 | 지역 이름이 블록 안에 갇힌다 |
| 검토자가 처음 보는 설계 | 계층 | 최상위 한 장이 전체 구조를 보여 준다 |
3. 신호가 시트를 넘는 수단
섹션 제목: “3. 신호가 시트를 넘는 수단”구조를 정하기 전에 신호가 시트를 넘는 수단을 알아야 한다. 두 구조의 차이가 결국 이 수단의 차이이기 때문이다.
| 수단 | 범위 | 무엇을 잇는가 |
|---|---|---|
| 신호 포트 | 전역 | 이름이 같으면 어느 파일·어느 시트든 한 넷 |
| 전원·접지 심볼(symbol) | 전역 | 같다. 전원 계통은 본래 설계 전체를 관통한다 |
| 넷 라벨 | 지역 | 그 시트 안 |
| 계층 포트 | 지역 | 그 시트 안 — 바깥과는 시트 핀으로 만난다 |
| 시트 핀 | 지역 | 부모에 배치된 사각형의 접점 |
3.1 지역 이름에는 경로가 붙는다
섹션 제목: “3.1 지역 이름에는 경로가 붙는다”지역 이름은 시트 경로를 namespace 로 갖는다. 시트 Sub 안의 라벨 DATA 는 실제로는
"/Sub/DATA" 라는 넷 이름이 된다. 그래서 다른 블록에도 DATA 라는 라벨이 있어도 섞이지 않는다.
namespace 의 원소는 시트 이름이지 파일 이름이 아니다. 파일을 옮기거나 파일 이름을 바꿔도 시트 이름이 그대로면 넷 이름이 유지된다.
3.2 계층 합류는 이름이 같아져서 일어난다
섹션 제목: “3.2 계층 합류는 이름이 같아져서 일어난다”부모에 배치된 시트 핀은 자기 이름이 아니라 하위 시트의 경로로 넷 이름을 만든다. 하위 도면의 계층 포트도 같은 경로로 만든다. 두 문자열이 같아지므로 잇는 절차가 따로 없다.
이 사실이 실무에 주는 결론은 하나다.
짝은 이름으로 맺어진다. 위치도 순서도 모양도 아니다.
이름을 한쪽에서만 고치면 짝이 조용히 풀린다. 도면은 정상으로 보이고, 넷만 둘로 갈라진다.
3.3 전역 이름은 적을수록 좋다
섹션 제목: “3.3 전역 이름은 적을수록 좋다”전역 이름은 편하다. 그래서 남용된다.
- 어디서 연결되는지 도면에 보이지 않는다 — 같은 이름을 어느 시트에 적어도 이어지므로, 그 신호가 어디로 가는지 알려면 프로젝트 전체를 검색해야 한다
- 오타가 연결을 끊는 대신 새 넷을 만든다 —
RESET_N과RESETN은 두 넷이고, 둘 다 정상으로 보인다 - 블록을 옮길 수 없게 만든다 — 블록 안에서 전역 이름을 쓰면 그 블록은 다른 프로젝트로 옮길 때 이름 충돌을 일으킨다
전역으로 둘 것은 정말로 설계 전체를 관통하는 것뿐이다 — 전원·접지·기준 클럭·리셋 정도다. 나머지는 지역 이름으로 두고, 블록 밖으로 낼 것만 계층 포트로 명시한다.
4. 프로젝트 분할 방법
섹션 제목: “4. 프로젝트 분할 방법”4.1 경계는 신호가 가장 적게 지나는 지점에 둔다
섹션 제목: “4.1 경계는 신호가 가장 적게 지나는 지점에 둔다”나누는 기준·첫 장의 블록도·장 이름·인쇄 밀도는 구조를 무엇으로 정하든 같으므로 다중 회로도 작성 §2·§3 이 소유한다. 계층에서 다른 것은 그 경계가 인터페이스로 명시된다는 점 하나다(§4.2).
4.2 인터페이스를 먼저 정한다
섹션 제목: “4.2 인터페이스를 먼저 정한다”계층 블록을 그리기 전에 그 블록이 주고받을 신호 목록을 먼저 적는다. 이것이 블록의 계약이다.
| 항목 | 정해 둘 것 |
|---|---|
| 이름 | 블록 안에서도 밖에서도 같은 이름 |
| 방향 | 입력 · 출력 · 양방향 |
| 종류 | 단일 신호인가 버스인가 |
| 전기적 성격 | 전압 계통 · 구동 능력 |
방향을 적어 두면 출력끼리 이은 실수를 검사가 잡는다. 적지 않으면 잡을 근거가 없다.
인터페이스 신호 수로 경계의 품질을 판정하는 기준은 계층 회로도 작성 §3.2 가 소유한다.
4.3 반복되는 블록
섹션 제목: “4.3 반복되는 블록”같은 회로가 여러 벌 들어가는 설계 — 4채널 입력, 8포트 스위치, 여러 벌의 전원 — 는 계층이 아니면 관리되지 않는다. 복사해서 붙이면 다음이 벌어진다.
- 회로를 고칠 때 네 곳을 똑같이 고쳐야 하고, 한 곳을 빠뜨리면 아무도 모른다
- 검토자가 네 벌을 각각 확인해야 한다 — 같은지 다른지 알 수 없기 때문이다
하나의 하위 도면을 여러 번 배치하면 도면은 하나이므로 이 문제가 사라진다. 다만 값이 따라온다.
| 축 | 규칙 |
|---|---|
| 참조 지정자(reference designator) | 인스턴스마다 달라야 한다. 도면은 같아도 부품은 각각 실재한다 |
| BOM 수량 | 인스턴스 수만큼 곱해진다 |
| 채널별로 다른 값 | 저항값 하나가 채널마다 달라야 한다면 그 부품은 반복 블록 밖으로 뺀다 |
마지막 항목이 실무에서 자주 걸린다. 반복 블록은 모든 인스턴스가 같다는 전제 위에 서 있으므로, 채널마다 다른 값이 하나라도 있으면 전제가 깨진다. 그 부품만 상위로 올리는 것이 정석이다.
단순 계층과 복합 계층의 구분, 인스턴스 경로와 참조 지정자 배정은 계층 회로도 작성 §4.1 · §6.3 이 소유한다.
4.4 참조 지정자 번호 대역
섹션 제목: “4.4 참조 지정자 번호 대역”시트마다 번호 대역을 정해 두면 번호만 보고 어느 시트의 부품인지 알 수 있다.
| 시트 | 시작 번호 | 결과 |
|---|---|---|
| 전원 | 100 | R101 · C102 … |
| 주 제어 | 200 | U201 · R202 … |
| 인터페이스 | 300 | J301 · D302 … |
대역이 없으면 도면 순서를 바꾸거나 부품을 추가할 때마다 번호가 뒤섞이고, 이전 판과 대조할 수 없게 된다. 대역을 정해 두면 시트를 옮겨도 그 시트의 번호는 그대로 남는다.
4.5 페이지 번호와 도면 목록
섹션 제목: “4.5 페이지 번호와 도면 목록”다중 회로도 작성 §6 에서 다룬다 — 페이지 번호·전체 장수·도면 목록·행선지 표기는 구조와 무관하게 같다.
5. 작성 순서
섹션 제목: “5. 작성 순서”| 단계 | 하는 일 | 산출 |
|---|---|---|
| 1 | 기능 블록을 나누고 경계를 정한다 | 블록 목록 |
| 2 | 블록 사이를 지나는 신호를 적는다 | 인터페이스 목록 |
| 3 | 반복되는 블록을 찾아낸다 | 계층으로 내릴 대상 |
| 4 | 최상위 장에 블록도를 그린다 | 시트와 시트 핀 |
| 5 | 블록마다 하위 도면을 그린다 | 계층 포트와 회로 |
| 6 | 전역으로 둘 신호를 정한다 | 전원·기준 신호 목록 |
| 7 | 번호 대역을 배정하고 번호를 매긴다 | 참조 지정자 |
| 8 | 검사를 돌리고 남은 경고를 판정한다 | 검사 보고서 |
2 단계를 건너뛰지 않는 것이 요령이다. 인터페이스를 정하지 않고 그리기 시작하면, 나중에 블록 경계를 넘나드는 신호가 늘어나 계층이 무의미해진다.
6. 검증 — 구조가 조용히 어긋나는 지점
섹션 제목: “6. 검증 — 구조가 조용히 어긋나는 지점”여러 장으로 나눈 설계의 오류는 한 장만 보면 보이지 않는다. 각 장은 정상으로 보인다.
| # | 검사 | 무슨 일이 생기는가 |
|---|---|---|
| 1 | 짝 없는 시트 핀 | 부모에는 있는데 하위에 그 이름의 계층 포트가 없다 → 넷이 하위로 내려가지 않는다 |
| 2 | 짝 없는 계층 포트 | 하위에는 있는데 부모의 사각형에 핀이 없다 → 그 신호가 밖으로 나가지 않는다 |
| 3 | 방향 불일치 | 양쪽이 모두 출력이거나, 입력으로 선언한 곳에서 구동한다 |
| 4 | 버스(bus)와 단일 신호의 혼선 | 한쪽은 버스, 다른 쪽은 단일 신호로 선언되어 있다 |
| 5 | 대소문자만 다른 이름 | Data 와 DATA 가 두 넷이 된다 |
| 6 | 한 넷에 이름이 둘 | 서로 다른 이름의 원천 둘이 한 넷에 붙었다 |
| 7 | 혼자 있는 전역 이름 | 프로젝트 전체에 그 이름이 하나뿐이다 — 짝을 적지 않았거나 오타다 |
| 8 | 의도치 않은 합류 | 다른 블록에서 같은 전역 이름을 써서 두 신호가 하나가 되었다 |
7번과 8번은 §3.3 이 말한 전역 이름의 대가다. 전역 이름을 적게 쓰면 이 두 검사에서 볼 것도 적어진다.
여기 여덟은 이름과 짝의 축이다. 계층 구조 자체에서만 발생하는 것 — 고아 도면 · 빈 블록 · 통과 시트 · 깊이 초과 · 인터페이스 폭 초과 — 은 계층 회로도 작성 §8 이 소유한다.
7. ImEDA 에서의 다중·계층 회로도
섹션 제목: “7. ImEDA 에서의 다중·계층 회로도”| 축 | 내용 |
|---|---|
| 계층 시트 | 상위 도면에 배치하는 사각형 하나가 하위 회로도 하나를 가리킨다 — 계층 시트 |
| 시트 핀 | 시트 테두리에 붙는 접점. 하위 도면의 계층 포트 이름에서 파생되어 목록으로 제시된다 |
| 계층 포트 | 하위 도면 안쪽의 짝 — 포트 |
| 넷 라벨 | 그 시트 안에서만 통하는 이름 — 넷 라벨 |
| 문서마다 namespace | 파일이 다르면 같은 이름의 라벨도 다른 넷이다. 파일을 넘기려면 신호 포트를 쓴다 |
| namespace 의 원천 | 문서에 적어 둔 시트 이름이다. 파일을 옮기거나 이름을 바꿔도 넷 이름이 유지된다 |
| 형제 이름 유일성 | 같은 부모 아래 시트 이름은 겹칠 수 없다. 겹치면 자동으로 접미사가 붙는다 |
| 시트별 상태 | 시트마다 화면·되돌리기·확대 상태가 따로 유지된다 |
| 부품 시작 번호 | 시트 → 문서 → 프로젝트 순으로 찾아 첫 값을 쓰고, 모두 비었으면 1 부터 |
| 연결성·검사 | 프로젝트 단위로 항상 유지된다 — 실행하는 기능이 아니라 상시 상태다 |
마지막 두 줄이 실무에서 크다. 번호 대역(§4.4)을 시트 속성으로 두면 그 시트의 부품이 그 번호부터 배정되고, 넷 연결과 검사는 도면을 저장하거나 실행하지 않아도 항상 최신이다.
8. 확정 전 점검 항목
섹션 제목: “8. 확정 전 점검 항목”| 축 | 확인 |
|---|---|
| 구조 | 계층으로 내릴 것과 평면으로 둘 것을 정하고 적었는가 |
| 구조 | 최상위 한 장이 전체 구조를 보여 주는가 |
| 경계 | 한 회로가 두 장에 걸치지 않는가 |
| 경계 | 블록의 인터페이스 신호가 지나치게 많지 않은가 |
| 이름 | 전역으로 둔 이름이 정말 설계 전체를 관통하는 것뿐인가 |
| 이름 | 시트 핀과 계층 포트의 이름이 양쪽 다 짝이 있는가 |
| 이름 | 대소문자만 다른 이름이 없는가 |
| 반복 | 반복 블록 안에 인스턴스마다 달라야 하는 값이 남아 있지 않은가 |
| 번호 | 시트마다 번호 대역을 배정했는가 |
| 번호 | 참조 지정자가 프로젝트 전체에서 유일한가 |
| 문서 | 페이지 번호·전체 장수·도면 목록이 있는가 |
| 검사 | 남은 경고를 판정하고 기록했는가 — 무시한 것과 확인한 것은 다르다 |