「ベリフィケーション・メソドロジ・マニュアル」p300にある図8-3「定義済みXVCマネージャの構造」
に乗っている2個のxvcはどうやって接続するの??(記述が無いんだよな)と言うわけで調べてみた。
に乗っている2個のxvcはどうやって接続するの??(記述が無いんだよな)と言うわけで調べてみた。
①VMMソースを見ると定義済みXVCマネージャの構造は、図8-2「XVCの構造に使用されるVMMクラス」の
方が近いと思うんだけど。。図8-2にあるxvc_managerに外枠を書いてvmm_xvc_managerとしテストシナリオファイルを入力する矢印を書いてxvc_actionのライブラリをxvc_xactorに変更した図。。
このほうがvmm_xvc_managerをよく表していると思う。
方が近いと思うんだけど。。図8-2にあるxvc_managerに外枠を書いてvmm_xvc_managerとしテストシナリオファイルを入力する矢印を書いてxvc_actionのライブラリをxvc_xactorに変更した図。。
このほうがvmm_xvc_managerをよく表していると思う。
②図8-2にある2本のxvc_acton_cahnnelは??
ソースを見ると
vmm.sv line-1887xvc_action_channel action_chan; xvc_action_channel interrupt_chan;片方は割り込みようだね。
③xvc_action_channelの接続はどうするの??
ソースをなめ尽くしました。。(汗
vmm_xvc_manager.sv
(動的につながる??)
ソースをなめ尽くしました。。(汗
vmm_xvc_manager.sv
line-1504 task vmm_xvc_manager::execute_actions(vmm_xvc_scenario sc, xvc_xactor xvc); ...... line-1529 xvc.action_chan.put(act); ......引数でxvc_xactor xvcを持ってきてaction_chan.put()しているので、特別な記述はいらないのかな。。
(動的につながる??)
割り込みはactionQ[i]からもってくる見たいだね。。
line-1408
line-1408
vmm_xvc_action_block act_b = sc.actionQ[i]; if (!act_b.is_interrupt) continue; act = act_b.action; xvc = act_b.xvc;
interrput_chan line-1425, 1451
xvc.interrupt_chan.sneak(act);
④xvcをどうやって登録するの??
vmm_xvc_manager extends xvc_manager なので。。
マニュアルのp404にある
vmm_xvc_manager extends xvc_manager なので。。
マニュアルのp404にある
function bit add_xvc(xvc_xactor xvc) ;を使用する。
前回のdmac_testのソースではこんな感じになるのかな。
module dmac_test(h_bus h_bus_if) ; // module <-- modelSim_PE対応。。(汗 .... vmm_log log ; string test_senario_file ; vmm_xvc_manager vmm_xvc_manager0 ; dmac_xvc dmac_xvc0 ; mem_xvc mem_xvc0 ; .... initial begin test_scnario_file = "test.snr" ; // テスト・シナリオ log = new("dmac_loging", "0") ; // -- r8.25 -> vmm_xvc_managerを拡張してはだめ -- vmm_xvc_manager0 = new ; vmm_xvc_manager0.add_xvc(dmac_xvc0) ; vmm_xvc_manager0.add_xvc(mem_xvc0) ; vmm_xvc_manager0.run(test_scenario_file) ; .... $finish ; ...
systemVerilog VMM 回路検証 LSI検証