使用诸如 reg[127:0] temp[0:999] 之类的大型数组是否会使芯片尺寸更大?
Whether using large arrays such as reg[127:0] temp[0:999] could make chip size bigger?
我是 Verilog 和 FPGA 领域的新手。我脑子里冒出一个问题,使用像reg[127:0] temp[0:999] 这样的大数组可以使芯片尺寸变大吗?
module Memory();
reg [127:0] temp[0:999];
endmodule
在此处给出的示例中,综合工具将优化数组,因为它根本没有被访问(通常任何不会改变;或不影响输出的东西都会被优化掉),所以这个例子实际上最终会成为一个空的设计。
但是,如果阵列被访问和写入,那么它将最终使用芯片中的大量资源。如果它以合适的模式同步读取和写入,那么它将映射到 128000 位的块 RAM,这适用于除最小的 FPGA 之外的大多数 FPGA。或者,如果它是异步读取的,它最终可能会成为分布式 RAM,这会占用更多 space。最后,如果它不符合映射到专用 RAM 资源的规则,它最终将成为 128000 个触发器和大量 LUT,这将不适合许多 FPGA(并且在任何情况下都是非常浪费的)。
我是 Verilog 和 FPGA 领域的新手。我脑子里冒出一个问题,使用像reg[127:0] temp[0:999] 这样的大数组可以使芯片尺寸变大吗?
module Memory();
reg [127:0] temp[0:999];
endmodule
在此处给出的示例中,综合工具将优化数组,因为它根本没有被访问(通常任何不会改变;或不影响输出的东西都会被优化掉),所以这个例子实际上最终会成为一个空的设计。
但是,如果阵列被访问和写入,那么它将最终使用芯片中的大量资源。如果它以合适的模式同步读取和写入,那么它将映射到 128000 位的块 RAM,这适用于除最小的 FPGA 之外的大多数 FPGA。或者,如果它是异步读取的,它最终可能会成为分布式 RAM,这会占用更多 space。最后,如果它不符合映射到专用 RAM 资源的规则,它最终将成为 128000 个触发器和大量 LUT,这将不适合许多 FPGA(并且在任何情况下都是非常浪费的)。