verilog7 [UVM 1.1d] 9. Directed-Test Style (v.s. UVM Style) 1. Directed-Test Style InterfaceDirected-Test Style Interface는 전통적인 명령형 프로그래밍 스타일로, 테스트 작성자가 명시적으로 시퀀서와 상호작용하며 데이터 항목을 생성하고 실행합니다.예제 코드class directed_test extends ubus_example_base_test; `uvm_component_utils(directed_test) ubus_example_tb ubus_example_tb0; function new (string name = "directed_test", uvm_component parent = null); super.new(name, parent); endfunction virtual function void.. 2024. 12. 1. [UVM 1.1d] 6-3. Advanced UVM Topics (UVM CLI) 6.5.3 Generating the Item or Sequence in Advance사전에 아이템 또는 시퀀스를 생성하기는 UVM에서 시퀀스가 실행되기 전에 필요한 아이템이나 하위 시퀀스를 미리 준비하는 방식을 설명합니다. 이는 복잡한 프로토콜 계층을 Layering하거나, 복수의 시퀀스 간 동기화가 필요한 상황에서 유용합니다.주요 개념사전 생성의 필요성: 아이템이나 시퀀스를 미리 생성하면 시퀀스 실행 중에 발생할 수 있는 지연 문제를 최소화하고, 예측 가능성을 높일 수 있습니다.효율성 향상: 시퀀스가 실행되기 전에 필요한 데이터를 준비하여 시퀀스의 실행 속도를 향상시킬 수 있습니다.구현 예시class advanced_sequence extends uvm_sequence#(uvm_sequence_ite.. 2024. 11. 19. [UVM 1.1d] 5-2. Register Model (Register Abstraction Layer) 5-2. Register Model 구축 (Building a Register Model)UVM의 Register Model은 하드웨어 설계에서 레지스터 맵을 추상화하여 검증 환경에서 관리하는 방법을 제공합니다. 이 모델은 레지스터와 필드의 객체를 생성하고, 이를 테스트벤치에서 사용할 수 있도록 조직화하는 데 중점을 둡니다.Register Model을 구성하는 주요 컴포넌트:uvm_reg_block: 레지스터 모델에서 최상위 블록으로, 레지스터와 서브 블록을 포함하는 컨테이너 역할을 합니다.uvm_reg: 실제 레지스터를 나타내는 객체로, 레지스터 필드를 포함합니다.uvm_reg_field: 레지스터 내에서 특정 필드를 나타내며, 여러 필드가 모여 하나의 레지스터를 구성합니다.Register Model .. 2024. 10. 15. [UVM 1.1d] UVM Sequence Macro (uvm_do/uvm_do_with) uvm_do와 uvm_do_with는 UVM에서 자주 사용하는 매크로로, 시퀀스에서 시퀀스 아이템을 생성하고 실행하는 데 사용됩니다. 이 매크로들은 시퀀스를 더 간결하고 명확하게 작성할 수 있도록 도와줍니다. 다음은 uvm_do와 uvm_do_with의 핵심 개념과 사용 방법입니다.1. uvm_douvm_do는 시퀀스 아이템을 생성하고, 시퀀서에 전달하여 실행하는 기본 매크로입니다. 주로 시퀀스의 body 메서드 내에서 사용됩니다.형식: `uvm_do(item)item: 생성하고 실행할 시퀀스 아이템예시:task body(); my_sequence_item req; `uvm_do(req); // 시퀀스 아이템 생성 및 실행endtask 2. uvm_do_withuvm_do_with는 시퀀스 아이템.. 2024. 9. 29. [UVM 1.1d] 2. Transaction-Level Modeling (TLM) 2장: Transaction-Level Modeling (TLM)TLM 개요Transaction-Level Modeling(TLM)은 시스템의 상위 추상화 수준에서 설계 및 검증 작업을 수행하는 기법입니다. TLM은 주로 **데이터 전송(transaction)**을 중심으로 통신을 모델링하며, 설계 검증 시 성능 최적화와 재사용성을 극대화하는 데 도움을 줍니다. TLM 방식은 두 가지 주요 버전인 TLM 1.0과 TLM 2.0으로 나뉘며, 각기 다른 추상화 수준과 활용 방식에서 차이가 있습니다.TLM 1.0과 TLM 2.0 비교TLM 1.0: 메시지 전달 방식(message-passing system)을 기반으로 하며, 타이밍에 대한 명시적 주석이 제공되지 않는 단순한 구조입니다. 주로 이벤트 기반 설계.. 2024. 9. 23. [Verilog] 베릴로그 A to Z (2) - Verilog/SystemVerilog/UVM LRM 베릴로그 A to Z (2) - Verilog/SystemVerilog/UVM LRM 안녕하세요, 이번 포스팅을 통해 Verilog/SystemVerilog/UVM의 LRM를 소개하려고 합니다. *LRM(Language Reference Manual)이란? 컴퓨터 프로그래밍 언어의 Reference가 되는 Documentation입니다. 해당 프로그래밍 언어의 문법부터 사용 예시, 그리고 개발자가 주의해야 하는 점 등 언어에 관련된 모든 정보를 담고 있습니다. 보통 코딩을 하다가 막히면 구글이나 스택오버플로우(Stack Overflow)에 많이 검색하실 텐데요, Verilog는 반도체 회로설계 / 하드웨어 설계 등 비교적 마이너 한 분야에서 사용되기 때문에 만족할 만한 답변을 찾기 힘든 경우가 많습니다... 2023. 2. 28. 이전 1 2 다음 반응형