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

被引:23
作者
Schkufza, Eric [1 ]
Wei, Michael [1 ]
Rossbach, Christopher J. [2 ,3 ]
机构
[1] VMware Res, Palo Alto, CA 94304 USA
[2] UT Austin, Austin, TX USA
[3] VMware Res, Austin, TX USA
来源
TWENTY-FOURTH INTERNATIONAL CONFERENCE ON ARCHITECTURAL SUPPORT FOR PROGRAMMING LANGUAGES AND OPERATING SYSTEMS (ASPLOS XXIV) | 2019年
关键词
Cascade; Just-in-Time; JIT; Compiler; FPGA; Verilog; SYSTEMS;
D O I
10.1145/3297858.3304010
中图分类号
TP3 [计算技术、计算机技术];
学科分类号
0812 ;
摘要
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 3x 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.
引用
收藏
页码:271 / 286
页数:16
相关论文
共 81 条
[1]  
Adler M, 2011, FPGA 11: PROCEEDINGS OF THE 2011 ACM/SIGDA INTERNATIONAL SYMPOSIUM ON FIELD PROGRAMMABLE GATE ARRAYS, P25
[2]  
Aehlig K, 2016, BAZEL CORRECT REPROD
[3]  
Anderson Erik, 2006, FCCM 06
[4]  
[Anonymous], 2016, 2013 26 INT C FILED
[5]  
[Anonymous], 2017, INTEL UNVEILS NEW XE
[6]  
[Anonymous], 2008, HIGH LEVEL SYNTHESIS
[7]  
[Anonymous], 2012, DEVICE HDB, V1
[8]  
[Anonymous], 2006, IEEE Std 1609.2-2006, DOI [DOI 10.1109/IEEESTD.2006.243731, 10.1109/IEEESTD.2006.99495]
[9]  
[Anonymous], 2017, AVALON INTERFACE SPE
[10]  
[Anonymous], 2011, IEEE Std 1609.4-2010 (Revision of IEEE Std 1609.4-2006), DOI [DOI 10.1109/IEEESTD.2009.5154067, 10.1109/IEEESTD.2011.5712769, DOI 10.1109/IEEESTD.2011.5712769]