Chapter 12. Combining Impulse C with an Embedded Operating System
Using a small-footprint operating system in conjunction with an embedded FPGA processor can dramatically increase the power and flexibility of FPGA-based computing. An operating system provides access to standard hardware devices (including network interfaces and Flash memory) as well as powerful application services, such as standardized file systems and multi-tasking capabilities.
By combining software running under the control of an operating system with custom-designed hardware accelerators residing in the FPGA, it's possible to create high-performance computing applications in which critical algorithms reside as dedicated hardware in the FPGA, while non-critical software components (or software test benches) reside in the embedded processor and take advantage of the high-level features provided by the operating system.
This chapter describes how to develop such an application, using the uClinux open-source operating system for demonstration purposes.