【问题标题】:Verilog: Pass a vector as a port to a moduleVerilog:将向量作为端口传递给模块
【发布时间】:2012-05-20 09:32:47
【问题描述】:

我有两个模块

  1. counter:输出是一个称为error_count的向量。
  2. lcd:在 LCD 上显示代码的模块。输入包括时钟和error_count。

以下代码的sn-p最相关并附在下面:

  1. 顶级模块:

    counter counter1 (..., error_count);
    lcd lcd1 (..., error_count);
  2. 计数器模块:

    模块计数器(...,error_count); ... 输出 reg [31:0] error_count = 0; ... //每个时钟周期更新计数器 端模块
  3. 液晶模组:

    模块 lcd (..., error_count); ... 输入 [31:0] 错误计数; ... //error_count 用于在 LCD 上显示 端模块

这段代码有什么问题?显示器只打印 0 作为输出。我传递向量的方式有什么问题吗?

附加信息: 我正在使用 Xilinx Spartan 3E 入门套件来测试此代码。 LCD 代码很好,我已经用本地计数器(reg[31:0])对其进行了测试。

【问题讨论】:

    标签: module verilog xilinx lcd spartan


    【解决方案1】:

    您需要在顶层模块中声明 32 位线以连接两个端口。

    wire [31:0] error_count;

    如果你忽略它,就会声明一个隐式网络,它只是一个 1 位线,不会正确连接向量。

    这个错误是一个经典的 Verilog 陷阱。这里的演示文稿很好地解释了这个和其他:

    http://www.sutherland-hdl.com/papers/2006-SNUG-Boston_standard_gotchas_presentation.pdf

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-11
      • 1970-01-01
      • 1970-01-01
      • 2018-09-07
      • 1970-01-01
      相关资源
      最近更新 更多