FPGA CAD
description
Transcript of FPGA CAD
![Page 1: FPGA CAD](https://reader036.fdocuments.us/reader036/viewer/2022062500/56815275550346895dc0a59d/html5/thumbnails/1.jpg)
FPGA CAD
10-MAR-2003
![Page 2: FPGA CAD](https://reader036.fdocuments.us/reader036/viewer/2022062500/56815275550346895dc0a59d/html5/thumbnails/2.jpg)
Content
• FPGA CAD design flow;
• Placement;
• Routing.
• (top ten hottest VLSI CAD problems)
![Page 3: FPGA CAD](https://reader036.fdocuments.us/reader036/viewer/2022062500/56815275550346895dc0a59d/html5/thumbnails/3.jpg)
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](https://reader036.fdocuments.us/reader036/viewer/2022062500/56815275550346895dc0a59d/html5/thumbnails/4.jpg)
CAD Tools
Max+Plus
![Page 5: FPGA CAD](https://reader036.fdocuments.us/reader036/viewer/2022062500/56815275550346895dc0a59d/html5/thumbnails/5.jpg)
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](https://reader036.fdocuments.us/reader036/viewer/2022062500/56815275550346895dc0a59d/html5/thumbnails/6.jpg)
Placement – Find home for CLBs.
![Page 7: FPGA CAD](https://reader036.fdocuments.us/reader036/viewer/2022062500/56815275550346895dc0a59d/html5/thumbnails/7.jpg)
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](https://reader036.fdocuments.us/reader036/viewer/2022062500/56815275550346895dc0a59d/html5/thumbnails/8.jpg)
circuit before placement
![Page 9: FPGA CAD](https://reader036.fdocuments.us/reader036/viewer/2022062500/56815275550346895dc0a59d/html5/thumbnails/9.jpg)
circuit after placement
![Page 10: FPGA CAD](https://reader036.fdocuments.us/reader036/viewer/2022062500/56815275550346895dc0a59d/html5/thumbnails/10.jpg)
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](https://reader036.fdocuments.us/reader036/viewer/2022062500/56815275550346895dc0a59d/html5/thumbnails/11.jpg)
Min-CutMinimize cuts during partition
![Page 12: FPGA CAD](https://reader036.fdocuments.us/reader036/viewer/2022062500/56815275550346895dc0a59d/html5/thumbnails/12.jpg)
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](https://reader036.fdocuments.us/reader036/viewer/2022062500/56815275550346895dc0a59d/html5/thumbnails/13.jpg)
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](https://reader036.fdocuments.us/reader036/viewer/2022062500/56815275550346895dc0a59d/html5/thumbnails/14.jpg)
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](https://reader036.fdocuments.us/reader036/viewer/2022062500/56815275550346895dc0a59d/html5/thumbnails/15.jpg)
Comparison
![Page 16: FPGA CAD](https://reader036.fdocuments.us/reader036/viewer/2022062500/56815275550346895dc0a59d/html5/thumbnails/16.jpg)
Routing-Find the path
• Maze routing;
• Pathfinder.
![Page 17: FPGA CAD](https://reader036.fdocuments.us/reader036/viewer/2022062500/56815275550346895dc0a59d/html5/thumbnails/17.jpg)
Routing Resource
Connection Block
Switch Block
![Page 18: FPGA CAD](https://reader036.fdocuments.us/reader036/viewer/2022062500/56815275550346895dc0a59d/html5/thumbnails/18.jpg)
Typical Connection
![Page 19: FPGA CAD](https://reader036.fdocuments.us/reader036/viewer/2022062500/56815275550346895dc0a59d/html5/thumbnails/19.jpg)
Maze router
![Page 20: FPGA CAD](https://reader036.fdocuments.us/reader036/viewer/2022062500/56815275550346895dc0a59d/html5/thumbnails/20.jpg)
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](https://reader036.fdocuments.us/reader036/viewer/2022062500/56815275550346895dc0a59d/html5/thumbnails/21.jpg)
Comparison
![Page 22: FPGA CAD](https://reader036.fdocuments.us/reader036/viewer/2022062500/56815275550346895dc0a59d/html5/thumbnails/22.jpg)
Questions
![Page 23: FPGA CAD](https://reader036.fdocuments.us/reader036/viewer/2022062500/56815275550346895dc0a59d/html5/thumbnails/23.jpg)
Placement + Routing
![Page 24: FPGA CAD](https://reader036.fdocuments.us/reader036/viewer/2022062500/56815275550346895dc0a59d/html5/thumbnails/24.jpg)
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](https://reader036.fdocuments.us/reader036/viewer/2022062500/56815275550346895dc0a59d/html5/thumbnails/25.jpg)
Synthesis
• A circuit description such as VHDL, is first converted to a netlist of basic gates. This process called synthesis.
![Page 26: FPGA CAD](https://reader036.fdocuments.us/reader036/viewer/2022062500/56815275550346895dc0a59d/html5/thumbnails/26.jpg)
Logic Optimization
• technology independent;
• Improve circuit, while keep functionality correct;
![Page 27: FPGA CAD](https://reader036.fdocuments.us/reader036/viewer/2022062500/56815275550346895dc0a59d/html5/thumbnails/27.jpg)
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](https://reader036.fdocuments.us/reader036/viewer/2022062500/56815275550346895dc0a59d/html5/thumbnails/28.jpg)
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](https://reader036.fdocuments.us/reader036/viewer/2022062500/56815275550346895dc0a59d/html5/thumbnails/29.jpg)
Placement• Placement is to determining the physical
location of each CLBs on the FPGA;
![Page 30: FPGA CAD](https://reader036.fdocuments.us/reader036/viewer/2022062500/56815275550346895dc0a59d/html5/thumbnails/30.jpg)
Routing
• Realize connections among the CLBs by selecting routing resource.– wire segments and;– routing switches.
![Page 31: FPGA CAD](https://reader036.fdocuments.us/reader036/viewer/2022062500/56815275550346895dc0a59d/html5/thumbnails/31.jpg)
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](https://reader036.fdocuments.us/reader036/viewer/2022062500/56815275550346895dc0a59d/html5/thumbnails/32.jpg)
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.