Optimizing register binding in FPGAs using simulated annealing - Ouaiss, I. (2017)
When variables are assigned to registers or memories in FPGAs, multiplexers are needed for correct operation of the design. These multiplexers are needed at the input registers or memories if different functional units are writing to the same storage unit. Since in FPGAs the area covered by multiplexers is significantly large compared with the area of the overall design, reducing the area of the multiplexers can reduce the overall area occupied by a design. Reducing the area of a design is essential to efficiently utilize the logic area of the FPGAs. This paper proposes a solution that applies simulated annealing after binding variables to storage elements. This solution optimizes the assignment of variables onto registers when standard techniques such as clique partitioning are used; and onto on-chip memory banks when two different memory binding techniques are used. The savings obtained in terms of multiplexer area reaches 27% with an average of 16%; moreover, the overall logic area savings reaches 17% with an average of 7%