사양과 자동화 사이의 간극이라는 과제
반도체 산업은 현재의 설계 워크플로우에 인공지능을 통합하려고 할 때 근본적인 도전에 직면해 있다. 핵심 문제는 대규모 언어 모델(LLMs)의 코드 작성 능력이 아니라, 해당 코드가 구축되는 기반인 "사양(Specifications)"의 품질에 있다. AI는 단 몇 초 만에 SystemVerilog Assertion(SVA)을 생성할 수 있지만, 이러한 결과는 입력값의 정확도에 전적으로 의존하며, 현재 산업계의 입력값은 종종 불완전하거나 모호하다.
전문가들은 AI의 진정한 목표가 단순히 자연어로 작성된 사양으로부터 속성(Properties)을 생성하는 것이 아니라, 더 나은 그리고 더 정확한 기술 사양을 작성하도록 돕는 것이어야 한다고 지적한다. 산문 형태로 작성된 사양은 이러한 도구들이 요구하는 수학적 정밀도가 부족하기 때문에 공식 검증 도구(Formal Tools)가 직접 처리할 수 없다.
엔지니어의 역할은 실질적으로 어떻게 변하는가?
속성 생성 자동화가 전문 검증 엔지니어의 필요성을 없앨 것이라고 믿는 것은 오류다. 오히려 이 변화는 요구되는 기술적 수준을 높인다. 엔지니어는 어설션을 수동으로 작성하는 데 시간을 쓰는 대신, "AI 출력물의 검토 및 유효성 확인" 단계로 역할이 전환될 것이다.
- 로직 검증: 엔지니어는 생성된 어설션이 단순히 문법적으로 올바른 코드가 아니라 실제 요구 사항을 충족하는지 확인해야 한다.
- 복잡성 관리: 시스템 온 칩(SoC)의 복잡성이 증가함에 따라 공식 검증 도구의 결과를 해석하는 능력이 매우 중요해진다.
- 모호성 대응: AI는 사양의 모순을 식별하는 능력이 부족할 수 있으며, 이는 이러한 허점을 찾아내는 부담을 인간 엔지니어에게 지운다.
기술적 위험: "공허한 어설션(Vacuous Assertions)"의 함정
이 분야에서 AI 사용 시 직면하는 가장 위험한 도전 중 하나는 "공허한 어설션(Vacuous Assertions)"이라 불리는 것이다. 이는 프로그래밍적으로는 올바르게 보이고 검증 도구의 테스트를 통과하지만, 실제로는 칩의 성능과 관계없이 조건이 항상 자동으로 충족되기 때문에 설계의 어떤 실제 동작도 검증하지 못하는 어설션을 말한다.
이러한 유형의 오류는 설계의 안전성에 대한 잘못된 신뢰를 줄 수 있으며, 설계 결함이 뒤늦게 발견될 경우 검증 도구의 실행 시간이나 엔지니어의 디버깅(Debugging) 시간 측면에서 막대한 비용을 초래할 수 있다.
더욱 신뢰할 수 있는 방법론을 향하여
실험 단계를 넘어 안정적인 산업 적용 단계로 넘어가기 위해 전문가들은 다음과 같은 몇 가지 경로를 제안한다:
- RAG 기술 사용: 모델이 학습 중에 배운 것에만 의존하는 대신, 설계 규칙과 입증된 패턴을 포함하는 전문 지식 베이스와 연결하기 위해 "검색 증강 생성(Retrieval-Augmented Generation)" 기술로 AI 모델을 강화한다.
- 공식 사양 기반 설계: 처음부터 "기계 판독 가능(Machine-readable)"한 사양을 작성하는 방향으로 나아가 인간의 텍스트와 수학적 논리 사이의 간극을 줄인다.
- 단계적 접근: 작고 제한적이며 잘 이해된 설계 블록(Blocks)에 자동화를 먼저 적용하고, 전체 설계로 확장하기 전에 AI의 출력물을 엔지니어가 수동으로 작성한 결과와 비교한다.