콘텐츠로 이동

다중 회로도와 계층 회로도

회로가 한 장에 들어가지 않으면 나눠야 한다. 나누는 방법은 둘이고, 둘은 서로를 대체하지 않는다.

평면은 도면을 나누고, 계층은 설계를 나눈다.

구조를 정한 뒤의 작성 방법은 각각의 문서가 소유한다 — 다중 회로도(schematic) 작성 · 계층 회로도 작성.

평면 다중 회로도는 시트가 나란히 있고 계층 회로도는 부모가 자식을 담는다

평면 다중 회로도는 큰 도면을 여러 장으로 자른 것이다. 시트끼리 부모·자식 관계가 없고 모두 같은 층에 있다. 시트를 넘는 신호는 이름이 같아서 이어진다.

계층 회로도(hierarchical schematic)는 상위 도면에 하위 도면을 가리키는 사각형을 배치한다. 그 사각형의 테두리에 붙은 시트 핀(sheet pin)이 하위 도면의 계층 포트(hierarchical port)와 짝을 이루고, 신호는 그 짝을 통해 오르내린다.

평면 다중 회로도계층 회로도
시트 관계모두 같은 층부모와 자식
신호를 넘기는 수단전역 이름(포트·전원)시트 핀 ↔ 계층 포트
넷 이름의 범위사실상 전부 전역블록 안에 가둘 수 있다
블록의 경계도면 경계일 뿐인터페이스가 명시된다
같은 회로의 반복복사해서 붙인다한 도면을 여러 번 배치한다
그리는 비용낮다시트 핀·포트를 맞추는 만큼 든다
확인 비용신호를 추적하려면 여러 장을 탐색해야 한다블록도에서 구조가 먼저 보인다

차이의 핵심은 인터페이스가 그려지는가다. 평면에서 어떤 시트가 바깥과 주고받는 신호가 무엇인지 알려면 시트 전체를 조회해 전역 이름을 집계해야 한다. 계층에서는 부모에 배치된 사각형의 핀 목록이 곧 그 블록의 인터페이스다.

한쪽이 항상 낫다면 다른 쪽은 남아 있지 않았을 것이다. 둘은 비용을 내는 자리가 다르다.

상황맞는 구조이유
도면 서너 장 규모평면계층의 인터페이스 정의 비용이 이득을 넘는다
시트마다 기능이 뚜렷이 갈린다평면나누는 것으로 충분하다
같은 회로가 여러 벌 들어간다계층한 도면을 여러 번 배치한다. 고치면 전부 고쳐진다
여러 사람이 분담해 작성한다계층블록의 경계가 곧 담당의 경계다
다음 프로젝트에 블록을 옮긴다계층인터페이스가 정의된 단위여야 옮길 수 있다
이름 충돌이 잦다계층지역 이름이 블록 안에 갇힌다
검토자가 처음 보는 설계계층최상위 한 장이 전체 구조를 보여 준다

구조를 정하기 전에 신호가 시트를 넘는 수단을 알아야 한다. 두 구조의 차이가 결국 이 수단의 차이이기 때문이다.

수단범위무엇을 잇는가
신호 포트전역이름이 같으면 어느 파일·어느 시트든 한 넷
전원·접지 심볼(symbol)전역같다. 전원 계통은 본래 설계 전체를 관통한다
넷 라벨지역그 시트 안
계층 포트지역그 시트 안 — 바깥과는 시트 핀으로 만난다
시트 핀지역부모에 배치된 사각형의 접점

3.1 지역 이름에는 경로가 붙는다

섹션 제목: “3.1 지역 이름에는 경로가 붙는다”

지역 이름은 시트 경로를 namespace 로 갖는다. 시트 Sub 안의 라벨 DATA 는 실제로는 "/Sub/DATA" 라는 넷 이름이 된다. 그래서 다른 블록에도 DATA 라는 라벨이 있어도 섞이지 않는다.

지역 이름은 문서와 시트에 갇히고 전역 이름은 파일을 넘어 합쳐진다

namespace 의 원소는 시트 이름이지 파일 이름이 아니다. 파일을 옮기거나 파일 이름을 바꿔도 시트 이름이 그대로면 넷 이름이 유지된다.

3.2 계층 합류는 이름이 같아져서 일어난다

섹션 제목: “3.2 계층 합류는 이름이 같아져서 일어난다”

부모의 시트 핀과 하위의 계층 포트가 같은 넷 이름 문자열을 만들어 한 넷이 된다

부모에 배치된 시트 핀은 자기 이름이 아니라 하위 시트의 경로로 넷 이름을 만든다. 하위 도면의 계층 포트도 같은 경로로 만든다. 두 문자열이 같아지므로 잇는 절차가 따로 없다.

이 사실이 실무에 주는 결론은 하나다.

짝은 이름으로 맺어진다. 위치도 순서도 모양도 아니다.

이름을 한쪽에서만 고치면 짝이 조용히 풀린다. 도면은 정상으로 보이고, 넷만 둘로 갈라진다.

전역 이름은 편하다. 그래서 남용된다.

  • 어디서 연결되는지 도면에 보이지 않는다 — 같은 이름을 어느 시트에 적어도 이어지므로, 그 신호가 어디로 가는지 알려면 프로젝트 전체를 검색해야 한다
  • 오타가 연결을 끊는 대신 새 넷을 만든다RESET_NRESETN 은 두 넷이고, 둘 다 정상으로 보인다
  • 블록을 옮길 수 없게 만든다 — 블록 안에서 전역 이름을 쓰면 그 블록은 다른 프로젝트로 옮길 때 이름 충돌을 일으킨다

전역으로 둘 것은 정말로 설계 전체를 관통하는 것뿐이다 — 전원·접지·기준 클럭·리셋 정도다. 나머지는 지역 이름으로 두고, 블록 밖으로 낼 것만 계층 포트로 명시한다.

4.1 경계는 신호가 가장 적게 지나는 지점에 둔다

섹션 제목: “4.1 경계는 신호가 가장 적게 지나는 지점에 둔다”

나누는 기준·첫 장의 블록도·장 이름·인쇄 밀도는 구조를 무엇으로 정하든 같으므로 다중 회로도 작성 §2·§3 이 소유한다. 계층에서 다른 것은 그 경계가 인터페이스로 명시된다는 점 하나다(§4.2).

계층 블록을 그리기 전에 그 블록이 주고받을 신호 목록을 먼저 적는다. 이것이 블록의 계약이다.

항목정해 둘 것
이름블록 안에서도 밖에서도 같은 이름
방향입력 · 출력 · 양방향
종류단일 신호인가 버스인가
전기적 성격전압 계통 · 구동 능력

방향을 적어 두면 출력끼리 이은 실수를 검사가 잡는다. 적지 않으면 잡을 근거가 없다.

인터페이스 신호 수로 경계의 품질을 판정하는 기준은 계층 회로도 작성 §3.2 가 소유한다.

같은 하위 도면을 여러 번 배치해도 참조 지정자는 인스턴스마다 달라야 한다

같은 회로가 여러 벌 들어가는 설계 — 4채널 입력, 8포트 스위치, 여러 벌의 전원 — 는 계층이 아니면 관리되지 않는다. 복사해서 붙이면 다음이 벌어진다.

  • 회로를 고칠 때 네 곳을 똑같이 고쳐야 하고, 한 곳을 빠뜨리면 아무도 모른다
  • 검토자가 네 벌을 각각 확인해야 한다 — 같은지 다른지 알 수 없기 때문이다

하나의 하위 도면을 여러 번 배치하면 도면은 하나이므로 이 문제가 사라진다. 다만 값이 따라온다.

규칙
참조 지정자(reference designator)인스턴스마다 달라야 한다. 도면은 같아도 부품은 각각 실재한다
BOM 수량인스턴스 수만큼 곱해진다
채널별로 다른 값저항값 하나가 채널마다 달라야 한다면 그 부품은 반복 블록 밖으로 뺀다

마지막 항목이 실무에서 자주 걸린다. 반복 블록은 모든 인스턴스가 같다는 전제 위에 서 있으므로, 채널마다 다른 값이 하나라도 있으면 전제가 깨진다. 그 부품만 상위로 올리는 것이 정석이다.

단순 계층과 복합 계층의 구분, 인스턴스 경로와 참조 지정자 배정은 계층 회로도 작성 §4.1 · §6.3 이 소유한다.

시트마다 번호 대역을 정해 두면 번호만 보고 어느 시트의 부품인지 알 수 있다.

시트시작 번호결과
전원100R101 · C102
주 제어200U201 · R202
인터페이스300J301 · D302

대역이 없으면 도면 순서를 바꾸거나 부품을 추가할 때마다 번호가 뒤섞이고, 이전 판과 대조할 수 없게 된다. 대역을 정해 두면 시트를 옮겨도 그 시트의 번호는 그대로 남는다.

다중 회로도 작성 §6 에서 다룬다 — 페이지 번호·전체 장수·도면 목록·행선지 표기는 구조와 무관하게 같다.

단계하는 일산출
1기능 블록을 나누고 경계를 정한다블록 목록
2블록 사이를 지나는 신호를 적는다인터페이스 목록
3반복되는 블록을 찾아낸다계층으로 내릴 대상
4최상위 장에 블록도를 그린다시트와 시트 핀
5블록마다 하위 도면을 그린다계층 포트와 회로
6전역으로 둘 신호를 정한다전원·기준 신호 목록
7번호 대역을 배정하고 번호를 매긴다참조 지정자
8검사를 돌리고 남은 경고를 판정한다검사 보고서

2 단계를 건너뛰지 않는 것이 요령이다. 인터페이스를 정하지 않고 그리기 시작하면, 나중에 블록 경계를 넘나드는 신호가 늘어나 계층이 무의미해진다.

6. 검증 — 구조가 조용히 어긋나는 지점

섹션 제목: “6. 검증 — 구조가 조용히 어긋나는 지점”

여러 장으로 나눈 설계의 오류는 한 장만 보면 보이지 않는다. 각 장은 정상으로 보인다.

#검사무슨 일이 생기는가
1짝 없는 시트 핀부모에는 있는데 하위에 그 이름의 계층 포트가 없다 → 넷이 하위로 내려가지 않는다
2짝 없는 계층 포트하위에는 있는데 부모의 사각형에 핀이 없다 → 그 신호가 밖으로 나가지 않는다
3방향 불일치양쪽이 모두 출력이거나, 입력으로 선언한 곳에서 구동한다
4버스(bus)와 단일 신호의 혼선한쪽은 버스, 다른 쪽은 단일 신호로 선언되어 있다
5대소문자만 다른 이름DataDATA 가 두 넷이 된다
6한 넷에 이름이 둘서로 다른 이름의 원천 둘이 한 넷에 붙었다
7혼자 있는 전역 이름프로젝트 전체에 그 이름이 하나뿐이다 — 짝을 적지 않았거나 오타다
8의도치 않은 합류다른 블록에서 같은 전역 이름을 써서 두 신호가 하나가 되었다

7번과 8번은 §3.3 이 말한 전역 이름의 대가다. 전역 이름을 적게 쓰면 이 두 검사에서 볼 것도 적어진다.

여기 여덟은 이름과 짝의 축이다. 계층 구조 자체에서만 발생하는 것 — 고아 도면 · 빈 블록 · 통과 시트 · 깊이 초과 · 인터페이스 폭 초과 — 은 계층 회로도 작성 §8 이 소유한다.

7. ImEDA 에서의 다중·계층 회로도

섹션 제목: “7. ImEDA 에서의 다중·계층 회로도”
내용
계층 시트상위 도면에 배치하는 사각형 하나가 하위 회로도 하나를 가리킨다 — 계층 시트
시트 핀시트 테두리에 붙는 접점. 하위 도면의 계층 포트 이름에서 파생되어 목록으로 제시된다
계층 포트하위 도면 안쪽의 짝 — 포트
넷 라벨그 시트 안에서만 통하는 이름 — 넷 라벨
문서마다 namespace파일이 다르면 같은 이름의 라벨도 다른 넷이다. 파일을 넘기려면 신호 포트를 쓴다
namespace 의 원천문서에 적어 둔 시트 이름이다. 파일을 옮기거나 이름을 바꿔도 넷 이름이 유지된다
형제 이름 유일성같은 부모 아래 시트 이름은 겹칠 수 없다. 겹치면 자동으로 접미사가 붙는다
시트별 상태시트마다 화면·되돌리기·확대 상태가 따로 유지된다
부품 시작 번호시트 → 문서 → 프로젝트 순으로 찾아 첫 값을 쓰고, 모두 비었으면 1 부터
연결성·검사프로젝트 단위로 항상 유지된다 — 실행하는 기능이 아니라 상시 상태다

마지막 두 줄이 실무에서 크다. 번호 대역(§4.4)을 시트 속성으로 두면 그 시트의 부품이 그 번호부터 배정되고, 넷 연결과 검사는 도면을 저장하거나 실행하지 않아도 항상 최신이다.

확인
구조계층으로 내릴 것과 평면으로 둘 것을 정하고 적었는가
구조최상위 한 장이 전체 구조를 보여 주는가
경계한 회로가 두 장에 걸치지 않는가
경계블록의 인터페이스 신호가 지나치게 많지 않은가
이름전역으로 둔 이름이 정말 설계 전체를 관통하는 것뿐인가
이름시트 핀과 계층 포트의 이름이 양쪽 다 짝이 있는가
이름대소문자만 다른 이름이 없는가
반복반복 블록 안에 인스턴스마다 달라야 하는 값이 남아 있지 않은가
번호시트마다 번호 대역을 배정했는가
번호참조 지정자가 프로젝트 전체에서 유일한가
문서페이지 번호·전체 장수·도면 목록이 있는가
검사남은 경고를 판정하고 기록했는가 — 무시한 것과 확인한 것은 다르다