CHxin
1
Vim有一款vtags插件,提供verilog/VHDL的设计代码的类似verdi的信号追踪、显示拓扑等功能。
vtags - verdi like, verilog code signal trace and show topo script : vim online
根据官方介绍,vtags插件完全使用python实现,目前实现了在vim下对verilog设计进行信号追踪、宏定义追踪、显示模块拓扑、快速打开文件、保存和打开vim快照、添加断点等功能。
- 请问在Emacs能实现类似功能嘛?
- 看了Vim插件的源文件,比较简单,如果想要移植到Emacs,请问该如何入门来做?我是Emacs小白,目前还在摸索使用Emacs的verilog mode。欢迎指教
有大侠可以把svls 和svlangserver加到lsp-bridge里吗
CHxin
4
多谢懒猫大神推荐,这个应该是做语法检查flycheck和补全company的吧。功能还是不一样的。
我提到的vim插件,主要的功能是可以自动追踪信号,就是能找到信号被赋值的过程(比如a->b->c->d),一直追踪下去,即使跨文件也能追到。
CHxin
5
同求,我现在用flycheck做语法检查,用company做补全,总是卡卡的
otto
7
使用emacs写HDL的人应该很少,如果是emacs小白(其实我也是)我建议还是使用类似vivado的专业工具吧,之前写用vscode装了插件也还是很难用(虽然vivado编辑体验和屎一样)
如果真要移植先学Elisp,从入门到写出插件应该需要一段时间
或者问问verilog mode的维护者
这里是svlangserver的官网配置:GitHub - imc-trading/svlangserver
在lsp-mode, eglot下用没问题:
(use-package lsp-verilog
:if (and (featurep 'lsp-mode)
(executable-find "svlangserver"))
:straight nil
:custom
((lsp-clients-svlangserver-launchConfiguration "/tools/verilator -sv --lint-only -Wall")
(lsp-clients-svlangserver-formatCommand "/tools/verible-verilog-format"))
:hook (verilog-mode . lsp-deferred))
(use-package verilog-mode
:if (and (featurep 'eglot)
(executable-find "svlangserver"))
:hook
(verilog-mode . (lambda ()
(add-to-list 'eglot-server-programs '(verilog-mode . ("svlangserver")))
(eglot-ensure)))
:custom
(eglot-workspace-configuration . (:svlangserver (:settings (:systemverilog.launchConfiguration: "/tools/verilator -sv -Wall --lint-only",
:systemverilog.formatCommand: "/tools/verible-verilog-format")))))
但是不知道如何转到lsp-bridge的json, 下面的配置可以启svlangserver,但是没有语法检查。还请高人指点。
{
"name": "verilog",
"languageId": "systemverilog",
"command": [
"svlangserver"
],
"settings": {
"systemverilog.launchConfiguration": "/tools/verilator -sv -Wall --lint-only",
"systemverilog.formatCommand": "/tools/verible-verilog-format"
}
}
settings 是不是要用 svlangserver 包一层?
你吧 lsp-mode 或 eglot 的 log 打开,看初始化的通信怎么写的。
对, lsp-mode log 打开, 它不管怎么设置, 最终都会给 LSP Server 发送可以工作的 json 格式, 这样就知道少哪些选项了, 知道差哪些就很容易移植到 lsp-bridge
想起来了,当时我也有想过把它在lsp-bridge里用起来,但是看到不支持verification constructs,就放弃了。。。