Functional verification has emerged as the dominant bottleneck of the design process in recent industry. Functional coverage is the most critical measure of thoroughness for the verification of a complex design. It reduces the verification time by contributing to removing redundant test vectors and obtaining optimal test suite. But the functional coverage requires much computational power and slows down the verification process. This thesis proposes a hardware unit for functional coverage which contributes to the acceleration of functional coverage. Furthermore, it allows the functional coverage to be run with co-emulation system.
In this thesis, we propose a method to synthesize monitors for a coverage model that is composed of finite temporal properties. Proposed synthesizable monitors, coverage monitors, check functional coverage in the co-emulation system. Coverage monitors utilize the power of co-emulation system and give more improvement to the verification team with the acceleration of the design. Coverage monitors provide over hundred times higher performance than software-based functional coverage and get rid of limitations posed by software-based functional coverage tools. Performance optimization method for the storing results in block RAM of the FPGA is also proposed. In transaction-level co-emulation, coverage monitors keep records of occurrences of properties in the FPGA because one transaction advances hundreds clocks of the design. The proposed memory binding algorithm which considers the compatibility and conflict among different properties also help to reduce the slowdown by storing results.
현재 반도체 산업에서 기능 검증은 디자인 과정의 주요한 병목지점이다. 기능 검증 보장(Functional coverage)은 복잡한 디자인의 검증에서 테스트가 충분히 진행되었다는 것을 보장해 주는 기술로 기능 검증 보장으로 디자인 검증 팀은 불필요한 테스트를 피하고, 최적화된 테스트 과정을 만들 수가 있다. 하지만 기능 검증 보장은 복잡한 연산으로 많은 계산 시간을 필요로 한다. 따라서 기능 검증 보장을 가속시키는 것은 검증 시간을 줄여 준다. 또한 프로그램기반의 기능검증은 에뮬레이션 시스템의 기능을 제한한다.
본 논문은 유한한 시간 길이의 속성(Property)으로 구성된 보장 모델을 위한 보장 모니터(Coverage monitor)를 합성하는 방법을 제안한다. 제안된 보장 모델은 에뮬레이션 시스템에서 기능 검증 보장을 검사한다. 보장 모니터는 에뮬레이션 시스템을 장점을 이용, 디자인과 함께 가속이 가능해서 검증 능력을 향상시켜 준다. 이는 소프트웨어 기반의 보장 방법에 비해서 150 배 이상 빠르다. FPGA의 덩어리 램(SelectRAM block)에 결과를 저장하기 위한 최적화된 성능을 위한 방법도 제안이 된다. 트랜잭션 레벨 (Transaction-level) 에뮬레이션에서 하나의 트렌잭션이 여러 사이클을 진행시키기 때문에, 보장 모니터는 속성의 발생 결과를 FPGA안에 저장해야 한다. PC에 결과를 전송할 경우 성능 저하가 발생하게 된다. 속성 사이의 공존관계를 이용해서 저장 공간을 모니터에게 할당해 주는 알고리즘은 FGPA에서 적은 저장 공간을 사용해 최적의 성능을 얻을 수 있게 해준다.