졸업작품계획서 FBD, Verilog, VHDL, EDIF 및 JEDEC 을위한 Co-Simulation Tools 지도교수유준범 건국대학교컴퓨터공학부 김그린김신김재엽
목차 1. 선정배경및목적 2. 관련기술및기술동향 3. 프로젝트세부사항 A. 시스템구성도 B. 시나리오 C. 기대효과 D. 개발환경 4. 스케줄 5. 팀구성및역할 6. 참고문헌
1. 선정배경및목적 A. 선정배경원자력발전소의디지털제어시스템에서공통원인고장 (Common Cause Failure) 의발생가능성이증가함에따라이를방지하기위해기존의 PLC (Programmable Logic Controller) 대신 FPGA (Field Programmable Gate Array) 기반안전등급다양성제어기가개발되어원자력연구소에서활용되고있다. 하지만 FPGA 기반의제어기를구현하기위해서는 HDL (Hardware Description Language) 을사용한제어로직구현이필수적이지만기존 PLC 소프트웨어개발자에게친숙하지않다. 따라서, 제어로직구현을 FBD (Function Block Diagram) 를활용하여작성할수있도록하기위한통합개발환경의개발이진행중이다. 통합개발환경은그림 1 과같이 FBD을이용하여사용자가제어프로그램을개발할수있도록지원하고, 사용자에의해작성된제어프로그램을자동으로하드웨어기술언어인 VHDL 또는 Verilog로변환하여주는컴파일러, 변환된프로그램을제어기의연산모듈로다운로드되어실행되도록상용소프트웨어와연결시키는 Linker로구성되어있다. 통합개발환경과상용소프트웨어는결과적으로 FBD, VHDL 또는 Verilog, EDIF 그리고 JEDEC 포맷의파일을결과물로출력된다. 하지만하나의 FBD에서변환된각각의파일들이같은동작을수행하는지알수없기때문에각파일을동일한시나리오로시뮬레이션한후시뮬레이션결과를비교하여같은동작을수행하는지확인할필요가있다고생각하였다. 그림 1 통합개발환경의구성
B. 목적 FBD에서시작하여 Verilog HDL와 EDIF를거쳐 JEDEC의파일로변환하는소프트웨어는이미개발되어있다. 하나의 FBD를 FBDtoVerilog통해변환과정을수행하면 Verilog HDL를얻을수있으며, 이후상용프로그램인 Libero SoC 를이용하면 Verilog HDL은 EDIF로, EDIF는 JEDEC 형태의파일로변환된다. 시뮬레이션의경우도변환과마찬가지로모두프로그램이개발이되어있는데 FBD의시뮬레이션은 FBDSimulator를통해서수행되며, Verilog HDL과 EDIF, JEDEC의시뮬레이션은 Libero SoC에포함된 ModelSim을통해서수행된다. 시뮬레이션을수행하기위해서는같은시나리오를생성해야하는데, 이또 한개발되어있는프로그램인 Scenario Generator 를이용하여무한한수의 시나리오를생성하는것이가능하다. 같은시나리오를통해시뮬레이션을수행하고, 출력되는결과물은그림 2 와같은형태로여러정보를포함하고있다. 시뮬레이션을통해나오는 4개의결과물들을비교하여같은동작을수행하는지확인하여변환이제대로이루어졌는지검증하고, 생성된시나리오의 Coverage를측정하여적절한시나리오를이용하여시뮬레이션을하였는지확인하는시스템을구현하고자한다.
그림 2 시뮬레이션결과물
2. 관련연구 A. FBD (Function Block Diagram) FBD는 PLC ( 하드웨어입출력장치를실시간으로제어하기위한제어시스템 ) 의개발을위해 IEC-61131-1 표준에정의된 5가지언어중하나이다. 시스템의행위를입력과출력사이의블록 (Block) 과블록사이의연결을통해표현하는그래픽기반의언어로서, 전자회로다이어그램 (Electrical Circuit Diagram) 과유사한형태의그래픽컬한다이어그램이다. 그래픽컬한다이어그램은데이터의흐름을쉽게나타낼수있다는장점이있어 PLC를프로그래밍하는데널리사용되는언어이다. B. Verilog HDL Verilog는 FPGA를개발하기위한 HDL 언어중에하나로서, 회로설계및검증, 구현등다양한용도로사용되고있다. 다양한검증및분석도구들이 Verilog를입력언어로지원하고있고, 대부분의대중적인논리합성도구들이 Verilog를지원하고있기때문에널리사용되고있는언어중하나이다. 또한다양한 Verilog와 EDA (Electronic Design Automation) 도구들이게이트수준의합성과정을지원해주기때문에, Verilog를이용한개발은 FPGA 디바이스또는반도체칩제조과정등과는무관하게, 회로설계및디자인에만집중하여개발할수있다는장점이있다. C. VHDL VHDL (VHSIC Hardware Description Language) 은디지털회로및혼합신호를표현하는하드웨어기술언어이다. FPGA나집적회로등의전자공학회로를처리하는설계자동화에사용한다. 주로디지털회로설계에사용되고기존의심볼에의한회로도작성대신언어적형태로전자회로의기능을표현한다. 아날로그신호는 VHDL-AMS (VHDL Analog and Mixed-Signal Extensions) 로표현하나, 실제활용면에서디지털회로에많이적용되어사용한다. VHDL로표현된회로는실제동작하는기능적소자로변환하는합성 (synthesis) 과정을거치면동작할수있는회로가완성된다. 이때 FPGA나 ASIC 등을위한환경에따라합성된실제회로의소자가달라지기때문에칩설계시목적에맞는소자가합성되도록하는개발도구가존재한다. 예를들어 FPGA를판매하는회사는보통회로입력 ( 심볼및 VHDL코드 ) 부터시작
해서 VHDL 코드의합성, 모듈 ( 소자 ) 의배치등을지원하는도구를지원한다. D. EDIF (Electronic Design Interchange Format) EDIF는 netlist와회로데이터를저장하기위한업체중립적인포맷으로현재산업표준이다. 이포맷은 EDA (Electronic Design Automation) 산업을위해가장먼저만들어진중립적데이터변환포맷으로버전은 1.0.0부터 4.0.0까지개발되었다. 가장최신의 EDIF 버전은풍부한기능들을가지고있지만 FPGA의표준은 EDIF 버전 2.0.0을기준으로하고있다. E. JEDEC (Joint Electron Device Engineering Council) JEDEC은제조업체와사용자단체가합동으로집적회로 (IC) 등전자장치의통일규격을심의, 책정하는기구이다. 여기에서책정되는규격이국제표준이되므로 JEDEC은사실상이분야의국제표준화기구로통한다. F. FBDtoVerilog 원자력발전소의플랫폼전환 (PLC FPGA) 을지원하기위해개발된변환기로서 FBD를 Verilog로변환해주는변환기이다. FBD의 block과 Verilog의 module 간에 1 대 1 변환룰을가지고있으며, Verilog의 module은전문가에의해작성된 module을이용하여변환한다. G. Libero SoC Actel 사의상용소프트웨어로 FPGA를합성 (Synthesis), 배선및배치 (Place and Route) 등의기능이자동으로수행가능하다. 또한, Libero SoC에는 Mentor Graphic 사의상용소프트웨어인 Modelsim이포함되어있는데이는 Verilog, EDIF, JEDEC 포맷파일의시뮬레이션, 디버깅등이가능한환경을지원해준다.
그림 3 Libero SoC H. FBD Simulator & Scenario Generator FBD의시뮬레이션을위해개발된시뮬레이터로 FBDtoVerilog 변환기의 Correctness를검증하기위해개발되었다. Scenario Generator는 FBD Simulator에서사용될시나리오를자동으로생성하는도구로서도메인특징을반영한시나리오를생성할수있고, 무한한개수의시나리오를자동으로생성할수도있다. 또한생성된시나리오를 FBD Simulator에서만사용하는것이아니라 Verilog, EDIF, JEDEC 포맷을시뮬레이션할때도사용하는것이가능하다. 그림 4 FBD Simulator
그림 5 Scenario Generator
3. 프로젝트세부사항 A. 시스템구성도 i. 전체흐름도 하나의 FBD 에서변환하여얻은 Verilog HDL 파일과 EDIF 파일, JEDEC 파일을각각의시뮬레이션툴을사용하여얻은결과물을이용하여 Co- Simulation 하는 Tool 들을구현하는것이구현하고자하는것이목표이다.
ii. 시스템구성도 iii. VDHL 확장 VHDL은 Verilog HDL은서로다른특징을가지고있으며굉장히많이사용되는언어이다. 그렇기때문에 Verilog HDL만을위한 Co-Simulation Tool들을제작하는것보다 VHDL까지포함할수있는 Tool들을개발하는방향이옳다고판단하여추가적으로 VHDL 또한 Co-Simulation하고자한다. FBD에서 VHDL로변환하는기술은이미구현되어있으며 (FBDtoVHDL), VHDL을 EDIF로변환하는것은상용툴 (Libero SoC) 에서지원하고있는기술이다. 시뮬레이션도같은툴에서지원해주고있기때문에결과물을얻는것은이전까지의시스템흐름과큰차이는없다고볼수있다. 시뮬레이션결과물을이용하여 Co-Simulation하는것또한결과물분석으로서는차이가없을것이다. VHDL 을추가한시스템흐름도와시스템구성도는아래와같다.
- 확장된전체시스템흐름도 - 확장된시스템구성도
B. 시나리오 i. 작성된 FBD 를 FBDtoVerilog 를이용하여 Verilog HDL 파일로변환한다. 또는작성된 FBD 를 FBDtoVHDL 를이용하여 VHDL 파일로변환한다. ii. Verilog HDL 파일을 Libero SoC 를이용하여 EDIF 파일로만든다. 또는 VHDL 파일을 Libero SoC 를이용하여 EDIF 파일로만든다. iii. EDIF 를 Libero SoC 를이용하여 JEDEC 파일로만든다. iv. Scenario Generator 을이용하여무한히많은양의시나리오를생성한다. v. FBD Simulator 에서 FBD 파일과시나리오를넣어시뮬레이션을한다. ( 결 과물 1) vi. Libero SoC 에서 ModelSim 을이용하여 Verilog HDL (VHDL), EDIF, JEDEC 과 시나리오를넣어시뮬레이션을한다. ( 결과물 2, 3, 4) vii. 시뮬레이션에서입력한 Scenario 의 Coverage 를측정한다. Coverage Criteria 는 Quality, Thoroughness, Effectiveness 로한다. viii. 결과물 1, 2, 3, 4 를구현한 Co-Simulation Tool 들에입력하여결과를확인 한다. ix. Co-Simulation Tool 들에서보여주는 Scenario 의 Coverage Criteria 를확인 하고다시시나리오를생성하여시뮬레이션할지결정한다.
C. 기대효과 Verilog HDL부터시작하는하드웨어적접근방법이아닌소프트웨어적인방법인 FBD를이용하여설계를시작한다는것은소프트웨어개발자에게는하드웨어에접근하는좋은방향이될수있다. 하지만 FBD로시작된설계가원하는결과를도출하고있는지확인하기위해서는 Equivalence Check를할필요가있지만이를위해서는 Sequential, Combinational한 Check를모두수행해야하기때문에사실상어렵다고볼수있다. 때문에 Combination하게 Check를해보기위해서시뮬레이션결과를이용하여 Co-Simulation을수행하는시스템을구현하고자한것이다. 이시스템의구현을통해같은시나리오를이용한시뮬레이션에서도출되는직접적인결과물들을이용하여같은시간과입력정보를토대로같은동작을수행하는지여부를확인할수있을것이다. 또한무한히많은시나리오를이용하여시뮬레이션을통한결과물을직접적으로이용하는것이며시나리오의 Coverage를측정하기때문에비슷한시나리오가무한히많이생성되어시뮬레이션되는경우가발생하더라도이 Coverage를통해어떤현상인지아는것이가능하기때문에보다정확한검증이가능하게될것이라고예상한다. D. 개발환경 OS 하드웨어 : Microsoft Windows 8 64bit : Intel i7-3520m CPU 2.90GHz, RAM : 8.00GB 언어 : JAVA (jdk 1.7) 개발도구 : Eclipse Standard Kepler Service Release 2
4. 스케줄 5월 30일까지제안서제출 8월 1주차 중간보고서 1 8월 2주차 중간보고서 2 11월 1주차 최종보고서 6 7 8 9 10 11 내용 1 2 3 4 5 2 3 4 5 2 3 4 5 1 2 3 4 5 2 3 4 5 1 제안서 Implementation(1) 중간보고서1 제작 Implementation(2) 중간보고서2 제작 Debugging Implementation(3) 최종보고서제작전시회준비
5. 팀구성및역할 팀장 : 김재엽 학번 : 201111344 Email : radic2510@gmail.com 연락처 : 010-6655-7500 수행업무 : 전체프로젝트관리, 통합및개발 팀원 : 김그린 학번 : 201111335 Email : greenggom@gmail.com 연락처 : 010-8847-3688 수행업무 : UI 구성및개발 팀원 : 김신 학번 : 201111342 Email : thini08@gmail.com 연락처 : 010-6384-4683 수행업무 : 세부기술개발
6. 참고문헌 A. Junbeom Yoo, Jong-Hoon Lee, Sehun Jeong and Sungdeok Cha, "FBDtoVerilog: A Vendor-Independent Translation from FBDs into Verilog Programs," The Twenty-Third International Conference on Software Engineering and Knowledge Engineering (SEKE 2011), pp.48-51, July 7-9, Miami Beach, USA, 2011.s B. 김의섭, 이동아, 유준범, "FBDtoVerilog 변환기의 Correctness 를검증하기위한자동화 된시나리오생성기구현 ", 2014 년정보처리학회춘계학술발표대회논문집제 21 권 1 호, pp.599-602, 2014. C. IEC : International Electrotechnical Commission, International standard for programmable controllers : Programming languages, part 3 (1993). D. Libero SoC : http://www.microsemi.com/products/fpga-soc/design-resources/designsoftware/libero-soc E. ModelSim : http://www.microsemi.com/products/fpga-soc/design-resources/designsoftware/modelsim/ F. Wikipedia - 하드웨어기술언어 : http://ko.wikipedia.org/wiki/ 하드웨어 _ 기술 _ 언어 / G. Wikipedia Code Coverage : http://en.wikipedia.org/wiki/code_coverage/ H. Mauro Pezze, Michal Young, Software Testing and Analysis: Process, Principles and Techniques, Wiley, 2007.