논리합성 (Logic Synthesis)

전기전자공학
한 줄 정의: 하드웨어 기술 언어로 쓴 동작 기술을 실제 표준셀 게이트 회로로 자동 변환하는 설계 단계입니다.

쉽게 풀면

설계자는 회로를 게이트 하나하나 그리는 대신 하드웨어 기술 언어로 동작을 서술합니다. 논리합성 도구는 이 서술을 읽어 논리식으로 바꾸고, 면적·속도·전력 목표에 맞게 최적화한 다음, 공정에서 제공하는 표준셀 목록에서 실제 게이트를 골라 연결한 회로도를 만들어 냅니다. 소프트웨어의 컴파일러가 하는 일과 비슷한 역할을 하드웨어에서 하는 셈입니다.

왜 중요한가

수억 개의 게이트로 이루어진 칩을 손으로 설계하는 것은 불가능하므로, 자동 합성은 대규모 집적회로 설계를 가능하게 한 결정적인 기술입니다. 설계자가 지정한 타이밍 제약과 전력 목표를 도구가 얼마나 잘 만족시키는지가 칩의 성능을 좌우하기 때문에, 제약 조건 작성과 합성 결과 해석이 설계 실무의 핵심 역량으로 다뤄집니다.

논문에서는 이렇게 쓰입니다

"타이밍 제약을 강화해 재합성한 결과 임계 경로 지연은 12% 감소했으나 셀 면적이 8% 증가하였다."

합성 도구가 속도와 면적 사이에서 균형점을 옮긴 결과를 보고한 문장입니다.

조금 더 깊게 보면

합성은 대체로 기술 언어를 공정과 무관한 논리 표현으로 바꾸는 단계, 불필요한 논리를 제거하고 구조를 재배열하는 최적화 단계, 그리고 표준셀로 대응시키는 기술 사상 단계로 나뉩니다. 최적화에서는 논리 식을 인수분해해 공유 항을 만들거나, 임계 경로의 게이트 크기를 키우고 비임계 경로의 게이트를 줄여 면적과 전력을 아끼는 기법이 쓰입니다. 결과는 게이트 목록 형태로 넘겨져 배치 및 배선 단계로 이어지며, 배선 지연이 반영된 뒤 정적 타이밍 분석으로 다시 검증하고 필요하면 부분적으로 재합성합니다.

주의할 점

합성 전 단계의 추정 지연은 배선을 고려하지 않으므로, 배치와 배선을 마친 뒤의 실제 타이밍과 차이가 날 수 있습니다. 같은 기술 언어 코드라도 작성 방식에 따라 합성 결과가 크게 달라지므로, 도구가 모든 것을 해결해 준다고 기대해서는 안 됩니다.

관련 용어