Download presentation

Presentation is loading. Please wait.

Published byMadeline York Modified over 2 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 … … ,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,

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 ,2 1,3 1,1 2,2 2,3 2,1 3,2 3,3 3, ,2 1,3 1,1 2,2 2,3 2,1 3,2 3,3 3, ,2 1,3 1,1 2,2 2,3 2,1 3,2 3,3 3,

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 < α < <= α <= α <

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 9symml alu apex e example k term too-lrg vda Total

16
Comparison to VPR Benchmarks VPlace [5]GASA Cost 9symml alu apex7785 e example k term1700 too-lrg vda3067 Total

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

© 2017 SlidePlayer.com Inc.

All rights reserved.

Ads by Google