推荐 原创 视频 Java开发 iOS开发 前端开发 JavaScript开发 Android开发 PHP开发 数据库 开发工具 Python开发 Kotlin开发 Ruby开发 .NET开发 服务器运维 开放平台 架构师 大数据 云计算 人工智能 开发语言 其它开发
Lambda在线 > ExASIC > RTL顶层自动连线的秘密武器:Emacs verilog-mode介绍(VIM也可以用)

RTL顶层自动连线的秘密武器:Emacs verilog-mode介绍(VIM也可以用)

ExASIC 2018-10-18

RTL顶层自动连线听说过吗?想学吗?我们今天就来介绍自动连线的神器——emacs verilog-mode。



emacs是什么?


江湖流传版:传说中神的编辑器。

维基百科版:Emacs(Editor MACroS,宏编辑器),最初由Richard Stallman于1975年在MIT协同Guy Lewis Steele Jr.共同完成。



verilog-mode是什么


官网的介绍

Verilog-mode.el is the extremely popular free Verilog mode for Emacs which provides context-sensitive highlighting, auto indenting, and provides macro expansion capabilities to greatly reduce Verilog coding time. It supports AUTOs and indentation in Emacs for traditional Verilog (1394-2005), the Open Verification Methodology (OVM) and SystemVerilog (1800-2005/1800-2009).

Recent versions allow you to insert AUTOS in non-AUTO designs, so IP interconnect can be easily modified. You can also expand SystemVerilog ".*" port instantiations, to see what ports will be connected by the simulators.


简单点说就是支持Verilog、SystemVerilog(包括UVM)的emacs语法高亮文件。其中提到Verilog-mode支持Autos——这就是今天的重点。


Verilog-mode是由Michael McNamara <mac@verilog.com>和Wilson Snyder <wsnyder@wsnyder.org>编写。难能可贵的是,这个verilog-mode保持着每月都有更新。最新版本是verilog-mode-2018-08-21-08b745f-vpo.el.gz,也就是上周二的事。



verilog-mode Autos有哪些功能


我们来一起看一个官网的例子。


手动编写的verilog代码:



由Autos处理后的verilog代码:


RTL顶层自动连线的秘密武器:Emacs verilog-mode介绍(VIM也可以用)


大家可以看到,verilog-mode自动分析出:

  • 模块的端口输入和输出

  • 内部变量

  • 敏感信号列表

  • 提取子模块的端口定义


自动提取子模块的端口定义来连线是今天的重点中的重点。一般来讲,我们实例化模块时大部分的信号名与子模块定义的名字一致即可。如上面代码中的:


RTL顶层自动连线的秘密武器:Emacs verilog-mode介绍(VIM也可以用)



特殊连接关系的处理


但常常我们顶层连接时会换一个名字。比如module A有一个输出端口dat_o,module B有一个输入端口dat_i,这两者怎么连?定义模版AUTO_TEMPLATE,如下:


手动编写的verilog代码:


RTL顶层自动连线的秘密武器:Emacs verilog-mode介绍(VIM也可以用)


由Autos处理后的verilog代码:


RTL顶层自动连线的秘密武器:Emacs verilog-mode介绍(VIM也可以用)



在哪里找子模块定义?


默认规则:

  • 当前文件夹下找

  • 当前找不到怎么办,指定搜索路径(与仿真器的-y一样)


使用方法:在顶层endmodule后面指定verilog-library-directories,如下:


RTL顶层自动连线的秘密武器:Emacs verilog-mode介绍(VIM也可以用)




除了写模版还需要做什么?


只需要Ctrl-C Ctrl-A,仅此而已。


如果修改了子模块或者模版,再按一次Ctrl-C Ctrl-A。




更多功能



详见官网帮助文档:

https://www.veripool.org/projects/verilog-mode/wiki/Verilog-mode-Help



verilog-mode下载、安装


新版的GNU Emacs自带verilog-mode,如果需要最新的verilog-mode可以在官网下载:

https://www.veripool.org/projects/verilog-mode/wiki/Installing




VIM用户咋办?


可以用VIM调动shell命令执行(emacs批处理模式),例如:


:!emacs --batch  <filenames.v>  -f verilog-batch-auto


是不是很简单!




欢迎关注ExASIC


分享数字集成电路设计中的经验和方法

分享让工作更轻松


版权声明:本站内容全部来自于腾讯微信公众号,属第三方自助推荐收录。《RTL顶层自动连线的秘密武器:Emacs verilog-mode介绍(VIM也可以用)》的版权归原作者「ExASIC」所有,文章言论观点不代表Lambda在线的观点, Lambda在线不承担任何法律责任。如需删除可联系QQ:516101458

文章来源: 阅读原文

相关阅读

关注ExASIC微信公众号

ExASIC微信公众号:ExASIC

ExASIC

手机扫描上方二维码即可关注ExASIC微信公众号

ExASIC最新文章

精品公众号随机推荐