neuron-explorer
Steering-first neuron explorer for Qwen3.5-4B: push every MLP neuron, keep every rollout, browse the results
翻譯準備中
LintCrux 將 Verilator、Verible、Slang、GHDL、Yosys 與 Svlint —— 加上其自有的時鐘域跨越分析 —— 整合為一個可篩選、可排序、可免除的儀表板。終端輸出時代的 RTL …
AI 翻譯
LintCrux unifies Verilator, Verible, Slang, GHDL, Yosys and Svlint — plus its own clock-domain-crossing analysis — into one filterable, sortable, waiverable dashboard. The terminal-output era of RTL l
開發工具Dart · ShellGitHub @Ferrite-Engineering上線中營運者未確認
試用過了嗎? 點一下就好,不需要登入。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證LintCrux:多引擎 HDL 程式碼檢查聚合器,具備管理豁免與趨勢。EDACrux 套件的開源核心。
AI 翻譯
LintCrux: multi-engine HDL lint aggregator with managed waivers and trends. The open-source core of the EDACrux suite.
取自儲存庫 README
正在載入完整 README。 以下為已儲存的摘錄。
LintCrux is an RTL lint dashboard: it drives the open-source
Verilog/SystemVerilog/VHDL lint engines you already use, normalizes everything they
emit into one SARIF-backed violation model, and gives you a single triage surface
across all of them. Open core, part of Ferrite Engineering's EDACrux suite.
LintCrux showing a lint run over that same SoC, with the violations table populated.
Public beta. Implemented in this repository today:檢視完整 README ↗LintCrux is an RTL lint dashboard: it drives the open-source Verilog/SystemVerilog/VHDL lint engines you already use, normalizes everything they emit into one SARIF-backed violation model, and gives you a single triage surface across all of them. Open core, part of Ferrite Engineering's EDACrux suite.
LintCrux showing a lint run over that same SoC, with the violations table populated.
Stable since 1.0. Implemented in this repository today:
check, GHDL and Svlint —
each normalizing its output into the common Violation model.project.lintcrux project files, Vivado-style
.f filelist import, FuseSoC/Edalize EDAM (.eda.yml) import, and session
save/restore.lintcrux follows the same open-core + Pro/Enterprise overlay pattern as WaveCrux:
path: ./lintcrux entry, layering
Pro/Enterprise features via a proOverrides list spread into the open-core
ProviderScope.When in doubt about a convention, file layout, naming choice, or architectural seam, consult the WaveCrux reference implementation. Match its pattern unless this project has a documented reason to diverge.
LintCrux does not ship the lint engines. Install whichever ones you want to run
and make sure they are on your PATH:
| Engine | Executable LintCrux looks for |
|---|---|
| Verilator | verilator |
| Verible | verible-verilog-lint |
| Slang | slang |
| Yosys | yosys (yosys.exe on Windows) |
| GHDL | ghdl |
| Svlint | svlint |
Yosys, GHDL and Svlint are registered but disabled by default for new projects;
enable them per project through enabledEngineIds. A missing engine is reported as
unavailable rather than failing the run.
git submodule update --init --recursive # crux-shared
flutter pub get
flutter run -d macos # or -d linux, -d windows
flutter analyze
flutter test
examples/ holds ready-to-open projects. Launch LintCrux,
use File → Open Project… (Cmd/Ctrl+O), pick one, then Tools → Run All
Engines (F5):
examples/getting-started/ — a
SystemVerilog ALU with 7 findings over 6 rules from Verilator and Verible
running in parallel, including an inferred LATCH and a silent 8-to-4-bit
WIDTHTRUNC. Needs verilator and/or verible-verilog-lint on PATH; an
engine that is missing is simply skipped.examples/vhdl-getting-started/
— a VHDL counter whose process variable shadows an architecture signal, so
GHDL's --warn-hide and --warn-unused report the same bug twice. Needs
ghdl on PATH.No engine installed? Open
examples/getting-started/report.sarif
with File → Import SARIF report…. It is a real captured report of the
example above, so the violation table, filters, inspector and click-to-source
all work with nothing on PATH.
Each engine resolves its executable in this order:
--verilator-path, --verible-path, --slang-path,
--ghdl-path, --svlint-path, --yosys-path.Settings → Engines (session-scoped in open core).PATH (Auto-detect).Settings → Engines offers Auto-detect and Custom only. No engine binary ships
inside the release distribution, so there is no Bundled choice. A setting saved as
Bundled by an earlier version still loads and shows as Auto-detect; it resolves through
$LINTCRUX_BUNDLED_BIN_DIR/<platform>/<exe> when that environment variable is set
(BundledBinaryResolver, lib/services/engines/bundled_binary_resolver.dart) and
otherwise through PATH. Debug and release builds behave identically.
The pinned versions in tool/bundled_engines.yaml and
the .github/workflows/bundled-engines.yml
workflow are preparatory infrastructure for a future bundled-binary release: the
workflow fetches each pinned engine per OS and uploads artifacts, but nothing consumes
them and no release job packages them into the app. Per-platform bundling is planned
— docs, website and this README stay on "planned" until it actually ships.
Most tests run unconditionally with flutter test. Tests that exercise a real engine
binary are skip:-aware:
test/services/engines/*/integration/) skip when
the engine binary is not on PATH and not in LINTCRUX_BUNDLED_BIN_DIR. The skip
message says exactly which binary is missing.PATH) and N-1 engine versions. The N-1 path is supplied via the env vars
VERILATOR_NMINUS1_BIN, VERIBLE_NMINUS1_BIN, and SLANG_NMINUS1_BIN; when unset,
the test skips with a clear "set <VAR> to enable the N-1 cross-check" message. CI
does not populate these today, so the N-1 cross-checks skip there.To enable bundled-binary tests on a contributor machine: download the relevant binaries
(or run the bundled-engines CI workflow and extract its artifacts) and set
LINTCRUX_BUNDLED_BIN_DIR to the layout described in
tool/bundled_engines.yaml.
| Platform | State | Notes |
|---|---|---|
| Linux | Supported | Primary target. |
| macOS | Supported | macOS 12.0 or later. |
| Windows | Supported | |
| Web | Supported | Read-only SARIF viewer — the lint engines are native binaries and do not run in a browser. |
No mobile build: the engines are native binaries invoked as subprocesses, which a phone cannot host.
Read CONTRIBUTING.md first — contributions require a signed
Contributor License Agreement (CLA.md).
docs/ARCHITECTURE.md is the engineering reference: tech
stack, architectural rules, and the extension-point seams the Pro overlay plugs
into. User documentation lives at docs.lintcrux.app, and
its source is in docs-site/docs/.
The quality gates, all of which must pass:
flutter analyze --fatal-infos --fatal-warnings # zero-warning policy
flutter test
Most tests run unconditionally. The ones that drive a real engine binary skip when it is absent — see Running the engine-dependent tests.
LintCrux open core is licensed under the Apache License 2.0. See
LICENSE for the full text and NOTICES for
third-party attributions. Contributions require a signed
Contributor License Agreement — see
CONTRIBUTING.md.
Apache-2.0 §6 grants no trademark rights, so the name and logo are
covered separately — see TRADEMARK.md. Forks are
welcome; they just need a different name.
The lint engines LintCrux drives (Verilator, Verible, Slang, GHDL, Yosys,
Svlint) are separate programs, invoked as subprocesses and never linked
into the LintCrux binary. Their own licenses — including the LGPL of
Verilator and the GPL of GHDL — apply to those programs, not to LintCrux.
LintCrux redistributes none of them: it resolves them from PATH at run time. If a
bundled-binary distribution path lands later, those binaries would be redistributed
under their own terms and carry their own obligations. See NOTICES §1.