有没有办法在 Verilog 任务中强制任意线为某个值,而无需提前指定线的名称或其分层路径?最好不必为每条可能的线路编写大量的 if 语句。
我的目标是足够模块化,以便从测试台的角度来看,这个任务可以用来驱动任何电线。
我希望做的例子:
task force;
input value;
input [8*N-1:0] string; // Assume N is large enough
begin
force ... = value;
end
endtask
其中三个点“...”将是传入的电线的路径(例如 counter0.clk0.in_enable)。
假设我有 64 根电线,我想将其中的一些强行加高。它们不在单个总线上,它们都有不同的名称或分层路径。在测试台设置中,我会编写一个 C 函数,它读取我关心驱动到某个值的电线表并将每条电线传递给这个 Verilog 任务,但是我如何告诉模拟器哪条电线驱动高而不必每次在任务本身中写出每一根线?
如果我能做到这一点,那么正确的方法是什么?如果我不能这样做,你有什么建议呢?