20.06.2013 Views

Design Challenges: Avoiding the Pitfalls, winning the game - Xilinx

Design Challenges: Avoiding the Pitfalls, winning the game - Xilinx

Design Challenges: Avoiding the Pitfalls, winning the game - Xilinx

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Wouldn’t it be nice to have complex<br />

cores already created and optimized for<br />

<strong>Xilinx</strong> FPGAs? You will use <strong>the</strong> <strong>Xilinx</strong><br />

Architecture Wizard to optimize cores for<br />

instantiation.<br />

You will learn to:<br />

• Use <strong>Xilinx</strong> ISE Project Navigator to<br />

implement an FPGA design<br />

• Read suitable reports to determine<br />

whe<strong>the</strong>r design goals were met<br />

• Assign pin locations with PACE to<br />

enhance performance<br />

• Configure a clocking scheme with <strong>the</strong><br />

Architecture Wizard software<br />

• Use <strong>the</strong> Constraints Editor to create<br />

global timing constraints, which drive<br />

performance<br />

• Specify software options that can boost<br />

performance<br />

• Use synchronous design techniques<br />

to create reliable designs and improve<br />

performance<br />

The Fundamentals of FPGA <strong>Design</strong><br />

course provides <strong>the</strong> necessary foundation to<br />

begin using <strong>Xilinx</strong> FPGAs, create reliable<br />

designs, improve area, and increase performance.<br />

The prerequisites for this course<br />

are basic logic/digital design knowledge<br />

and basic VHDL or Verilog knowledge.<br />

<strong>Design</strong>ing for Performance Course<br />

Are you having trouble meeting your performance<br />

goals? Do you find that changing<br />

software options doesn’t help – or makes<br />

matters worse? In <strong>the</strong> <strong>Design</strong>ing for<br />

Performance course, we will teach you a simple<br />

timing closure flow (see Figure 1), as well<br />

as which options to use and what to expect.<br />

For example, say that you need to<br />

increase your performance by 25%. What<br />

should you do? Using <strong>the</strong> techniques taught<br />

in this course, you can take a design that can<br />

barely achieve 125 MHz performance and<br />

by <strong>the</strong> end of <strong>the</strong> course increase performance<br />

to 200 MHz – an increase of 38%.<br />

Are you having trouble synchronizing<br />

an incoming signal? Do you need to cross<br />

data from one clock domain to ano<strong>the</strong>r? In<br />

1<br />

2<br />

3<br />

4<br />

5<br />

6<br />

Done<br />

Use Proper Coding Techniques<br />

Drive Your Syn<strong>the</strong>sis Tool<br />

Apply Global <strong>Xilinx</strong> Constraints<br />

Implement<br />

Increase Place & Route Effort Level<br />

Done<br />

6c<br />

No<br />

7<br />

Apply Multi-Cycle and False Path Constraints<br />

8<br />

9<br />

10<br />

11<br />

Done<br />

Specify Pin Constraints<br />

106 Xcell Journal Third Quarter 2005<br />

4a<br />

Yes<br />

6a<br />

Yes<br />

Yes<br />

Meets<br />

Timing?<br />

No<br />

Reasonable Performance Objectives<br />

Implement<br />

Meets<br />

Timing?<br />

Implement<br />

Meets<br />

Timing?<br />

No<br />

No<br />

6b<br />

No<br />

7b<br />

No<br />

Review Critical Paths in <strong>the</strong> Code<br />

Rewrite code to<br />

improve speed<br />

Apply Critical Path Constraints in Syn<strong>the</strong>sis<br />

Done<br />

Implement<br />

Meets<br />

Timing?<br />

Implement with MAP-Timing Options<br />

or<br />

Run Multi-Pass Place & Route<br />

Done<br />

Done<br />

7a<br />

9a<br />

Yes<br />

Finish Routing Placements<br />

10a<br />

Yes<br />

4b<br />

7c<br />

9c<br />

10b<br />

No<br />

Meets<br />

Timing?<br />

No<br />

Floorplan<br />

Implement<br />

11a<br />

Yes Meets<br />

Timing?<br />

11b<br />

11d<br />

11c<br />

No<br />

9b<br />

No<br />

No<br />

Start Over/Rewrite Code<br />

Figure 1 – Timing closure flow chart<br />

No<br />

Increase<br />

Place & Route<br />

Effort Level<br />

All Multi-Cycle and False<br />

Paths Not Identified<br />

All Critical Paths<br />

Not Identified<br />

Floorplan<br />

Hindered Timing<br />

Floorplan Helped But<br />

Did Not Meet Timing

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!