We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

Page Bookmarked

AR# 66984

2016.x Vivado IP Flows - BRAM memory initialization in a user IP gives the following: "Critical Warning: [Synth 8-4445] could not open $readmem data file '32x16_rom_init.mem' "


I have a Vivado project that has an XPM RTL Template. There is also a .mem file for memory initialization for the XPM. 

I package the project using IP Packager (Using the Package your Project option). I observe that the .mem file gets pulled into the Synthesis and the Simulation filesets correctly in the Packager Wizard.

I then instantiate the IP in a new project and run Synthesis. I check BRAM initialization and find that the BRAMs are Not Initialized.

Vivado cannot bind a dynamic memory init file '32x16_rom_init.mem' which is required by a packaged IP which used XPM_LIBRARIES.

This leads to the following warning:

CRITICAL WARNING: [Synth 8-4445] could not open $readmem data file '32x16_rom_init.mem'; please make sure the file is added to project and has read permission, ignoring [/proj/Vivado/2015.4/data/ip/xpm/xpm_memory/xpm_memory_base.sv:596]


You can work around this problem in the following ways:

  • Replace the memory init file "32x16_rom_init.mem" with "32x16_rom_init.mif".


  • Use the following command:
set_property CONFIG.C_MEMORY_INIT_FILE [get_files 32x16_rom_init.mem] [get_ips xpm_mem_gen_top_0]
AR# 66984
Date 06/15/2017
Status Active
Type General Article
  • Vivado Design Suite - 2015.4
  • Vivado Design Suite - 2016.1
  • Vivado Design Suite - 2016.2
  • Vivado Design Suite - 2016.3