LiveSim: A Fast Hot Reload Simulator for HDLs
Authors:
- 1 August 2020
- conference paper
- Published by Institute of Electrical and Electronics Engineers (IEEE)
- p. 126-135
Abstract
With the increased complexity of digital architectures and aggregation of specialized hardware, functional simulation has become a major bottleneck in digital design. During functional and performance verification of a design, engineers make several iterations to determine the impact of code changes into the simulation result. These iterations are time-consuming both because the compilation time of hardware description to binary is slow and because simulation can take several hours until the point of interest is reached. In contrast, live programming environments allow developers to manipulate the system under development as it is being run. They have become increasingly popular as they provide rapid feedback, yet there is no available live environment for hardware development. In this paper, we propose a live programming and simulation environment that targets hardware design. Our approach is language-independent and leverages incremental compilation, hot binary reloading, and checkpointing to provide fast feedback to the user. We take special care to not replicate code for multiple instances of the same module and thus prevent code bloat, for instance, for multi-and many-core architectures. Our framework also is careful in verifying the consistency across checkpoints, to leverage parallel execution and reduce the amount of code that requires compilation. Our results show that this approach can provide simulation feedback in under 2 seconds, even when simulating a 256 RISC-V multicore architecture. As a reference, Verilator did not finish compiling this architecture after 24 hours of runtime.Keywords
This publication has 16 references indexed in Scilit:
- LiveSynth2017
- PyMTL: A Unified Framework for Vertically Integrated Computer Architecture Research2014
- Optimized Simulation Acceleration with Partial Testbench Evaluation2014
- Chisel2012
- 40years of searching for the best computer system response timeInteracting with Computers, 2011
- Processor Verification with hwBugHunt2008
- Multi-Level Mediator-Based Technique for Classes Hot Swapping in Java Applications2006
- Master/Slave Speculative Parallelization2003
- Functional verification of large ASICs1998
- System response time operator productivity, and job satisfactionCommunications of the ACM, 1983