[Verilog] 베릴로그 A to Z (2) - Verilog/SystemVerilog/UVM LRM
본문 바로가기
지식 공유/Verilog

[Verilog] 베릴로그 A to Z (2) - Verilog/SystemVerilog/UVM LRM

by 긍수저 2023. 2. 28.
반응형

베릴로그 A to Z (2) - Verilog/SystemVerilog/UVM LRM

 

썸네일

 

안녕하세요,

이번 포스팅을 통해 Verilog/SystemVerilog/UVM의 LRM를 소개하려고 합니다.

 

*LRM(Language Reference Manual)이란?

 

컴퓨터 프로그래밍 언어의 Reference가 되는 Documentation입니다.

해당 프로그래밍 언어의 문법부터 사용 예시, 그리고 개발자가 주의해야 하는 점 등 언어에 관련된 모든 정보를 담고 있습니다.


 

보통 코딩을 하다가 막히면 구글이나 스택오버플로우(Stack Overflow)에 많이 검색하실 텐데요,

Verilog는 반도체 회로설계 / 하드웨어 설계 등 비교적 마이너 한 분야에서 사용되기 때문에 만족할 만한 답변을 찾기 힘든 경우가 많습니다.

 

저도 현업에서 Verilog 관련해서 모르는 부분이 있을 때마다 구글 검색보다 Verilog LRM을 많이 참고하는 편입니다.

 

 

LRM Download Link

 

<IEEE Standard LRM>

 

Verilog LRM

: https://www.eg.bucknell.edu/~csci320/2016-fall/wp-content/uploads/2015/08/verilog-std-1364-2005.pdf

 

SystemVerilog LRM (IEEE 가입 필요)

: https://ieeexplore.ieee.org/document/8299595

 

UVM LRM (IEEE 가입 필요)

: https://ieeexplore.ieee.org/document/9195920

 

현재 SystemVerilog과 UVM의 IEEE Standard LRM은 IEEE GET Program 정책으로 인해 회원가입 후에 무료로 다운로드할 수 있습니다.

 

Verilog LRM은 IEEE GET Program 정책이 적용되어 있지 않아, 일반적으로 다운로드 받을 수 있는 링크를 알려드리니 양해부탁드립니다.

 

 

<Accellera Documentation>

 

UVM 1.2 Reference Model

: https://www.accellera.org/images/downloads/standards/uvm/UVM_Class_Reference_Manual_1.2.pdf

 

UVM 1.2 Userguide

: https://www.accellera.org/images/downloads/standards/uvm/uvm_users_guide_1.2.pdf

 

UVM 1.1 Reference Model

: https://www.accellera.org/images/downloads/standards/uvm/UVM_1.1_Class_Reference_Final_06062011.pdf

 

UVM 1.1 Userguide

: https://www.accellera.org/images/downloads/standards/uvm/uvm_users_guide_1.1.pdf

 

Accellera는 UVM을 표준화한 회사로 Design Verification(DV) 분야에서 명성 있는 회사입니다.

UVM을 표준화한 회사답게 UVM Library 예제 코드와 Userguide 및 Reference Model 등 자료가 풍부합니다.

 

UVM은 현재 1.2 버전까지 출시되었는데요,

1.1 버전에서 1.2 버전 Library 중 지원하지 않는 문법도 있으니 프로젝트 버전에 맞추어 작업하시는 것을 권장드립니다.

 

 

결론

 

사실 LRM을 열어서 원하는 문법을 찾는 것은 상당히 귀찮은 일인데요,

제가 LRM을 추천하는 이유는 바로 Verilog는 하드웨어 동작을 기술하는 HDL이기 때문입니다.

 

HDL은 일반적으로 Sequential 하게 진행되는 프로그래밍 언어와 달리,

Parallel 하게 진행되며 Time slot이 존재하여 동시에 발생하는 Event 일지라도 Event의 성격에 따라 우선순위가 달라집니다.

 

요악하자면, "동시성"과 "우선순위" 때문에 디버깅이 어렵고 신경 쓸게 많다! 입니다.

다음 포스팅은 왜 이런 동시성과 우선순위가 발생하는지에 대해 설명해 보도록 하겠습니다.

 

LRM을 참고하는 습관을 들여두신다면 Race condition 위험을 줄일 수 있고,

고급스러운(또는 표준의) 코드를 짤 수 있으니 HDL 코딩에 많이 참고하셨으면 좋겠습니다.

 

반응형

'지식 공유 > Verilog' 카테고리의 다른 글

[Verilog] 베릴로그 A to Z (1) - EDA Playground 소개  (0) 2023.02.19

댓글