我使用以下代码在 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 分析完成时无法运行
谁能向我详细说明这怎么可能?
我使用以下代码在 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 器件: https ://www.altera.com/support/support-resources/design-examples/design-software/verilog/ver_ram.html
对于 Xilinx 器件(由 Paebbels 给出): http ://www.xilinx.com/support/documentation/sw_manuals/xilinx2016_2/ug901-vivado-synthesis.pdf (第 3 章,“初始化 RAM 内容”)
对于 Lattice 设备: http ://www.latticesemi.com/~/media/LatticeSemi/Documents/UserManuals/EI/iCEcube2_2013-08_userguide.pdf?document_id= 50165(“初始化推断 RAM”)
对于 Microsemi 设备: http: //www.microsemi.com/document-portal/doc_view/129865-ac162-ram-initialization-and-rom-emulation-in-proasic-sup-u-plus-u-sup-devices-应用笔记
用谷歌搜索一下,我发现了这个: How to initialize contents of inferred Block RAM (BRAM) in Verilog
只需谷歌它:-)