Download presentation

Presentation is loading. Please wait.

Published byMadeline York Modified over 3 years ago

1
An Investigation on FPGA Placement Using Mixed Genetic Algorithm with Simulated Annealing Meng Yang Napier University Edinburgh, UK

2
Overview Placement problem definition Placement problem definition Symmetrical FPGA general architecture Symmetrical FPGA general architecture Proposed algorithm Proposed algorithm Experimental results Experimental results Conclusions Conclusions

3
FPGA Placement Definition Constraints Constraints Some fixed I/O pads Some fixed I/O pads Architecture Architecture Problem definition Problem definition Given a netlist to find exact locations of the FPGA logic blocks with constraints to minimize wire length required for routing

4
FPGA General Architecture Switch Block CLBs IOBs Out 4-input LUT D Flip-flop Clock In

5
9 Genotype The chromosome structure is (L 1, L 2, L 3, ……, L N ) The chromosome structure is (L 1, L 2, L 3, ……, L N ) Chromosome length, N, depends on the size of FPGA, K Chromosome length, N, depends on the size of FPGA, K The location of CLB is calculated as P = (x-1)×K + (y-1) The location of CLB is calculated as P = (x-1)×K + (y-1) 0123 … 131415 -1 5 2 9…6-110 108 1,2 1,3 1,1 1,4 2,2 2,3 2,1 2,4 3,2 3,3 3,1 3,4 4,2 4,3 4,1 4,4 211 5674 13

6
Fitness Function Compensation factor Bounding box for horizontal span Bounding box for vertical span The worst cost for placementmaxcost

7
Half-perimeter Wire Length Model Bounding Box=6 =4 (Hori. dist.) +2(Vert. dist.) Net with 6 terminals

8
Half-perimeter Wire Length Model Net with 6 terminals Bounding Box=5 =3 (Hori. dist.) +2(Vert. dist.)

9
Overview of GASA 01 begin 02 initialize_population (); 03 while (generation < MAX_GENS) do 04 evaluate_population_fitness (); 05 reproduce_population (Preserve); 06 for i = 1 to POP_SIZE/2 do 07 crossover (Pcrossover); 08 for j=1 to NUM_GENES do 09 mutate(Pmutation); 10 for i = 1 to POP_SIZE do 11 local_improvement(Plocal); 12 elitism(); 13 end while 14 select_the_best_one(); 15 T = set_temperature(); 16 R = set_block_movement_range(); 17 /* following algorithm is pseudo-code of SA*/ 18 while (Exit_criterion() == FALSE) do 19 while (inner_criterion() == FALSE) do 20 Pnew = generate_movement (R, Pold) 21 ΔC = C (Pnew) - C (Pold); 22 RANDOM = generate_number(); 23 if (RANDOM < e exp (-ΔC/T)) 24 Pold = Pnew; 25 end while 26 end while 27 end algorithm

10
Selection Individuals are selected according to their fitness value Individuals are selected according to their fitness value The fitness values of population are sorted in increasing order. The fitness values of population are sorted in increasing order. A small number of individuals of population with higher fitness value in the current generation are intact and remain in the population A small number of individuals of population with higher fitness value in the current generation are intact and remain in the population W individuals are simultaneously selected W individuals are simultaneously selected The selection procedure is random but fitter individual is more likely to be selected The selection procedure is random but fitter individual is more likely to be selected

11
Crossover Process 01 2 3 4 5 6 7 8 6 -1 1 4 5 2 -1 3 -1 01 2 3 4 5 6 7 8 -1 5 2 3 -1 6 -1 4 1 01 2 3 4 5 6 7 8 1 -1 6 4 5 2 -1 3 -1 1 1,2 1,3 1,1 2,2 2,3 2,1 3,2 3,3 3,1 26 53 4 1 1,2 1,3 1,1 2,2 2,3 2,1 3,2 3,3 3,1 62 54 36 1,2 1,3 1,1 2,2 2,3 2,1 3,2 3,3 3,1 21 53 4

12
Local optimization (SA) stage Once GA has done the global search in the first stage, SA will take over from GA to do local search. Once GA has done the global search in the first stage, SA will take over from GA to do local search. The takeover is static. If the improvement does not gained in the GA for 5 generations or the number of generations is greater than the maximum number of generations, SA will start to work on individual instead of entire population. The takeover is static. If the improvement does not gained in the GA for 5 generations or the number of generations is greater than the maximum number of generations, SA will start to work on individual instead of entire population. As the takeover process is static, according to the experimental results, the initial temperature T in the second stage of our algorithm is selected at 1 degree As the takeover process is static, according to the experimental results, the initial temperature T in the second stage of our algorithm is selected at 1 degree

13
Local optimization (SA) stage (Cont.) New temperature is computed as Tnew = β Told New temperature is computed as Tnew = β Told β depends on α β depends on α α is the percentage of attempted movements between two swapped blocks that have been accepted α is the percentage of attempted movements between two swapped blocks that have been accepted Movement is only between two blocks nearby Movement is only between two blocks nearby αβ 0.15 < α < 0.30.95 0.05 <= α <= 0.150.8 α < 0.050.6

14
Comparison Flow Logic optimization and technology map to 4 Look Up Tables (LUTs) Pack Flip-Flops and LUTs into basic logic elements Placement (VPlace) Routing (VRouter) Placement (GASA) Channel density Benchmarks

15
Comparison to GA Name GA GASA CPU (s)No. of TracksCPU (s)No. of Tracks 9symml25.74522.865 alu291.76674.276 apex738.39538.115 e64163.708155.218 example2107.57595.235 k2461.5910364.779 term128.06526.355 too-lrg82.51774.377 vda179.178148.338 Total1178.4959999.558

16
Comparison to VPR Benchmarks VPlace [5]GASA Cost 9symml690693 alu216701678 apex7785 e6428532849 example213481345 k258745873 term1700 too-lrg17501748 vda3067 Total1873718738

17
Conclusions FPGA placement by using GASA is presented. The experimental results show that the proposed algorithm is effective in improving the quality of placement for the tested MCNC benchmarks. The proposed GASA achieves less CPU time than GA in all cases without degradation of performance in the final routing stage, i.e. same number of routing channel tracks for all benchmarks. It also shows GASA and VPlace are highly comparable placement tools.

18
Thank you for your attention

Similar presentations

OK

Name Convolutional codes Tomashevich Victor. Name- 2 - Introduction Convolutional codes map information to code bits sequentially by convolving a sequence.

Name Convolutional codes Tomashevich Victor. Name- 2 - Introduction Convolutional codes map information to code bits sequentially by convolving a sequence.

© 2018 SlidePlayer.com Inc.

All rights reserved.

Ads by Google

Ppt on programmable logic device Ppt on total internal reflection diagrams Ppt on pricing policy in marketing Ppt on nuclear family and joint family support Ppt on polynomials and coordinate geometry questions Ppt on multiplication for class 2 Ppt on contractual capacity of parties Ppt on corruption in indian politics Ppt on second law of thermodynamics definition Ppt on first conditional activities