BenchSim is a desktop app (PyQt6 + QScintilla) to edit, compile, and simulate Verilog testbenches with Icarus Verilog (iverilog + vvp) and visualize waveforms in GTKWave.
- Dual workflow support:
IcestudioandGenericVerilog projects. - Auto source/testbench discovery (
Auto,Icestudio,Genericmodes). - Fast simulation loop:
Save+Simulatewith compile/run logs. - Clickable compile errors (
file:line:col) to jump in the editor. - Verilog-focused editor:
- syntax highlighting,
- autocomplete (keywords + document symbols),
- find/replace,
- adjustable font size (Settings, shortcuts,
Ctrl+Mouse Wheel).
- Recent projects in the top toolbar.
- UI language support (
English,Español). - Built-in update checker via GitHub Releases.
- Python 3.8+
- Icarus Verilog (
iverilog,vvp) - GTKWave
python -m venv .venv
source .venv/bin/activate
pip install -e .
benchsimAlternative run command:
python -m benchsim.main- Export from Icestudio so
main.vis generated underice-build/<project_name>/. - Place your
*_tb.vtestbench in project root or inice-build/<project_name>/. - Open the project folder in BenchSim.
- If
ice-buildcontains multiple projects, open a single project folder directly:ice-build/<project_name>/.
- Put DUT/source
.vfiles and one or more*_tb.vfiles in the same folder. - Open that folder in BenchSim.
- Select testbench and run simulation.
Ctrl+S: SaveCtrl+R: Simulate (auto-save + run)Ctrl+Shift+V: Validate projectCtrl+O: Open project folderF5: Reload project filesCtrl+,: Open settingsCtrl+F: FindCtrl+H: ReplaceF3/Shift+F3: Find next / previousEsc: Close find/replace barCtrl+Space: Trigger autocompleteCtrl++/Ctrl+=: Increase editor font sizeCtrl+-: Decrease editor font sizeCtrl+0: Reset editor font sizeCtrl+Mouse Wheel: Zoom editor font in/out
source .venv/bin/activate
python -m PyInstaller packaging/pyinstaller/BenchSim.spec --noconfirm --cleanOutput is generated in dist/BenchSim/ (onedir). Distribute the full folder, not only the binary.
"C:\Program Files (x86)\Inno Setup 6\ISCC.exe" packaging\windows\BenchSim.issInstaller output:
dist\installer\BenchSim-Setup-<version>.exe
benchsim/: app source codebenchsim/themes/: UI/editor theme filespackaging/pyinstaller/: PyInstaller specpackaging/windows/: Inno Setup installer scriptpackaging/linux/: desktop entry templatesim_icon_package/: icon assetsdocs/screenshots/: README screenshotsCHANGELOG.md: release history
