CPPL: 회로 프롬프트 프로그래밍 언어
요약
LLM을 활용한 하드웨어 설계 시 발생하는 RTL 생성의 어려움을 해결하기 위해 컴파일러 매개 설계 프레임워크인 CPPL을 제안합니다. CPPL은 Python 기반 DSL과 JSON 기반의 회로 IR을 사용하여 LLM이 구조적이고 검증 가능한 설계를 생성할 수 있도록 지원하며, 최종적으로 CIRCT를 통해 합성 가능한 Verilog로 변환합니다.
핵심 포인트
- LLM이 직접적인 RTL이나 복잡한 MLIR을 생성할 때 발생하는 문법 및 제약 조건 오류 문제를 해결함
- Python 프론트엔드 DSL과 JSON 기반의 CPPL IR을 결합하여 정적 검사가 가능한 구조를 제공함
- CPPL은 모듈 인터페이스, 계층 구조, 연산 폭 추론을 통해 설계의 신뢰성을 높임
- RTLLM 벤치마크 결과, 직접적인 Verilog 생성 방식보다 기능적 정확도가 향상됨을 입증함
- CIRCT를 활용하여 생성된 설계를 합성 가능한 Verilog로 결정론적으로 변환함
대규모 언어 모델 (LLMs)은 레지스터 전송 레벨 (RTL) 설계 자동화에서 가능성을 보여주었으나, 직접적인 RTL 생성은 검증, 최적화 및 컴파일러 기반 하드웨어 설계 흐름과의 통합 측면에서 여전히 어려움이 있습니다. CIRCT와 같은 하드웨어 컴파일러 인프라는 타입이 지정된 중간 표현 (Intermediate Representations, IR), 적법성 검사 (Legality checks) 및 최적화 패스 (Optimization passes)를 제공하지만, 현재의 LLMs는 MLIR 구문, SSA 규율 (SSA discipline), 방언 특화 연산 (Dialect-specific operations) 및 엄격한 폭 제약 (Width constraints)으로 인해 가공되지 않은 컴파일러 IR을 생성하는 데 어려움을 겪습니다. 본 논문은 LLM 지원 하드웨어 생성을 제약 없는 RTL 텍스트 생성 작업이 아닌, 정적 검사가 가능한 프론트엔드 문제로 전환하는 컴파일러 매개 설계 프레임워크인 CPPL을 제시합니다. CPPL은 모듈 인터페이스와 계층 구조를 선언하기 위한 Python 프론트엔드 DSL과, LLM이 접근하기 쉬우면서도 컴파일러가 구조를 파악할 수 있도록 설계된 JSON 기반 회로 IR인 CPPL IR을 결합합니다. 컴파일러는 선언된 모듈 포트로부터 연산 폭을 추론하고, 생성된 IR을 검증하며, 계층 구조와 포트 바인딩을 확인한 후, 결과를 합성 가능한 Verilog 생성을 위해 CIRCT로 결정론적으로 낮춥니다 (Lowers). RTLLM 벤치마크에서 CPPL은 직접적인 Verilog 생성 및 직접적인 CIRCT IR 생성보다 기능적 정확도 (Functional correctness)를 향상시켰으며, CIRCT 최적화는 합성 후 AIG 노드 수를 감소시켰습니다. 이러한 결과는 컴파일러 매개 인터페이스가 LLM 지원 하드웨어 설계를 더욱 신뢰할 수 있고, 분석 가능하며, 백엔드 최적화에 용이하게 만들 수 있음을 보여줍니다. CPPL은 https://github.com/SawyDust1228/CPPL 에서 확인할 수 있습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 arXiv cs.AR의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기