Working with Xilinx® devices and place and route tools Summary Application note AP0112 (v1.0) January 13, 2004 This application note provides an advanced Xilinx designer with information on how to control the Xilinx place and route software options and properties, and also includes information on libraries. The DXP-based FPGA development environment can be used to capture, synthesize, place and route and download a digital system design into an FPGA. Place and route, the process of implementing the design on the target silicon, requires an intimate understanding of the functionality and architecture of the device, a task best performed by software tools provided by the device vendor. The vendor software is operated by the DXP environment, which automatically manages all project and file handling aspects required to generate the FPGA program file. There is a large degree of user-control over this process, which this application note details. Introduction Xilinx tools are integrated and accessed in the DXP environment through the Device view (View » Devices View). This view allow step-by-step control over the entire FPGA design process, enabling you to program and debug your system design on the FPGA. For a detailed description of the Devices view refer to the application note Processing the Captured FPGA Design. This application note makes reference to a number of Xilinx documents. Users wishing to change any of the default settings should refer to these documents for details: Xilinx Development System Reference Guide, Constraints Guide, and XST User Guide. If you are not familiar with the Xilinx tools it is recommended that you start designing with the builtin default settings. AR0112 (v1.0) January 13, 2004 1 Working with Xilinx Devices and Place and Route Tools Supported architectures The system supports the latest Xilinx FPGA technology and includes both FPGA and PCB schematic library support. The following table show the supported technology and its dependent schematic libraries, at the time of publication of this document. Technology Vendor independent library support Vendor specific library name PCB Library Virtex Yes Virtex FPGA Virtex Virtex E Yes VirtexE FPGA Virtex-E Virtex 2 Yes Virtex-II FPGA Virtex-II Virtex 2 Pro Yes Virtex-II PRO FPGA Virtex II Pro Spartan 2 Yes Spartan-II FPGA Spartan-II Spartan 2E Yes Spartan-IIE FPGA Spartan-IIE CoolRunner 2 Yes CoolRunner-II FPGA CoolRunner II CoolRunner XPLA3 Yes CoolRunner-XPLA3 FPGA CoolRunner-XPLA3 XC9500 Yes XC9500 FPGA PLD XC9500 XC9500XV Yes XC9500 FPGA PLD XC9500XV XC9500XL Yes XC9500 FPGA PLD XC9500XL XCF Yes NA XCF XC18V00 Yes NA XC18V00 FPGA architecture-independent library To maintain device independence, the system includes a large library of typical generic design components, the FPGA Generic Library. This library can be found in the \Altium2004\Library\FPGA folder. For complete documentation of this library refer to the FPGA Generic Library Guide. FPGA architecture-dependent libraries If device independence is not required the system also includes Xilinx FPGA libraries. These integrated libraries contain both the Unisim and Macro types of components. Vendor-specific integrated libraries are packaged according to the selection guide provided in the Xilinx Libraries Guide. This ensures that only specific components that are available with your target device are used in your design. The FPGA design libraries can be found in the \Altium2004\Library\Xilinx folder. 2 AR0112 (v1.0) January 13, 2004 Working with Xilinx Devices and Place and Route Tool Xilinx core generator component support Specialized cores that have been created using the Xilinx Core Generator can be used in your FPGA design. Once you have generated the core, you link the generated EDIF file to a schematic component, and place this component in your FPGA design. To create a component symbol from the EDIF, open it in the software and select Design » Create Schematic Part from File from the menus. The EDIF file must be placed in the FPGA project folder, or stored in a User pre-synthesized Model folder (specified in the FPGA Preferences dialog). Integrated FPGA PCB libraries There are also PCB design libraries available for many of the Xilinx programmable devices, in the \Altium2004\Library\Xilinx folder. These libraries include both schematic symbols and PCB footprints. Xilinx place and route tools configuration To enable the Xilinx FPGA process flow in the Devices view (the place and route tools are all accessed by clicking the Build button), your design must be configured for a valid Xilinx target architecture. This is done by including a suitable device constraint in a project constraint file, which belongs to a current project configuration (Project » Configuration Manager). Once this is established, the FPGA design process flow will be enabled and Xilinx options can be configured. For an example of creating a design and configuring it for a target FPGA, refer to the tutorial Getting Started with FPGA design. Build options The Build process allows interface with Xilinx tools and produces the bitstream (BIT) file to download into your FPGA. By clicking on the down arrow, a list of individual steps used to complete the Build process can be found. Options Reports Figure 1. Vendor place and route tools are accessed via the Build button. Click the Options icon adjacent to each stage to configure that feature. Errors or design rules that are not allowed for your target architecture or in the design will be picked up at each stage of the Build process. The location in the design and the error or warning is logged in a report file, accessed by clicking on the appropriate Report icon. For advanced users who want more control over the options passed to the Xilinx tools, each stage in the Build process is linked to a script file located in the \Altium2004\System folder. Be aware that these scripts are defaulted to standard optimization – any changes should be carefully applied in AR0112 (v1.0) January 13, 2004 3 Working with Xilinx Devices and Place and Route Tools consultation with the Xilinx Development System Reference Guide. Individual Build stages, options and the corresponding default script files are described below. Translate EDIF files This stage invokes the Xilinx NGDBuild tool, translating the EDIF output from the FPGA project synthesis process to a Xilinx Native Generic Database (NGD) file and Xilinx Project Navigator project (NPL) file. In this process, a logic design rule check is also run to confirm that the design is fit for mapping to any target FPGA. For more information on options available with this process refer to chapter 6 of the Xilinx Development System Reference Guide. Advanced options that are not present when you click on the Options icon can be accessed in the DefaultScript_Xilinx_NGBuild.Txt script file. NGDBuild switches can be configured in this file, in accordance with the Xilinx documentation. The Xilinx project can be opened in the Xilinx Project Navigator if required. Map design to FPGA This stage invokes the Xilinx MAP tool, mapping the NGD file to the logic available in your target Xilinx FPGA. In this process, a physical design rule check is run to find physical and logical errors that may be present, depending on your target FPGA. The output of this process is an NCD (Native Circuit Description) file. For more information on options available with this process refer to chapter 8 of the Xilinx Development System Reference Guide. Advanced options that are not present when you click on the Options icon can be accessed in the DefaultScript_Xilinx_MAP.Txt script file. Map switches can be configured in this file, in accordance with the Xilinx documentation. Place and route This stage invokes the Xilinx PAR tool and uses the NCD file output from the MAP process to place and route. A placed and routed NCD file is produced, suitable for the bitstream generator. For more information on options available with this process refer to chapter 10 of the Xilinx Development System Reference Guide. Advanced options that are not present when you click on the Options icon can be accessed in the DefaultScript_Xilinx_PlaceAndRoute.Txt script file. PAR switches can be configured in this file, in accordance with the Xilinx documentation. Timing analysis The Timing analysis stage invokes the Xilinx Trace (timing reporter and evaluator) tool. This conducts static timing analysis on the design, based on the input timing constraint. It verifies that the design meets the timing constraints, generating a report on the analysis. For more information on options available with this process refer to chapter 13 of the Xilinx Development System Reference Guide. Advanced options that are not present when you click on the Options icon can be accessed in the DefaultScript_Xilinx_Trace.Txt script file. Trace switches can be configured in this file, in accordance with the Xilinx documentation. Timing analysis can be switched off if required, click on the Timing Analysis Options icon. 4 AR0112 (v1.0) January 13, 2004 Working with Xilinx Devices and Place and Route Tool Make BIT file This stage invokes the Xilinx BitGen tool to produce a bitstream (BIT) file from the placed and routed design (NCD) file. The BIT file is used to download and program the FPGA, or to create a PROM file in the Make PROM File stage. For more information on options available with this process refer to chapter 15 of the Xilinx Development System Reference Guide. Advanced options that are not present when you click on the Options icon can be accessed in the DefaultScript_Xilinx_BitGen.Txt script file. BitGen switches can be configured in this file, in accordance with the Xilinx documentation. Make PROM file This optional stage is used to generate a program file for a Xilinx configuration device. It is available once a target PROM has been selected by clicking on the Options icon. It invokes the Xilinx PromGen tool, whose output format is dependent on the selected target device. For more information on options available with this process refer to chapter 16 of the Xilinx Development System Reference Guide. Advanced options that are not present when you click on the Options icon can be accessed in the DefaultScript_Xilinx_PromGen.Txt script file. PromGen switches can be configured in this file, in accordance with the Xilinx documentation. Xilinx constraints entry The DXP-based FPGA design environment supports a range of constraints that are device independent. However, since not all FPGA families share the same technology there are also vendor constraints that can be used. The Xilinx tools support a range of constraints that allow you to take advantage of internal technology and other design options. For detailed information on Xilinx FPGA constraints refer the Xilinx Constraints Guide. Xilinx constraints can be included with your design by adding the Xilinx User Constraint (UCF) files to the FPGA project. Multiple constraint files can be added, enable their use in the project by disabling the Ignore UCF File option, accessed by clicking the Options button in the Translate Design stage of the Build process. Xilinx XST tools configuration The system includes a powerful built-in synthesis engine, which is used by default. It also supports use of the Xilinx XST synthesizer within the design environment. To enable an FPGA project to utilize the Xilinx XST synthesis tool the project synthesis option must be set to XST Synthesizer. This is done by selecting Project » Project Options from the menus, clicking on the Synthesis tab and choosing XST Synthesizer from the dropdown Synthesizer list. Once this is selected you must indicate the folder where the XST binary executable file resides using the Browse button. Various options can be configured on the XST option page to best suit your design. For advanced users, options that are not present on the Synthesis tab can be accessed from the DefaultScript_XST_CPLD.Txt and DefaultScript_XST_FPGA.Txt script files located in the \Altium2004\System folder. XST switches must be configured in accordance with the Xilinx XST User Guide. AR0112 (v1.0) January 13, 2004 5 Working with Xilinx Devices and Place and Route Tools Figure 2. Setting the XST synthesizer and options If you are not familiar with the Xilinx synthesis tools it is recommended that you start designing with the built-in DXP synthesis engine. Revision History Date Version No. Revision 19-Dec-2003 1.0 New product release Software, documentation and related materials: Copyright © 2004 Altium Limited. All rights reserved. You are permitted to print this document provided that (1) the use of such is for personal use only and will not be copied or posted on any network computer or broadcast in any media, and (2) no modifications of the document is made. Unauthorized duplication, in whole or part, of this document by any means, mechanical or electronic, including translation into another language, except for brief excerpts in published reviews, is prohibited without the express written permission of Altium Limited. Unauthorized duplication of this work may also be prohibited by local statute. Violators may be subject to both criminal and civil penalties, including fines and/or imprisonment. Altium, CAMtastic, CircuitStudio, Design Explorer, DXP, LiveDesign, NanoBoard, NanoTalk, Nexar, nVisage, P-CAD, Protel, Situs, TASKING, and Topological Autorouting and their respective logos are trademarks or registered trademarks of Altium Limited or its subsidiaries. All other registered or unregistered trademarks referenced herein are the property of their respective owners and no trademark rights to the same are claimed. 6 AR0112 (v1.0) January 13, 2004