0
是否允许在系统verilog中实例化always_comb
块中的模块?是否允许在系统verilog中实例化always_comb块内的模块?
always_comb
begin
OR OR1 (.Y(A), .A(Z),
end
是否允许在系统verilog中实例化always_comb
块中的模块?是否允许在系统verilog中实例化always_comb块内的模块?
always_comb
begin
OR OR1 (.Y(A), .A(Z),
end
首先,您的代码不完整。显然,一个双输入或门需要三个连接。
用Verilog,当你实例一个模块,这意味着你要添加额外的硬件到板。
该硬件必须加入仿真开始之前(即在编译时间)。在这里,您不能在每个时钟脉冲添加/删除硬件。
一旦实例化,模块将被执行/检查每个时间戳的模拟,直到结束。因此要执行任何模块,只需实例化它,为其提供所需的输入(并在必要时将always块添加到子模块本身中)。
// Simply instantiate module
OR OR1 (.Y(A), .A(Z), .B(M));
无论哪种方式,你可以一个组合模块添加到当前模块本身:从Verilog Module Instantiation,Instantiating Modules and Primitives,Structural Modelling链接获得的实例
// Directly use ORing
always_comb begin
A = Z | M;
end
更多信息。
如果您确实想使用条件硬件,请将您的模块转换为任务或功能并有条件地调用它。它增加了您的硬件资源,但会满足您的要求。 –
有没有什么特别的理由让你尝试这个而不仅仅是实例化呢? – Morgan