~/talk

Verilator 4.0 - Open Simulation Goes Multithreaded

Talkat ORConf 2018 · 2018-09-21..09-23· [testing]
slides:none on file

Verilator 4.0 generates C++ from SystemVerilog-like RTL and adds multithreaded macro-task partitioning that groups many micro-tasks into ~10x macro tasks, assigns them statically to threads to avoid cache thrash, and uses semaphore-style sync across macro-task edges. Measured gains: ~30% single-thread speedup over 3.9.6, 1.9x on 4 logical CPUs (2.5x when pinned to one socket), and up to 5.5x on 12 threads with ~52% scalability. Also adds LXT2 waveform output and improved linting and runtime options.

AI-written summary · about

  1. 0:00Start
  2. 1:39Verillator is a compiler
  3. 3:33Example: Linting a Verilog Module
  4. 4:39Example: Translation
  5. 5:25Verilator in Standard IP
  6. 7:33Multithreading Algorithm Begins
  7. 9:30Merge micro tasks, only macro tasks remain
  8. 10:02Schedule macro tasks onto threads
  9. 11:41Benchmarks
  10. 12:34Verilator Performance vs. Big 3
  11. 14:16Beware Which Cores Are Used
  12. 15:36Verillator Multithreaded Performance on 48 core machine
  13. 17:02Verillator Gantt Report (4 threads)
  14. 18:37Conclusion: Adopt Verilator
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.