베릴로그는 표준 시스템 태스크를 제공하며, 모든 시스템 태스크는 $<키워드> 형태로 나타낸다.
- 화면 출력 태스크($display)
화면에 출력하기 위한 태스크로, C언어에서의 printf와 유사한 기능을 한다.
$display(p1, p2, p3, ... , pn); 이와 같이 작성하며, p1, p2... 는 문자열, 변수 또는 수식이 될 수 있다.
C에서의 형식 지정자와 같이 문자열 안에 %d, %c, %s 등을 사용하여 작성할 수 있다.
- 모니터링 태스크($monitor)
$monitor를 사용하여 신호의 값이 변할 때마다 그 신호를 출력할 수 있다.
$monitor(p1, p2, p3, ... , pn); 이와 같이 작성하며, p1, p2... 는 변수, 신호 이름, 문자열이 될 수 있다.
변수 또는 파라미터에 지정된 신호의 값을 계속 모니터링하고, 어느 한 변수나 신호가 변할 때마다 모든 파라미터를 출력한다.
$monitor는 단 한 번만 사용해야 한다.
동시에 단 하나의 모니터링 리스트만이 수행되며 여러 문장이 존재하면 마지막 문장만 실행되고 앞의 문장들은 무시된다.
모니터링을 on, off하기 위해 $monitoron; $monitoroff 태스크를 사용할 수 있으며, 처음 시뮬레이션을 시작할 때는 기본적으로 on상태이다.
- 시뮬레이션 중단과 종료 태스크
시뮬레이션을 중단하기 위해서 $stop 태스크를 사용한다.
$stop은 상호 작용 모드의 시뮬레이션에서 사용된다.
사용자는 상호 작용 모드에서 디버그를 할 수 있으며, 신호의 값을 조사하기 위해 사용될 수 있다.
$finish는 시뮬레이션을 종료하기 위해 사용된다.
reference: Samir Palnitkar - Verilog HDL 2판
'EE > Verilog' 카테고리의 다른 글
[Verilog] 게이트 수준 모델링 (0) | 2023.01.06 |
---|---|
[Verilog] 포트(Ports)와 포트 연결 규칙 (0) | 2023.01.05 |
[Verilog] 모듈의 구성 요소 (0) | 2023.01.05 |
[Verilog] 컴파일러 지시어 (0) | 2023.01.03 |
[Verilog] 베릴로그 자료형 (0) | 2023.01.03 |