초록
본 논문에서는 VHDL '87 및 '93 LRM의 전체 사양을 지원하며 VHDL-to-C 사상의 전처리 과정을 수행하는 VHDL 컴파일러 전반부의 설계 및 구현에 대해서 논한다. VHDL 컴파일러 전반부는 I)VHDL의 계층적 구조체, 선언 영역 및 가시성, 다중 정의 및 동형 이의어, 병행적 다중 스택 구조를 표현하기 위해서 분석 터미널 데이터에 심볼 트리를 구성하였으며, 2) VHDL 고유의 객체, 타입 및 서브타입, 속성과 연산자 등을 나타내기 위한 구조체 및 지원 함수를 설계하였고, 3) VHDL의 병행문/순차문, 행위/구조 기술, 동기 메커니즘 등을 분석하여 VHDL-to-C 사상에 필요한 어의 정보를 구축하고, 4) VHDL 분석 과정에서 어의 데이터의 저장 및 검색이 효과적으로 이루어 지도록 어의 토큰 정의 및 어의 전파 기능 등을 설계하였다. Validation suite를 이용한 실험에서 VHDL 컴파일러 전반부는 LRM 전체 사양을 분석할 수 있음을 확인하였고, VHDL의 계층성/가시성/병행성/어의 검사 등을 효과적으로 처리하기 위해 설계 및 구현된 심볼 트리와 어의 토큰 등의 분석 데이터 모델에 대한 성능 분석 실험에서 VHDL컴파일러 전반부는20- 30%의 개선 효과를보였다.
In this paper, a design and implementation of VHDL compiler front-end, aims at supporting the full-set of VHDL '87 & '93 LRM and carring out the preprocessing of VHDL-to-C, is described. The VHDL compiler front-end includes 1)the symbol tree of analyzed data to represent the hierarchy, the scope and visibility, the overloading and homograph, the concurrent multiple stacks in VHDL, 2)the data structure and supportig routies to deal with the objects, the type and subtype, the attribute and operation in VHDL, 3)the analysis of the concurrent/sequential statements, the behavior/structural descriptions, of semantic token and the propagation of symbol & type to improve the registration and retrieval procedure of analyzed data. In the experiments with Validation Suite, the VHDL compiler front-end could support the full-set specification of VHDL LRM '87 & '93; and in the experiments to asses the performance of symantic token for the VHDL hierachy/visibility/concurrency/semantic checking, the improvement of about 20-30% could be achieved.