FPGA CAD

32
FPGA CAD 10-MAR-2003

description

FPGA CAD. 10-MAR-2003. Content. FPGA CAD design flow; Placement; Routing. (top ten hottest VLSI CAD problems). FPGA Design Flow. Designing with FPGAs is much like the ASICs technology. - PowerPoint PPT Presentation

Transcript of FPGA CAD

Page 1: FPGA CAD

FPGA CAD

10-MAR-2003

Page 2: FPGA CAD

Content

• FPGA CAD design flow;

• Placement;

• Routing.

• (top ten hottest VLSI CAD problems)

Page 3: FPGA CAD

FPGA Design Flow

• Designing with FPGAs is much like the ASICs technology.

• The Computer Aided Design (CAD) software provided by the FPGA vendor or third part is used to convert the given digital circuit (schematic or a high level description in VHDL or Verilog) into a stream of bits, which is then used to download to the FPGA.

Page 4: FPGA CAD

CAD Tools

Max+Plus

Page 5: FPGA CAD

A Typical FPGA CAD Flow

Design Entry

Logic Optimization

Synthesis

Mapping to k-LUT

Packing LUTs to CLBs

Placement

Routing Download to FPGA

Simulation

Page 6: FPGA CAD

Placement – Find home for CLBs.

Page 7: FPGA CAD

Problem define• Assign position(X, Y) to modules;• Placement to minimize:

– total wirelength;– critical path wirelength;– a combination of them.

• Estimated model:– Circuit quality is determined by placement + routing;– Routing is a NP-hard problem.

• NP-hard problem. (n!)– Time is a big issue.– Quality and time tradeoff.

Page 8: FPGA CAD

circuit before placement

Page 9: FPGA CAD

circuit after placement

Page 10: FPGA CAD

Heuristic method

• Constructive methods:– Partitioning method: min-cut;– Clustering.

• Iterative improvement:– Begin with a random or constructive placement;– Iterate to improve it;– Force directed method;– Simulated annealing.

• Other method:– Genetic algorithm;

Page 11: FPGA CAD

Min-CutMinimize cuts during partition

Page 12: FPGA CAD

Force directed method

• Classical mechanics;• Using Hooke’s law;• Force vector computed on each module

corresponding to all nets connections;• Solve a set of non-linear differential equations.

force

Page 13: FPGA CAD

Simulated annealing

• Generates best results; (industry standard)

• Run time is a issue.

• Model a physical annealing process.

• VPR placer (placement tools available to us, developed in UoT).

Page 14: FPGA CAD

Physical Annealing

• Take a metal and heat to high temperature until liquidized;

• Allow it to cool slowly, metal is annealed to a low temperature;

• Atoms in the metal are at transfer from high energy states to low energy states;

• Can accept “bad” moves to get global minima.

• Avoid getting trapped in local minima.

Page 15: FPGA CAD

Comparison

Page 16: FPGA CAD

Routing-Find the path

• Maze routing;

• Pathfinder.

Page 17: FPGA CAD

Routing Resource

Connection Block

Switch Block

Page 18: FPGA CAD

Typical Connection

Page 19: FPGA CAD

Maze router

Page 20: FPGA CAD

Pathfinder router

• Based on maze router;

• Shows very high quality results;

• Negotiation-based router;– Each net negotiates the use of shared

resources with other nets until none of the resources are shared;

– Extra weights are added to shared resources.

• VPR router;

Page 21: FPGA CAD

Comparison

Page 22: FPGA CAD

Questions

Page 23: FPGA CAD

Placement + Routing

Page 24: FPGA CAD

Design Entry

• The description of a logic circuit can be entered by using a schematic capture program;

• VHDL and Verilog interpreter.

Page 25: FPGA CAD

Synthesis

• A circuit description such as VHDL, is first converted to a netlist of basic gates. This process called synthesis.

Page 26: FPGA CAD

Logic Optimization

• technology independent;

• Improve circuit, while keep functionality correct;

Page 27: FPGA CAD

Mapping to LUTs

• The gates then are mapped into k-input lookup tables (LUT). (most basic brick of FPGA)

• Chortle. (available to academic, developed in UoT)

Page 28: FPGA CAD

Packing LUTs into CLBs

• Configurable Logic Block (CLB);• Grouping the LUTs into CLBs;• Simi liar to circuit clustering.• Vpack. (available to academic, developed in UoT)

Page 29: FPGA CAD

Placement• Placement is to determining the physical

location of each CLBs on the FPGA;

Page 30: FPGA CAD

Routing

• Realize connections among the CLBs by selecting routing resource.– wire segments and;– routing switches.

Page 31: FPGA CAD

Simulation

• After placement and routing, the implemented design is simulated to ensure its functioning and to verify the timing issues.

• Design errors can be found and corrected at this stage.

Page 32: FPGA CAD

Download bits file to FPGA

• Once all the necessary steps are completed for implementing the design, the CAD system can download the result to the programming unit that is used to configure the FPGA;

• After this stage, the programmable device is configured and ready for use.