솔루션발표 김의섭
목차 1. Coverage 관련 TestBench Generation Multi-level Coverage 2. Stability Analysis 관련 3. 창의과제논문관련 A Seamless Platform Change of Digital I&Cs from PLC to FPGA: Empirical Case Study An Integrated Development Environment for Developing FPGA-based I&C Software in Nuclear Power Plant 2
COVERAGE
NUREG/CR-7006 1. Behavior Simulation Code Coverage와 Functional Coverage 이용 2. Logic-level Simulation (1) 에서사용한 test bench 사용 / (1) 과동일한기능을하는지확인 3. Timing Simulation (1) 에서사용한 test bench 사용 + Timing info. 포함 (1) 과동일한기능을하는지확인 4. Static Timing Analysis Glitch, Metastability, Worst case 고려 + user constraints 포함 5. FPGA Verification (1) 에서사용한 test bench 사용 / 단일 FPGA를대상으로 simulation 6. Functional Hardware Verification (Validation) Board 위에올려기능확인 Manually 수행 +. On-site functional compliance with requirements (Installation and Checkout phase) IEEE Std 7-4.3.2-2010: IEEE Standard Criteria for Digital Computers in Safety Systems of Nuclear Power Generating Stations NUREG/CR-7006 System 에올려기능확인다른 component 와동시에기능확인 4
DO-254 Hardware Design Process (FPGA 개발 ) Simulation 100% statement coverage is required by DO-254 (synopsys) FPGA 는 single-event upsets 에민감 High-energy 에의해 silicon 내부적으로충돌이생길수있음 static memory element (configuration memory) 영향 FPGA's programmed logic 변경의초래 System safety assessment (SSA) 필요 (Xilinx) 5
EFRI TR-1019181 EFRI TR-1019181 Guidelines on the Use of Field Programmable Gate Arrays (FPGAs) in Nuclear Power Plant I&C Systems Verification Testing & Simulation Formal Verification Static Timing Analysis Verification of Synthesis and Place & Route 6
DO-254 7
현안 FPGA 개발에있어 Simulation 은필수 Simulation을수행하는데있어 Code Coverage를만족할것을요구 산업에서는 Code Coverage만취급 (+Functional Coverage) 다양한연구실에서새로운 ( 개선된 ) coverage 를제시하고있지만사용되고있지않음 공신력 ( 사용이력 X, 상호합의 X, standard or citification 에서요구 X) Do-254 code coverage 100% The document should also spell out goals for code and assertion coverage (at minimum, 100% statement coverage is required by DO-254). Commercial Tools (ISE Simulator, Incisive Enterprise Simulator, ModelSim 등 ) code coverage 제공 공인된 coverage 는 code coverage 뿐? 하지만 100% coverage 를만족하는 test case 생성방법은? 특정 coverage 를 100% 만족하는 Testbench 를생성하는방법.. 8
Classification Code Coverage Statement Coverage Block Coverage Decision Coverage Path Coverage Expression Coverage Event Coverage FSM Coverage Conventional FSM Coverage SFSM Coverage Other Coverage Metrics Observability-Based Code Coverage Toggle Coverage Syntactic Coverage Metrics Code Coverage Statement coverage Branch coverage Circuit Coverage Latch coverage Toggle coverage Semantic Coverage Metrics FSM Coverage Limited-path coverage Transition coverage Assertion Coverage (functional coverage) Mutation Coverage Variable Coverage Paper: Coverage Analysis Techniques for HDL Design Validation Paper: Coverage Metrics for Formal Verification 9
Others Post-silicon code coverage Observability-Based Code Coverage Observability-Enhanced Statement Coverage Data Flow Fault Coverage Dumpfile-Based Coverage Validation Vector Grade (VVG): A New Coverage Metric for Validation and Test 10
몇몇문서를확인 EPRI TR-1019181 Guidelines on the Use of Field Programmable Gate Arrays in Nuclear Power Plant I&C Systems EPRI TR-109390 Design Description of a Prototype Implementation of Three Reactor Protection System Channel Using Field- Programmable Gate Arrays EPRI TR-1022983 Recommended Approaches and Design Criteria for Application of Field Programmable Gate Arrays in Nuclear Power Plant Instrumentation and Control Systems NUREG/CR-7006 Review Guidelines for Field-Programmable Gate Arrays in Nuclear Power Plant Safety Systems Coverage 중 code coverage (+ fault coverage) 이외는언급이거의없음 DO-254 Design Assurance Guidance For Airborne Electronic Hardware Code Coverage는 100% 만족을요구? IEC 62566 Nuclear power plants - Instrumentation and control important to safety - Development of HDL-programmed integrated circuits for systems performing category A functions 11
문제점및해결책 1 일반적으로 HDL 단계에서는 Code Coverage를많이씀 Statement Coverage / Branch Coverage / Toggle Coverage 문제 Code Coverage 를측정하는방법은많이있지만, Code Coverage 를충분히 (100%) 만족하는 Testbench를생성하는기술은미비 (?) 해결 Code Coverage 100% 를만족하는 testbench 생성의필요 12
전략 100% Code coverage 를만족하는 testbench 생성연구 100% 가어려운이유 Testing 의경우해당부분을수행하기위한 input 및 reg 만조합필요 Simulation 의경우 reg 가연속적 따라서, 연속적인 reg 의조합을찾아야함 ( 조합의조합의 을찾아야함 ) Random simulation + Model checking (+Sat Solver) 를이용 Random simulation 으로일정부분 coverage 를확보하고, 특정부분에대해서는 model checking 을활용 13
DUT input Random Simulation Cover 되지않은부분식별 & 리스트화 1. 랜덤시뮬레이션 (Optional) 적은노력 상당한 coverage 확보가능 Sat Solver 2. 모델체킹 리스트에서하나를선택 해당부분을 simulation 할수있는조합 (input + reg) 식별 Model Checking (Reachability 확인 ) Testbench 생성 YES NO 리스트에남은요소확인 해당부분은 simulation 가능하지않는것으로결론 YES NO 종료 14
DUT input Random Simulation 1. Random simulation 할때 coverage 를높일수있는전략 If( input > 10 ){ if( input == 1 ) printf( ); } Cover 되지않은부분식별 & 리스트화 2. Sat solver 를통해해당부분이실행될수있는부분인지확인 3. 조건의 property 화 AX (Rges, input) 리스트에서하나를선택 해당부분을 simulation 할수있는조합 (input + reg) 식별 Model Checking (Reachability 확인 ) Testbench 생성 YES NO True 일때의 trace 를얻을수있다면??? 리스트에남은요소확인 해당부분은 simulation 가능하지않는것으로결론 YES NO 종료 15
DUT input Random Simulation 1. Random simulation 할때 coverage 를높일수있는전략 If( input > 10 ){ if( input == 1 ) printf( ); } Cover 되지않은부분식별 & 리스트화 2. Sat solver 를통해해당부분이실행될수있는부분인지확인 3. 조건의 property 화 AX (Rges, input) 리스트에서하나를선택 해당부분을 simulation 할수있는조합 (input + reg) 식별 Model Checking (Reachability 확인 ) Testbench 생성 해당 reg 를위한이전값의조합을하나씩찾음 YES NO True 일때의 trace 를얻을수없다면??? 리스트에남은요소확인 해당부분은 simulation 가능하지않는것으로결론 YES 종료 NO 우선적으로 Simulator 를개발하는것이.. HDL 에뿐만아니라 Gate-level 및 layout 형태도지원 Uncover 된부분의식별 Uncover 된부분을실행하기위한조합의식별 16
연구진행방향 시나리오생성기구현 1. Simulator 를개발 Uncover된부분의식별 HDL에뿐만아니라 Gate-level 및 layout 형태도지원 Uncover된부분을실행하기위한조합의식별 2. Coverage 확인기능구현 3. Uncover 된부분의식별및 Sat 변환기능구현 4. 모델체킹후 testbench 생성기능구현 100% Code coverage 를만족하는 testbench 생성획득가능 17
문제점및해결책 2 FPGA 개발각단계마다유효한 coverage 가다름 HDL 단계 Code Coverage Development Process Gate level/layout 단계 Fault Coverage 문제 각 level 마다유효한 Coverage 가다른데, gate level에서 HDL 단계의 testbench를사용 (code coverage 바탕으로생성 ) Code Coverage SRS HDL Programs (Verilog & VHDL) Manual Programming Functional Simulation (ModelSim) Ex) HDL 에서의 Code Coverage 가 Gate-level 에서 Synthesis 해결 는의미가있을수도없을수도있다. Data Flow based Coverage Gate level Netlist (EDIF) Co-Simulation (IST-FPGA) 각 level 에적합한 coverage 를사용하여 P&R Testbench 생성 전략 각 level간 coverage 의연관성분석 Fault Coverage Layout Load Code Coverage 만으로충분한지평가 FPGA 각 level 을적절히만족하는 testbench 생성 IST-FPGA 에의미있게적용 18
Technique HDL Code Coverage 사용 Gate-level Netlist에 data flow coverage 적용연구 (new?) 지은경박사님방법도사용할수있으면사용 / HW 에특징적인부분을반영 ( 동시성고려 ) Layout 적절한 fault model 선정 ( 중요 ) 과 Fault Coverage 사용 Simulator의기능확장 각각의 coverage 를확인가능해야함 19
Fault Coverage Fault Coverage ( 가장많이언급되는 Coverage) ASIC 개발공정중사용되던 coverage ASIC 반도체설계및제조공정중생기는물리적인결함을검사하기위한 coverage ATPG(Automatic Test Patten Generation) 에사용 Fault Coverage 주어진회로에 Fault 를삽입하여 test case가이를수행하였는지를확인 오리지날회로와 fault를삽입한회로에동일한 test caser를사용, 결과가다르다면 fault를수행하였다고 ( 찾았다고 ) 판별 Concept view of ATPG 20
ATPG ATPG (Automatic Test pattern Generation) ASIC 반도체설계와제조공정과정에서물리적인결함발생을가정 효과적인검사가이루어지지않을경우출하된 chip이불량이확률이높아짐 효과적인검사를위해서는 chip의결함을찾을수있는양질의 test pattern 이필요 주어진회로에대하여 Fault model 을가정하여 Fault 을검출하는입력패턴생성을자동화시키는과정. Original design 과 fault model 을생성하여동일한입력을주어결과값이동일하지않으면 fault 를찾은것 이때다른결과를내는입력이 Test pattern Fault model The Stuck-at fault model Transistor faults Bridging faults Opens faults Delay faults Fault collapsing 21
22
연구진행방향 1. Data Flow 기반 Coverage 의 netlist 적용 2. 시뮬레이터기능확장 Code Coverage 를체크하고 test case를생성할수있는기능구현 (1) Data Flow 기반 Coverage 를체크하고 test case를생성할수있는기능구현 Fault Coverage 를체크하고 test case를생성할수있는기능구현 3. 각레벨의 coverage 간의관계분석 100% code coverage 를만족하지만 Fault coverage 는만족하지못하는경우가있는지확인 4. IST-FPGA 에적용 23
전략 - 3 New coverage 개발 1 + 2 연구의노하우를바탕으로.. 다양한방면으로고려 PLI (Programming Language Interface) 사용고려 Verilog 에서 C/C++ 과같은언어와의연동을위한 API UVM (Universal Verification Methodology) Functional Simulation 을위한기법 Testbench의체계적인생성과 usability 확보 + 체계적인 testbench 생성 24
STABILITY ANALYSIS
Stability 현황 어떤사용자는 input 을주었을때 FPGA 가일정주기후 stable 해진 output 값 원함 문제 어느주기이후에 output 값이 stable 해질까? FPGA 개발시일정시간후에 Output을 stable하게유지하도록개발할수있다. ( 아닐수도있다. 기능적인요소 ) 따라서, STA나기타 simulation으로는해당요소를찾을수없다. 개발자의분석노하우를바탕으로진행가능? (heuristic) 따라서적절한해결책이필요 26
Static Timing Analysis Glitch (clk skew) 글리치 (Glitch) 는디지털회로에서발생할수있는매우짧은기간동안나타나고, 사라지는전압이나, 전류의원하지않은노이즈펄스이다. 이러한노이즈펄스의폭은소자의물리적특성과사용환경 ( 온도, 습도, 진동등 ) 에따라변할수있다. 따라서, 글리치는사용조건에따라어떤때는논리회로에전혀영향을주지않을수도있고, 어떤때는논리회로의오동작을발생시킬수있다. Metastability Setup-time, hold-time 클록의상승에지이전에어느정도의시간동안안정 - 셋업시간 (tsu) 클록상승에지이후에어느정도의시간동안안정 - 홀드시간 (th) Worst case Worst Case 경우에도요구된기능을요구된제한시간안에수행할수있는지를확인 요구된기능 : in/output 과 FF 사이의 combination logic 27
1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 28
해결책 : Stability Analysis ( 전제 1) Input, output, reg 값이이전 clk 값과동일하다면 stable 해질것임. 변하는 signal 이존재하지않다면, 앞으로도모든값은계속변하지않을것이다. ( 전제 2) 로직의 input 은 stable 하게주어진다. 1. Stable해지길원하는개발자라면 input은당연히 stable하게줄것이다. 2. Reg 값이 stable해진다면 output도당연히 stable하다. 따라서, reg 값만의비교로분석가능 언제동일해지는지계산을통해파악할수있을것이다. Simulation 을통해확인가능할수도있음 ( 하지만 performance) Formal verification 개념 ( 모든 input 에대해수학적으로확인가능 ) = = = = t-1 t 29
전략 1. logic 이 stable 해질수있는지체크 Ex) input 이 stable 하게들어오는 logic 인지확인 Ex) 플리플롭의값이자체적으로계속변하게되는로직인지확인 2. Stable 해질가능성이있다면, 언제 stable 해질지계산 모든 input 조합을바탕으로 reg들의 t-1 값과 t값의비교를수행 동일하면 stable worst를찾기위해서는모든 input 조합에대해수행해야함 30
1. logic 이 stable 해질수있는지체크 Ex) input이 stable 하게들어오는 logic인지확인 Ex) 플리플롭의값이자체적으로계속변하게되는로직인지확인 다양한경우를생각 31
1. logic 이 stable 해질수있는지체크 Ex) input이 stable 하게들어오는 logic인지확인 Ex) 플리플롭의값이자체적으로계속변하게되는로직인지확인 2. Stable 해질가능성이있다면, 언제 stable 해질지계산 모든 input 조합을바탕으로 reg들의 t-1 값과 t값의비교를수행 동일하면 stable worst를찾기위해서는모든 input 조합에대해수행해야함 Reg의값은수식으로표현가능 (Boolean 연산 ) Y(t+1) = x & y & ~z & t & input[0] & & input[1] X(t+1) = ~x y z t & input[1] Z(t+1) = x & ~y z & t & input[2] T(t+1) = x & y ~z t BDD 를이용하여계산가능 트리만만들어놓으면연산은빠름 - BDD 는연산이아니라카노맵형태 이용할만한정보 ( 빠른성능보장 ) - reg 는 0 부터시작 - input 은고정 (0 or 1) 재사용 32
연구진행방향 도구구현 1. logic이 stable 해질수있는지체크방법 2. BDD 연산을이용하는방법 알고리즘구현 Stability Analysis 통해 FPGA가일정주기후 stable 해진 output 을출력하길원하는사용자에게언제 stable 해질지 Worst case의 t주기를알려주게될것임 33
창의과제
창의과제 A Seamless Platform Change of Digital I&Cs from PLC to FPGA: Empirical Case Study 35
목차 1. Introduction 2. Background PLC Development Life Cycle FPGA Development Life Cycle 3. An Integrated Development Environment Overview Development Tools FBD Editor V&V Tools IST-FPGA 4. Case Study From FBD (BP Logic - ref 하여자체제작 ) Development V&V 5. Further Consideration COTS Synthesis tool COTS Dedication Coverage Stability 6. Conclusion 36
배경 원전다양성및심층방어개념 기본개념 ( 물리적다중방벽 + 다단계방호 ) 사고예방 + 사고완화 계측제어계통다양성설계확보필요 First line Second line Third line 원전계측제어계통아날로그-기반시스템에서디지털-기반시스템으로변경 전세계적으로신규인허가현안발생 사이버보안 CCF( 공통원인고장 ) 37
연구배경 CPU- 기반제어기 Hardware Description Language - VHDL - Verilog FPGA 로직개발공정 - 병렬처리 - 합성 - 배선및배치 - Gate Logic into FPGA FPGA- 기반제어기 Graphic Language - FBD - LD High Level Language - Fortran - C 소프트웨어개발공정 - 순차처리 - 컴파일 - 메모리다운로드 - 소프트웨어개발경험, 노하우포기 - 소프트웨어엔지니어전환교육필요 - 새로운 HW 개발방법론습득 38 원전계측제어전문가 38
기존연구 기존연구 FBD 를 HDL 로변환을통해당면한문제해결하려는시도 문제 Development Life-Cycle PLC-based Development FPGA-based Development 도구미구현 검증관련부분의누락 Requirements Analysis SRS Manual Programming Automatic Translation SRS & SDS 그래서우리가통합개발환경을구현하게되었다. 도구구현을통한사용성확보 FBD Editor Design FBD Programs C Programs FBDtoVerilog FBFtoVHDL HDL Programs (Verilog & VHDL) Synthesis Automatic Synthesis 다양한검증도구및프로세스를통해최종 FPGA의 Correctness 확보 Implementation Gate level Netlist (EDIF) 검증가능한방법및도구제시 언어적다양성확보 기존 Verilog 외 VHDL 변환지원 Executable Code for PLC Layout Files (JEDEC) P&R 변환의신뢰성확보 전문가가작성한 Lib 사용 검증가능한방법및도구제시 Embedded System PLC-based RPS FPGA-based RPS 39
진행예정 40