Today's powerful FPGAs are suitable for demanding applications. They can handle the complexity and performance needed for applications that include image and video processing. But there is a growing gap between what the FPGAs can deliver, and what the application designers can program to run on them. Complex applications contain up to tens of thousands of lines of code, a number that is still likely to increase. They are coded in high-level procedural languages such as C, C++, JAVA and C#.