전체 글 (17) 썸네일형 리스트형 [UVM] TLM이란 - 1 TLM은 Transaction Level Modeling 으로 트랜잭션 단위를 전송하는 것입니다. 오늘 다룰 것 : TLM이란 , TLM의 구성요소, port 예시 Transaction 단위란? 예를 들어서 class Transaction; rand bit [7:0] data; bit [1:0] source; bit [1:0] destination; // 생성자 function new(); // 생성자 로직... endfunction endclass 이런 코드가 있으면 저 클래스 하나단위 (data, source address, destination address setting)를 한 묶음으로 보내는걸 transaction이라 합니다. AMBA bus에서도 transaction에 대한 설명이 나옵니다. .. [SystemVerilog] Modport와 Clocking block 기본적인 System verilog 문법을 공부한 뒤, 이해 안가는 것들이 있었는데 바로 modport와 clocking이다. 두 개의 문법은 어느곳에서 이해가 가도록 설명이 안되어있어서 공부 후에 이해가 가도록 정리해보았다.. MODPORT? modport란 interface내에서 중복된 port들을 사용하는게 번거로울때 선언한다. 복잡한 코드를 단순하게 만들어주는 역할! 예를 들어, axi protocol을 사용할때 axi bus에 필요한 signal들(id, data, addr 등..) 을 interface로 선언한다. interface를 통하여 input과 output signal을 표현할 수는 있다. 하지만, interface signal을 input과 output을 바꿔서 선언하고싶으면 어캄?.. [DV] Synopsys'coverage / VCS coverage / 커버리지란? / 커버리지 종류 1편 VCS, SIMV 명령어 정리 : 시놉시스 VCS flow와 simv/명령어 정리/실습/Gate level simulation(GLS) (tistory.com) 시놉시스 VCS flow와 simv/명령어 정리/실습/Gate level simulation(GLS) kksystem verilog 의 유튜브를 참고하여 정리해보았습니다. https://www.youtube.com/@kksystemverilog5965 KK SystemVerilog KK와 함께하는 System Verilog www.youtube.com VCS 란 ? Synopsys사의 VCS, verdi 모두 degital 회로에서 검증 somin-is-hardware-queen.tistory.com kk systemverilog를 참고하.. 시놉시스 VCS flow와 simv/명령어 정리/실습/Gate level simulation(GLS) kksystem verilog 의 유튜브를 참고하여 정리해보았습니다. https://www.youtube.com/@kksystemverilog5965 KK SystemVerilog KK와 함께하는 System Verilog www.youtube.com VCS 란 ? Synopsys사의 VCS, verdi 모두 degital 회로에서 검증 및 debugging용으로 쓰이는 tool입니다. S사는 verdi를 쓰고 있으며, Cadence사의 xceilum 을 compiler로 씁니다. VCS flow overview simulation하기 까지 단계는 다음과 같이 나누어져 있습니다. Analysis ↓ Elab, Compile ↓ Simulation Analysis : 코드의 문법 ( 세미콜론; .. [Verilog] Blocking VS Non-blocking 차이 블로킹과 논블로킹 Verilog에서 blocking과 non-blocking 할당은 둘 다 레지스터 값을 변경하는 데 사용됩니다. 하지만, 이 둘은 다른 작업을 수행하며, 이를 이해하기 위해서는 Verilog에서 작성된 코드의 시뮬레이션 단계에서 일어나는 동작 순서에 대한 이해가 필요합니다. blocking 할당은 = 기호를 사용하여 값을 할당합니다. 이 할당은 현재 할당 문장이 완료된 후 다음 문장이 실행되기 전에 완료됩니다. 즉, 이전 할당 문장이 완료되기 전에 다음 문장이 실행되지 않습니다. 이러한 특징으로, blocking 할당은 순차적인 동작을 수행하는 경우에 유용합니다. 예를 들어, 아래 코드에서 blocking 할당 연산자를 사용하여 a와 b의 값을 순차적으로 변경합니다. module example( inpu.. [Verilog] initial begin 은 언제쓰일까? initial begin 구문은 Verilog에서 초기화(initialization)를 수행하는 데 사용됩니다. 이 구문은 디자인 내에서 딱 한 번 실행되며, 디자인이 시작될 때 실행됩니다. initial begin 구문을 사용하여 디자인 내부에서 시뮬레이션 시에 초기화를 수행하거나, 시뮬레이션 실행 전에 파일을 읽어들이는 등의 초기화 작업을 수행할 수 있습니다. 초기화 작업은 시뮬레이션의 이상적인 동작을 보장하기 위해 중요합니다. 예를 들어, 다음은 initial begin 구문을 사용하여 Verilog 모듈 내에서 시뮬레이션 초기화를 수행하는 간단한 예제입니다. module example( input clk, input reset, output reg data_out ); reg [7:0] data_.. Module과 Instance의 차이점 모듈( module ) 이란? module은 Verilog HDL에서 설계하는 기본 단위입니다. 모듈은 독립적인 하드웨어 구성요소로, 입력(input), 출력(output), 회로 동작 등을 포함할 수 있습니다. 모듈은 다른 모듈에서 인스턴스화 될 수 있습니다. 인스턴스(instance) 란? 인스턴스(instance)는 Verilog HDL에서 모듈을 사용하는 방법 중 하나입니다. 인스턴스는 모듈을 복사하여 구현된 하드웨어 구성요소를 의미합니다. 모듈 인스턴스는 원래 모듈과 동일한 기능을 수행하며, 모듈과는 달리 구체화된 실제 하드웨어를 나타냅니다. 다음은 모듈과 인스턴스를 사용하여 간단한 2:1 멀티플렉서를 구현하는 Verilog HDL 코드 예제입니다. // 2:1 멀티플렉서 모듈 정의 module.. [Verilog] 시뮬레이션이란? 테스트벤치란? DUT란? 설계를 하며 헷갈렸던 부분을 설명하면서 정리하는 시간을 가져봅니다. DUT(Design under test) 란? 시뮬레이션(test)하고자 하는 설계된 환경 예를 들어 하나님이 사람을 설계했다고 가정했을때 사람의 소화계로 생각해봅시다. 사람의 소화계가 하나님에 의해 설계되어있습니다. 설계된 소화계를 우리는 DUT(design under test) 라고 합니다. 실제로는 Verilog와 VHDL로 작성된 하드웨어 설계입니다. 여기서 input(인풋)은 ? 눈, 입, 코 output(아웃풋)은 ? 소장, 항문과 요도 만일 설계가 잘못된다면 .. (만약 인풋과 아웃풋을 반대로 설정했다면?) 큰일이 납니다. 사람을 창조하기 전에 설계단계에서 잘못된 것을 알아차려야겠죠! 예를들어 물을 .. 이전 1 2 3 다음