dalance / Svls
Licence: mit
SystemVerilog language server
Stars: ✭ 119
Programming Languages
rust
11053 projects
Labels
Projects that are alternatives of or similar to Svls
Hdl checker
Repurposing existing HDL tools to help writing better code
Stars: ✭ 103 (-13.45%)
Mutual labels: verilog, language-server
Icegdrom
An FPGA based GDROM emulator for the Sega Dreamcast
Stars: ✭ 103 (-13.45%)
Mutual labels: verilog
Autofpga
A utility for Composing FPGA designs from Peripherals
Stars: ✭ 108 (-9.24%)
Mutual labels: verilog
Connectal
Connectal is a framework for software-driven hardware development.
Stars: ✭ 117 (-1.68%)
Mutual labels: verilog
Raven Picorv32
Silicon-validated SoC implementation of the PicoSoc/PicoRV32
Stars: ✭ 110 (-7.56%)
Mutual labels: verilog
Metals
Scala language server with rich IDE features 🚀
Stars: ✭ 1,605 (+1248.74%)
Mutual labels: language-server
Hardware Cnn
A convolutional neural network implemented in hardware (verilog)
Stars: ✭ 107 (-10.08%)
Mutual labels: verilog
Livehd
Live Hardware Development (LiveHD), a productive infrastructure for Synthesis and Simulation
Stars: ✭ 110 (-7.56%)
Mutual labels: verilog
Vm80a
i8080 precise replica in Verilog, based on reverse engineering of real die
Stars: ✭ 114 (-4.2%)
Mutual labels: verilog
Awesome Open Hardware Verification
A List of Free and Open Source Hardware Verification Tools and Frameworks
Stars: ✭ 103 (-13.45%)
Mutual labels: verilog
Single instruction cycle openmips
通过学习《自己动手写CPU》,将书中实现的兼容MIPS32指令集架构的处理器——OpenMIPS(五级流水线结构),简化成单指令周期实现的处理器
Stars: ✭ 108 (-9.24%)
Mutual labels: verilog
Surelog
SystemVerilog 2017 Pre-processor, Parser, Elaborator, UHDM Compiler. Provides IEEE Design/TB C/C++ VPI and Python AST API.
Stars: ✭ 116 (-2.52%)
Mutual labels: verilog
Sv Tests
Test suite designed to check compliance with the SystemVerilog standard.
Stars: ✭ 108 (-9.24%)
Mutual labels: verilog
svls
SystemVerilog language server
Feature
- Linter based on svlint.
Installation
Download binary
Download from release page, and extract to the directory in PATH.
snapcraft
You can install from snapcraft
sudo snap install svls
Cargo
You can install by cargo.
cargo install svls
Configuration
Language server
svls uses .svls.toml
at the root of repository.
The example of .svls.toml
is below:
[verilog]
include_paths = ["src/header"]
defines = ["DEBUG", "VAR=1"]
[option]
linter = true
[verilog]
section
include_paths
is include paths from the root of repository.
defines
is define strings.
[option]
section
linter
shows whether linter feature is enabled.
Linter
Linter uses .svlint.toml
at the root of repository.
If .svlint.toml
can't be used, all lint rules are enabled.
Please see svlint#configuration for the detailed information.
Usage
Visual Studio Code
Please install svls-vscode extension from marketplace.
LanguageClient-neovim
Vim/Neovim withlet g:LanguageClient_serverCommands = {
\ 'systemverilog': ['svls'],
\ }
vim-lsp
Vim/Neovim withif executable('svls')
au User lsp_setup call lsp#register_server({
\ 'name': 'svls',
\ 'cmd': {server_info->['svls']},
\ 'whitelist': ['systemverilog'],
\ })
endif
coc.nvim
Vim/Neovim withIn configuration file
"languageserver": {
"svls": {
"command": "svls",
"filetypes": ["systemverilog"]
}
}
lsp-mode
Emacs with(use-package flycheck
:ensure t
:defer t
:init (global-flycheck-mode t))
(use-package company
:ensure t
:defer t
:init (global-company-mode t)
:config
;; Company Flx adds fuzzy matching to company, powered by the sophisticated
;; sorting heuristics in =flx=
(use-package company-flx
:ensure t
:after company
:init (company-flx-mode t))
;; Company Quickhelp
;; When idling on a completion candidate the documentation for the
;; candidate will pop up after `company-quickhelp-delay' seconds.
(use-package company-quickhelp
:after company
:ensure t
;; :init (company-quickhelp-mode t)
:hook (prog-mode . (lambda ()
(when (window-system)
(company-quickhelp-local-mode))))
:config
(setq company-quickhelp-delay 0.2
company-quickhelp-max-lines nil)))
(use-package lsp-mode
:defer t
:ensure t
:commands lsp
:config
(setq lsp-log-io nil
lsp-auto-configure t
lsp-auto-guess-root t
lsp-enable-completion-at-point t
lsp-enable-xref t
lsp-prefer-flymake nil
lsp-use-native-json t
lsp-enable-indentation t
lsp-response-timeout 10
lsp-restart 'auto-restart
lsp-keep-workspace-alive t
lsp-eldoc-render-all nil
lsp-enable-snippet nil
lsp-enable-folding t)
;;; lsp-ui gives us the blue documentation boxes and the sidebar info
(use-package lsp-ui
:defer t
:ensure t
:after lsp
:commands lsp-ui-mode
:config
(setq lsp-ui-sideline-ignore-duplicate t
lsp-ui-sideline-delay 0.5
lsp-ui-sideline-show-symbol t
lsp-ui-sideline-show-hover t
lsp-ui-sideline-show-diagnostics t
lsp-ui-sideline-show-code-actions t
lsp-ui-peek-always-show t
lsp-ui-doc-use-childframe t)
:bind
(:map lsp-ui-mode-map
([remap xref-find-definitions] . lsp-ui-peek-find-definitions)
([remap xref-find-references] . lsp-ui-peek-find-references))
:hook
((lsp-mode . lsp-ui-mode)
(lsp-after-open . (lambda ()
(lsp-ui-flycheck-enable t)
(lsp-ui-sideline-enable t)
(lsp-ui-imenu-enable t)
(lsp-lens-mode t)
(lsp-ui-peek-enable t)
(lsp-ui-doc-enable t)))))
;;; company lsp
;; install LSP company backend for LSP-driven completion
(use-package company-lsp
:defer t
:ensure t
:after company
:commands company-lsp
:config
(setq company-lsp-cache-candidates t
company-lsp-enable-recompletion t
company-lsp-enable-snippet t
company-lsp-async t)
;; avoid, as this changes it globally do it in the major mode instead (push
;; 'company-lsp company-backends) better set it locally
:hook (lsp-after-open . (lambda()
(add-to-list (make-local-variable 'company-backends)
'company-lsp)))))
(use-package verilog-mode
:defer t
:config
(require 'lsp)
(lsp-register-client
(make-lsp-client :new-connection (lsp-stdio-connection '("svls"))
:major-modes '(verilog-mode)
:priority -1
))
:hook (verilog-mode . (lambda()
(lsp)
(flycheck-mode t)
(add-to-list 'lsp-language-id-configuration '(verilog-mode . "verilog")))))
Note that the project description data, including the texts, logos, images, and/or trademarks,
for each open source project belongs to its rightful owner.
If you wish to add or remove any projects, please contact us at [email protected].