前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >emacs中调用verible lint来检查verilog语法

emacs中调用verible lint来检查verilog语法

作者头像
ExASIC
发布2025-03-17 20:48:00
发布2025-03-17 20:48:00
8420
代码可运行
举报
文章被收录于专栏:ExASICExASIC
运行总次数:0
代码可运行

介绍emacs中调用verible lint来检查verilog语法方法。

一、安装verible

从 https://github.com/chipsalliance/verible/releases 下载提前编译好的verible二进制文件,解压即可使用。

二进制包包含以下这个小工具,加进PATH环境变量里。这次我们主要关注verible-verilog-lint这个工具。

image.png
image.png

二、配置emacs verilog-mode的compile工具选项

~/.emacs里增加verilog-tool和verilog-linter的设置。

代码语言:javascript
代码运行次数:0
运行
复制
(custom-set-variables '(verilog-tool 'verilog-linter) '(verilog-linter "verible-verilog-lint --rules -no-tabs,-no-trailing-spaces,-explicit-parameter-storage-type"))

如果项目里有makefile或者Makefile,则verilog-mode会优先使用make。这时要么我们把lint script写到makefile里,要么手改一下verilog-mode的代码,如下把第4、5行,注释起来,换成第6行,跳过makefile的检测。

代码语言:javascript
代码运行次数:0
运行
复制
(defun verilog-set-compile-command ()  
  (interactive)  
  (cond   
  ;;((or (file-exists-p "makefile");If there is a makefile, use it   
  ;;     (file-exists-p "Makefile"))   
    (nil    
      (set (make-local-variable 'compile-command) "make "))   
    (t    
      (set (make-local-variable 'compile-command) 
        (if verilog-tool             
          (let ((cmd (symbol-value verilog-tool)))               
            (if (string-match "%s" cmd)                  
              (format cmd (or buffer-file-name ""))                
              (concat cmd " " (or buffer-file-name "")))) ""))))  
  (verilog-modify-compile-command))

三、emacs里进行lint检查

在emacs菜单->Verilog->Compile,或者M-x compile,emacs会自动调出设置的lint工具和参数,按<enter>即可对当前verilog进行Verilog检查。如果有报错,鼠标点击报错,可以自动跳转到代码对应的地方。

image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png

四、verible的lint规则

我们可以在terminal里,用命令verible-verilog-lint --help_rules all查看一共有哪些rule。如果需要enable或disable rule可以在lint选项里设置,rule前面带+表示enable,带-表示disable。解释一下上面设置的lint参数,表示disable no-tabs、no-trailing-spaces、explicit-parameter-storage-type三条rule。

代码语言:javascript
代码运行次数:0
运行
复制
verible-verilog-lint --rules -no-tabs,-no-trailing-spaces,-explicit-parameter-storage-type

五、配置其它lint

理论上可以支持任何verilog编译工具,如vcs、xrun等。有兴趣的朋友可以尝试一下。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-03-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 ExASIC 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档