0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

自動連線的神器——emacs verilog mode

li5236 ? 來源:ExASIC ? 作者:ExASIC ? 2022-03-29 14:56 ? 次閱讀

RTL頂層自動連線聽說過嗎?想學(xué)嗎?我們今天就來介紹自動連線的神器——emacs verilog-mode。

emacs是什么?

江湖流傳版:傳說中神的編輯器。

維基百科版:Emacs(Editor MACroS,宏編輯器),最初由Richard Stallman于1975年在MIT協(xié)同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自動分析出:

· 模塊的端口輸入和輸出

· 內(nèi)部變量

· 敏感信號列表

· 提取子模塊的端口定義

自動提取子模塊的端口定義來連線是今天的重點中的重點。一般來講,我們實例化模塊時大部分的信號名與子模塊定義的名字一致即可。如上面代碼中的:

image.png

特殊連接關(guān)系的處理

但常常我們頂層連接時會換一個名字。比如module A有一個輸出端口dat_o,module B有一個輸入端口dat_i,這兩者怎么連?定義模版AUTO_TEMPLATE,如下:

手動編寫的verilog:

image.png

由Autos處理后的verilog代碼:

image.png

在哪里找子模塊定義?

默認(rèn)規(guī)則:

· 當(dāng)前文件夾下找

· 當(dāng)前找不到怎么辦,指定搜索路徑(與verilog仿真器的參數(shù)-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可以在官網(wǎng)下載

VIM用戶咋辦?

可以用VIM調(diào)動shell命令執(zhí)行(emacs批處理模式),例如:

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

是不是很簡單!

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Verilog
    +關(guān)注

    關(guān)注

    28

    文章

    1335

    瀏覽量

    109847
  • 編輯器
    +關(guān)注

    關(guān)注

    1

    文章

    798

    瀏覽量

    31011
收藏 人收藏

    評論

    相關(guān)推薦

    如何利用Verilog-A開發(fā)器件模型

    Verilog-A對緊湊型模型的支持逐步完善,在模型的實現(xiàn)上扮演越來越重要的角色,已經(jīng)成為緊湊模型開發(fā)的新標(biāo)準(zhǔn)。而且Verilog-A能夠在抽象級別和應(yīng)用領(lǐng)域中擴(kuò)展SPICE建模和仿真功能,因此學(xué)會
    的頭像 發(fā)表于 10-18 14:16 ?105次閱讀
    如何利用<b class='flag-5'>Verilog</b>-A開發(fā)器件模型

    Verilog的版本有哪些

    電子發(fā)燒友網(wǎng)站提供《Verilog的版本有哪些.docx》資料免費下載
    發(fā)表于 05-31 11:29 ?0次下載

    原理圖工具Jupiter強(qiáng)大的連線功能

    在電路原理圖中,連線是一個非常重要的功能,它用來連接電路中的各個器件和節(jié)點,表示它們之間的電氣連接關(guān)系。在繪制原理圖時,規(guī)范、合理地使用連線功能至關(guān)重要,不僅能提高圖形清晰度和可讀性,也有
    的頭像 發(fā)表于 05-24 18:35 ?918次閱讀
    原理圖工具Jupiter強(qiáng)大的<b class='flag-5'>連線</b>功能

    verilog與其他編程語言的接口機(jī)制

    語言的接口機(jī)制,并深入探討其原理和應(yīng)用。 Verilog語言概述 Verilog是由美國專業(yè)電子設(shè)計自動化公司Cadence設(shè)計系統(tǒng)有限公司(前身是Gateway Design Automation公司)開發(fā)的一種硬件描述語言。
    的頭像 發(fā)表于 02-23 10:22 ?543次閱讀

    verilog function函數(shù)的用法

    Verilog 是一種硬件描述語言 (HDL),主要用于描述數(shù)字電子電路的行為和結(jié)構(gòu)。在 Verilog 中,函數(shù) (Function) 是一種用于執(zhí)行特定任務(wù)并返回一個值的可重用代碼塊。函數(shù)在
    的頭像 發(fā)表于 02-22 15:49 ?4480次閱讀

    verilog的135個經(jīng)典實例

    verilog的135個經(jīng)典實例
    發(fā)表于 02-02 10:17 ?14次下載

    怎么用emac實現(xiàn)Verilog自動連線呢?

    我們在編寫一些比較復(fù)雜的Verilog代碼時,通常需要進(jìn)行大量的手動連線工作,這種工作十分容易出錯,并且在代碼模塊的嵌套層級較多時,更改里層的一個代碼
    的頭像 發(fā)表于 01-24 10:03 ?1142次閱讀

    介紹一款基于java的滲透測試神器-CobaltStrike

    Cobalt Strike是一款基于java的滲透測試神器,常被業(yè)界人稱為CS神器
    的頭像 發(fā)表于 01-16 09:16 ?796次閱讀
    介紹一款基于java的滲透測試<b class='flag-5'>神器</b>-CobaltStrike

    請問ADUC7023進(jìn)入boot mode后會超時自動退出嗎?

    各位大神,請問ADUC7023進(jìn)入boot mode后,會超時自動退出么??如果能,超時時間大概是多少呢?
    發(fā)表于 01-11 06:12

    AI寫作神器!搭載訊飛星火認(rèn)知大模型,能夠智能寫作的鍵盤!

    一款全新的AI寫作神器應(yīng)運而生。這款神器搭載了訊飛星火認(rèn)知大模型,能夠智能寫作,帶來前所未有的寫作體驗。 一、寫作功能特點 自動寫作:訊飛星火認(rèn)知大模型可自動根據(jù)用戶輸入的主題和關(guān)鍵詞
    的頭像 發(fā)表于 01-04 16:40 ?638次閱讀
    AI寫作<b class='flag-5'>神器</b>!搭載訊飛星火認(rèn)知大模型,能夠智能寫作的鍵盤!

    例說Verilog HDL和VHDL區(qū)別

    Verilog和VHDL之間的區(qū)別將在本文中通過示例進(jìn)行詳細(xì)說明。對優(yōu)點和缺點的Verilog和VHDL進(jìn)行了討論。
    的頭像 發(fā)表于 12-20 09:03 ?2716次閱讀
    例說<b class='flag-5'>Verilog</b> HDL和VHDL區(qū)別

    講一講芯片設(shè)計中的verilog是什么

    相信不少人都聽過verilog這個詞,今天我就想講一講我所理解的verilog是什么。
    的頭像 發(fā)表于 12-04 13:52 ?1003次閱讀

    網(wǎng)線線纜直連線和交叉線的區(qū)別

    網(wǎng)線線纜直連線和交叉線的區(qū)別? 網(wǎng)線線纜是計算機(jī)網(wǎng)絡(luò)中連接設(shè)備的電纜,用于傳輸數(shù)據(jù)和信號。在網(wǎng)絡(luò)中,有兩種常見的網(wǎng)線線纜,即直連線和交叉線。直連線和交叉線在連接設(shè)備時有不同的用途和效果。在本文
    的頭像 發(fā)表于 11-28 15:22 ?3130次閱讀

    Black:自動格式化代碼的神器

    代碼規(guī)范?。?沒事,現(xiàn)在有Black這個神器,我們可以在終端中輸入一句命令就自動格式化代碼!而且對于初學(xué)者來說,用Black來學(xué)習(xí)代碼規(guī)范也是一個非常不錯的選擇。 1.準(zhǔn)備 開始之前,你要確保Python和pip已經(jīng)成功安裝在電腦上噢,如果沒有,請訪問這
    的頭像 發(fā)表于 11-02 14:51 ?1148次閱讀
    Black:<b class='flag-5'>自動</b>格式化代碼的<b class='flag-5'>神器</b>

    NNI:自動幫你做機(jī)器學(xué)習(xí)調(diào)參的神器

    NNI 自動機(jī)器學(xué)習(xí)調(diào)參,是微軟開源的又一個神器,它能幫助你找到最好的神經(jīng)網(wǎng)絡(luò)架構(gòu)或超參數(shù),支持 各種訓(xùn)練環(huán)境 。 它常用的 使用場景 如下: 想要在自己的代碼、模型中試驗 不同的機(jī)器學(xué)習(xí)算法
    的頭像 發(fā)表于 10-30 10:28 ?2234次閱讀
    NNI:<b class='flag-5'>自動</b>幫你做機(jī)器學(xué)習(xí)調(diào)參的<b class='flag-5'>神器</b>