User Manual

Projects Chapter 3. Concepts
Projects
A project represents the collection of source netlist and constraints files, flow options, IP configuration files,
and output files for a particular design.
Implementations
A Project may have multiple implementations. Each implementation contains the set of flow options (also
called implementation options) configuring the project’s run through the flow, and the flow outputs for this
particular configuration. With this capability, the same design (netlist) can be implemented (run through
the flow) with different sets of timing constraints or placement and routing optimizations, just by creating
multiple implementations for the same project.
Each implementation is associated with an implementation directory located under the project directory
(where the project file is located). Implementation directories are named with the implementation name
and contain flow output files. Output files are divided into two sub-directories under the implementation
directory: output and reports. The output directory contains files that are intended to be consumed by
other tools later in the flow, such as netlists for simulation or the FPGA bitstream for programming. The
reports directory contains files intended to be viewed and analyzed while running the ACE flow, such as
timing reports and flow statistics.
Implementation definitions are not individually saved to files but are stored as part of the project file. In the
GUI, project implementations can be browsed in the Projects View. Selecting an implementation activates it
and displays its implementation options in the Options View.
Once an implementation has been run through the flow, the state of the database (netlist, constraints,
placement, and routing data) may be saved to an Acxdb file (See Saving Implementations). Implementations
may later be restored from previously saved Acxdb files (See Restoring Implementations).
Implementation Options
There are a wide variety of configurable implementation options stored with each individual implementa-
tion which will alter how ACE processes that implementation of the design as it moves through the flow. In
the Options View, the most-commonly used implementation options are grouped by flow steps, to indicate
which flow step the option affects. Changing the value of an option will cause that flow step’s current results
(if any) to become invalid, and that flow step (and all later flow steps) will need to be rerun.
A report of all available implementation options may be generated via the Tcl command
report impl options. This command may also be used to compare the implementation options
configuration of an implementation with the default values.
The values of implementation options may be set with the Tcl command set impl option, or reset back
to the default values with reset impl option.
Option Sets: Because some implementation options have a large impact upon runtime, and because the
QOR benefits of these implementation options may vary significantly by design (often a QOR gain, but
sometimes a slight QOR loss), many of the performance-related implementation options are disabled by
default for newly created projects and implementations.
Achronix QOR experts have compiled subsets of implementation options known to optimize a wide variety
of design types. These ”option sets” are made available to users in the Multiprocess View with descriptions,
and may be used to generate new implementations with the indicated implementation options enabled.
Each Option Set shown in the Multiprocess View consists of override values for a small subset of all the
implementation options. These overriding values are applied to newly generated implementations over the
existing implementation option values inherited from a user-selected template implementation.
It is worth repeating that the Option Sets don’t contain a complete assignment of all the implementation
options. Each Option Set only contains a small subset, which override the implementation options
inherited from the template implementation. The overriding implementation options in each Option
Set are subsets of the entire set of QOR-oriented implementation options. They only change some
of the implementation options, and all the rest are inherited from the template implementation. The
225 http://www.achronix.com UG001 Rev. 5.0 - 5th December 2012