介绍几个用emacs写verilog的好用的插件

科技   2024-11-04 15:39   江苏  

介绍几个用emacs写verilog的好用的插件,效率翻倍。


1、projectile

projectile是以项目为单位进行编辑插件。默认会把git、mercurial hg的根目录当作项目根目录,也可以手动创建一个.projectile的空文件作为项目根路径的标记。这里(https://docs.projectile.mx/projectile/index/html)有详细介绍。


配置方法:


(add-to-list 'load-path "~/.emacs.d/projectile")
(require 'projectile)
(projectile-mode +1)
(global-set-key [f12] 'projectile-command-map)

配置好后,emacs打开文件时会自动识别项目根目录,然后用F12 f xxx来打开当前项目下的文件,就不用指定具体路径,插件会自动在项目下匹配文件名。



又如,F12 s g就会自动调用grep在整个项目下搜索,并且会自动过滤一些临时文件目录。当然你可以指定用agF12 s s)或者ripgrepF12 s r)来搜索,速度比linux自带的grep快得多。


附:ag的安装配置

下载ag安装包(也可以从这里下载:ag_2.1.0.tar.gz,适用于centos7.9,解压即可),安装并加到PATH。


下载emacs的agdashs三个配置文件(可以从这里https://melpa.org下载)。


修改.emacs,增加ag的配置,如下。


(add-to-list 'load-path "~/.emacs.d/projectile")
(add-to-list 'load-path "~/.emacs.d/ag")
(add-to-list 'load-path "~/.emacs.d/dash")
(add-to-list 'load-path "~/.emacs.d/s")
(require 'projectile)
(require 'ag)
(projectile-mode +1)


2、ivy、counsel、swiper

ivy(包括counsel、swiper)是一个命令自动补全的插件,当我们在搜索、执行命令时会自动补全,效率会高很多。


配置方法:


(add-to-list 'load-path "~/.emacs.d/swiper")
(require 'ivy)
(require 'counsel)
(require 'swiper)
(ivy-mode)
(setq ivy-use-virtual-buffers t)
(setq enable-recursive-minibuffers t)
(global-set-key "\C-s" 'swiper)
(global-set-key "\C-r" 'swiper-backward)
(global-set-key (kbd "M-x") 'counsel-M-x)
(global-set-key (kbd "C-x C-f") 'counsel-find-file)

swiperswiper-backward绑定的C-sC-r,替换掉emacs自带的搜索。当按下C-s时,就会自动调用ivy还搜索,更方便快捷地在文件中多处匹配之前跳转。



在执行M-x时,也可以调用counsel,仅输入命令的一部分关键词,来快速筛选出命令,并自动补全。



3、auto-complete

auto-complete是一个自动补全框架,支持多种语言的语法关键字,其中就包括verilog


auto-complete也会自动收集RTL或者Testbench中的变量,当再次输入变量时,只需要敲前两个字母就会弹出候选菜单,通过快捷键或者方向箭头来选取。极大的提高了写verilog的速度。


(add-to-list 'load-path "~/.emacs.d/auto-complete")
(add-to-list 'load-path "~/.emacs.d/popup-el")
(add-to-list 'load-path "~/.emacs.d/fuzzy-el")
(require 'auto-complete-config)
(ac-config-default)

当然也可以再结合ctags、etag等工具来生成verilog的调用关系,方便在模块和实例化、函数调用和声明之前跳转。


具体方法可以参考Synopsys用户大会上华为的一篇文章《Using Verdi to Generate vi and emacs Tagging Databases》(点击阅读原文下载)。



本文内容仅代表作者观点,不代表平台观点。

如有任何异议,欢迎联系我们。

如有侵权,请联系删除。


往期精彩回顾





2021年的第一场雪!英特尔2020年Q4财报解读



利用硬件辅助验证工具加速功能仿真


博文:裸片尺寸和光罩难题——光刻扫描仪吞吐量的成本模型


博文速递:Race condition in digital circuits



IP与SoC设计
《IP 与SoC》依托无锡国家“芯火”平台,全面报道全球IP与SoC设计技术的发展和国内外应用经验,为中国IC设计行业搭建一个IP与SoC资讯交流、产业促进的平台,为中国IC设计行业提供IP与SoC专业知识及相关信息支持和服务。
 最新文章