System Verilog Basics - Control Flow
·
코딩 지식/SYSTEM VERILOG
본 시리즈는 "chipverify.com" 내용을 바탕으로 작성됨. 반복문 (repeat, while, for) C언어와 마찬가지로. while(do ~ while), for 문을 지원하며, repeat은 조건 없이 반복 횟수만큼 실행되며, 반복 횟수가 정해져 있을 때 사용된다.Task, Function Function은 단일 값을 반환하는 순수한 계산 로직에 사용되며, Task는 시간 지연, forever, @(event) 처리가 가능해 복잡한 프로시저 처리 및 다중 출력 처리에 적합하다. 호출 방식 또한 차이가 있다.// Function은 표현식 내 호출int result = calculate_sum(a, b); // Task는 독립적 문장으로 호출generate_packet(pkt, delay);..
System Verilog Basics - 변수
·
코딩 지식/SYSTEM VERILOG
본 시리즈는 "chipverify.com" 내용을 바탕으로 작성됨. 0, 1, x, z SystemVerilog의 자료형은 Verilog와 동일하게 0, 1, x, z로 이루어져있다. 모든 BIT 초기화 (') 여러 Bit 수를 가지는 변수를 초기화 하고 싶을 때, ` Literal을 사용하면 쉽게 초기화가 가능하다. 실수 자료형 (real) "real" 자료형을 통해 실수 값을 나타낼 수 있으며, C언어의 atoi, itoa와 같은 역할을 하는 "$itor", "$rtoi"가 있다. logic, bit 자료형 기존 Verilog에서는 wire, reg 자료형만 사용되었지만, "logic"을 사용하면 두 자료형의 역할을 모두 수행할 수 있다. 또한, "bit" 자료형은 0,1,x,z 가..
SystemVerilog - Task
·
코딩 지식/SYSTEM VERILOG
SystemVerilog에서 Task를 어떻게 활용할 수 있는지에 대해 살펴보겠다. Task는 반복적으로 실행될 수 있는 코드 블록을 정의하는 데 유용하며, 설계나 시뮬레이션에서 중요한 역할을 한다. 주로 하드웨어 설계나 테스트벤치에서 재사용 가능한 기능을 구현할 때 자주 사용된다.1. Task란 무엇인가?Task는 일종의 함수와 비슷하지만, 함수와 다른 점은 값을 반환하지 않는다는 것이다. Task를 사용하면 중복되는 코드를 줄이고, 코드의 가독성 및 유지보수성을 향상시킬 수 있다.SystemVerilog에서 task는 다음과 같은 형식으로 정의된다:task task_name(input [7:0] i_data, output [7:0] o_data); begin // 작업 내용: 입력 ..