我正在尝试自己学习SystemVerilog(我是一名大学生,在我的项目中,我一直使用VHDL),我对数据类型有疑问。到目前为止,我想我已经理解了reg
,wire
和logic
之间的优缺点,但是我想知道这段代码片段:
module example(
input clk,
input nrst,
input nset,
input up,
input [3:0] preload,
output [3:0] counter
);
分配给输入和输出的默认类型是什么?是逻辑(因为它是“日常”电路的最佳选择)?
答案 0 :(得分:3)
在SystemVerilog中,wire
和reg/logic
密切相关,但是是独立的概念。 logic
是数据类型,wire
表示网络(或网络)信号种类。基本信号类型有两种:nets(电线)和变量(var)在端口列表声明中,默认值为wire logic
,表示1位4状态网络。
当您指定没有种类的数据类型时,默认值开始引起更多的关注。对于输入,默认的未指定种类始终是一个净值,但是对于输出,一旦指定了数据类型,默认的种类即为var
。 Verilog吸引了不喜欢编码的懒惰工程师。我建议您保持明确,不要拖延默认设置。
我有一些张贴在here上的例子。