[logo] 
 
Home
News
Activity
About/Contact
Major Tools
  Dinotrace
  Verilator
  Verilog-mode
  Verilog-Perl
Other Tools
  BugVise
  CovVise
  Force-Gate-Sim
  Gspice
  IPC::Locker
  Rsvn
  SVN::S4
  Voneline
  WFH
General Info
  Papers

Verilog Simulator Benchmarks

Summary

Below are the results from running small Verilog model through several standard simulators.

As with any benchmark mileage varies; this example's performance will not match your design's results. I am not responsible if this data is wrong!

Provisos

Verilator and VTOC are cycle based simulators, while the others are activity driven. If a design is only being clocked, Verilator will perform worse when compared, and vice versa. The example below is between the extremes.

Please run your own experiments! If, and only if, the source code of the benchmark is postable here, and you provide Verilator numbers too, I'll post them here. Otherwise I'll add it to the Other Users section below.

Results

1,420,000 SuSE 11.1 64-bit (Free) Verilator 3.714; gcc 4.3.2 -O3 -m64
1,170,000 SuSE 11.1 32-bit (Free) Verilator 3.714; gcc 4.3.2 -O3 -m32
814,000 SuSE 11.1 64-bit Cadence NC-Verilog 8.20-s013 +nc64bit
799,000 SuSE 11.1 32-bit Cadence NC-Verilog 8.20-s013
510,000 (1) FC 8 32-bit Tachyon-DA CVC 4.17b 32-bit +nbaopt
468,000 (1) FC 8 32-bit Tachyon-DA CVC 4.17b 32-bit
407,000 (1) FC 8 64-bit Tachyon-DA CVC 4.17b 64-bit
403,000 (1) FC 8 64-bit Tachyon-DA CVC 4.17b 64-bit +nbaopt
473,000 SuSE 11.1 32-bit Synopsys VCS C-2009.06
442,000 SuSE 11.1 64-bit Synopsys VCS C-2009.06 -full64
80,600 (2) Windows 2000 32-bit Veritak 2.20X
17,800 SuSE 11.1 64-bit (Free) Icarus Verilog 0.9.1
13,400 (2) Windows 2000 32-bit MXE
11,600 (3) SuSE 11.1 64-bit (Free) GPL CVer 2.12a

Software: SuSE Linux 11.1, Kernel 2.6.27, GCC 4.3.2.

Hardware: AMD Phenom 9500 2.2GHz, DDR2 667 Memory. Note Intel processors seem to have a smaller 32 vs 64-bit performance difference.

(1) CVC numbers were reported by www.tachyon-da.com; their numbers have been normalized from a run on Core2 Duo hardware.

(2) Veritak and MXE numbers were reported by www.sugawara-systems.com; their numbers have been normalized from a run on older hardware.

(3) GPL CVer 2.12a requires commenting out v_ex.c line 4022 "__my_free fiopfp..." to avoid a coredump. To our knowledge, CVer has been unsupported since 2005.

Other Users

Again: As with any benchmark <b>mileage varies; this example's performance will probably not match your results.</b> I am not responsible if this data is wrong!

Other users have reported the following relative performance on their designs: (Note they seem contradictory, as they refer to differing designs.)

  • Verilator is 90x faster than Icarus Verilog.
  • Verilator is 10-40x faster than Modelsim SE.
  • Verilator is 3x faster than NC-Verilog.
  • Verilator is 1.5x faster than VCS.
  • VTOC is 4x faster than Verilator.
  • VTOC is 50x faster than NC-Verilog.
  • VCS is 3x faster than Verilator.
  • VCS is 3x faster than NC-Verilog.
  • VCS is 10x faster than NC-Verilog.
  • VCS is the same speed as NC-Verilog.
  • CVer is the same speed as Icarus Verilog.

Download

The example used for the above tests is a model of the Motorolla M68K processor from www.opencores.org, written by Shawn Tang. Minor changes were made to remove some unnecessary asynchronous paths.

git clone http://git.veripool.org/git/verilog-sim-benchmarks  # First time only
cd verilog-sim-benchmarks
git pull # Otherwise

This is not a nicely installed and runnable package; expect some hand edits to get the benchmark working in your environment. This is provided as-is; I'll take patches back, but may not be able to provide help in getting it working.

If anyone would like to add additional benchmarks, they'd be welcome.