Xcell Journal Home
  Xcell Journal Article
  Partner Yellow Pages
   
  Xcell Archives
  Subscription
  Comments & Suggestions
  Write Articles for Xcell

 

Home : Documentation : Xcell Journal Online : Article

(NOTE: For faster downloading, all online articles are TEXT ONLY versions with no graphics. To view the complete article with graphics, download the PDF version at the end of the article.)

Simplify with Synplicity Synthesis Solutions

by Steven Elzinga, Product Applications Engineer, Xilinx, Inc.
steven.elzinga@xilinx.com (10/01/03)

Conserve FPGA resources in cost-sensitive designs with Synplicity timing-driven synthesis solutions.

Often, simply being first to market with an excellent product can assure its success. However, effectively harnessing available resources to allow for less expensive parts – and thus a less expensive overall solution – can also give you a significant advantage over a competitor.

The Synplify™ FPGA synthesis solutions and Synplify Pro™ advanced FPGA synthesis solutions from Synplicity™ have many features that enable you to effectively use the resources in FPGAs. For example, you can set constraints for timing-driven synthesis that may allow you to purchase slower speed grade parts without compromising on performance or quality. The Synplify FPGA synthesis solution and Synplify Pro advanced FPGA synthesis solutions offer a perfect fit for the high-volume, low-cost Spartan™ FPGAs, and the advanced Virtex™ series of FPGAs.

Spartan/Virtex Architecture
Spartan-II series FPGAs are based on the Xilinx Virtex architecture. Each FPGA has a number of clock delay locked loops (CLKDLL) for clock management (each CLKDLL driving one of four global clock lines) and block RAM of 4 Kb each.

Furthermore, the basic Virtex architecture can be broken down into “slices,” comprising two RAM-based 4-input look-up tables (LUT), two registers, and dedicated “carry logic” used for arithmetic operations (Figure 1). You can configure the LUT as distributed RAM, a shift register LUT (SRL) with a programmable latency of as many as 16 clock cycles, or an LUT for a 4-input Boolean function. Inside of every input/output block (IOB) are three flip-flops so that the data coming into and leaving the IOB can be registered, thereby increasing the overall maximum frequency.

Spartan-3 series FPGAs are based on the more advanced Xilinx Virtex-II platform FPGA hardware. The difference is that the CLKDLL has added functionality, along with a total of 16 global clock lines (eight global lines in the Spartan-3). The block RAM is larger, with 18 Kb of memory. Platform FPGAs have more registers in the IOBs to accommodate dual data rate (DDR) applications. The Virtex-II architecture also includes embedded multipliers that can be synchronous or asynchronous.

The Synplify and Synplify Pro tools take advantage of the hardware present in the Spartan and Virtex families to ensure optimal area and speed results.

Timing-Driven Synthesis
The Synplify Pro solution is an advanced synthesis tool that performs timing optimizations based on the timing constraints entered. Optimizations are based on – but not limited to – offset and period constraints. Timing constraints are entered in a constraints file (text or GUI entry) or through a tool command language (TCL) script.

Because Synplify Pro software is timing driven, you must provide realistic timing constraints. Avoid over-constraining by asking for more than 10% or 15% of what you really need; in other words, if you need 100 MHz, enter 100 MHz or perhaps 110 MHz. The timing-driven aspect of the Synplify Pro software first meets your timing constraints and once met, minimizes area. This allows you to achieve your performance goal while using the smallest, lowest cost device.

Synplicity’s SCOPE® (synthesis constraints optimization environment) GUI allows you to easily manipulate constraints from the register transfer level (RTL) viewer into the spreadsheet. Just click and drag any object into the spreadsheet and apply the appropriate constraint, or select the objects from pull-down menus in the spreadsheet’s individual cells (Figure 2).

The SCOPE interface provides a single location for both synthesis and place-and-route (PAR) constraints, which are passed along to the Xilinx PAR tool. Clocks, inputs, and outputs are all automatically loaded into the SCOPE utility for fast and easy constraint entry.

The Synplify Pro synthesis tool has options that allow you to manipulate registers and increase the maximum frequency in your design. One such option is retiming. With the retiming switch on, the Synplify Pro program moves existing registers through combinatorial logic to balance timing delay between registers. This option is very helpful when your design is pipelined.

Other features include the inference of SRLs (which saves resources) and IOB flip-flops: You can control both through the use of the synthesis directives syn_srlstyle and syn_useioff.

Synplify Pro software also includes FSM Explorer and FSM Compiler. With FSM Explorer, the Synplify Pro synthesis tool locates the design’s finite state machines (FSM) and determines the optimal encoding style for the FSM to meet timing constraints.

To explore different state machine encoding styles, just turn off FSM Explorer and select the encoding style by using the syn_encoding directive, along with the choices default, one-hot, gray, sequential, and safe. When selecting default, a predetermined encoding style will be used based on the number of states in the FSM.

Incremental Design
Synplicity’s MultiPoint™ technology allows you to work incrementally on individual modules in your design – without having to re-synthesize the entire design each time you make a change. The MultiPoint flow provides a superior approach to incremental design that provides stability during design changes without com-promising the quality of results. You can set the compile points in the constraints file by manual entry or through the SCOPE interface (Figure 3).

The MultiPoint technology is intelligent, and knows when logic changes require recompilation. For example, an HDL syntax change or an added comment will not trigger recompilation, but a change that alters the logic will.

You can use MultiPoint synthesis in conjunction with the incremental design flow process in the Xilinx implementation tool, along with “cross probing” to better achieve timing closing.

Entering realistic timing constraints is important, because once timing constraints are met, the Synplify Pro tool works on area optimizations. If your critical path does not go through your state machine, it’s easy to try a different encoding style that may not be as efficient in timing but is more efficient in area, freeing up resources in the critical path.

Synplify Pro software further optimizes your HDL code with its numerous inference templates. With inference templates, the Synplify Pro program takes advantage of the resources available in FPGAs. Depending on how you set certain synthesis directives, the Synplify software infers SRLs, block multipliers, block RAM, and ROM in block RAM, saving LUTs for the combinatorial logic.

Conclusion
In today’s economic climate, cost savings are paramount. Together, Synplicity and Xilinx offer a combination of synthesis software optimized for timing, area, and cost savings on the best price-for-performance FPGAs available. To see what the Synplify and Synplify Pro synthesis tools can do for your Xilinx FPGA design, download free, fully functional evaluation copies of the Synplify and Synplify Pro solutions from www.synplicity.com/downloads/. For additional information on the Spartan-3 family of FPGAs, visit www.xilinx.com/Spartan3/. To learn more about Virtex FPGAs, go to www.xilinx.com/virtex2/.

Printable PDF version of this article with graphics. PDF logo (10/01/03) 450 KB

 
Jobs Events Webcasts News Investors Feedback Legal Privacy Trademarks Sitemap
© 1994-2008 Xilinx, Inc. All Rights Reserved.