0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

自动连线的神器——emacs verilog mode

li5236 来源:ExASIC 作者:ExASIC 2022-03-29 14:56 次阅读

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

emacs是什么?

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

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

verilog-mode是什么

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

Verilog-mode是由Michael McNamara mac@verilog.com和Wilson Snyder wsnyder@wsnyder.org编写。难能可贵的是,这个verilog-mode保持着每月都有更新。

值得一提的是Wilson Snyder就是SystemVerilog开源仿真器Verilator的作者。

verilog-mode Autos有哪些功能

手动编写的verilog代码:

image.png

由Autos处理后的Verilog代码:

image.png

image.png

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

· 模块的端口输入和输出

· 内部变量

· 敏感信号列表

· 提取子模块的端口定义

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

image.png

特殊连接关系的处理

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

手动编写的verilog:

image.png

由Autos处理后的verilog代码:

image.png

在哪里找子模块定义?

默认规则:

· 当前文件夹下找

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

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

image.png

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

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

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

更多功能

verilog-auto-arg for AUTOARG module instantiations

verilog-auto-ascii-enum for AUTOASCIIENUM enumeration decoding

verilog-auto-assign-modport for AUTOASSIGNMODPORT assignment to/from modport

verilog-auto-inout for AUTOINOUT making hierarchy inouts

verilog-auto-inout-comp for AUTOINOUTCOMP copy complemented i/o

verilog-auto-inout-in for AUTOINOUTIN inputs for all i/o

verilog-auto-inout-modport for AUTOINOUTMODPORT i/o from an interface modport

verilog-auto-inout-module for AUTOINOUTMODULE copying i/o from elsewhere

verilog-auto-inout-param for AUTOINOUTPARAM copying params from elsewhere

verilog-auto-input for AUTOINPUT making hierarchy inputs

verilog-auto-insert-lisp for AUTOINSERTLISP insert code from lisp function

verilog-auto-insert-last for AUTOINSERTLAST insert code from lisp function

verilog-auto-inst for AUTOINST instantiation pins

verilog-auto-star for AUTOINST .* SystemVerilog pins

verilog-auto-inst-param for AUTOINSTPARAM instantiation params

verilog-auto-logic for AUTOLOGIC declaring logic signals

verilog-auto-output for AUTOOUTPUT making hierarchy outputs

verilog-auto-output-every for AUTOOUTPUTEVERY making all outputs

verilog-auto-reg for AUTOREG registers

verilog-auto-reg-input for AUTOREGINPUT instantiation registers

verilog-auto-reset for AUTORESET flop resets

verilog-auto-sense for AUTOSENSE or AS always sensitivity lists

verilog-auto-tieoff for AUTOTIEOFF output tieoffs

verilog-auto-undef for AUTOUNDEF =`undef of local =`defines

verilog-auto-unused for AUTOUNUSED unused inputs/inouts

verilog-auto-wire for AUTOWIRE instantiation wires

verilog-read-defines for reading =`define values

verilog-read-includes for reading =`includes

verilog-mode下载、安装

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

VIM用户咋办?

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

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

是不是很简单!

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Verilog
    +关注

    关注

    28

    文章

    1325

    浏览量

    109298
  • 编辑器
    +关注

    关注

    1

    文章

    787

    浏览量

    30170
收藏 人收藏

    评论

    相关推荐

    verilog与其他编程语言的接口机制

    语言的接口机制,并深入探讨其原理和应用。 Verilog语言概述 Verilog是由美国专业电子设计自动化公司Cadence设计系统有限公司(前身是Gateway Design Automation公司)开发的一种硬件描述语言。
    的头像 发表于 02-23 10:22 199次阅读

    verilog的135个经典实例

    verilog的135个经典实例
    发表于 02-02 10:17 0次下载

    怎么用emac实现Verilog自动连线呢?

    我们在编写一些比较复杂的Verilog代码时,通常需要进行大量的手动连线工作,这种工作十分容易出错,并且在代码模块的嵌套层级较多时,更改里层的一个代码
    的头像 发表于 01-24 10:03 581次阅读

    介绍一款基于java的渗透测试神器-CobaltStrike

    Cobalt Strike是一款基于java的渗透测试神器,常被业界人称为CS神器
    的头像 发表于 01-16 09:16 279次阅读
    介绍一款基于java的渗透测试<b class='flag-5'>神器</b>-CobaltStrike

    请问ADUC7023进入boot mode后会超时自动退出吗?

    各位大神,请问ADUC7023进入boot mode后,会超时自动退出么??如果能,超时时间大概是多少呢?
    发表于 01-11 06:12

    例说Verilog HDL和VHDL区别

    Verilog和VHDL之间的区别将在本文中通过示例进行详细说明。对优点和缺点的Verilog和VHDL进行了讨论。
    的头像 发表于 12-20 09:03 649次阅读
    例说<b class='flag-5'>Verilog</b> HDL和VHDL区别

    讲一讲芯片设计中的verilog是什么

    相信不少人都听过verilog这个词,今天我就想讲一讲我所理解的verilog是什么。
    的头像 发表于 12-04 13:52 488次阅读

    网线线缆直连线和交叉线的区别

    网线线缆直连线和交叉线的区别  网线线缆是计算机网络中连接设备的电缆,用于传输数据和信号。在网络中,有两种常见的网线线缆,即直连线和交叉线。直连线和交叉线在连接设备时有不同的用途和效果。在本文
    的头像 发表于 11-28 15:22 2586次阅读

    Verilog 模块基本结构

    verilog极简语法手册
    发表于 10-23 09:28 0次下载

    Verilog例程 Verilog HDL程序设计教程

    Verilog大量例程(简单入门到提高)
    发表于 08-16 11:49 0次下载

    谈谈Verilog/System Verilog和C的几种交互模式

    PLI全称 Program Language Interface,程序员可以通过PLI在verilog中调用C函数,这种访问是双向的。
    的头像 发表于 06-01 17:32 918次阅读
    谈谈<b class='flag-5'>Verilog</b>/System <b class='flag-5'>Verilog</b>和C的几种交互模式

    KUKA运用系统变量$MODE_OP编程

    跳过等待信号. $MODE_OP 当前运行模式 $MODE_OP=Operating mode Operating mode Type: ENUM  #AUT:
    的头像 发表于 05-30 10:44 1154次阅读
    KUKA运用系统变量$<b class='flag-5'>MODE</b>_OP编程

    从仿真器的角度理解Verilog语言1

    要想深入理解Verilog就必须正视Verilog语言同时具备硬件特性和软件特性。在当下的教学过程中,教师和教材都过于强调Verilog语言的硬件特性和可综合特性。将Verilog语言
    的头像 发表于 05-25 15:10 673次阅读
    从仿真器的角度理解<b class='flag-5'>Verilog</b>语言1

    FPGA编程语言之verilog语法2

    描述的语言。这也就是说,无论描述电路功能行为的模块或描述元器件或较大部件互连的模块都可以用Verilog语言来建立电路模型。如果按照一定的规矩编写,功能行为模块可以通过工具自动地转换为门级互连模块。Verilog模型可以是实际电
    的头像 发表于 05-22 15:53 563次阅读
    FPGA编程语言之<b class='flag-5'>verilog</b>语法2

    FPGA编程语言之verilog语法1

    描述的语言。这也就是说,无论描述电路功能行为的模块或描述元器件或较大部件互连的模块都可以用Verilog语言来建立电路模型。如果按照一定的规矩编写,功能行为模块可以通过工具自动地转换为门级互连模块。Verilog模型可以是实际电
    的头像 发表于 05-22 15:52 592次阅读
    FPGA编程语言之<b class='flag-5'>verilog</b>语法1