Support|documentation

  Xcell Journal Online
  Xcell Journal Archives
   
  Writing for Xcell
  Advertising in Xcell
  FREE Subscription
   
  Partner Yellow Pages
  Reference Pages
  Contact Us

    

Home : Documentation : Xcell Journal Online : Article
Plan FPGA Signal Assignments and Optimize PCB Routability



by Dan Harris, Director of Product Marketing, Product Acceleration Inc.
dharris@prodacc.com

Manu Pillai, CEO, Product Acceleration Inc.
mpillai@prodacc.com

Philippe Garrault, Technical Marketing Engineer, Xilinx, Inc.
philippe.garrault@xilinx.com

Suresh Subramaniam, Senior Design Engineer, Xilinx, Inc.
Suresh.Subramaniam@xilinx.com  (8/1/04)


Eliminate or reduce design iterations with DesignF/X.
article link to PDF
Article PDF 426 KB


Managing signal assignment of high pin-count FPGAs, especially in multi-FPGA designs, is a growing problem. As most hardware managers will attest, this problem manifests itself in three ways.

First, the number of communication channels interfacing with a typical FPGA makes I/O assignment a cognitive challenge for logic designers to balance. These cognitive challenges include the handling of:

  • Key constraints imposed by each channel, including voltage, signal strength, termination, and data versus clock skew.
  • FPGA signal assignment constraints, such as I/O banking and simultaneous switching output rule sets.
Second, because of an excessive number of wire crossings, layout engineers may find it physically impossible to route their designs with the specified stackup and PCB design rule checks (DRCs). The only option is to increase both the number of signal routing layers and via count. However, this will result in reduced signal quality and may drive up the manufacturing cost substantially.

Third, most of today’s EDA tools focus on solving the above issues for a single device, and have little or no knowledge of other system devices or their connections. The end result is a sub-optimal pinout that has been assigned without knowledge of the system. If you are a logic designer, you know it is likely that the pinout will need several refinements because of required negotiations between you, the hardware engineer, and SI engineer.

This time-consuming process is further exacerbated as system complexity increases, along with the need for precision change control and the resulting process management overhead. Figure 1 shows one of many complex design configurations.

Design F/X directly addresses these three core system design issues by:

  • Significantly reducing the need to memorize I/O banking rules. DesignF/X provides an automated signal assignment optimization process and keeps you informed of DRC rules and requirements associated with your selected I/O standards.
  • Providing system-level optimization of the signal assignment for one or more FPGAs and their associated devices in a PCB environment, while honoring the design rules. This optimization will result in the highest PCB routability, enabling you to reduce your design iterations and focus on core design.
Design F/X and Existing Design Flows DesignF/X is easy to learn and even easier to integrate into your existing design flow. Figure 2 highlights a typical DesignF/X flow on the right, compared to today’s time-consuming and error-prone iterative process on the left.

We argue that the traditional design flow is a lengthy and error-prone process because:

  • Several manual entry points exist, including HDL, signal assignment spreadsheets, schematic symbols, schematics, package drawings, and constraint information.
  • There is no tool to validate data from package to component to netlist. For example, neither the schematic nor the netlist have knowledge of the package, yet package knowledge is required for proper validation.
  • The back annotation process is often broken because required FPGA updates and attributes are not automatically passed completely through to the board tools for more efficient routing and planning.
  • Generally, several iterations are required to get the correct FPGA pinout based on negotiations between layout engineers and FPGA designers.
DesignF/X eliminates these issues by allowing end-to-end design with verified data inputs and correct-by-design FPGA pinouts that are optimized at the system level for best routability.

You need not interrupt your current design flow, because DesignF/X provides several vector points at which you can analyze your design. DesignF/X also provides the I/O capabilities shown in Figure 3.

Only two successive steps are required to get an optimized design in a single iteration:

  1. Create or import device pin assignment and board connectivity.
  2. Analyze and optimize your configurable devices for the best possible routability while honoring Xilinx FPGA design rules.
Signal Assignment Planning
DesignF/X is built around Xilinx parts and their associated design rules. As of June 2004, DesignF/X supports the following capabilities:
  • I/O banking DRCs (voltage, I/O standards, and on-chip termination are checked for intra-bank compatibility)
  • Automatic reservation of Vref, VRP, and VRN pins when necessary, based on the selected I/O standard
  • Automated recognition and handling of differential pairs, including swapping signals as a pair where legal during optimization
Usage Model
The first step is to select a Xilinx-specific device (see Figure 4). After you select your package, you may import a Xilinx .pad or .csv file, or you can start with no file inputs. In either case, you can use the signal assignment spreadsheet shown in Figure 5 to:
  • Assign signals to pins and create signal groups and buses
  • Apply I/O standards and mark specific pins as fixed if you do not want them considered for optimization
Each time you change a signal’s I/O standard, location, or pin type (direction), DesignF/X will respond with a DRC for compliance with Xilinx-specific rules.

The screen shot for Figure 6 was generated after changing the I/O standard of two buses within the same bank. The output screen is interactive and shows which pins are causing the DRC error. A key ease-of-use feature shown is the way a number of related errors are summarized into one line.

After you have finished assigning signals, DesignF/X will perform one last DRC. If the DRC passes, you will be allowed to use the part for analysis and optimization on the “virtual PCB” screen. You can also rapidly generate a .ucf file for use in your Xilinx ISE environment for a rapid place and route check.

Signal Assignment for Optimal PCB Routing
Once you have all your programmable devices described and pin assignments defined, you can choose to import your connectivity information using a netlist file, or, if you do not have a netlist, use a table to define connectivity. Once connectivity information is defined, you can place your components on the “virtual PCB” and optimize them.

As a PCB designer you probably want to optimize your devices at the system level for the best possible routing early in the design phase – before completion of the FPGA place and route – while maintaining compliance to fundamental Xilinx DRCs on the I/O side. This will help you:

  • Reduce PCB wire crossings, which directly correlates to reduced via counts, potentially reduced layer counts, and faster routes that enable early route studies for more what-if analyses
  • Reduce SI complications and generate higher quality signals, also from reduced wire crossings and via counts (vias can result in stubs at high speed that are detrimental to edge rates)
Summary of Results
Recently, a major semiconductor/systems client was in the process of developing a new system with two Xilinx Virtex-II™ devices of 1,704 pins each and a third at 1,152 pins, combined with a custom processor.

The client faced the following challenges:

  • A team co-located in three different crosscountry cities: the FPGA engineer, the hardware engineer, and the layout engineers were each located in different cities.
  • The fast-paced design reached layout, but the PCB board was not routable.
  • Obviously, any changes made to get the PCB board to route needed to comply with the rules of the Xilinx devices.
Instead of investing several man-weeks to fly all of the engineers to one location and attempt to fix the problem by hand, they called on DesignF/X to provide the following solution:
  • The FPGA engineer sent the necessary Xilinx .pad files to the hardware engineer.
  • The layout engineers sent the Cadence Allegro board file to the hardware engineer.
  • The hardware engineer imported all files into DesignF/X and the PCB was optimizing within hours.
  • The hardware engineer then output the updated Cadence Allegro board file and the updated Xilinx .ucf files and sent them back to the appropriate engineers.
  • The FPGA engineer confirmed that the new pinouts for the Xilinx parts did not violate any Xilinx rules and signed off on the update.
  • The layout engineers successfully routed the PCB board and back-annotated the changes to the Cadence OrCAD schematic.
The entire process took days instead of weeks. Figure 7 shows the layout of the three Xilinx FPGAs before and after DesignF/X optimization. This design was not routable for a given PCB layer count until DesignF/X optimized the pinouts of the three FPGAs.

Conclusion
Whether you are a logic designer, a hardware engineer, a PCB layout engineer, an engineering manager, or an FAE, you are likely facing one or more of the issues mentioned in this article with complex designs.

To learn about the latest DesignF/X features, visit the Product Acceleration website at www.prodacc.com. To schedule a DesignF/X demonstration, please send an e-mail to sales@prodacc.com or call (408) 551-0882.

Printable PDF version of this article with graphics. PDF logo (8/1/04) 426 KB

 
/csi/footer.htm