对Verilog的简单问题我似乎找不到答案:

对Verilog的简单问题我似乎找不到答案:,verilog,Verilog,在Verilog模块中,参数的正确术语是什么 变量未定义时默认为什么 它们被称为端口。Verilog模块不能像函数一样调用,因为它表示具有输入、输出、双向引脚等的硬件模块,因此只能实例化。这些实例可以通过它们的端口再次相互连接。这些端口将数据/值/信号输入和输出模块。因此,端口具有与其关联的方向。与函数中仅在调用函数时传递值的参数不同,一旦通过wire/reg寄存器连接到端口,/。。。对连接变量的任何更改都会通过端口自动传输到模块 链接到模块-端口说明 Verilog的函数和任务都带有参数 未初

在Verilog模块中,参数的正确术语是什么

变量未定义时默认为什么


它们被称为端口。Verilog模块不能像函数一样调用,因为它表示具有输入、输出、双向引脚等的硬件模块,因此只能实例化。这些实例可以通过它们的端口再次相互连接。这些端口将数据/值/信号输入和输出模块。因此,端口具有与其关联的方向。与函数中仅在调用函数时传递值的参数不同,一旦通过wire/reg寄存器连接到端口,/。。。对连接变量的任何更改都会通过端口自动传输到模块

链接到模块-端口说明

Verilog的函数和任务都带有参数

未初始化的变量具有未知值,该值由x表示

这其中有一些细微差别

未连接的导线,tri将是由z表示的三态

任何4状态逻辑-reg、integer、time将默认为x 实类型为0。

Verilog中的模块表示层次结构,该层次结构仅用于按名称对对象进行分组并复制这些对象。当您运行模拟或合成到硬件时,该层次结构将变平。模块的端口将两个信号名称连接在一起,平坦化后,只有一个信号具有多个名称。因此,模块在结构上通过端口连接

术语参数是来自软件的术语,通常表示在程序调用例程(如函数或任务)时复制或引用的对象

对于第二个问题,如果引用变量而未定义它,则通常是编译器错误。懒惰的工程师有一个例外。如果在端口连接中引用未定义的变量,则该变量将隐式声明为1位连线。如果没有任何东西驱动该导线,则该导线具有默认值“z”,该值在任何表达式中都与“x”相同


此功能最初用于自动生成门级网络列表,其中每个信号都是1位导线,但会导致RTL描述出现许多问题。我们强烈建议使用编译器指令“default_nettype none”来防止粗心的打字错误

什么是论点?参数是常量。默认情况下,变量为x未定义。