Computing with Field-Programmable Gate Arrays Oskar Mencer, Bell Labs, Imperial College UK Wayne Luk, Imperial College UK 1/2 Day Field Programmable Gate Arrays (FPGAs) offer the potential of orders of magnitude higher performance than a microprocessor for specific domains of applications. The key to achieving this potential is to move the level of abstraction of programming FPGAs closer to the level of abstraction of programming microprocessors. Topics: - Applications View: Static and dynamic approaches to acceleration of applications in areas such as multimedia, graphics, voice and image processing, encryption, compression, coding, VLSI CAD and optimization in general (e.g. genetic algorithms). - FPGA Technology-the basic building blocks available within FPGAs. This includes FPGA micro architecture, support for reconfiguration. Furthermore, the basic building blocks are combined in arithmetic units and module generation libraries which form a scalable "instruction set" for reconfigurable computing. - Architecture Generation, including processor-like architectures, stream architectures, memory-like architectures, and, pros and cons of bit-level architectures versus coarse-grain parallel architectures. - Compilation technology for FPGAs: State-of-the-Art methods for compiling to FPGAs including a description of approaches taken by several industrial and academic examples. We compare the hardware designers' approach to procedural, object-oriented and functional approaches to the FPGA programming problem.