DUT에는 데이터 인터페이스와 측 파대 인터페이스로 구성된 두 개의 채널이 있습니다. 이 채널을 통해 전송되는 트랜잭션은 순서대로 이루어져야하지만 한 채널은 다른 채널이 지연되는 동안 멈출 수 있습니다. IE : 채널 A가 트랜잭션 B를 수신 할 때까지 트랜잭션 A 다운 채널 0, 트랜잭션 C 다운 채널 1을 전송하지만 채널 1은 트랜잭션 C를 수신하지 않
SystemVerilog의 경쟁 조건, 특히 UVM에 대해 의문의 여지가 있습니다. 표준적인 경우에 우리가 가지고있는 것은 시계 앞 부분에서 우리의 dut을 몰아 내고 점수 판에 함수 호출을 생성하는 여러 드라이버입니다. 이러한 호출은 동시 적이며 황금 참조 모델에서 일부 공유 변수를 확인/수정하는 것이 현실적입니다. 이러한 작업이 비 차단 할당으로 수행되
내 uvm_sequencer의 run_phase에서 트랜잭션을 가져 와서 트랜잭션이 4KB 경계를 초과하는지 확인하고 싶습니다. 4KB 경계를 넘는 경우 해당 트랜잭션을 여러 트랜잭션으로 분할 한 다음 드라이버로 보냅니다. 드라이버에서 응답을 받으면 모든 분할 트랜잭션 응답을 원래 트랜잭션으로 다시 병합하고 원래 트랜잭션을 생성 한 시퀀스로 다시 반환해야합
아래 표시된 명령을 사용하여 Questasim에서 트랜잭션 클래스의 내용을 인쇄합니다. `uvm_info("VALUES", tx.sprint(), UVM_LOW);
내 거래의 내용 그들 중 A, B, ANS .ALL이 비트 있습니다 입니다. 그러나 문제는 십진수가 아닌 16 진수로 인쇄한다는 것입니다. 이 같은 보여주는 ans integral 8 'h1
uvm_driver에서 확장되는 거의 모든 드라이버가 다음과 같은 작업을 수행함을 알았습니다. get_and_drive는 아래와 같습니다. uvm 소스 코드와 uvm_cookbook을 확인하고 get_and_drive를 찾지 못했습니다. uvm 규칙이 아닌 것으로 보입니다. 관례가 될 가능성이 큽니다. 그래서 내 질문은 : 누가 get_and_drive()
Accellera 웹 사이트에서 UVM 1.2를 다운로드했습니다. 나는 Questasim 10.2를 사용하고 있으며 UVM 버전은 1.1d입니다. 이제 C:\questasim_10.2c에 UVM 1.2 폴더를 복사했습니다. 그럼 난 mtiUvm = $MODEL_TECH/../uvm-1.2
에 modelsim.ini에 mtiUvm = $MODEL_TECH
VHDL의 다차원 사용자 정의 유형을 UVM 환경의 시스템 Verilog에 연결하려고하면 종단 툴 체인 시뮬레이션에서이 문제가 발생합니다. 내 DUT의 VHDL 출력 포트의 TYPE loop_reg_ty IS RECORD
loop_index_value : std_logic_vector(REG_BITWIDTH-1 DOWNTO 0);
lo
UVM에서는 공장이 가장 중요합니다. 그래서 내부적으로 구현됩니다. 다양한 개체를 저장하고 범용 데이터베이스를 만드는 방법을 의미합니다. 나는 개체 이름으로 키가 있고 객체 유형으로 키가있는 배열을 가지고있는 것처럼 알고 있습니다. 하지만이 두 배열이 어떻게 데이터베이스를 구축 할 수 있는지 모르겠습니다. 심지어 내 정보가 옳은지 아닌지도 모른다. 공장 구