interface dut_if();
logic sig_a_i;
logic [1:0] sig_b_i;
endinterface
module tb();
dut_top dut(
.sig_a_i (vif.sig_a_i);
.sig_b_i (vif.sig_b_i);
);
dut_if vif();
endmodule
Как создать метод task()
внутри класса interface
, чтобы я мог легко вызывать его в своем классе test
для force
/ release
любого сигнала DUT, который мне нравится?
class dut_testA_vseq extends dut_base_vseq;
...
virtual task body();
p_sequencer.vif.force_dut_signal(0);
endtask
endclass
Я новичок в SV и не знаю, как написать force_dut_signal()
, который может обслуживать любой сигнал (один бит или шина).
task force_dut_signal(logic? port_name, bit? force_val) begin
force port_name? = force_val;
endtask
?
в приведенном выше фрагменте кода есть части, которые я не знаю, если это возможно или что.
Заранее спасибо!