【问题标题】:verilog 16x16 register file designverilog 16x16 寄存器文件设计
【发布时间】:2017-12-14 02:52:10
【问题描述】:

我是 Verilog 编码的新手,正在尝试设计一个 16x16 的寄存器文件。

到目前为止,我已经设计了一个 16 位寄存器,它由 16 个带启用的 D 触发器组成。我现在正在尝试设计寄存器文件体,它将由 16 个 16 位寄存器组成。输入是 d[15:0]、e[15:0]、时钟和复位。输出将是 q[15:0][15:0]。如何在 Verilog 中指定此输出?

【问题讨论】:

    标签: verilog cpu


    【解决方案1】:

    您的代码q[15:0][15:0] 将为您提供一个二维数组,其中每个元素为 1 位。那不是你想要的。 下面的代码将为您提供一维数组:16 个 reg,每个 16 位宽。

    output reg  [15:0] q [15:0];
    

    请注意,在 verilog 中,您应该先将此类数组展开为向量,然后再在模块之间传递它。阵列式端口是 SystemVerilog 的一项功能。

    【讨论】:

    • Verilog 端口不能是二维数组或解包。 Verilog 端口可以是压缩向量。 SystemVerilog 没有这个描述。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多