2023-06-13 16:36:29 +03:00
2023-06-11 16:15:40 +03:00
2023-06-11 17:54:44 +03:00
2023-06-13 16:36:29 +03:00
2023-06-13 16:36:29 +03:00
2023-06-11 16:15:40 +03:00
2023-06-11 22:23:23 +03:00
2023-06-13 16:35:18 +03:00
2023-06-11 16:15:40 +03:00
2023-06-13 16:35:18 +03:00
2023-06-11 16:15:40 +03:00

Простой бенчмарк HDL симуляторов (преранняя версия)

Для оценки скорости запускается симуляция софт-процессора PicoRV32 с программой вычисления первых 200 знаков числа Пи.

В папке source находятся исходники RTL и программы. Верхний модуль - testbench с единственным входным сигналом clock. Генерация клока во внешнем модуле сделана для совместимости с верилятором, который не позволяет генерировать клок в верилоге.

В папках test-* находятся скрипты для запуска бенчимарка на конкретном симуляторе. Скрипты называются __build.sh (для сборки проекта) и __run.sh (для запуска симуляции).

Скрипт run.sh запускает бенчмарк на всех симуляторах и сохраняет время исполнения в файл results.txt. Можно запустить бунчмарк на одном симуляторе, для чего в параметрах скрипта run.sh нужно указать папку с бенчмарком.

Результаты для 50 знаков Пи

  • Xeon E5-2630v3 @ 2.40GHz
  • Verilator 5.011 devel rev v5.010-98-g15f8ebc56
  • Icarus Verilog 13.0 (devel) (s20221226-127-gdeeac2edf)
  • ModelSim SE-64 2020.4 (Revision: 2020.10)

Время в миллисекундах:

    test-iverilog: 210540
    test-modelsim: 25555
    test-verilator: 1289

Результаты для 200 знаков Пи

Вычисление 200 знаков на Icarus Verilog занимает непозволительно много времени, по этому перед запуском всех бенчмарков рекомендую переименовать папку test-iverilog в notest-iverilog.

Результаты для 200 знаков на том же процессоре:

    test-iverilog: 3257116
    test-xsim: 938296
    test-modelsim: 359562
    test-verilator: 20816

Предварительные результаты по симуляторам "Big 3"

Коллеги прогнали бенчмарк на Xcelium, VCS и Modelsim. Примерные оценки показали следующие результаты (приведено к скорости Xcelium):

    test-verilator: 0.35
    test-xcelium: 1
    test-vcs: 1.37
    test-modelsim: 5.95
    test-xsim: 15.5
    test-iverilog: 58

Конечно, нужно учитывать то, что Verilator - это cycle-accurate симулятор, и что он не поддерживает состояния X и Z.

Description
Simple HDL simulators benchmark
Readme 142 KiB
Languages
Verilog 45.6%
Scheme 31.6%
C 9.2%
SystemVerilog 7.2%
Shell 3.1%
Other 3.2%