Professional Documents
Culture Documents
A Tutorial On Incremental Design Using FPGAs From Actel - EE Times
A Tutorial On Incremental Design Using FPGAs From Actel - EE Times
<
| PROGRAMMABLE
DESIGNLINES https://www.eetimes.com/designline/programmable-
LOGIC DESIGNLINE logic-designline/>
But what if further optimization on segments of the design need to be managed after
the initial layout? What if performance is still marginal, or some of the blocks still
contain functional problems?
The Synplify Pro MultiPoint synthesis and the Actel Libero Integrated Design
Environment (IDE) together provide an efficient incremental design flow methodology
for managing true engineering change order (ECO) requirements. This combination
allows modular changes to the original design, whereby only those parts of the design
that need to change will change. This flow minimized the impact on previously proven
segments of the design, thus saving time and resources.
For example, the MultiPoint synthesis solution allows you to establish a multiple of
“compile points” that are preserved in Synplify Pro as future design or redesign areas.
You may also partition a design into small synthesis blocks for modification while
leaving the remainder untouched. For very large designs, MultiPoint allows designing
and synthesizing in incremental blocks in order to avoid system memory or runtime
issues.
Actel Libero easily accepts the updated netlists created by Synplify Pro's MultiPoint
synthesis process. The “incremental” place and route flow found in Libero provides an
ECO methodology, whereby only the parts of the layout that need to be updated will
be, leaving selected parts of the original layout undisturbed. Clearly, layout occurs
much faster with the incremental layout process than having to re-layout the entire
design.
In many cases, you may have to revert back to the original design to make the
functional and performance modifications to meet requirements. An efficient
incremental ECO-mode approach is available to designers using MultiPoint synthesis
within Synplify Pro and place-and-route options within the Libero IDE. This allows
designers to update the design in minimal time without disturbing valuable design
and development work that has already been completed and signed off.
Furthermore, the design “views” in the Libero IDE allow versions of the design to be
saved independently within the same design project. This feature saves prior
constraint and place/route files, enabling a comparison of the incremental design
layout to previous layouts. You can easily determine if a subsequent incremental fix
meets the design objective, or if the previous solution might be the better choice. With
these design views, you can easily make variations each stemming from the original
layout, or serially from each subsequent layout, and compare the results of each
iteration.
Design Tutorial
Prepare your design for an incremental flow
After creating the design, the first step in using Synplify Pro MultiPoint synthesis is to
create an “implementation option” when launching Synplify Pro. This option contains
device, speed grade, global frequency, and other design and optimization parameters.
Additional implementation options using different parameters or design changes can
subsequently be created to test variations of the design. Create (for example)
“implementation 1” for the initial set of parameters and HDL design.
The Synplify Pro “Compile Only” function helps Synplify Pro's SCOPE constraints
editor understand the hierarchy of the design. The SCOPE constraints editor in
Synplify Pro manages the design constraints for synthesis and place-and-route, and it
is also used to define compile points and their respective constraints. Compile points
and constraints are both saved in a constraint file as part of the implementation, the
constraints having been set as part of the compile point definition. Compile points are
defined in a new top level constraint file, or, the definitions can be added to an existing
top level .sdc file.
Next, launch SCOPE from the Synplify Pro toolbar and select “Top Level Module” from
the “Select File Type” dialog. From this menu you can create compile points from a
list of modules identified in the design. Modules or blocks of interest can be “locked”
which then identifies them to Synplify Pro as a compile point. Set other top-level
constraints at this time, such as input/output delays, clock frequencies, or multi-cycle
paths.
Constraints must be specified for each compile point within individual .sdc files, and
separate top-level constraints must be added for the entire design by a top level .sdc
file. The “Create SCOPE File” dialogs make it easy to establish compile points and
constraint files.
After the compile points and constraints have been set up in SCOPE, the top-level
design is ready for synthesis.
Next, open Actel Designer, the physical implementation tool within Libero, and import
the updated netlist into Libero using the new implementation name, and compile the
design (Fig 3 ).
The layout options include “Place Incrementally”, “Lock Existing Placement (Fix)”, and
“Route Incrementally” options. “Place Incrementally” (without locking) uses the
existing placement as a reference starting point, but the result will be a different
layout in most cases. An advanced placement algorithm for Place Incrementally
attempts to ensure timing performance is met. Locking the existing layout with “Lock
Existing Placement (Fix)” increases the predictability of the outcome due to the
incremental changes, because all fixed (unchanged) macros are untouched by
Libero's layout process.
When incorporating incremental changes into the design, you must be sure there is
sufficient room in the FPGA array to accommodate the incremental changes. If the
incremental changes are substantial, and if the design is already tight, the placement
may not be successful. Knowing in advance that incremental changes are coming,
you could use Libero IDE's floor-planning tool to reserve regions on the die to allow
room for the changes. This in combination with locking the initial layout can provide a
quick and efficient way of incorporating the incremental changes while preserving the
desired parts of the original layout.
Incremental routing attempts to preserve the existing routing of the design, but is not
guaranteed as it depends on the nature of the netlist changes.
Summary
The Synplify Pro MultiPoint synthesis and Libero IDE development tools provide an
efficient incremental design flow for true ECO requirements. This combination allows
modular changes to an existing base design whereby only those parts of the design
that need to change will change. This flow minimizes effects on already proven parts
of the design and saves time by not requiring an entire re-layout of the design. With
the “Implementation Options and Views” of Synplify and Libero, one can easily set up
design alternatives for analysis and selection of the best performance options.
Fred Wickersham is Product Marketing Manager for Software Tools at Actel. Fred has
over 25 years experience in semiconductor marketing and product
management coming from National Semiconductor, Philips
Semiconductor, and LSI Logic. In his current role, he is involved with
tactical and strategic support of development tools for Actel FPGA
products. Fred obtained his electronics education at Oregon Institute
of Technology and has a BS from University of Phoenix.
Share this:
SPONSORED CONTENT
Sponsored By CUI
RELATED ARTICLES