HW/SW partitioning for region-based dynamic partial reconfigurable FPGAs

With dynamic partial reconfigurable (DPR) capability, an FPGA fabric is no longer static; some of its regions can be dynamically reused for different tasks. Hence current software/hardware (HW/SW) partitioning approaches are no longer applicable to such reconfigurable hardware. This paper incorporates reconfiguration optimization into HW/SW partitioning targeting advanced region-based DPR design flow. Instead of analyzing the tasks for each time step, we introduce a new task graph representation with additional reconfiguration nodes so that the HW/SW partitioning for region-based DPR designs can be optimally solved efficiently by a novel mixed-integer linear programming (MILP) formulation. Experimental results show that our approach can obtain the optimal solutions 10 times faster than the current time-step based approach. For large designs which cannot be handled by the current approaches, our approach can achieve the optimum efficiently in reasonable runtime.

[1]  Petru Eles,et al.  System Level Hardware/Software Partitioning Based on Simulated Annealing and Tabu Search , 1997, Des. Autom. Embed. Syst..

[2]  Witold Pedrycz,et al.  Genetic algorithms for hardware-software partitioning and optimal resource allocation , 2007, J. Syst. Archit..

[3]  Mohamed B. Abdelhalim,et al.  Constrained and Unconstrained Hardware-Software Partitioning using Particle Swarm Optimization Technique , 2007, IESS.

[4]  Mouloud Koudil,et al.  Solving Partitioning Problem in Codesign with Ant Colonies , 2005, IWINAC.

[5]  Nikil D. Dutt,et al.  Integrating Physical Constraints in HW-SW Partitioning for Architectures With Partial Dynamic Reconfiguration , 2006, IEEE Transactions on Very Large Scale Integration (VLSI) Systems.

[6]  Simon A. Spacey 3S: Program Instrumentation and Characterisation Framework , 2007 .

[7]  Hiroyuki Tomiyama,et al.  Proposal and Quantitative Analysis of the CHStone Benchmark Program Suite for Practical C-based High-level Synthesis , 2009, J. Inf. Process..

[8]  Patrick Schaumont,et al.  A Hardware-Software Partitioning and Scheduling Algorithm for Dynamically Reconfigurable Embedded Systems , 2000 .

[9]  Syed Ali Khayam,et al.  A generic integer programming approach to hardware/software codesign , 2001, Proceedings. IEEE International Multi Topic Conference, 2001. IEEE INMIC 2001. Technology for the 21st Century..

[10]  Niraj K. Jha,et al.  MOGAC: a multiobjective genetic algorithm for the co-synthesis of hardware-software embedded systems , 1997, 1997 Proceedings of IEEE International Conference on Computer Aided Design (ICCAD).

[11]  Jinian Bian,et al.  ISBA: An independent set-based algorithm for automated partial reconfiguration module generation , 2012, 2012 IEEE/ACM International Conference on Computer-Aided Design (ICCAD).

[12]  Marco D. Santambrogio,et al.  Floorplanning for Partially-Reconfigurable FPGA Systems via Mixed-Integer Linear Programming , 2014, 2014 IEEE 22nd Annual International Symposium on Field-Programmable Custom Computing Machines.

[13]  Aviral Shrivastava,et al.  Optimal hardware/software partitioning for concurrent specification using dynamic programming , 2000, VLSI Design 2000. Wireless and Digital Imaging in the Millennium. Proceedings of 13th International Conference on VLSI Design.

[14]  Kiyoung Choi,et al.  Hardware-software cosynthesis for run-time incrementally reconfigurable FPGAs , 2000, ASP-DAC '00.

[15]  Wu Jigang,et al.  Low-complex dynamic programming algorithm for hardware/software partitioning , 2006, Inf. Process. Lett..

[16]  Roberto Cordone,et al.  Partitioning and Scheduling of Task Graphs on Partially Dynamically Reconfigurable FPGAs , 2009, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[17]  Peter Marwedel,et al.  Hardware/software partitioning using integer programming , 1996, Proceedings ED&TC European Design and Test Conference.

[18]  Jan Madsen,et al.  PACE: A Dynamic Programming Algorithm for Hardware/Software Partitioning , 1996, CODES.