Complete eSim 2.6 modernization with a new UI, HDL workflows, and installers - #644
Open
VaradhaCodes wants to merge 11 commits into
Open
Complete eSim 2.6 modernization with a new UI, HDL workflows, and installers#644VaradhaCodes wants to merge 11 commits into
VaradhaCodes wants to merge 11 commits into
Conversation
Remove generated caches, converter outputs, prebuilt legacy binaries, misplaced test projects, and retired packaging from version control. Extend ignore rules so local build and simulation products stay out of future contributions. Relocate the MC1496 MOS example into the maintained subcircuit library.
Make configuration loading explicit and side-effect free. Resolve user, workspace, and preference paths through shared helpers; merge preference writes atomically; and give application dialogs reliable parent windows. Add isolated configuration tests so the suite cannot modify the real user profile or depend on machine-specific state.
Add reusable light/dark theme tokens, scalable controls, motion, tooltip, icon, font, and stylesheet foundations. Keep this layer independent from the application shell so subsystem code can adopt one visual contract. Add a tabbed QScintilla project editor with syntax-aware highlighting, find and status bars, plus a plain-text fallback.
Replace per-release installation scripts with one profile-driven Ubuntu installer and a bootstrap entry point supporting doctor, dry-run, uninstall, and legacy cleanup modes for Ubuntu 24.04 through 26.04. Upgrade the NGHDL stack to ngspice 45.2, harden GHDL and Verilator setup, add the d_cosim operating-point patch, and make headless and IHP launches use the supported runtime paths.
Replace the removed legacy SPICE exporter with a direct KiCad schematic netlister. Preserve node order, subcircuit identity, and NgVeri/NGHDL model blocks while producing the circuit format expected downstream. Cover generation, write safety, and mixed-signal netlist behavior with focused regression tests and a developer guide.
Anchor project identity to project files instead of folder names, preserve cross-project model choices, and make asynchronous conversion lifecycle state explicit and bounded. Group shared device and subcircuit models, regenerate netlists safely, improve conversion failure handling, and add regression coverage across project management, converters, subcircuits, and Modelica export.
Extract a testable Qt-free HDL core and one toolchain resolver, then build the Author, Verify, Convert, and Place workflow around a shared design. Support Icarus d_cosim, Verilator NgVeri, NGHDL, and Makerchip without silent failures or ambiguous model ownership. Use atomic symbol and model registration, asynchronous removal, isolated backend outputs, structural port parsing, and comprehensive workflow and simulation tests.
Recover complete rawfile node names, separate extraction from rendering, and incrementally update stacked plots without layout collapse or stale empty-state output. Add theme-aware, high-DPI-safe canvases and regression tests for data, math, cursor, pane, console, and d_cosim restaging behavior.
Add the PowerShell build pipeline, native launcher, Inno Setup installer, dependency manifest, bundled KiCad integration, log collection, and clean uninstall support needed for a self-contained Windows 10/11 release. Pin the packaged runtime, verify DLL and dependency closure, seed disabled KiCad libraries safely, and prepare SKY130 so the installed PDK works away from the build machine.
Wire the shared visual system through the main window, project explorer, workspace, welcome screen, dialogs, docks, and console. Add first-run zoom, live theme transitions, fullscreen tools, snapshots, and single-instance dock behavior. Harden startup and teardown, parent transient windows, preserve actions across garbage collection, and cover motion, scaling, lifecycle, and fullscreen behavior with focused tests.
Set the 2.6 product identity and define one clean export contract for the Ubuntu archive and Windows installer. Publish the Ubuntu artifact through CI and document reproducible build, packaging, install, and maintenance procedures. Record architecture, upstream compatibility decisions, NgVeri accuracy, Makerchip integration, contributor expectations, and supported platform quickstarts for reviewers and future maintainers.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
eSim 2.6
This PR brings the eSim desktop application, simulation workflows, and release tooling together as one modernized 2.6 release. It introduces a new PyQt6 workspace, a proper project editor, rebuilt model and subcircuit tools, integrated Verilog and VHDL flows, mixed-signal waveform support, direct KiCad 7 to 10 conversion, and native delivery paths for Ubuntu and Windows.
A new application workspace
The interface now follows one visual and interaction system across the welcome page, project explorer, editors, docks, dialogs, waveform windows, and engineering tools. Aurora supports live light and dark themes, screen-aware scaling, persistent zoom, clearer tooltips, consistent icons, resizable workspaces, fullscreen tools, and reliable window ownership.
Projects no longer feel like a collection of separate popups. Source files, generated files, models, simulation output, snapshots, and tools remain attached to the project that owns them.
The editor adds syntax highlighting, find and replace, line numbers, wrapping, whitespace controls, external-change detection, and draggable tabs for SPICE, Verilog, VHDL, Python, JSON, Markdown, and plain-text project files.
Subcircuits and device models rebuilt
Two of eSim's oldest utilities are now first-class project tools instead of small modal forms.
Subcircuit Builder
The new builder makes the source, symbol, model, and output paths visible in one place. It understands modern KiCad projects, keeps the legacy circuit fallback, validates the selected target before conversion, and prevents overlapping conversion jobs from corrupting generated output.
Model Editor
The Model Editor now uses an expanding parameter table, clearer model categories, searchable device definitions, explicit save state, and project-aware model paths. Large models are readable without squeezing every parameter into a fixed dialog.
HDL from source to waveform
Maker now connects HDL authoring, verification, model generation, placement, and simulation inside eSim. Each stage passes an explicit source revision, diagnostics, generated model, and waveform forward, so the result belongs to the design the user actually ran.
The workflow includes:
Mixed-signal simulation that stays understandable
The
d_cosim, NgVeri, and NGHDL paths now converge on the same project and plotting model. Analog and digital traces retain their full names, multiple digital blocks can coexist in one design, and generated simulator state is kept separate for each backend.The plotting workspace was also decomposed into dedicated data, trace, rendering, cursor, pane, palette, and expression layers. Normal, stacked, timing, and X-Y plots now share the same trace model. Large results use bounded drawing without reducing the full-resolution data used for cursors, measurements, or statistics.
KiCad 7 to 10 conversion
eSim no longer depends on the legacy KiCad SPICE exporter that disappeared from newer releases. A direct schematic netlister now reads modern KiCad schematics and produces the simulation input while preserving node order, model fields, subcircuit identity, and mixed-signal blocks.
The converter keeps the last usable circuit when a new conversion fails, reports the rejected boundary clearly, and supports migrated projects without silently choosing an obsolete schematic beside the current one.
Ubuntu and Windows delivery
The repository now contains the complete installation and release path for both supported platforms.
Ubuntu
Windows
Maintainers and contributors can build the same deliverables from the checked-out source:
What changed under the interface
This is the completed eSim modernization work from the 2026 FOSSEE Summer Fellowship at IIT Bombay.
Read the full implementation report