Download as pdf or txt
Download as pdf or txt
You are on page 1of 10

Advertisement


< https://www.edn.com/>

DESIGN < HTTPS://WWW.EDN.COM/CATEGORY/DESIGN/>

DESIGN HOW-TO < HTTPS://WWW.EDN.COM/CATEGORY/DESIGN/DESIGN-HOW-TO/>

A tutorial on incremental design using FPGAs from Actel

AUGUST 23, 2006 < HTTPS://WWW.EDN.COM/A-  COMMENTS 0 <


TUTORIAL-ON-INCREMENTAL-DESIGN-USING- HTTPS://WWW.EDN.COM/A-
FPGAS-FROM-ACTEL/> TUTORIAL-ON-INCREMENTAL-
BY EDN < HTTPS://WWW.EDN.COM/AUTHOR/EDN/>   DESIGN-USING-FPGAS-FROM-
ACTEL/#RESPOND>

Regardless of the amount of time and energy FPGA designers invest attempting to create “right-first-
time” designs, the functional complexities, performance requirements, and high gate counts of large
complex designs frequently require changes to correct logic problems or to provide further
optimization. Compared with a traditional flow, an “incremental” design flow for design/synthesis and
place-and-route physical implementation is highly desirable with regard to repairing or optimizing
specific parts of the design without disturbing other portions that have met their design
requirements.

When a top-down design approach is difficult due to system memory limitations or extensive run
times, an incremental design flow also enables designers to process large designs. Other design
strategies involve freezing sections of a completed design while other parts of the design are
continuing development independently.

Traditional design creation and physical implementation


The common flow for FPGA development is to:

– Create the design in HDL.


– Run pre-synthesis simulation.
– Set constraints.
– Synthesize the design.
– Run post-synthesis simulation.
– Run place and route.
– Analyze the design's timing performance.

If functional and timing performance requirements are met, a programming file is generated and the
device is programmed. Using tools from Actel and its partners, the Libero IDE Platinum toolset is well
equipped to successfully manage a “right-first-time” design. For performance improvements, the
Actel SmartTime timing analysis and constraints management tool provides features for identifying
and resolving critical paths within the design. Additionally, the Magma PALACE physical synthesis
tool can generally improve the overall performance of Actel's Fusion Programmable System Chips
and ProASIC3 devices by a significant margin.

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?
Incremental design flow overview
The design flow (Fig 1 ) closely resembles a traditional synthesis/physical implementation flow, with
the addition of “compile points” after the initial synthesis project setup and compile. Compile points
are parts of a design that act as relatively independent synthesis units: they have their own constraint
files and are optimized individually. They are re-synthesized only as needed, based on an analysis of
design dependencies and the nature of design changes. Compile points are locked, to ensure stability
in incremental design and to permit hierarchical place and route with multiple output netlists (one for
each compile point and one for the top level of the design). A “locked” compile point means that,
during synthesis of its parent, it is not re-optimized, its hierarchical interface is unchanged, and no
boundary optimizations are made. This implies that all instantiations of the same locked compile
point have the same implementation and are treated identically during synthesis.

1. Incremental flow using Synplify Pro and Libero IDE.


(Click this image to view a larger, more detailed version)

Alternatively, design teams can work on individual compile points simultaneously and independently.
Each compile point is treated as an individual block for incremental and individual mapping. Any
number of compile points can be identified and nested into the design. Using compile points, design
modifications can be managed without disturbing other parts of the design.

A “difference-based” incremental synthesis process keeps track of design changes and


dependencies. Re-synthesis occurs only on those parts of the design that are directly affected by the
incremental change. The process also ensures that the incremental changes made are identifiable in
the netlist to the corresponding netlist import and compile function. Keeping the original place and
route as golden as possible is ensured by running the updated netlist using an “Incremental Mode”
and “Lock Existing Layout' option in a Layout Options menu. Updates and modifications will occur to
only those parts of the layout that are directly related to the compile point changes made by the
synthesis tool.

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.

The benefits to this incremental design flow are as follows:

– Large designs can be broken down into smaller blocks, reducing overall
synthesis and place-and-route run times and system memory
requirements.
– Areas of interest in a netlist or layout can be marked in Synplify Pro and
incrementally modified while only minimally affecting the original layout,
and saving re-synthesis and layout run time.
– Traditional bottom-up design requires designers to write and maintain
time-consuming and error-prone scripts that direct the synthesis and
keep track of design dependencies. A difference-based incremental
synthesis eliminates the need for these scripts.

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.

A design is synthesized in three phases:

– Compile points are synthesized from the bottom up, starting with the
compile point at the lowest level of the hierarchy in the design. Each
compile point is synthesized independently. For each compile point,
Synplify Pro creates a subdirectory named after the compile point,
where it stores intermediate files for the compile point such as the RTL
netlist, the mapped netlist, and a model file. The model file contains the
hierarchical interface timing and resource information that is used to
synthesize the next level. Once generated, the model file is not updated
unless there is an interface design change or it is specifically requested
for update by the user.
– After all compile points are synthesized, Synplify Pro synthesizes the
design from the top down, using the model information for each
compile point.
– Synplify Pro then writes out a single netlist and one constraint file for
the entire design.

Analyzing the results in Synplify Pro


There are multiple ways by which you can evaluate the synthesis results. Synplify Pro writes timing
and area to a log file in the implementation directory. The design can be evaluated in the Synplify
Pro's HDL Analyst RTL and Technology schematic views to determine if your design has met the
design goals. You can also view and isolate critical paths, search for and highlight design objects,
and cross-probe between source files. Any errors identified at this level should be fixed.

Synthesize or re-synthesize incrementally


Synplify Pro allows you synthesize incrementally or entirely. If a compile point has not changed from
its original configuration, the model file from the previous synthesis run is used. You can choose to
“run incrementally” which synthesizes only the compile points, and only those that have had a source
code, constraint, or implementation change. Alternatively, the entire design can be re-synthesized
using a “re-synthesize all” command. Typically, to save time, you would choose to synthesize
incrementally.Physical implementation: import the updated netlist into Libero
Once Synplify Pro has generated the netlist, the netlist is automatically part of Libero IDE's File
Manager and is available for place-and-route (layout). The design flow and file manager user interface
with Libero make it easy to identify and select the netlist implementation options created by Synplify
Pro (Fig 2 ).

2. Libero IDE netlist identification and selection.


(Click this image to view a larger, more detailed version)
Assuming the netlist is an updated netlist containing the incremental changes made in the design
and synthesis process, you may first want to take care to preserve the original layout generated by
Libero's initial place-and-route process. Libero easily allows saving the original layout as a physical
design “view” (also called “implementation”), which can be named for convenience such as
“Design_Layout_1”. Rather than overwrite the “Design_Layout_1” file with the updated netlist results,
Libero allows creation of a new “view” within the same project. “Design_Layout_2”, for example, might
be used for implementation and testing of the updated netlist. This feature allows you to compare the
results of the “before and after” incremental netlist change created by Synplify Pro.

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 ).

3. Compile the design.


(Click this image to view a larger, more detailed version)

After compile, Libero's layout menu provides options for the layout process. The default selection in
the layout menu would completely re-place and re-route the entire layout. For netlists that include
incremental updates using the MultiPoint process, Actel recommends using full place-and-route.
Using full place and route will provide the most efficient layout, however all timing will have to be re-
verified. Depending on your strategy for the incremental changes however, it may be advantageous to
only re-place and re-route those parts of the entire layout that in fact are directly affected by the
incremental changes in the design.

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.

Evaluate the updated layout


After layout, use Libero's SmartTime static timing analysis tool to verify the overall device
performance of the new view, analyzing critical paths if necessary. Compare the performance results
of the pre-incremental flow run in Design_Layout_1 to Design_Layout_2 and determine if the
incremental update has accomplished the design goal.

Device programming and debug


Having met the design goals utilizing the ECO flow, Libero IDE provides FlashPro in-system
programming (ISP) and Silicon Sculptor programming tools plus Synplicity Identify' and Actel Silicon
Explorer device debugging and verification tools.

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.

SPONSORED CONTENT

Designing with Power


Supplies, What You Need
to Know
Since 1989, CUI Inc’s
goal has been to offer
the best set of tools,
information, and
services to improve the
experience of the design engineer. Join CUI’s team
of power experts as they present upon some of
the considerations when designing with power
supplies. Topics covered within this
comprehensive set of Training Modules include
GaN technology, the upcoming IEC 62368-1
requirements, customizable adapters, and
internal versus external power supplies. Register
now to access these trainings instantly!

Sponsored By CUI

0 C O M M E NTS O N “ A T U TO R I A L O N I N C R E M E NTA L D E S I G N U S I N G F P G A S
FROM ACTEL”

LEAVE A RE PLY
You must Sign in < https://login.aspencore.com/d045a02d-767d-4f3f-80d7-695dce25d142/login/authorize?
response_type=code&scope=profile%20email%20openid&client_id=cf5f876c-2b69-4672-892d-
1a3f9cd881ea&state=1ebeaf3ac9a88460ad006b20ad5cb434&redirect_uri=https%3A%2F%2Fwww.edn.com%2Fopenid
connect-authorize> or Register < https://login.aspencore.com/d045a02d-767d-4f3f-80d7-
695dce25d142/login/authorize?response_type=code&scope=profile%20email%20openid&client_id=cf5f876c-
2b69-4672-892d-
1a3f9cd881ea&state=dcd1884cb477ece8f41249b11d9c0ac0&redirect_uri=https%3A%2F%2Fwww.edn.com%2Fopenid
connect-authorize> to post a comment.

P R E V I O U S P O S T < H T T P S : // W W W. E D N . C O M / H E A R D - O N - T H E - B E AT- AT I - S C R A P S -
CHIPSETS/>
N E X T P O S T < H T T P S : // W W W. E D N . C O M / C A R E E R - P R O F I L E - J I M - G AT T O - N E T- A D M I N / >

Advertisement

PARTNER CONTENT

ForceTouch™
Leading the TWS
Evolution
14.12.2020

State-of-the-Art
Photography and
Immersive AR/MR
Experiences: REAL3™ 3D
ToF Imager with Longest
Range in the Market
10.12.2020

The solution for


analyzing
extreme
ultraviolet photoresist
08.12.2020

Recent Posts

Satellite communications expand 5G’s reach, add system complexity < https://www.edn.com/satellite-
communications-expand-5gs-reach-add-system-complexity/> / Analyze SENT signals from automotive
sensors using an oscilloscope < https://www.edn.com/analyze-sent-signals-from-automotive-sensors-using-
an-oscilloscope/> / 4 basic steps in implementing an AI-driven design workflow < https://www.edn.com/four-
basic-steps-in-implementing-an-ai-driven-design-workflow/> / Scalable current load offers constant
resistance mode < https://www.edn.com/scalable-current-load-offers-constant-resistance-mode/> / High-
voltage supplies deliver 10 kW of power < https://www.edn.com/high-voltage-supplies-deliver-10-kw-of-
power/>

Recent Comments

Pesky Varmint on Scalable current load offers constant resistance mode < https://www.edn.com/scalable-
current-load-offers-constant-resistance-mode/#comment-27938>

Dmm137621 on Scalable current load offers constant resistance mode < https://www.edn.com/scalable-
current-load-offers-constant-resistance-mode/#comment-27937>

David Ashton on If only I had been holding a screwdriver! < https://www.edn.com/if-only-i-had-been-holding-


a-screwdriver/#comment-27935>

David Ashton on If only I had been holding a screwdriver! < https://www.edn.com/if-only-i-had-been-holding-


a-screwdriver/#comment-27934>

techharsh on Prevent tampering in energy meters < https://www.edn.com/prevent-tampering-in-energy-


meters/#comment-27933>

Archives

Select Month

Categories

Select Category
PODCAST

46:40

The Button
Revolution Is Here |
On Succession | The
Internet of IoT

The Weekly Brie ng podcast:


The capacitive touchscreen

VIEW ALL EPISODES

LISTEN

Advertisement

Search …

SEARCH

You might also like