Publication | Closed Access
Just-In-Time Compilation for Verilog
28
Citations
58
References
2019
Year
Unknown Venue
EngineeringCompiler TechnologySoftware SystemsComputer ArchitectureSoftware EngineeringDebugging EnvironmentSoftware AnalysisHardware SystemsFormal VerificationAcceleration OpportunitiesHardware Verification LanguagesFpgas OfferParallel ComputingCompilersDynamic CompilationJust-in-time CompilationCompiler SupportComputer EngineeringComputer ScienceDebuggerFpga DesignHardware EmulationProgram AnalysisFormal Methods
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.
| Year | Citations | |
|---|---|---|
Page 1
Page 1