もう何回目になるのかわからないが、そろそろUVMを覚えなければならないのでVivado Simulatorを使ってUVMに入門してみよう。
前回作ったテストが、Vivado 2023.2 だと、なんとなく動かなかったので、DSimでも試行している。
参考にしているのは例によって以下のウェブサイトだ:
dsim -top work.tb_top -genimage image -uvm 1.1d +incdir+model -f filelist.f +acc+b dsim -image image -uvm 1.1d -waves waves.mxd +UVM_NO_RELNOTES +UVM_TESTNAME=sample_test
とりあえず動いたようだ。Vivadoだと同じデザインで何で動かないのだろうか...?
UVM_INFO @ 0: reporter [RNTST] Running test sample_test... UVM_INFO @ 0: uvm_test_top.env.agent.driver [DRIVER] Hi UVM_INFO @ 0: uvm_test_top.env.agent.monitor [MONITOR] Hi UVM_INFO @ 0: uvm_test_top.env.agent [AGENT] Hi UVM_INFO @ 0: uvm_test_top.env [ENV] Hello ENV UVM_INFO @ 0: uvm_test_top [TEST] Hello World UVM_INFO @ 0: reporter [UVMTOP] UVM testbench topology: -------------------------------------------------------------- Name Type Size Value -------------------------------------------------------------- uvm_test_top sample_test - @448 env sample_env - @460 agent sample_agent - @468 driver sample_driver - @477 rsp_port uvm_analysis_port - @494 seq_item_port uvm_seq_item_pull_port - @485 monitor sample_monitor - @503 sequencer sample_sequencer - @511 rsp_export uvm_analysis_export - @519 seq_item_export uvm_seq_item_pull_imp - @625 arbitration_queue array 0 - lock_queue array 0 - num_last_reqs integral 32 'd1 num_last_rsps integral 32 'd1 -------------------------------------------------------------- UVM_INFO ./model/sample_seq_lib.sv(9) @ 0: uvm_test_top.env.agent.sequencer@@write_seq [write_seq] write_seq pre_body() raising run objection Hello SEQ UVM_INFO @ 200: uvm_test_top.env.agent.monitor [MON] write addr=10h data=55h