默认类型输入和输出信号 SystemVerilog
Default type input and output signals SystemVerilog
我正在尝试自学 SystemVerilog(我是一名大学生,在我的项目中我一直使用 VHDL)并且我有一个关于数据类型的问题。到目前为止,我想我理解了 reg
、wire
和 logic
之间的区别、利弊,但我想知道,在这个代码片段中:
module example(
input clk,
input nrst,
input nset,
input up,
input [3:0] preload,
output [3:0] counter
);
分配给输入和输出的默认类型是什么?它符合逻辑吗(因为它是 "everyday" 电路的最佳选择)?
在SystemVerilog中,wire
和reg/logic
是密切相关但又相互独立的概念。 logic
是一个数据类型,wire
表示一个网络(或网络)信号种类。有两种基本信号类型:nets(wire) 和 variables(var) 在端口列表声明中,默认为 wire logic
,表示 1 位 4 态网络。
当您指定 datatype 而没有 kind 时,默认值开始变得更多,反之亦然。对于输入,默认的未指定 kind 始终是一个网络,但对于输出,只要您指定了 datatype,默认的 kind 就会变为 var
。 Verilog 吸引不喜欢编码的懒惰工程师。我建议明确并且永远不要依赖默认值。
我发布了一些例子 here。
我正在尝试自学 SystemVerilog(我是一名大学生,在我的项目中我一直使用 VHDL)并且我有一个关于数据类型的问题。到目前为止,我想我理解了 reg
、wire
和 logic
之间的区别、利弊,但我想知道,在这个代码片段中:
module example(
input clk,
input nrst,
input nset,
input up,
input [3:0] preload,
output [3:0] counter
);
分配给输入和输出的默认类型是什么?它符合逻辑吗(因为它是 "everyday" 电路的最佳选择)?
在SystemVerilog中,wire
和reg/logic
是密切相关但又相互独立的概念。 logic
是一个数据类型,wire
表示一个网络(或网络)信号种类。有两种基本信号类型:nets(wire) 和 variables(var) 在端口列表声明中,默认为 wire logic
,表示 1 位 4 态网络。
当您指定 datatype 而没有 kind 时,默认值开始变得更多,反之亦然。对于输入,默认的未指定 kind 始终是一个网络,但对于输出,只要您指定了 datatype,默认的 kind 就会变为 var
。 Verilog 吸引不喜欢编码的懒惰工程师。我建议明确并且永远不要依赖默认值。
我发布了一些例子 here。