Synthesizing your Design

To synthesize and implement your design, open the Vivado project file (zynq_fpga.xpr) in the folder fpga/zynq_fpga.

The Flow Navigator pane (left of the window) contains all the available FPGA implementation flow steps.

Using this pane works in a number of steps:

  • functional verification
  • updating the block diagram to reflect the parameters settings from the simulation block diagram and validating this
  • generating the bitstream

This is accomplished from the Flow Navigator pane, either step by step allowing to analyze the results of each step:

  • SYNTHESIS → Run Synthesis;
  • IMPLEMENTATION → Run Implementation;
  • PROGRAM AND DEBUG → Generate Bitstream

Or directly by clicking PROGRAM AND DEBUG → Generate Bitstream, which will automatically execute all the previously mentioned steps.

Upon a successful completion the bistream file (.bit) will be created.

Normally, block diagram output products necessary for synthesis are automatically re-generated every time. However, if for some reason the older files are used, the output products can be forcefully re-generated prior to running synthesis by selecting in the Flow Navigator pane IP INTEGRATOR → Generate Block Design and then selecting Global as the Synthesis Options.

Vivado FPGA Implementation Strategies

Depending on the algorithms and overall strategies selected within the Vivado tool synthesis and implementation* menu, slightly different FPGA implementations (with different area utilization and timing performance) can be obtained.

A strategy is a set of Vivado tool settings, which specify the design flows and the optimization levels. Vivado provides a set of predefined strategies for synthesis and implementation. Alternatively, you can also create your own strategies Vivado's Synthesis & Implementation settings, displayed below, can be accessed from the Flow Navigator pane via Settings.

Vivado Synthesis Settings Vivado Implementation Settings

While synthesis consists of just a single subprocess, the implementation step has multiple such subprocesses, each consisting of a series of steps which can be optimized with specified effort level (-directive setting). Identifying effective strategies can lead to best results based on specified design goals. For example, you can use this when you have a performance oriented goal. By changing the Synthesis and Implementation strategy, minor timing closure violations (e.g., small negative slack) can be resolved. This can even lead to a higher maximum clock frequency for the design. For further details about the Vivado tool Synthesis and Implementation strategies, please refer to the Vivado Design Suite User Guide - Synthesis and Vivado Design Suite User Guide - Implementation.

Implementation subprocesses