roh*_*lla 0 verilog system-verilog
是否允许always_comb在系统verilog中实例化块内的模块?
always_comb
begin
OR OR1 (.Y(A), .A(Z),
end
Run Code Online (Sandbox Code Playgroud)
首先,您的代码不完整.显然,双输入 OR门需要三个连接.
在verilog中,当您实例化模块时,这意味着您正在向板上添加额外的硬件.
必须在模拟开始之前(即在编译时)添加此硬件.在这里,您无法在每个时钟脉冲添加/删除硬件.
一旦实例化,就模拟的每个时间戳执行/检查模块,直到结束.
因此,要执行任何模块,只需实例化它,为其提供所需的输入(如果需要,可在子模块中添加always块).
// Simply instantiate module
OR OR1 (.Y(A), .A(Z), .B(M));
Run Code Online (Sandbox Code Playgroud)
无论哪种方式,您都可以将组合块添加到当前模块本身:
// Directly use ORing
always_comb begin
A = Z | M;
end
Run Code Online (Sandbox Code Playgroud)
有关实例化的更多信息可以从Verilog Module Instantiation,Instantiating Modules and Primitives,Structural Modeling链接获得.