Konsep Inti
Veryl은 SystemVerilog의 복잡성을 해결하고 현대 프로그래밍 언어의 장점을 접목시킨 새로운 하드웨어 기술 언어로, 높은 상호 운용성과 향상된 개발 환경을 제공하여 하드웨어 설계 생산성을 향상시킨다.
Abstrak
Veryl: SystemVerilog을 대체하는 새로운 하드웨어 기술 언어
본 논문은 SystemVerilog의 대안으로 개발된 새로운 하드웨어 기술 언어인 Veryl을 소개한다. Veryl은 SystemVerilog을 기반으로 하지만 로직 설계에 최적화된 간결한 문법을 제공하며, SystemVerilog과의 높은 상호 운용성을 통해 기존 프로젝트와의 통합을 용이하게 한다. 또한, 패키지 관리자 및 실시간 검사기와 같은 포괄적인 개발 지원 도구를 포함하여 생산성을 높이고 설계 프로세스를 간소화한다.
1. 간결하고 향상된 문법
SystemVerilog 키워드를 기반으로 Rust 및 Go와 같은 최신 프로그래밍 언어의 문법적 장점을 통합하여 가독성을 높였다.
문서화 주석, 후행 쉼표, 간단한 배열 구문, 변수 뒤에 오는 타입 지정과 같은 기능을 통해 코드 작성을 간소화한다.
클럭 및 리셋을 전용 타입으로 처리하여 always_ff 선언에서 클럭 및 리셋 사양을 생략할 수 있도록 하여 코드를 간결하게 유지한다.
컨텍스트 인식 할당을 통해 블로킹 및 논블로킹 할당을 구분하는 번거로움을 없애고, 복합 할당 연산자를 사용할 수 있도록 하여 코드 가독성을 향상시킨다.
2. SystemVerilog과의 상호 운용성
Veryl의 사용자 정의 유형은 SystemVerilog과 완전히 동일하게 동작하여 상호 참조가 가능하다.
기존 SystemVerilog 코드베이스와의 점진적인 통합이나 Veryl로의 부분적인 재작성이 용이하다.
SystemVerilog을 지원하는 디버거 및 파형 뷰어를 사용하여 Veryl로 정의된 유형을 직접 디버깅할 수 있다.
타이밍 클로저 및 ECO를 포함한 ASIC 워크플로우에 원활하게 통합된다.
3. 향상된 개발 환경
Veryl 컴파일러는 SystemVerilog 코드를 생성하는 것 외에도 다양한 의미 검사를 수행하여 코드 품질을 보장한다.
중복 및 정의되지 않은 식별자 감지, 초기화되지 않은 변수 및 사용되지 않는 변수 검사, 의도하지 않은 래치 생성 방지 등의 검사를 통해 코드 안정성을 높인다.
Visual Studio Code 및 Vim과 같은 다양한 텍스트 편집기와 통합되는 언어 서버를 포함하여 실시간 피드백을 제공한다.
의미 검사 결과, 자동 포맷, 린팅 및 실시간 편집기 통합과 같은 기능을 통해 개발 프로세스를 효율적으로 개선한다.
4. 라이브러리 지원
개발자는 프로젝트 정의 파일에 지정된 항목을 추가하여 외부 라이브러리를 Veryl 프로젝트에 원활하게 통합할 수 있다.
Veryl 컴파일러는 자동 문서 생성을 지원하여 소스 코드 내의 문서 주석을 해석하고 모듈, 인터페이스 및 패키지에 대한 정보를 추출하여 일관되게 형식이 지정된 문서를 자동으로 생성한다.
Veryl은 SystemVerilog의 한계점을 극복하고 현대 프로그래밍 언어의 장점을 접목시킨 새로운 하드웨어 기술 언어이다. 로직 설계에 최적화된 문법, SystemVerilog과의 높은 상호 운용성, 포괄적인 컴파일러 및 개발 환경 지원을 통해 하드웨어 설계 생산성을 향상시키는 것을 목표로 한다.