UPGRADE YOUR BROWSER

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!

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' "

Description

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]

Solution

You can work around this problem in the following ways:

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

Or

  • 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 Created 04/06/2016
Last Updated 10/13/2016
Status Active
Type General Article
Tools
  • Vivado Design Suite - 2015.4
  • Vivado Design Suite - 2016.1
  • Vivado Design Suite - 2016.2
  • Vivado Design Suite - 2016.3