在 verilog 模块中使用 BRAM
Using BRAM in verilog module
我想将 BRAM 用于模型并将输出存储在该 BRAM 的另一个块中。但是在模拟的时候,出现如下错误:
[VRFC 10-3236] concurrent assignment to a non-net 'roundreg' is not permitted ["C:/Users/.../keccak_new2/keccak.v":58]
代码:
56 reg [23:0] roundreg [1599:0];
57
58 ROUNDFUNC RF1(.clk(clk), .in(roundreg[0]), .out(roundreg[1]));
模块输出只能连接到 Verilog 中的网络类型,roundreg[1]
不是网络。如果可能,您可以将 roundreg
声明为 wire [23:0] roundreg [1599:0]
,尽管这可能会影响其余代码的工作方式。请注意,如果您可以使用 SystemVerilog,则可以避免这些复杂性,并改用 logic
类型。
您还可以查看此问题以了解如何为 FPGA 设计推断块 RAM:
我想将 BRAM 用于模型并将输出存储在该 BRAM 的另一个块中。但是在模拟的时候,出现如下错误:
[VRFC 10-3236] concurrent assignment to a non-net 'roundreg' is not permitted ["C:/Users/.../keccak_new2/keccak.v":58]
代码:
56 reg [23:0] roundreg [1599:0];
57
58 ROUNDFUNC RF1(.clk(clk), .in(roundreg[0]), .out(roundreg[1]));
模块输出只能连接到 Verilog 中的网络类型,roundreg[1]
不是网络。如果可能,您可以将 roundreg
声明为 wire [23:0] roundreg [1599:0]
,尽管这可能会影响其余代码的工作方式。请注意,如果您可以使用 SystemVerilog,则可以避免这些复杂性,并改用 logic
类型。
您还可以查看此问题以了解如何为 FPGA 设计推断块 RAM: