Configuration compression for FPGA-based embedded systems

Field programmable gate arrays (FPGAs) are a promising technology for developing high-performance embedded systems. The density and performance of FPGAs have drastically improved over the past few years. Consequently, the size of the configuration bit-streams has also increased considerably. As a result, the cost-effectiveness of FPGA-based embedded systems is significantly affected by the memory required for storing various FPGA configurations. This paper proposes a novel compression technique that reduces the memory required for storing FPGA configurations and results in high decompression efficiency. Decompression efficiency corresponds to the decompression hardware cost as well as the decompression rate. The proposed technique is applicable to any SRAM-based FPGA device since configuration bit-streams are processed as raw data. The required decompression hardware is simple and the decompression rate scales with the speed of the memory used for storing the configuration bit-streams. Moreover, the time to configure the device is not affected by our compression technique. Using our technique, we demonstrate up to 41% savings in memory for configuration bit-streams of several real-world applications.

[1]  Arun K. Somani,et al.  A reconfigurable multifunction computing cache architecture , 2001, IEEE Trans. Very Large Scale Integr. Syst..

[2]  Peter M. Athanas,et al.  A run-time reconfigurable engine for image interpolation , 1998, Proceedings. IEEE Symposium on FPGAs for Custom Computing Machines (Cat. No.98TB100251).

[3]  Patrick W. Dowd,et al.  An FPGA-based coprocessor for ATM firewalls , 1997, Proceedings. The 5th Annual IEEE Symposium on Field-Programmable Custom Computing Machines Cat. No.97TB100186).

[4]  Zhiyuan Li,et al.  Configuration Compression for Virtex FPGAs , 2001, The 9th Annual IEEE Symposium on Field-Programmable Custom Computing Machines (FCCM'01).

[5]  Oliver Diessel,et al.  On Dynamic Task Scheduling for EPGA-Based Systems , 2001, Int. J. Found. Comput. Sci..

[6]  Kurt Keutzer,et al.  A text-compression-based method for code size minimization in embedded systems , 1999, TODE.

[7]  Wayne Luk,et al.  Framework and tools for run-time reconfigurable designs , 2000 .

[8]  José D. P. Rolim,et al.  A Comparative Study of Performance of AES Final Candidates Using FPGAs , 2000, CHES.

[9]  Scott Hauck,et al.  Runlength compression techniques for FPGA configurations , 1999, Seventh Annual IEEE Symposium on Field-Programmable Custom Computing Machines (Cat. No.PR00375).

[10]  Zhiyuan Li,et al.  Configuration compression for the Xilinx XC6200 FPGA , 1999, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[11]  Peter M. Athanas,et al.  A stream-based configurable computing radio testbed , 1998, Proceedings. IEEE Symposium on FPGAs for Custom Computing Machines (Cat. No.98TB100251).

[12]  Brad L. Hutchings,et al.  Run-Time Reconfiguration: A method for enhancing the functional density of SRAM-based FPGAs , 1996, J. VLSI Signal Process..

[13]  Trevor N. Mudge,et al.  Improving code density using compression techniques , 1997, Proceedings of 30th Annual International Symposium on Microarchitecture.

[14]  Mark Nelson,et al.  The Data Compression Book , 1991 .

[15]  Viktor K. Prasanna,et al.  Configuration compression for FPGA-based embedded systems , 2001, IEEE Transactions on Very Large Scale Integration (VLSI) Systems.

[16]  Mark Nelson,et al.  The data compression book (2nd ed.) , 1995 .