As the cost per gate of FPGAs declines, embedded and high-performance systems designers are being presented with new opportunities for creating hardware&#151accelerated applications. FPGA-based platforms effectively bridge the gap between software programmable systems based on traditional microprocessors, and those based on custom hardware functions. From a software perspective, advances in design tools and methodologies for these platforms present opportunities for the rapid creation of hardware- accelerated algorithms. This paper presents a brief overview of FPGAs and FPGA-based platforms, and presents the general philosophies behind their use as computing platforms. From this base of knowledge, we then move into discussions of how C language can be used for FPGA application development, and we provide a concrete example of a mixed hardware and software application implemented on an FPGA.