2

我在一个示例中遇到了一个输入和输出的系统verilog代码declaration的示例,module没有说明它们的类型,例如logicwire...

module mat_to_stream (
  input [2:0] [2:0] [2:0] a,b,
  input newdata,
  input rst, clk,
  output [2:0] [7:0] A_out, B_out);
  ...rest of code...

logic陈述和不陈述任何类型之间有什么区别?

4

2 回答 2

9

logic陈述和不陈述任何类型之间没有区别。

input newdata,

相当于

input logic newdata,

SystemVerilog IEEE Std (1800-2009) 在“23.2.2.3 确定端口类型、数据类型和方向的规则”一节中对此进行了描述。

于 2011-04-01T15:05:06.347 回答
1

不为输入分配数据类型是很常见的,因为它们几乎总是应该是wire.

input [7:0] newdata

名义上相当于:

input wire [7:0] newdata

它实际上正在接受`default_nettype wire可以更改为uwire强制编译器检查唯一驱动程序,这将在多个驱动器的接线错误时失败。

使用logic作为类型允许自动选择对输出有用的和允许更容易折射wire的类型。reg输入永远不能是reg类型。

Stuart Sutherlands SNUG2013 论文第 12 节介绍了如何uwire在工具正确支持的情况下更好地暗示设计意图。

于 2014-01-17T16:13:27.063 回答