systemverilog 예제

동시 어설션은 이와 같은 동작을 확인하는 데 사용됩니다. 지정된 속성이 true여야 한다고 어설션하는 명령문입니다. 예를 들어 기본 구문을 살펴본 지금 모두 함께 두면 몇 가지 실용적인 예제를 살펴보겠습니다. 위의 예에서 시퀀스 s1이 일치하는 경우 시퀀스 s2도 일치해야 합니다. 시퀀스 s1이 일치하지 않으면 결과가 true입니다. [= 또는 비연속 반복 연산자는 goto 반복과 유사하지만 c가 true가 되기 전에 식(이 예제의 b)은 클럭 사이클에서 true일 필요는 없습니다. 위의 첫 번째 어설션 예제에는 시계가 포함되어 있지 않습니다. 따라서 시뮬레이션의 모든 지점에서 검사됩니다. 두 번째 어설션은 상승 시계 가장자리가 발생한 경우에만 확인됩니다.

Req및 Ack의 값은 시계의 상승 가장자리에 샘플링됩니다. 통과 및 실패 문은 모든 법적 SystemVerilog 절차 문이 될 수 있습니다. 예를 들어 메시지를 작성하거나, 오류 플래그를 설정하거나, 오류 수를 증가하거나, 테스트벤치의 다른 부분에 실패를 알리는 데 사용할 수 있습니다. 즉각적인 어설션에는 pass 문 및/또는 fail 문이 포함될 수 있습니다. 이 예제에서는 pass 문이 생략되므로 어설션 식이 true일 때 아무 작업도 수행되지 않습니다. pass 문이 있는 경우: 속성은 시퀀스를 사용하여 빌드되는 경우가 많습니다. 예를 들어, 다음은 시퀀스의 몇 가지 간단한 예입니다. ## 연산자는 지정된 클럭 킹 이벤트 수 또는 클럭 주기로 실행을 지연시입니다. 속성 및 시퀀스 사용 중인 예제에서 어설션되는 속성은 assert 속성 문 자체에 지정됩니다. 속성은 별도로 선언될 수 있습니다.: 다음 예제에서 비동기 재설정 처리 iff 절을 사용 하지 않도록 설정 하면 비동기 재설정 지정할 수 있습니다. “요청(하나 이상의 사이클에 대한 req high은 0으로 돌아갑니다)은 승인에 의해 하나 이상의 주기 기간 이후에 따릅니다(0으로 돌아가기 전에 하나 이상의 사이클에 대해 높은 ack). req가 0으로 돌아오는 주기에서 ack는 0이어야 합니다.” 선행 시퀀스 식의 일치가 없는 경우 true를 반환하여 의미가 빈번하게 성공합니다.

Share on Google+Share on FacebookTweet about this on Twitter
error: Садржај је заштићен !!