VHDL 시뮬레이션툴 MyVHDL Station 자료출처 : 유니텔 현재 미국, 일본, 프랑스를 비롯한 유럽 및 동남아 국가에서도 VHDL을 널리 보급하여 설계자동화에 힘쓰고 있다. MyVHDL Station은 설계하고자 하는 하드웨어의 동작이나 구조를 하이레벨 언어인 VHDL을 이용하여 모델링 하고 이를 검증하는데 사용하는 국내 자체 기술로 개발된 툴이다. 1990년대 초부터 국내에 소개되기 시작한 VHDL(VHSIC : Very High Speed Integrated Circuit Hardware Description Language)은 1987년 12월에 IEEE Computer Society 산하의 VHDL Analysis and Standardization Group (VASG)에 의하여 IEEE Standard 1076-1987로 확정되었다. 미 국방성 또한 VHDL을 Military Standard 454로 정하여 군에 납품되는 ASIC을 포함하는 모든 전자 시스템을 VHDL로 표현할 것을 요구하였다. 이에 따라 VHDL은 업계 표준의 역할을 담당하게 되었으며 VHDL에 대한 지원여부가 CAD 툴을 선택하는 기준의 하나로 등장하여 많은 CAD 회사들이 VHDL을 지원하는 툴을 앞다투어 개발하기 시작하였다. 특히 VHDL 시뮬레이션 은 많은 회사들이 지원하고 있지만 VHDL 전체를 만족시킬만한 시뮬레이터를 고르기는 어렵다. 현재 미국, 일본, 프랑스를 비롯한 유럽 및 동남아 국가도 VHDL을 널리 보급하여 설계자동화에 힘쓰고 있다. 우리 나라의 경우는 1989년 ViewLogic 을 선두로 하여 Vantage, ZyCAD VHDL 시뮬레이터가 도입되기 시작하였으며, 현재는 Mentor, CADENCE, ViewLogic, Synopsys 등 수많은 소프트웨어가 사용되고 있다. 1. 반도체 시스템 제조공정 환경의 변화 본고에서는 VHDL을 이용하여 간단한 8비트 uP를 디자인하고 Logic Synthesis 하여 Schematic을 확인, 검증한 다음 FPGA Chip으로 구현하는 과정을 설명 하도록 하겠다. 여기서는 VHDL에 대한 구조 및 문법에 대하여 자세히 설명하지는 않겠다. 필요한 사항은 시중에 출판된 VHDL에 관련된 서적을 이용하기 바란다. VHDL은 프로그래밍 언어로서 일반적으로 이용되는 C, Pascal과 비교하면 명령어의 개수나 기술방법이 더욱 적고 간단하다. 컴퓨터 프로그래밍을 공부하는 학생들도 Digital과 Computer Architecture에 대한 지식이 있다면 간단한 회로의 설계 및 8비트 또는 16비트 마이크로 프로세서 (Micro Processor)를 직접 디자인할 수 있으리라 생각된다. 오늘날 반도체 시스템 제조 공정 기술의 발달과 설계하고자하는 시스템의 규모가 커짐에 따라 VLSI Chip의 설계는 단순한 모듈의 설계 차원을 넘어서 마이크로 프로세서 수준의 설계를 의미하게 되었고, VLSI Chip 의 짧은 라이프 사이클과 빠른 Time-to-market의 증가로 Chip 설계 시간의 단축이 중요한 요인으로 대두되었다. 60-70년대의 Bottom-up 설계 방식 대신에 설계 대상 하드웨어의 복잡도가 증가함에 따라 보다 높은 레벨의 설계 환경과 설계과정의 자동화를 통하여 설계 시간을 단축시키고, 설계 의도를 정의한 후 정의된 기능 모듈의 세분 화된 회로 설계를 통하여 전체 회로를 구성함으로써 설계 과정에서의 오류 발생 가능성을 줄이고, 주어진 설계 사양에 부합되는 시스템을 쉽게 설계 하고 검증할 수 있는 Top-down 설계 방식이 대두되었다 소프트웨어 공학의 컴파일러 개념을 하드웨어 영역에 도입한 실리콘 컴파 일러는 상위 수준의 기술로부터 레이아웃 데이터를 자동으로 생성하는 프로 그램의 집합으로, 서로 다른 하드웨어 기술언어를 입력으로 사용함으로써 각 시스템들간의 설계 데이터의 호환이 결여되어 설계 데이터를 공유할 수 없다는 비효율성이 문제로 제기되었다. VHDL은 설계 데이터의 공통적인 교환의 툴로써 설계 그룹들 간의 자료 및 정보 교환의 툴, 문서 기록용, 기술 발전에 따른 설계 기술의 재사용 등에 초점을 맞추고 있다. VHDL을 사용하지 않고 일반 프로그래밍 언어와 비슷 한 형태로 동작 표현을 하기 때문에 각 업체의 특정 툴에 의존하지 않는 호환성 높은 설계가 가능하며 설계 효율을 높일 수 있게 되었다. 또한 디지털 시스템(Digital System)에 대한 VHDL 모델과 특정 FPGA Library Design Kit를 사용한 Logic Diagram의 생성 및 FPGA P/R 툴를 이용한 System Implementation이 ASIC Design Methodology로서 그 사용 영역이 점차 확대되고 있다. 따라서 이를 위한 소프트웨어 툴의 공급과 함께 FPGA Implementation의 특정 예제에 대한 하드웨어 세트의 공급이 병행되면 설계자들이 이와 같은 Design Methodology를 정확하고 쉽게 익힘은 몰론 사용이 보다 확대될 것이다. PC의 하드웨어 성능은 급속히 발전하여 왔다. 특히 486, 펜티엄으로 이어지 는 IBM PC의 괄목할 만한 성능 향상은 웍스테이션 이상에서만 가능하다고 여겨왔던 설계과정을 PC에서도 가능하도록 하였다. 또한 윈도 NT와 윈도 95 의 등장은 PC를 본격적인 설계 툴의 플렛폼으로써 사용할 수 있도록 하였다. PC의 대중화와 성능 향상은 PC 환경에서 작동하는 설계 개발 툴의 필요성 을 증대시켰으며, 특히 이를 통한 교육용 하드웨어 세트의 용이한 공급을 기대하게 되었다. MyVHDL/MySynthesis Station을 사용하여 교육용 8-Bit uP인 RC8001을 Xilinx FPGA로 구현하는 과정을 설명하기에 앞서 MyVHDL과 MySynthesis Station에 대한 기본적인 설명을 하기로 하겠다. Logic 디자인은 크게 두가지 방법으로 처리할 수 있는데 Schematic으로 디자인 한다면 간단히 Schematic 회로만 그리면 되나 VHDL을 이용하는 경우는 Schematic을 확인하기 위하여 VHDL 코드 작성 후 Logic Synthesizer 를 이용하여 Schematic을 생성시켜야 한다. 그럼 VHDL을 이용한 회로설계에 이용되는 툴의 기능 및 기본적인 처리 Flow를 살펴보기로 하겠다. 2. 각 툴의 기능 및 처리 Flow (1) MyVHDL Station MyVHDL Station은 설계하고자 하는 하드웨어의 동작이나 구조를 하이레벨 언어인 VHDL을 이용하여 모델링하고 이를 시뮬레이션을 통하여 검증하는데 사용하는 툴이다. MyVHDL은 현재 표준 VHDL인 IEEE Std-1076 VHDL 언어를 지원하며 웍스테이션 뿐만 아니라 PC 윈도95, NT에서 사용할 수 있다. MyVHDL에서 제공하는 시뮬레이터는 VHDL 코드를 C언어로 변환한 후 플렛폼 에서 제공하는 C 컴파일을 이용하여 해당 플렛폼에서 돌아갈 수 있는 Object 코드로 만들어 시뮬레이션하는 방식으로 시뮬레이션 속도는 빠르나 VHDL을 C-코드로 변환한 후 이용한다는 단점이 있다. 그러나 MyVHDL은 Analyze 단계에 같이 처리하므로 사용자는 큰 차이를 못 느낄 것이다. MyVHDL Station의 설치환경은 다음과 같다. 1) 하드웨어 . 시스템 : IBM PC compatible 486, 66MHz, minimum recommending Pentium 100MHz or up . 모니터 : Color(VGA) . 하드 디스크 : 30M Byte virtual memory, minimum recommending 50M bytes or more . RAM : 8M Byte(required), 16M Byte(recommended) . 마우스 : mouse supported in MS Windows NT/95 1) 소프트웨어 . MS Windows NT 3.5(or higher) or Windows95 . MS Visual C++ V4.0 (2) MySynthesis Station My VHDL을 이용한 RTL(Register Transfer Level) 수준의 설계에 대한 자동 논리합성 및 최적화를 지원하는 툴인 MySynthesis는 설계자가 기술한 VHDL 수준의 설계를 ASIC 및 FPGA의 하드웨어 구현을 위해 논리 수준의 설계를 자동 생성한다. 이렇게 합성된 논리회로는 VHDL NetList 형식을 가지고, Schematic Generator를 통하여 MyLogic Station의 Schematic Editor인 SchEd의 입력 형태로 만들어진다. 결과적으로 논리 합성된 결과 를 MyLogic Station의 SchEd에서 더 고칠 수도 있고, 다른 Gate 수준의 설계된 회로와 합하여 논리 시뮬레이션을 할 수 있다. 현재 지원되는 ASIC 라이브러리는 Compass이고, FPGA는 Xilinx 디바이스 이다. ASIC 라이브러리로는 미국의 공적 Chip 제작 기관인 MOSIS 라이브 러리와 ASPEC Technology 라이브러리가 97년까지 지원될 것이다. MySynthesis Station의 설치환경은 다음과 같다. 1) 하드웨어 . 시스템 : IBM PC compatible 486 또는 이상 . 모니터 : Color(VGA) . 하드 디스크 : 5M Byte or more of free space . Virtual memory : 50M Byte or more . RAM : 8M Byte(required), 16M Byte(recommended) . 마우스 : mouse supported in MS Windows NT/95 1) 소프트웨어 . MS Windows NT or Windows95 . ASIC Library : Compass VGT350, VSC450(Option) . FPGA Library : Xilinx XC3000, XC4000(Option) (3) MyLogic Station MyLogic Station은 전자회로(Transistor 수준), 논리회로를 직접 설계하고 이를 검증하는 툴이다. 그리고 설계된 결과를 PCB, ASIC, FPGA 등으로 구현할 수 있도록 각종 인터페이스 도구가 제공된다. MyLogic Station에서는 계층적인 디자인 설계 및 이들의 상호작용, 그리고 디자인의 모의 실험을 통한 검증 등이 있다. VHDL 디자인하는 과정에 MyCAD의 각 툴들의 연관 관계는 MyLogic Station은 V2.5를 기준으로 한 것으로 V2.1에서는 VHDL NetList를 출력할 수 없다. 어떠한 회로를 디자인하고자 한다면 VHDL을 이용하는 방법과 Logic Schematic을 이용 직접 그리는 방법이 있을 것이다. 간단한 회로를 디자인 하는 경우는 Schematic을 직접 그리는 것이 편하고 확실할 것이다. 그러나 회로의 규모가 크고 주어진 시간이 많지 않다면 VHDL을 이용하는 디자인을 선택하는 것이 편리할 것이다. 만일 논리연산을 하는 회로를 디자인한다고 할 때 VHDL을 이용한다면 보기 2와 같은 코드를 작성할 수 있을 것이다. 3. 2비트 논리연산 회로의 설계사양 2개의 데이터와 Control Signal을 받아들여 Control Signal에 의하여 AND (00), XOR(10), OR(01), NOT(11) 연산을 수행 출력하는 회로를 작성하라. . Input Port Name : Logic_in1, Logic_in2 . Control Signal : Logic_con . Output : Logic_out (1) 보기 1 논리 연산회로를 Schematic으로 구현한 경우 그림 5와 같이 약 32개의 gate 을 사용하여 Design할 수 있다. 물론 전문가라면 더욱 줄일 수 도 있으면 비전문가라면 더욱 많은 gate가 필요할 것이다. (2) 보기 2 논리연산회로를 VHDL로 작성한 경우 --********************************************************************* LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; --********************************************************************* ENTITY logic IS PORT ( logic_con : IN STD_LOGIC_VECTOR(1 DOWNTO 0); logic_in1 : IN STD_LOGIC_VECTOR(1 DOWNTO 0); logic_in2 : IN STD_LOGIC_VECTOR(1 DOWNTO 0); logic_out : OUT STD_LOGIC_VECTOR(1 DOWNTO 0)); END logic; --********************************************************************* ARCHITECTURE logic_a OF logic IS BEGIN PROCESS (logic_in1, logic_in2, logic_con) BEGIN IF logic_con="00" THEN logic_out <= logic_in1 AND logic_in2; LSIF logic_con="01" THEN logic_out <= logic_in1 OR logic_in2; ELSIF logic_con="10" THEN logic_out <= logic_in1 XOR logic_in2; ELSE logic_out <= NOT logic_in1; END IF; END PROCESS; END logic_a; --********************************************************************* 2비트의 경우 Schematic으로 작성하는 것과 VHDL로 작성한 경우의 시간 및 노력의 차이는 크게 나타나지는 않지만 Schematic에 대한 지식이 없는 사람 이 보기에는 보기2의 경우가 이해하는데 더욱 편리할 것이다. VHDL은 문자 로 되어있기에 제3자가 쉽게 회로를 파악할 수 있고 자료보관용으로도 더 없이 좋다. 이러한 장점은 애초 미국방성(DoD)에서 VHDL을 만든 목적이 표준화와 자료화를 위해서이기 때문이다. 그러나 이 정도의 편리함이 VHDL 을 사용하는 전부는 아니다. 여기서 VHDL의 장점을 분명히 확인할 수 있는 예를 들어보기로 하겠다. 앞에서 디자인한 논리연산 회로를 변형하여 입력 데이터가 16비트로 들어 온다고 가정하고 회로를 수정해 보도록하자. (3) 보기 3 2비트인 경우 약 32개의 Gate를 이용하여 회로가 디자인되었으나 입력 자료 를 16비트로 변경할 경우는 Gate가 약 175개 가량이 필요하다. 입력 Bit의 차이로 인하여 Gate가 약 5배로 늘어난 것이다. 이것은 단순히 Gate수만의 문제가 아니라 이 Gate에 연결된 Wire의 수를 생각한다면 얼마난 엄청난일이 고 오류의 가능성이 높은줄 짐작할 것이다. 또한 이에 대한 논리 구조를 생각한다면 보통 사람의 경우 몇일이 걸릴지 상상하기 힘들 것이다. 보통의 경우는 직접 회로도를 주고 그려도 1,2시간에 그리기는 힘들 것이다. 그러나 VHDL을 이용한다면 보기2에 나타난 VHDL 코드에서 '1 DOWNTO 0'을 '15 DOWNTO 0'로 간단히 수정하기만 하면 된다. 특별한 다른 작업이나 전체 구조에 대한 사항은 고려하지 않아도 된다. 물론 주어진 VHDL을 다시한번 Synthesis한다면 주어진 조건 중 변한 것은 입력사항이 2비트에서 16비트로 만 변경된 것뿐이다. VHDL이 갑자기 우리에 관심사로 떠오른 것은 어떤 신 기술에서 구애받지 않는 회로의 설계가 가능하고 시뮬레이션 차원에서도 가장 쉽고 광범위한 표현을 할 수 있기 때문이다. 이러한 VHDL 툴의 사용은 전체적인 설계기간 을 단축시켜고 설계효율을 향상 시켜주었다. 또한 VHDL은 업계 표준이므로 사용하는 툴이 변경되거나 부서간의 자료공유에 있어서도 호환성을 유지하 므로 다른 문제 없이 이용할 수 있다. 마지막으로 VHDL의 장단점을 표 1과 같이 나타내었다. 표 1. VHDL의 장단점 장점 단점 Shorter Design Cycles A Change of Culture Improved Design Quality Cost of Getting Started Vender and Technology Independence Learning and Training Lower Design Cost Select Design Tools Growth with the Technology Debugging Design Problem Design Management
Make your own free website on Tripod.com