Verilog:内存块实例化

Verilog:内存块实例化,verilog,fpga,register-transfer-level,Verilog,Fpga,Register Transfer Level,我使用以下代码在verilog中实例化了二维内存 reg [15:0] data_pattern_even [3:0] = {16'hFFFF,16'hFFFF,16'hFFFF,16'hFFFF}; reg [15:0] data_pattern_ev [3:0] = {16'hFFFF,16'hFFFF,16'hFFFF,16'hFFFF}; 该实例化在模拟中工作正常,但在实际合成和RTL分析完成时失败 有人能向我详细说明这是如何实现的吗?对于Altera设备: 对于Xilinx设

我使用以下代码在verilog中实例化了二维内存

reg  [15:0] data_pattern_even [3:0] = {16'hFFFF,16'hFFFF,16'hFFFF,16'hFFFF};

reg  [15:0] data_pattern_ev [3:0] = {16'hFFFF,16'hFFFF,16'hFFFF,16'hFFFF};
该实例化在模拟中工作正常,但在实际合成和RTL分析完成时失败

有人能向我详细说明这是如何实现的吗?

对于Altera设备:

对于Xilinx设备(如Paepbels所述): (第3章,“初始化RAM内容”)

对于Lattice设备: (“初始化推断RAM”)

对于Microsemi设备:

我用谷歌进行了一次简短的搜索,发现:


只需谷歌一下:-)

错误/警告是什么?没有错误。只是在RTL中,所有的数据模式甚至都不是FFFF。第一个是FFFF,其余都是零FPGA或ASIC合成?如果是FPGA,请列出使用.artix-7 xc7a35和vivado 2014.2的FPGA和工具版本。我从朋友那里听说,verilog中的初始化必须在某些条件下进行,例如重置。这可能是原因吗?请参阅如何在Verilog(或VHDL)中描述用于Xilinx Vivado合成的RAM和ROM。