콘텐츠로 이동

계층 회로도 작성

계층 회로도(hierarchical schematic)는 도면을 나누는 방법이 아니라 설계를 나누는 방법이다. 평면 다중 회로도가 큰 도면을 여러 장으로 분할하는 것이라면, 계층은 회로를 인터페이스가 정의된 블록으로 분할하고 그 블록을 상위 도면에 배치한다.

최상위 한 장이 그 제품의 구조도가 된다.

평면 구성과의 차이·병용 근거는 다중 회로도와 계층 회로도가 소유한다. 이 문서는 계층으로 정한 뒤 실제로 어떻게 구성하고 그리는가를 다룬다.

목적계층이 만드는 결과
구조의 가시화최상위 한 장이 블록과 그 사이의 신호를 전부 보여 준다
인터페이스의 명시블록이 바깥과 주고받는 신호가 도면에 그려진다 — 검색으로 찾아낼 대상이 아니다
재사용검증이 끝난 블록을 다음 프로젝트로 옮긴다. 옮길 단위가 정의되어 있기 때문이다
반복의 관리같은 회로가 여러 벌 들어가는 설계를 도면 하나로 관리한다
분담블록의 경계가 담당의 경계가 된다. 병합 시 충돌 지점이 인터페이스로 한정된다
이름의 격리지역 이름이 블록 안에 갇혀 다른 블록의 같은 이름과 섞이지 않는다
검토 순서의 강제검토자가 구조를 먼저 확인하고 세부로 내려간다

목적이 하나라도 해당하지 않으면 계층으로 내릴 이유가 없다. 인터페이스를 정의하고 유지하는 비용은 실재하며, 도면 서너 장 규모에서는 그 비용이 이득을 넘는다.

계층 회로도는 최상위 아래로 블록이 갈라져 나가고 시트 이름의 연쇄가 넷 이름의 경로가 된다

용어
최상위 시트계층의 최상단. 회로가 아니라 블록과 그 사이의 신호를 담는다
부모 · 자식블록을 배치한 쪽이 부모, 그 블록이 가리키는 도면이 자식이다
말단 시트자식을 갖지 않는 시트. 회로는 여기에 있다
블록(시트 심볼 · sheet symbol)부모 도면에 배치하는 사각형. 자식 도면 하나를 가리킨다
시트 핀(sheet pin)블록 테두리에 붙는 접점. 부모 쪽 끝이다
계층 포트(hierarchical port)자식 도면 안쪽에 배치하는 짝. 자식 쪽 끝이다
경로시트 이름의 연쇄. "/신호처리/ADC"
깊이최상위에서 그 시트까지의 단계 수
인스턴스도면 하나가 계층에 배치된 각각의 자리

2.1 경로가 이름의 범위를 만든다

섹션 제목: “2.1 경로가 이름의 범위를 만든다”

계층 안의 지역 이름은 시트 경로를 앞에 붙인 문자열이 된다. 시트 ADC 안의 라벨 DATA"/ADC/DATA" 이고, 다른 블록의 DATA 와 섞이지 않는다. 최상위는 경로가 "/" 이므로 접두사가 붙지 않는다.

이 규칙이 계층의 실질이다. 블록을 늘려도 이름 공간이 오염되지 않는 이유가 여기에 있다.

부모 시트의 테두리에 붙은 시트 핀과 자식 시트 안쪽의 계층 포트가 이름으로 짝을 이룬다

부모의 시트 핀과 자식의 계층 포트는 같은 넷 이름 문자열을 만들어 한 넷이 된다. 잇는 절차가 따로 있는 것이 아니므로, 짝은 이름으로만 맺어진다 — 위치도 순서도 모양도 관여하지 않는다. 산식은 다중 회로도와 계층 회로도 §3.2 가 소유한다.

3.1 인터페이스는 그리기 전에 확정한다

섹션 제목: “3.1 인터페이스는 그리기 전에 확정한다”

블록을 그리기 전에 그 블록이 주고받을 신호 목록을 표로 적는다.

항목정할 것적지 않으면
이름블록 안과 밖에서 같은 이름짝이 맺어지지 않는다
방향입력 · 출력 · 양방향출력끼리 이은 실수를 검사가 잡지 못한다
단일 신호인가 버스인가한쪽만 버스(bus)로 선언되어 넷이 갈린다
전기적 성격전압 계통 · 구동 능력 · 종단(termination) 유무블록을 옮길 때 전제가 함께 가지 않는다
선택성쓰지 않을 수 있는 신호인가미결선 포트가 경고로 남는다

3.2 인터페이스 신호 수가 경계의 품질을 말한다

섹션 제목: “3.2 인터페이스 신호 수가 경계의 품질을 말한다”

블록이 바깥과 주고받는 신호가 수십 개라면 경계가 회로를 가로지른 것이다. 신호 수는 경계를 판정하는 가장 값싼 지표다.

신호 수판정
열 개 이하경계가 기능을 따라 잡혀 있다
열 개 ~ 스무 개버스로 묶을 것이 남아 있는지 확인한다
스무 개 초과경계를 다시 정한다 — 한 기능을 둘로 분할했을 가능성이 높다

경계를 정하는 원칙 자체는 평면과 같다 — 다중 회로도 작성 §2.

3.3 전원은 포트로 내리지 않는다

섹션 제목: “3.3 전원은 포트로 내리지 않는다”

전원·접지는 본래 설계 전체를 관통하므로 전역 이름으로 두고, 계층 포트를 만들지 않는다. 블록마다 VCC 를 포트로 내리면 최상위가 전원선으로 덮여 블록도 구실을 잃는다.

단순 계층은 블록마다 도면이 따로 있고 복합 계층은 블록 넷이 한 도면을 가리킨다

단순 계층복합 계층
정의도면 하나가 계층에 한 번 배치된다도면 하나가 여러 번 배치된다
인스턴스도면과 1:1도면 하나에 인스턴스 여럿
넷 이름시트 이름이 곧 경로인스턴스 경로가 넷을 가른다"/CH1/DATA" · "/CH2/DATA"
참조 지정자(reference designator)도면에 적은 그대로인스턴스마다 다시 배정해야 한다
수정의 파급그 블록만모든 인스턴스에 동시에
쓰는 자리기능이 서로 다른 블록채널·포트·전원단의 반복

복합 계층은 모든 인스턴스가 같다는 전제 위에 선다. 채널마다 달라야 하는 값이 하나라도 있으면 전제가 깨지므로, 그 부품은 반복 블록 밖으로 분리해 상위에 둔다.

하향식은 부모의 블록을 먼저 배치하고 안으로 내려가며 상향식은 회로를 먼저 그리고 블록으로 올린다

하향식상향식
출발최상위의 블록과 시트 핀이미 그린 회로
진행블록 안으로 내려가며 회로를 채운다포트를 붙여 블록으로 올린다
인터페이스먼저 정하고 지킨다회로가 정한 것을 추인한다
맞는 상황요구가 먼저 정해진 신규 설계검증된 블록·이전 프로젝트의 자산
위험하위를 그리다 인터페이스가 부족해진다블록마다 인터페이스가 제각각이 된다

실무의 진행은 대개 혼합이다. 최상위 블록도는 하향식으로 정하고, 전원·인터페이스처럼 검증된 블록은 상향식으로 올린다. 혼합할 때의 규칙은 하나다 — 올려 쓴 블록도 최상위가 정한 인터페이스 표기 규약에 맞춘다. 맞추지 않으면 최상위에서 블록마다 신호 이름이 달라진다.

얕고 넓은 계층은 한 단계 아래에 회로가 있고 깊은 계층은 여러 단계를 내려가야 회로에 닿는다

깊이는 2 ~ 3 단을 넘기지 않는 것이 통례다. 한 단계를 내릴 때마다 인터페이스를 한 벌 더 정의해 옮겨 적어야 하고, 회로 한 곳을 확인하는 데 필요한 이동 횟수가 그만큼 늘어난다.

구성결과
얕고 넓게 — 최상위 아래 블록 여럿어느 회로든 한 단계 아래에 있다. 블록이 늘어도 탐색 비용은 일정하다
깊게 — 한 줄로 이어진 단계단계마다 신호를 옮겨 적어야 하고, 중간 시트는 배선(routing)만 있는 빈 껍데기가 된다

중간 시트에 회로가 없고 신호를 통과시키기만 한다면 그 단계는 불필요하다. 그런 시트는 제거하고 자식을 한 단계 올린다.

블록을 다음 프로젝트로 옮기려면 그 블록이 자기 완결적이어야 한다.

조건확인
전역 이름을 쓰지 않는다전원·접지 외의 전역 이름이 블록 안에 있으면 옮긴 곳에서 충돌한다
인터페이스가 문서화되어 있다신호 이름·방향·전기적 성격이 적혀 있는가
전제가 함께 적혀 있다입력 임피던스(impedance)·전압 범위·필요 종단 — 도면에 없으면 옮길 때 사라진다
참조 지정자가 대역으로 묶여 있다옮긴 곳에서 번호를 다시 배정할 수 있다
부품이 라이브러리에 있다심볼·풋프린트(footprint)가 프로젝트 안에만 있으면 함께 옮겨야 한다
#원칙근거
1최상위에 회로를 그리지 않는다블록도와 회로도가 섞이면 어느 층에서 확인할지 정해지지 않는다
2인터페이스를 먼저 확정한다그리면서 정하면 경계를 넘는 신호가 계속 늘어난다
3한 블록은 한 기능두 기능을 담은 블록은 재사용되지 않는다
4깊이는 얕게, 폭은 넓게단계마다 인터페이스 비용이 곱해진다
5지역 이름을 기본값으로 둔다전역 이름은 블록의 이관 가능성을 파괴한다
6방향을 반드시 선언한다선언하지 않으면 구동 충돌을 검사가 판정할 근거가 없다
7반복 블록은 동질하게 유지한다인스턴스마다 다른 값은 상위로 분리한다
8시트 이름은 기능을 말한다이름이 곧 경로이고, 경로가 곧 넷 이름이다
9블록 이름과 도면 이름을 일치시킨다어긋나면 도면 목록과 계층 트리가 다른 것을 가리킨다

최상위에 낱 부품을 섞으면 블록도 구실을 못 하고 회로를 말단 시트로 내리면 구조만 남는다

4채널 수집 보드의 최상위 한 장은 전원과 클럭이 반복 채널 넷을 지나 인터페이스로 이어지는 구조를 보여 준다

동일한 아날로그 입력 네 벌을 받아 하나의 인터페이스로 내보내는 보드다. 계층이 값을 하는 전형적인 구성이다 — 반복이 있고, 기능 경계가 뚜렷하다.

블록깊이종류내용
최상위0블록과 그 사이의 신호. 회로 없음
전원1단순입력 보호 · 레귤레이터 · 시퀀스
클럭1단순기준 발진 · 분배
채널 CH1 ~ CH41복합같은 도면 하나가 네 번 배치된다
인터페이스1단순통신 · 보호 · 종단
신호방향성격
AIN입력아날로그 · 차동
CLK입력기준 클럭 · 종단은 채널 안에서
DATA출력직렬 데이터
EN입력채널 활성

네 개다. §3.2 의 기준으로 경계가 기능을 따라 잡혀 있다.

인스턴스넷 이름 경로참조 지정자 대역
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 수량도 네 배가 되고, 배치도 네 벌을 따로 배치한다. 채널마다 대역을 나눠 두면 배치·검사·수리에서 그 부품이 어느 채널의 것인지 번호만으로 판정된다.

VCC · VDDA · GND · AGND 넷뿐이다. 나머지는 전부 계층 포트로 내렸다. 그 결과 최상위에는 블록 일곱과 신호 여섯만 남는다.

단계하는 일산출
1기능 블록을 나누고 경계를 정한다블록 목록
2블록마다 인터페이스를 표로 적는다신호 이름 · 방향 · 성격
3반복되는 블록을 식별한다복합 계층으로 둘 대상
4깊이를 정한다계층 트리
5최상위에 블록과 시트 핀을 배치한다블록도
6블록마다 자식 도면을 그린다계층 포트와 회로
7전역으로 둘 신호를 확정한다전원 · 기준 신호 목록
8시트별 번호 대역을 배정하고 번호를 매긴다참조 지정자
9검사를 실행하고 남은 경고를 판정한다검사 보고서

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

짝·이름 축의 검사 8종은 다중 회로도와 계층 회로도 §6 이 소유한다. 여기서는 계층 구조 자체에서만 발생하는 것을 다룬다.

#확인증상
1가리키는 블록이 없는 도면그린 회로가 계층에 붙지 않아 넷리스트(netlist)에 나타나지 않는다
2빈 블록블록은 배치했는데 자식 도면이 비어 있다. 핀만 있고 회로가 없다
3통과만 하는 중간 시트회로 없이 신호를 옮겨 적기만 한다 — 단계를 제거한다
4깊이 초과3 단을 넘는 경로가 있다. 확인 비용이 급증한다
5인터페이스 폭 초과한 블록의 핀이 스무 개를 넘는다 — 경계를 다시 정한다
6반복 블록의 비동질성인스턴스마다 달라야 하는 값이 블록 안에 남아 있다
7인스턴스 참조 지정자 충돌두 인스턴스가 같은 번호를 쓴다
8블록 이름과 도면 이름 불일치계층 트리와 도면 목록이 다른 것을 가리킨다
9최상위의 낱 부품블록도에 회로가 섞였다
내용
블록상위 도면에 배치하는 사각형 하나가 하위 회로도 하나를 가리킨다 — 계층 시트
계층 포트하위 도면 안쪽의 짝 — 포트
시트 핀하위 도면의 계층 포트 이름에서 파생되어 목록으로 제시되고, 테두리에 순차 배치된다
넷 라벨그 시트 안에서만 통하는 이름 — 넷 라벨
저장 형식하위 시트가 부모 파일에 내장된다. 하위 시트 탭의 저장은 최상위 파일로 위임된다
파일명 필드출처 표시이지 실시간 참조가 아니다. 원본 파일을 고쳐도 따라오지 않는다
경로 2종이름 경로(넷 이름의 원천)와 GUID 경로(이름 변경과 무관한 식별자)를 함께 갖는다
형제 이름 유일성같은 부모 아래 시트 이름은 겹칠 수 없다. 겹치면 접미사가 자동으로 붙는다
시트별 화면 상태시트마다 화면·격자(grid)·확대 상태가 따로 보존된다
시트별 시작 번호시트 속성의 시작 번호 → 문서 → 프로젝트 순으로 찾아 첫 값을 쓴다(§6.3 의 대역)
계층 순회진입 · 부모로 · 앞 형제 · 뒤 형제 · 최상위로 — 메뉴·툴바·단축키로 이동한다
연결·검사프로젝트 단위로 항상 유지된다 — 실행하는 기능이 아니라 상시 상태다
확인
목적계층으로 내린 이유가 §1 의 목록에 해당하는가
구조최상위 한 장이 전체 구조를 보여 주는가
구조최상위에 낱 부품이 남아 있지 않은가
구조깊이가 3 단을 넘지 않는가
구조회로 없이 통과만 하는 중간 시트가 없는가
경계블록마다 인터페이스 신호 수가 과하지 않은가
경계한 블록이 한 기능만 담는가
인터페이스이름 · 방향 · 폭 · 전기적 성격을 적었는가
인터페이스시트 핀과 계층 포트가 양쪽 다 짝이 있는가
이름전역으로 둔 이름이 전원·접지·기준 신호뿐인가
이름시트 이름이 기능을 말하고, 배선 전에 확정되었는가
반복반복 블록 안에 인스턴스마다 달라야 하는 값이 없는가
반복인스턴스마다 참조 지정자가 유일한가
번호시트마다 번호 대역을 배정했는가
이관다음 프로젝트로 옮길 블록이 자기 완결적인가
검사남은 경고를 판정하고 기록했는가