Let's look at a type-directed approach for implementing image processing applications on FPGAs. This approach will enable us to statically verify a design's throughput. If you like this post, check out my PLDI 2020 paper Aetherling, which provides a formal definition of the types and uses them to make trade-offs automatically during the FPGA design process.
I'm blogging in order to share what I've learned about making programs faster using application-specific techniques.