FPGA Editor allows you
to view your FPGA and make small modifications to your FPGA design
to help improve implementation. FPGA Editor reads the NCD file generated
by the Map or Place & Route process, which contains the logic
and routing of the design mapped to components, such as CLBs and IOBs.
It also reads from and writes to a Physical Constraints File (PCF). The following sections describe
implementation strategies using FPGA Editor.
Implementation Verification
You can use FPGA Editor to
view how certain components were configured, such as IOBs, CLBs, or
other hard IP, for example, DCMs, MGTs, and BRAMs. For example, you
can view the IOBs to see which I/O standard, drive strength, or other
configuration options were implemented. You can also edit the CLB
to view the LUT equation and see if the flip-flop reset is synchronous
or asynchronous or check other configuration options. All of these
components can also be edited from within FPGA Editor
In a placed
and routed design, you can use FPGA Editor to identify unrouted nets, measure
the skew on individual nets, evaluate the proximity of components
in a critical path, and make a limited number of manual placement
changes to test different placement strategies.
In some cases,
the synthesis tool may not compile a module of code as expected. Although
simulation is the recommended method for design verification, you
can use FPGA Editor as a quick way to check that the design was implemented
as expected. For example, if the synthesis tool replicates a Reset
net (SR pin) and two registers are not using the same Reset net, Map
may not be able to pack the registers into the same slice or IOB.
You can check this in FPGA Editor and then modify your synthesis directives
to prevent this from occurring.
Manual Placing and Routing
You can use FPGA Editor to fine-tune your design and improve the performance
of the Place & Route process. You can manually swap components
and pins as well as route and unroute nets. When you manually change
the design in FPGA Editor, you must add the new location constraints for
the swapped components to the User Constraints File (UCF) or PCF file. This ensures that
your changes are retained when the design is re-implemented.
When a group of components requires specific placement, use Relationally
Placed Macros (RPMs) to define their relative placement. If you want
to maintain both routing and placement, export the directed routing
constraints to the UCF file, or use a hard macro. For more information
on manual placing and routing, see
Placing and Routing Critical Components.
Directed Routing
Directed routing allows
the design to retain the routing and timing for a small number of
loads and sources. When you use directed routing, the relative position
between the sources and loads stay exactly the
same. This type of routing is not intended to replace guide. Instead,
it allows you to lock specific routing in your design.
Although
it is necessary to lock placement so that appropriate routing can
be reproduced, do not use directed routing as
a placement constraints tool. For example, you can use directed routing
to lock the routing for nets, but you should use a predefined macro
with specific placement information for all logic that has pins connected
to the nets with directed routing constraints.
Note In rare cases,
directed routing may block other nets from routing and make the design
unroutable. Overuse of directed routing may increase place and route
runtimes. If runtimes become too long, use SmartGuide™ technology.
For more details, see
Using SmartGuide Technology.
Macros
You create macros using multiple
design element primitives. Following are the different types of macros:
Physical Constraints
You can edit the PCF
file directly, or you can use the FPGA Editor to modify constraints and
then save them to the PCF file when you are satisfied with the constraints.
For a list of constraints supported by the FPGA Editor, see the "FPGA Editor"
section in the "Entry Strategies for Xilinx Constraints" chapter of
the
Constraints Guide.
Probes
Use the FPGA Editor Probes command to
perform real-time debugging when you want to analyze a few signals
at a time. Using the Probes command, you can identify and route internal
signals to available I/O pins without rerunning the place and route
tools. You can then monitor the real-time signal activity using normal
lab test equipment, such as logic and state analyzers or oscilloscopes.
For details, see
Using Probes.
ChipScope Pro Tool
The ChipScope™ Pro tool
assists you in working at the Printed Circuit Board (PCB) level. This software embeds
logic analyzer cores into your design, which allow you to view the
internal signals and nodes in an FPGA. The ChipScope Pro tool supports
user-selectable data channels from 1 to 256. You can change triggers
in real time without affecting user logic or having to recompile the
design. You can use FPGA Editor to add or remove nets from these cores.
For more information on using the ChipScope Pro tool, see
ChipScope Pro Tool
Debugging Overview and
ChipScope Pro Tool
Debugging Strategies.