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# 55796

2013.1 - Vivado - When does the ELF file associated with a Vivado project get added to the simulation/bitstream?

Description

When does the ELF file associated with a Vivado project get added to the simulation/bitstream?

Solution

Seen below are the details of how the ELF file is handled in each process flow in Vivado design tools.

Implementation Flow:

  • When a post synthesis design (or any design after that) is opened, if an ELF association is found, the ELF data is processed and the INIT strings for the block RAM cells in the design are populated.
  • Subsequently, when you generate bitstream, write_bitstream uses the design that has the block RAMs already populated, hence this data gets included in the generated bitfile also.
  • In the project based flow, because write_bitstream always starts by opening the latest implemented design, the most current version of the ELF file data is used in the generated bitstream.
  • After implementation is complete, if the user provides newer ELF files, the contents of those will automatically be used for bitstream, without requiring any re-implementation.

Behavioral Simulation Flow:

  • This flow is fundamentally different from the implementation flow, since there is no input design present when behavioral simulation is launched.
  • As part of the launch_*sim command, the ELF file data is converted into .MEM files which are read by the behavioral simulation model files.
  • What .MEM files need to be generated are specified in the .BMM file that is being used.
  • Because the .BMM files are automatically generated by the tool, this guarantees that the simulation model and the .MEM files are in sync.
  • Because the ELF file is converted into corresponding .MEM files at the time of simulation launch, the most current ELF file data is still used for each simulation launch.

Post Synthesis/Implementation Simulation Flow:

  • These flows are similar to the implementation flow, in that there is always a design present when these simulations are launched.
    • Hence the ELF data is populated into the INIT strings the same way as described above for the implementation flow.
    • For actual simulation, the .MEM files are still generated based on the init_file specification.
  • Because the ELF data comes from the input design, and because the ELF data is populated into the design each time the design is opened before simulation, the most current ELF data is used for each simulation.
AR# 55796
Date Created 04/30/2013
Last Updated 04/30/2013
Status Active
Type General Article
Tools
  • Vivado Design Suite - 2013.1