sv와 v끼리 호환된다. 인스턴스도 가능.
다만 v확장자에서 sv 문법사용은 불가
장점 1. OOP 객체 지향, 객체 class (캡슐화, 상속, 다양성, 추상화)
장점2. constraint random stimulus 테스트 가능
→ functinal Coverage (Stimulus 범위지정 가능)
장점3. Assertion 기능 제공
→ SVA
→ RTL로 합성되지는 않지만 일어나야할 일이 안일어났다면 디버그 메세지를 띄운다!!
단점1. 환경 구성하는데 시간이 걸린다.
queue의 경우 put get push pull 등의 멤버함수 사용 가능
거의 테스트벤치에서만 사용
bit : 시뮬레이션에서 초기값 x,z 안가지게 하려고 쓰는 사람도 있다. logic을 bit로 받을 경우 0으로 치환됨
stime
void 반환 없는 function : 많이 쓴다. → RTL 설계할 때도 많이 쓴다.
제일 중요한 차이? sv에서 동적 배열 사용 가능!