1 INTRODUCTION

2 BACKGROUND  
2.1 Virtualization: General Concepts  
2.2 Challenges of FPGA Virtualization  
2.3 Definitions  
2.4 Programming Model  

3 SYSTEM ARCHITECTURE FOR FPGA VIRTUALIZATION  
3.1 Hardware Stack  
3.2 Software Stack  
3.3 Overlay Architecture  

4 OBJECTIVES OF FPGA VIRTUALIZATION  
4.1 Abstraction  
4.2 Multi-Tenancy  
4.3 Resource Management  
4.4 Isolation  

5 CONCLUSION AND FUTURE TRENDS