PlanAhead Tutorial RTL Design IP
PlanAhead Tutorial RTL Design IP
PlanAhead Tutorial RTL Design IP
Generation Tutorial
This tutorial document was last validated using the following software version: ISE Design Suite 14.5
If using a later software version, there may be minor differences between the images and results shown in
this document with what you will see in the Design Suite.
Notice of Disclaimer
The information disclosed to you hereunder (the "Materials") is provided solely for the selection and use of Xilinx products. To the
maximum extent permitted by applicable law: (1) Materials are made available "AS IS" and with all faults, Xilinx hereby DISCLAIMS ALL
WARRANTIES AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF
MERCHANTABILITY, NON-INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and (2) Xilinx shall not be liable (whether in
contract or tort, including negligence, or under any other theory of liability) for any loss or damage of any kind or nature related to,
arising under, or in connection with, the Materials (including your use of the Materials), including for any direct, indirect, special,
incidental, or consequential loss or damage (including loss of data, profits, goodwill, or any type of loss or damage suffered as a result of
any action brought by a third party) even if such damage or loss was reasonably foreseeable or Xilinx had been advised of the possibility
of the same. Xilinx assumes no obligation to correct any errors contained in the Materials or to notify you of updates to the Materials or
to product specifications. You may not reproduce, modify, distribute, or publicly display the Materials without prior written consent.
Certain products are subject to the terms and conditions of the Limited Warranties which can be viewed at
http://www.xilinx.com/warranty.htm; IP cores may be subject to warranty and support terms contained in a license issued to you by Xilinx.
Xilinx products are not designed or intended to be fail-safe or for use in any application requiring fail-safe performance; you assume sole
risk and liability for use of Xilinx products in Critical Applications: http://www.xilinx.com/warranty.htm#critapps.
©Copyright 2010-2013 Xilinx, Inc. Xilinx, the Xilinx logo, Artix, ISE, Kintex, Spartan, Virtex, Vivado, Zynq, and other designated brands
included herein are trademarks of Xilinx in the United States and other countries. All other trademarks are the property of their respective
owners.
Revision History
Date Version Revision
Introduction .................................................................................................................................................................. 5
Tutorial Design Description .................................................................................................................................... 5
Software Requirements ............................................................................................................................................ 6
Hardware Requirements .......................................................................................................................................... 6
Preparing the Tutorial Design Files...................................................................................................................... 6
Conclusion.................................................................................................................................................................. 38
Software Requirements
The PlanAhead tool is installed with ISE Design Suite software. Before starting the tutorial, be
sure that the PlanAhead tool is operational, and that the tutorial design data is installed.
For installation instructions and information, see the ISE Design Suite 14: Release Notes,
Installation, and Licensing (UG631).
Hardware Requirements
Xilinx recommends a minimum of 2 GB of RAM when using the PlanAhead tool on larger
devices. For this tutorial, a smaller xc7k70t design is used, and the number of designs open at
one time is limited. Although 1 GB is sufficient, it can impact performance.
RECOMMENDED: The tutorial sample design data is modified while performing this
tutorial. A new copy of the original PlanAhead_Tutorial data should be extracted
each time you run this tutorial.
The Hierarchy tab of the Sources view is displayed by default. The Design Sources folder
currently lists round_2 as the top module of the design, as indicated by the hierarchy
icon. The PlanAhead tool will automatically determine the top module; however, at this time
many of the source files in the project are not properly defined, preventing this feature from
being successful. The bft.vhdl file references entities from the bftLib, however several
VHDL files have incorrect library names which prevent the entities from being found as
shown by the missing file icon in Figure 8. You need to correct the Library names in order
for the design to compile and display the correct hierarchy.
6. Click OK.
7. Verify that the VHDL folder now looks as shown in Figure 10.
3. Select the bft_tb.v file and right-click to select Move to Simulation Sources.
4. In the Sources view header, click the Search button to close the Search field and to
display all files.
Notice that the design hierarchy now displays as shown in Figure 13. When the VHDL library,
bftLib, was properly defined, and the various entities and modules referenced by the
design could be located, the PlanAhead tool identified the top module of the design, and
sorted the source files for compilation according to the requirements of that top module.
2. In the Hierarchy tab of the Sources view, expand the top module, and select the mgtEngine.
2. Click the file browser icon for the Simulation Top Module Name field.
This field lets you define the top-level module to launch simulation from. In this exercise, you
will specify the test bench for the bft module which can be found in the fftEngine block
under the Sources view.
3. Select bft_tb, and click OK.
4. Click the Options button on the Launch Behavioral Simulation dialog box.
This opens the Simulation Options form as shown below. This form lets you define various
options and directives for the ISim fuse compiler and simulator. Refer to the PlanAhead User
Guide (UG632), for more information on these various options.
You can explore the ISim environment at this time. Refer to the ISim In-Depth Tutorial
(UG682), for information about using ISim.
7. Close the ISim window by using the File > Exit command from the main menu.
8. Click Yes to confirm closing the tool if necessary.
4. In the RTL Netlist view, right-click and select the Go to Instantiation popup command.
The RTL file usbf_top.v opens to the line containing the usbf_utmi_if instance.
5. In the RTL Netlist view, right-click and select the Show Hierarchy popup command.
The RTL Hierarchy view opens with the usbEngine0/u0 module selected. The modules
display with blocks sized relative to the amount of logic contained in them, making it easy to
locate large modules.
3. Double-click the LineState[1:0] pin on the outside of the u0 module to expand the
schematic outward from the pin as shown in Figure 20.
For additional schematic exploration capabilities, see the Design Analysis and Floorplanning
Tutorial: PlanAhead Design Tool (UG676).
TIP: Click and drag using the left mouse button in the RTL Schematic view from the lower right to
the upper left to use the Zoom Fit command.
6. Close the various open Text Editor, Hierarchy, and Schematic windows.
4. Select one of the Block RAMs in the Find Results; right-click to open the popup menu and
select Go to Instantiation.
The instance is selected in the RTL Netlist view and displayed in the Text Editor.
5. Close the Find Results view and the Text Editor.
The RTL Macro Resources displays in the Netlist Properties view, as shown in Figure 20. If the
Netlist Properties view is not displayed, select Window > Properties from the main menu.
4. Scroll down the Netlist Properties view to examine the various categories of statistics.
RTL Macro Resources
RTL Hierarchy Resources
RTL Primitive Statistics
RTL Memory Resources
Net Boundary Statistics
Clock Report
5. In the RTL Netlist view, select other modules and examine the statistics in the Properties view
for those selected modules.
Notice that the Netlist Properties view has changed to the Instance Properties view for the
selected modules. This is because you are no longer viewing the top-level of the design. The
statistics presented in the Properties view are now for the resources required by the module,
rather than for the whole design.
The Details for a selected IP display at the bottom of the IP Catalog view. By default, only the
most recent version of the IP supported for the target device family is displayed.
You can change the list of IP cores listed in the catalog by enabling and disabling commands
on the toolbar menu of the IP Catalog view.
4. To view all IP in the catalog, toggle the Hide Superseded and Discontinued IPs button
and the Hide Incompatible IPs button .
5. To view a flattened list of IP, disable the Group by Category toolbar button .
6. Type fir in the Search field at the top of the view.
7. Select a FIR Compiler IP.
The details of the IP core are displayed in the Details panel at the bottom of the IP Catalog
view.
8. From the popup menu, select the Data Sheet command.
This will open a PDF view of the datasheet for the selected IP core. Examine the datasheet,
and close the PDF viewer when finished.
9. Clear the Search field to expand the Catalog list.
RTL Design and IP Generation Tutorial www.xilinx.com Send Feedback 33
UG675(v14.5) April 10, 2013
Step 7: Selecting IP from the Xilinx IP Catalog
Customizing an IP Core
1. Enable the Group by Category button.
4. Select the text in the Text Editor, starting just below the line labeled “Begin Cut here…”
and ending at the line with “//INST_TAG_END”.
5. Click the Copy Text button.
The copied text can easily be pasted into any RTL source file to instantiate the IP module
into your design.
With the IP instantiated into your design, the IP can be synthesized along with the rest of the
design, or as a standalone module. You can also generate the simulation files required to
simulate the IP core as part of the design.
6. Select the c_addsub_v11_0_0 IP core from any tab in the Source view.
7. Right-click to open the popup menu and select the Generate Output Products command.
The Manage Output Products dialog box opens as is shown in Figure 35. This lets you
generate the specific files needed to support the IP core in the overall design.
Conclusion
In this tutorial, you:
Used a small RTL project to examine the PlanAhead RTL development and analysis
environment.
Started by creating an RTL project, explored RTL sources and the RTL editor.
Ran behavioral simulation, elaborated the RTL design, and explored the analysis capabilities,
which included examining the RTL logic hierarchy, RTL schematic exploration, searching for
logic types, reviewing RTL resource and running RTL DRCs.
Examined the Xilinx IP Catalog, and customized, and instantiated a small adder IP core.