배선이 말을 안 듣는다 — 45°, 계단, 그리고 세 번의 실패

부품 배치까지는 만족스러웠다. 채널 피치가 정확히 균일하고, 부품이 자로 잰 듯 줄을 섰다. 그런데 배선을 돌리고 렌더를 보니 이건 아니다 싶었다.

선이 왼쪽으로 바로 가면 되는데 위로 직각으로 올라갔다가 내려온다. 부품 패드 사이 좁은 틈을 파고든다. 계단처럼 짧게 오르내린다. 어떤 선은 끝이 아무 데도 안 닿고 허공에 떠 있다.

지켜야 하는 규칙들

작업하면서 규칙이 하나씩 늘었다. 순서대로 적으면 이렇다.

#규칙
1직각(90°) 꺾임 금지 — 45° 로 간다
2선 굵기는 넷 성격별로 통일 — 신호 0.250.3, 전원 0.51.0
3부품 패드·비아 사이로 선이 지나가지 않는다
4꺾임 최소화 — 최대한 일직선
5한 번에 갈 수 있는 것부터 전부 잇고, 나머지를 그 다음에
6GND: SMD 패드는 비아로 내리고, DIP 은 포어에 맡긴다
7포어 연결은 서멀(X자) 로 — 통짜로 붙이지 않는다
8끝이 허공에 뜬 선(안테나) 금지

이 중에 DRC 가 잡아주는 건 하나도 없다. 클리어런스만 맞으면 패드 사이를 지나가도 통과고, 계단으로 가도 통과고, 안테나가 있어도 “연결은 정상”이라 통과다. 그래서 규칙마다 검사기를 따로 만들어야 했다.

안테나 — DRC 가 절대 못 잡는 것

선의 한쪽 끝이 패드에도 비아에도 다른 선에도 안 닿아 있는 경우가 있다. 반대쪽은 넷에 붙어 있으니 연결은 정상이다. DRC 는 아무 말도 안 한다.

전기적으로는 안테나다. 노이즈를 받고 방사한다. 그리고 눈으로 보면 그냥 지저분하다.

검사는 간단하다. 모든 배선 끝점의 차수를 세서, 차수가 1이면서 패드·비아 좌표가 아닌 점을 찾으면 된다. 하나를 지우면 그 옆이 새 안테나가 되므로 변화가 없을 때까지 반복한다.

”직접 깔고 나머지만 라우터에” — 세 번 실패

계단과 우회가 라우터 탓이라고 보고, 중요한 선은 내가 직접 45° 로 깔고 나머지만 라우터에 주기로 했다. 세 가지 방식을 시도했다.

방식직각 꺾임미배선
라우터에 전부 맡김 (빈 보드)109
45° 선배선 + 채널1 복사 + 라우터8048
채널 넷 직접 배선 + 라우터6554

세 번 다 더 나빠졌다. 이유는 생각해보면 당연하다. 내가 깐 선은 라우터 입장에서 못 건드리는 장애물이다. 장애물이 많아지니 남은 공간에서 억지로 비집고 들어가느라 직각이 늘고, 그러다 못 가면 미배선으로 남는다.

부분 최적화가 전체를 망친 전형적인 경우다. 이 표를 기록으로 남겨뒀다. 다음에 같은 유혹이 들 때 다시 시도하지 않으려고.

계단의 진짜 원인

계단 배선을 후처리로 펴는 도구를 만들었다. 연속된 구간을 통째로 최소 45° 경로로 다시 까는 방식이다. 효과는 있었지만 근본 해결은 아니었다 — 라우터가 계속 계단을 만들어내니 매번 따라다니며 펴야 했다.

원인은 층별 배선 방향이 없다는 것이었다.

PCB 라우팅의 기본 중의 기본인데, 층마다 선호 방향을 정한다.

방향
부품면X축(가로) 위주
납땜면Y축(세로) 위주

이게 없으면 라우터는 한 층에서 대각선으로 가려다가 막히고, 대각선과 직선을 잘게 번갈아 놓는다. 그게 계단이다. 방향을 정해주면 가로는 윗면으로, 세로는 아랫면으로 곧게 가고, 방향 전환은 비아로 한다.

KiCad 가 Specctra DSN 을 내보낼 때는 층 속성에 순번만 쓰고 방향을 안 넣는다. 그래서 DSN 을 내보낸 뒤 방향을 주입하도록 했다.

(layer top_cu
  (type signal)
  (property
    (direction horizontal)   ← 이 줄을 끼워 넣는다
    (index 0)

Freerouting CLI 에는 각도나 방향을 지정하는 옵션이 아예 없다. 파일에 직접 써 넣는 것 말고는 방법이 없었다.

그리고 고쳐도 되돌아왔다

여기까지 하고도 문제가 남았다. 고쳐놓은 게 몇 라운드 지나면 되살아난다. 직각을 10곳까지 줄여놨는데 다음에 재보면 101곳이 되어 있고, 선 굵기를 맞춰놨는데 다시 어긋나 있다.

나는 이걸 “후처리 순서 문제”라고 보고 순서를 계속 바꿔봤다. 실제로 순서 문제도 있었다 — 비아를 옮기거나 폭을 바꾸는 단계가 45° 정리 뒤에 오면 직각이 되살아난다. 그래서 45° 정리를 맨 마지막에 한 번 더 돌리게 했다.

그런데 그걸로도 다 설명이 안 됐다. 진짜 원인은 훨씬 황당한 데 있었고, 그게 5부다. 내가 쓰던 검증 도구가 검증 대상을 고쳐 쓰고 있었다.


▶️ 5부: 측정이 대상을 바꾸고 있었다 — 그리고 양산 보드에서 정답지를 꺼내다

🔧 이전 편: 1부 · 2부 — 1.5배 보드 · 3부 — 라이브러리와 3D 삽질

댓글

로그인 없이 이름만 적고 남기실 수 있어요. 남긴 댓글은 바로 게시됩니다.

댓글을 불러오는 중…