본문 바로가기
728x90
반응형

SVA6

[SVA] 2-2. SystemVerilog Assertions(SVA) [SVA] 2-2. SystemVerilog Assertions(SVA) Assertion 기본 구조 123456789101112// Simple assert statementassert(expression>); // Assert statement with statements to be executed for pass/fail conditionsassert(expression>) begin// If condition is true, execute these statementsend else begin// If condition is false, execute these statementsend // Optionally give name for the assertion[assert_name] : asser.. 2024. 11. 25.
[SVA] 2-1. SystemVerilog Assertions(SVA) [SVA] 2-1. SystemVerilog Assertions(SVA) Assertion Types SVA에서 지원하는 Assertion은 Immediate Assertion, Deferred Immediate Assertion, Concurrent Assertion 세 가지 유형이 있다. Immediate Assertion시간 도메인에서 동작하지 않고, Procedural Block(코드가 순차적으로 실행되는 구조)의 문장처럼 즉시 실행된다.앞에서 언급했던 SW Assertion과 유사한 형태라고 생각해도 무방하다.Deferred (Immediate) AssertionDeferred Assertion는 Immediate Assertion의 일종이다.Immediate Assertion은 변수가 바뀌는 .. 2024. 11. 18.
[SVA] 1-4. Introduction [SVA] 1-4. Introduction Assertions의 주요 장점개발 시간 단축된다. SVA를 사용하지 않고 기존 Verilog 문법으로 Checker를 작성하는 것은 어렵고 시간이 많이 걸리며, 오류가 발생할 가능성이 매우 크다. SVA를 사용하면 이해하기 쉬운 문법으로 검증이 가능하며, 요구된 조건이 실제로 실행되었는지도 쉽게 확인이 가능하다. 관련 문법은 추후에 학습할 것이다.버그가 발생한 원인을 가장 가까이서 확인할 수 있다. Assertion은 설계된 Logic과 가까운 곳에 위치하여 작동한다. 따라서, 버그가 발생한 원인을 설계 내부까지 추적할 필요 없이, 문제의 발생 지점에서 바로 확인할 수 있다. Assertion을 배치하기에 유용한 곳은 FIFO, Counter, Block-to.. 2024. 11. 17.
[SVA] 1-3. Introduction [SVA] 1-3. Introduction SW vs. HW Assertion 그렇다면, SW Assertion과 HW Assertion의 차이는 무엇일까?  SW의 경우, 컴파일러 또는 인터프리터가 number라는 변수에 -5가 저장되어 있는 것을 이미 알고있다. 즉, assert 구문을 마주했을 때 stack(일종의 메모리)에 number에 저장되어 있는 값을 이미 알고 있기 때문에 조건의 참, 거짓을 쉽게 판별할 수 있다.     하지만, HW의 경우 조건의 참, 거짓 여부를 알기 위해서는 조건의 시간적인 정보가 필요하다. 즉, SVA를 잘 사용하기 위해서는 SW와 HW 두 시간 도메인을 잘 이해해야 한다. 이는 SW Assertion 구문보다 SVA 구문이 학습하고 적용하기 어려운 이유가 된다. 2024. 11. 15.
[SVA] 1-2. Introduction [SVA] 1-2. Introduction SVA Example 이번에는 SystemVerilog Assertion을 사용한 예제를 확인해보자. 예제1 : grant 요청 후 4 clock 이내에 ack 수신 확인  1234567891011121314151617module grant_ack_check(   input logic clk,   input logic reset_n,   input logic grant,   input logic ack);   // 4 Clock 이내에 ack 신호가 들어와야 함을 검증하는 Assertion   property grant_to_ack_within_4_cycles;      @(posedge clk) disable iff (!reset_n)         grant.. 2024. 11. 14.
[SVA] 1-1. Introduction [SVA] 1. IntroductionSystemVerilog Assertion의 진화 과정    초기 SystemVerilog에는 시간적인(순차적인) 도메인을 검사하기 위한 방법이 제공되지 않았다. PSL 같은 외부 언어를 SystemVerilog와 연결하여 혼합된 언어 환경을 만들어야 했다. 이는 특정 EDA 벤더와 연결된 두 개의 시뮬레이터를 유지해야 했으므로 불편함이 있었다.이러한 문제를 해결하기 위해 SystemVerilog 표준 위원회는 언어에 고유한 하위 집합을 추가하여 이를 SystemVerilog Assertions(SVA)라고 명명했다.SVA는 SystemVerilog 언어와는 완전히 독립적이다. 다시 말해서, SVA의 문법은 SystemVerilog 문법과 완전히 다르다. 하지만, S.. 2024. 11. 13.
728x90
반응형