Wednesday, November 12, 2014

[오늘의 반도체 용어] What is Code Coverage

이번 포스팅은 검증에서 필요한 코드 커버리지(Code Coverage)에 대해서 알아보도록 하자.


코드 커버리지(Code Coverage): 소프트웨어의 테스트에서 얼마나 테스트가 충분한가를 나타내는 지표 중 하나로서 코드가 어디까지 커버되는가? 를 말하는 것이다. 좀 더 쉽게 설명하면 verilog로 만든 어떤 모듈이 있을 때 입력값에 따라 원하는 출력이 나오게 되는데 테스트는 특정 입력값에 따라 원하는 출력값이 나오는가를 확인하게 된다. 이 때 입력값을 어떻게 주느냐에 따라 만들어진 모듈이 얼마나 사용되느냐를 Code Coverage 라고 한다. 만약 입력값을 몇개 안주어 만들어진 모듈이 50%만 사용되었다고하면 이 모듈은 50%만 테스트 검증 된 것이 된다. 이해가 좀 되는가?

코드 커버리지를 통해 사람이 확인하지 못하는 모든 경우의 수를 프로그램을 통해서 가능한한 많이 테스트하여 오류를 최소화 하는 것이 목적이다.

많이 쓰이는 툴로는 Mentor Graphics社의 ModelSim과 Cadence社의 ICC(Incisive Comprehensive Coverage) 등이 있다. 각각을 이용하여 실제 사용하는 방법에 대해서는 나중에 다시 다루도록 하고 어떤 알고리즘을 이용하여 잘 만드는 것도 중요하지만 '검증'을 통해 만들어진 것을 최대한 오류 없이 잘 확인하는 것이 이슈라고 할 수 있겠다. 가장 빠르고, 쉽고, 확실하게 검증할 수 있다면 '시간''돈'을 아낄 수 있는 개발의 최고의 방법이 되겠다.

No comments :

Post a Comment