Just-in-Time Compilation for Verilog: A New Technique for Improving the FPGA Programming Experience

29Citations
Citations of this article
22Readers
Mendeley users who have this article in their library.
Get full text

Abstract

FPGAs offer compelling acceleration opportunities for modern applications. However compilation for FPGAs is painfully slow, potentially requiring hours or longer.We approach this problem with a solution from the software domain: The use of a JIT. Code is executed immediately in a software simulator, and compilation is performed in the background. When finished, the code is moved into hardware, and from the user's perspective it simply gets faster. We have embodied these ideas in Cascade: The first JIT compiler for Verilog. Cascade reduces the time between initiating compilation and running code to less than a second, and enables generic printf debugging from hardware. Cascade preserves program performance to within 3× in a debugging environment, and has minimal effect on a finalized design. Crucially, these properties hold even for programs that perform side effects on connected IO devices. A user study demonstrates the value to experts and non-experts alike: Cascade encourages more frequent compilation, and reduces the time to produce working hardware designs.

Cite

CITATION STYLE

APA

Schkufza, E., Wei, M., & Rossbach, C. J. (2019). Just-in-Time Compilation for Verilog: A New Technique for Improving the FPGA Programming Experience. In International Conference on Architectural Support for Programming Languages and Operating Systems - ASPLOS (pp. 271–286). Association for Computing Machinery. https://doi.org/10.1145/3297858.3304010

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free