  The demise of Moore's Law and Dennard Scaling has revived interest in
specialized computer architectures and accelerators. Verification and testing
of this hardware depend heavily upon cycle-accurate simulation of
register-transfer-level (RTL) designs. The fastest software RTL simulators can
simulate designs at 1--1000 kHz, i.e., more than three orders of magnitude
slower than hardware. Improved simulators can increase designers' productivity
by speeding design iterations and permitting more exhaustive exploration. One
possibility is to exploit low-level parallelism, as RTL expresses considerable
fine-grain concurrency. Unfortunately, state-of-the-art RTL simulators often
perform best on a single core since modern processors cannot effectively
exploit fine-grain parallelism. This work presents Manticore: a parallel
computer designed to accelerate RTL simulation. Manticore uses a static
bulk-synchronous parallel (BSP) execution model to eliminate fine-grain
synchronization overhead. It relies entirely on a compiler to schedule
resources and communication, which is feasible since RTL code contains few
divergent execution paths. With static scheduling, communication and
synchronization no longer incur runtime overhead, making fine-grain parallelism
practical. Moreover, static scheduling dramatically simplifies processor
implementation, significantly increasing the number of cores that fit on a
chip. Our 225-core FPGA implementation running at 475 MHz outperforms a
state-of-the-art RTL simulator running on desktop and server computers in 8 out
of 9 benchmarks.
