Verification Engineerの戯言
VMM-1.0のsv/std_lib/vmm_scheduler.svファイルの次の部分をみてください。
task vmm_scheduler::schedule_cycle(); vmm_data data; vmm_channel srcs[$]; int unsigned ids[$]; while (1) begin srcs.delete(); ids.delete(); ... 途中、すごーく省略 endtask
srcsとidsで型は違いますが、queueなのでdelete関数にはインデックスが必要です。
つまり、次のようにする必要があるのですが、
または、次のような簡単な方法で、
つまり、次のようにする必要があるのですが、
begin int i; int size = srcs.size(); for(i=0 ; i<size ; i++ ) begin srcs.delete(0); ids.delete(0); end endqueueのサイズ回、先頭アイテムを削除します。
または、次のような簡単な方法で、
srcs = {}; ids = {};
検証、Verification、SystemVerilog、VMM、Verification Methodology Manual