HDL代码检查器
hdl-checker的Python项目详细描述
HDL检查器
HDL Checker是一种语言服务器,它封装了VHDL/Verilg/SystemVerilog工具 旨在减少设置所需的样板代码。它支持 Language Server Protocol或自定义HTTP接口;可以推断库 VHDL文件可能属于,除了计算混合语言依赖之外, 编译顺序,解释一些编译器消息并提供一些 (有限)静态检查。在
安装
pip install hdl-checker --upgrade
或者
^{pr2}$注意:确保您可以运行hdl_checker --version
,尤其是在使用PIP时
使用--user
选项。在
编辑器支持
VS代码
在VS代码上安装HDL Checker VSCode client。在
Vim/NeoVim
使用dense-analysis/ale
见(PR#2804),一旦合并,ALE应该支持HDL Checker 开箱即用。在
使用coc.nvim
在coc.nvim custom language server setup之后,添加 致您的coc.nvim configuration file:
{"languageserver":{"hdlChecker":{"command":"hdl_checker","args":["--lsp"],"filetypes":["vhdl","verilog","systemverilog"]}}}{h24}
将HDL检查器添加到服务器命令:
let g:LanguageClient_serverCommands = { \ 'vhdl': ['hdl_checker', '--lsp'], \ 'verilog': ['hdl_checker', '--lsp'], \ 'systemverilog': ['hdl_checker', '--lsp'], \}
请注意,这将为每种语言启动一个服务器
Emacs
使用emacs-lsp/lsp-mode
将其添加到Emacs配置文件中
(require'use-package)(setqlsp-vhdl-server-path"~/.local/bin/hdl_checker"); only needed if hdl_checker is not already on the PATH(custom-set-variables'(lsp-vhdl-server'hdl-checker))(use-packagelsp-mode:config(add-hook'vhdl-mode-hook'lsp))
使用
{Checker>可以通过cdl命令启动。使用hdl_checker --help
获取有关如何使用它的更多信息。在
$ hdl_checker -h usage: hdl_checker [-h][--host HOST][--port PORT][--lsp][--attach-to-pid ATTACH_TO_PID][--log-level LOG_LEVEL][--log-stream LOG_STREAM][--stdout STDOUT][--stderr STDERR][--version] optional arguments: -h, --help show this help message and exit --host HOST [HTTP] Host to serve --port PORT [HTTP] Port to serve --lsp Starts the server in LSP mode. Defaults to false --attach-to-pid ATTACH_TO_PID [HTTP, LSP] Stops the server if given PID is not active --log-level LOG_LEVEL [HTTP, LSP] Logging level --log-stream LOG_STREAM [HTTP, LSP] Log file, defaults to stdout when in HTTP or a temporary file named hdl_checker_log_pid<PID>.log when in LSP mode --stdout STDOUT [HTTP] File to redirect stdout to. Defaults to a temporary file named hdl_checker_stdout_pid<PID>.log --stderr STDERR [HTTP] File to redirect stdout to. Defaults to a temporary file named hdl_checker_stderr_pid<PID>.log --version, -V Prints hdl_checker version and exit
第三方工具
HDL检查器支持
配置HDL Checker
请参阅wiki上的Setting up a new project部分。在
LSP服务器
HDL Checker对Language Server Protocol有beta支持。从LSP开始 模式:
hdl_checker --lsp
在Linux系统上,日志文件将位于/tmp/hdl_checker_log_pid<PID_NUMBER>.log
和/tmp/hdl_checker_stderr_pid<PID_NUMBER>.log
。在
作为一个语言服务器,HDL Checker将提供
- 诊断学
- 悬停信息
- 依赖项:将报告已分配的路径和库
- 设计单位:将上报编制顺序和库
- 转到依赖项的定义
HTTP服务器
HDL检查器也可以在HTTP服务器模式下使用:
hdl_checker
请注意,此模式不使用http上的LSP进行通信。 请求/响应API尚不可用,将在中弃用 未来。参考实现可以在vim-hdl中找到
测试
HDL检查器使用docker容器来运行测试。如果你想跑 它们,克隆这个存储库并在根文件夹上运行
./run_tests.sh
用于测试的容器是suoto/hdl_checker_test
支持的系统
System | CI | CI status |
---|---|---|
Linux | Yes | |
Windows | Yes |
样式检查
样式检查独立于第三方编译器。检查内容包括:
- 未使用的信号、常量、泛型、共享变量、库、类型和 属性
- 注释标记(
FIXME
,TODO
,XXX
)
注意,当前未使用的报告有一些警告,即声明
从中的组件、函数、过程等继承的相同名称
下面的示例中,信号rdy
不会被报告为未使用,尽管
事实上它没有被使用。在
signalrdy,refclk,rst:std_logic;...idelay_ctrl_u:idelay_ctrlportmap(rdy=>open,refclk=>refclk,rst=>rst);
问题
您可以使用issue tracker来处理bug、特性请求等 打开。在
许可证
此软件是按GPL v3 license授权的。在
通知
Mentor Graphics®、ModelSim®及其各自的徽标是或 Mentor Graphics,Inc.的注册商标
Intel®及其徽标是Intel Corporation的商标或注册商标。在
Xilinx®及其徽标是Xilinx,Inc.的商标或注册商标
HDL Checker的作者没有connecti商标上的或与商标有关的 本软件提及或使用的。在
- 项目
标签: