FPGA開発日記

カテゴリ別記事インデックス https://msyksphinz.github.io/github_pages , English Version https://fpgadevdiary.hatenadiary.com/

Vivado Simulatorを使ってUVMに入門する (5. DSimで動作を確認する)

もう何回目になるのかわからないが、そろそろUVMを覚えなければならないのでVivado Simulatorを使ってUVMに入門してみよう。

前回作ったテストが、Vivado 2023.2 だと、なんとなく動かなかったので、DSimでも試行している。

参考にしているのは例によって以下のウェブサイトだ:

sites.google.com

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