1 / 17

Reconfigurable Computing (EN2911X, Fall07) Lecture 11: RC Principles: Software (4/4)

Reconfigurable Computing (EN2911X, Fall07) Lecture 11: RC Principles: Software (4/4). Prof. Sherief Reda Division of Engineering, Brown University http://ic.engin.brown.edu. Summary of the last 3 lectures. previous lectures. System Specification. this lecture. traditional compiler class.

angeni
Download Presentation

Reconfigurable Computing (EN2911X, Fall07) Lecture 11: RC Principles: Software (4/4)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Reconfigurable Computing (EN2911X, Fall07) Lecture 11: RC Principles: Software (4/4) Prof. Sherief Reda Division of Engineering, Brown University http://ic.engin.brown.edu

  2. Summary of the last 3 lectures previous lectures System Specification this lecture traditional compiler class partitioning SW HW compiling compile Verilog synthesis link mapping & packing executable image place & route configuration file download to board

  3. Programmable logic element [Maxfield’04] Embedding a digital circuit to FPGA fabric • Mapping decomposes the circuit into logic sections and flip-flops such that each section fits into a K-LUT LE. • Packing groups LEs into clusters so that each cluster fits into a LAB • Placement determines the position of each cluster into the LABs of the island style FPGA • Routing determines the exact routes for the communicating LE/LABs • What are the objectives/metrics that these algorithms should pursue?

  4. 1. Mapping finds a covering for a given circuit using K-LUT Map to a LUT in a LB [Figure form Cong FPGA’01]

  5. A covering example [From Ling et al. DAC’05] There could be many possible covering? Which one should be picked?

  6. 2. Packing How can we decide which LEs should go together in the same logic cluster? • Possible method (VPACK): Construct each cluster sequentially • Start by choosing seed LE for the cluster • Then greedily selects the LE which shares the most inputs and outputs with the cluster being constructed • Repeat the procedure until greedily until the cluster is full or the number of inputs exceed the limit I • Can addition of a LE to a cluster reduces the number of distinct inputs?

  7. WL results global optimal local optimal  It can simply get stuck in a local optimal result possible placements 3. Placement • Placement assigns an exact position or LAB for each cluster in the input netlist • Suppose you start with a random placement, how can you improve it? Possible algorithm: - Pick a pair of cells and swap their locations if this leads to reduction in WL What’s wrong with the previous greedy algorithm?

  8. Modified algorithm Generate a random move (say a swap of two cells) calculate the chance in WL (L) due to the move if the move results in reduction (L < 0) then accept else reject with probability 1-e-L/T WL results global optimal local optimal possible placements Simulated annealing allows us to avoid getting trapped in a local minima • T (temperature) controls the rejection probability • Initially, T is high (thus avoiding getting trapped early in a local minima) then the temperature cools down in a scheduled manner; at the end, the rejection probability is 1 • With the right “slow-enough” cooling scheduling, simulated annealing is guaranteed to reach the global optimal

  9. How do the cooling scheduling and corresponding cost functions look like? [source: I. Markov]

  10. Placement before & after simulated annealing [using VPR tool]

  11. 4. Routing • Assign exact routes for each wire in the given circuit in the FPGA fabric such that no two wires overlap • General idea: • Order the wires according to some criteria • Sequentially route each wire using shortest path algorithms (after removing the resources consumed from preceding routed wires)

  12. 5 4 3 4 5 6 7 8 9 10 2 4 3 2 3 4 5 6 7 8 9 10 2 1 2 3 2 1 2 3 4 5 6 7 8 9 10 2 1 s 1 2 2 1 s 1 2 9 10 2 1 2 3 2 1 2 3 11 10 2 t 4 3 2 3 4 10 11 t 11 5 4 3 4 5 9 10 11 6 5 4 5 6 7 8 9 6 5 6 7 8 9 6 7 8 9 Maze routing Problem: Find the shortest path for a 2-pin wire from s to t grid cell capacity is full grid cell still has available tracks Speed ups are possible using A* search algorithms and other AI search techniques

  13. Impact of Net Ordering • A bad net ordering • may unnecessarily increase the total wirelength • or even yield the chip unroutable! • Example: Two nets A and B A B B A B B A A A first then B (Bad order) B first then A (Good order) • Length in placement • Timing criticality

  14. So rip-up B and route C first. Finally route B. A A A A B B B B C C C C When a route for a net can’t be found then rip up and re-route Cannot route C A A B B C C [Example from Prof. D. Pan Lecture]

  15. VPR. After routing After placement and routing After placement You probably saw similar layouts from the Quartus II tool

  16. Finally programming the FPGA

  17. Done with software part for reconfigurable computing Next lecture, project overview The one after is the midterm Afterwards, we will start looking at SystemC is a higher-level method to synthesis systems Summary

More Related