728x90
반응형
[SVA] 1-4. Introduction
Assertions의 주요 장점
- 개발 시간 단축된다.
SVA를 사용하지 않고 기존 Verilog 문법으로 Checker를 작성하는 것은 어렵고 시간이 많이 걸리며, 오류가 발생할 가능성이 매우 크다. SVA를 사용하면 이해하기 쉬운 문법으로 검증이 가능하며, 요구된 조건이 실제로 실행되었는지도 쉽게 확인이 가능하다. 관련 문법은 추후에 학습할 것이다. - 버그가 발생한 원인을 가장 가까이서 확인할 수 있다.
Assertion은 설계된 Logic과 가까운 곳에 위치하여 작동한다. 따라서, 버그가 발생한 원인을 설계 내부까지 추적할 필요 없이, 문제의 발생 지점에서 바로 확인할 수 있다.
Assertion을 배치하기에 유용한 곳은 FIFO, Counter, Block-to-Block Interface, Block to/from System IO Interface, State Machine, 시스템 레벨의 Functional Path 등이 있다.
전통적인 검증은 Black Box 검증이지만, Assertion을 사용하면 Black Box 검증과 더불어 White Box 가시성을 가지고 검증할 수 있다. - CDC Logic을 지원한다.
SVA property로 하나의 Clock Domain에서 다른 Clock Domain으로 넘어가는 조건을 작성할 수 있다. 이는, Clock Domain 간의 무결성 검사에 매우 유용하다. - 코드 이상의 역할을 한다.
복잡한 설명대신 Assertion을 작성하여 Spec에 대해 커뮤니케이션이 가능하다. 또한, 설계 검증 리뷰에 활용하여 Assertion 계획을 작성하고 검증하는 사양과 비교하여 체크할 수 있다.
- 재사용성에 매우 유리하다.
다음 설계에 그대로 사용하거나 업그레이드하여 적용할 수 있다. 또한, “bind”를 사용하여 RTL 외부에서 모델링이 가능하기 때문에 Design Logic과 Design Verification Logic을 분리하여 유지 관리할 수 있다. - 다양한 심각도(severity) 수준을 제공한다.
$Fatal : 시뮬레이션을 즉시 종료하는 심각한 오류.
$Error : 오류가 발생했음을 알리지만, 시뮬레이션을 계속 진행된다.
$Warning : 경고 메시지를 출력하며, 시뮬레이션은 계속 진행된다.
$Info : 정보 메시지를 출력하는데 사용된다. - 전역적으로 켜고 끄는 것이 가능하다.
필요한 시점에만 Assertion을 활성화하여 테스트 효율성을 높이고 불필요한 오버헤드를 줄일 수 있다.
$dumpon : Assertion을 활성화하여 테스트 동안 해당 Assertion을 추적하고 보고한다.
$dumpoff : Assertion을 비활성화하여 이후에는 해당 Assertion이 동작하지 않도록 한다. - 다양한 Command를 제공한다.
assert : 특정 조건이 항상 참인지 검증하며, 조건이 거짓일 경우 오류를 발생시킨다.
cover : 특정 조건이 만족되었는지 추적하여, 테스트 Coverage를 제공한다.
assume : 검증 중 특정 조건이 참이라고 가정하여 다른 조건을 유도한다.
restrict : 형식 검증에서 조건을 제한하여 유효한 설계 제약을 설정한다.
728x90
반응형
'VLSI > Verification' 카테고리의 다른 글
[SVA] 2-2. SystemVerilog Assertions(SVA) (0) | 2024.11.25 |
---|---|
[SVA] 2-1. SystemVerilog Assertions(SVA) (0) | 2024.11.18 |
[SVA] 1-3. Introduction (0) | 2024.11.15 |
[SVA] 1-2. Introduction (1) | 2024.11.14 |
[SVA] 1-1. Introduction (0) | 2024.11.13 |
댓글