Projects, Implementations, Implementation – Achronix ACE Version 5.0 User Manual

Page 237: Project

Advertising
background image

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

Advertising