RTL頂層自動(dòng)連線聽(tīng)說(shuō)過(guò)嗎?想學(xué)嗎?我們今天就來(lái)介紹自動(dòng)連線的神器——emacs verilog-mode。
emacs是什么?
江湖流傳版:傳說(shuō)中神的編輯器。
維基百科版:Emacs(Editor MACroS,宏編輯器),最初由Richard Stallman于1975年在MIT協(xié)同Guy Lewis Steele Jr.共同完成。
verilog-mode是什么
官網(wǎng)的介紹
簡(jiǎn)單點(diǎn)說(shuō)就是支持Verilog、SystemVerilog(包括UVM)的emacs語(yǔ)法高亮文件。其中提到Verilog-mode支持Autos——這就是今天的重點(diǎn)。
Verilog-mode是由Michael McNamara
verilog-mode Autos有哪些功能
我們來(lái)一起看一個(gè)官網(wǎng)的例子。
手動(dòng)編寫(xiě)的verilog代碼:
由Autos處理后的verilog代碼:
大家可以看到,verilog-mode自動(dòng)分析出:
模塊的端口輸入和輸出
內(nèi)部變量
敏感信號(hào)列表
提取子模塊的端口定義
自動(dòng)提取子模塊的端口定義來(lái)連線是今天的重點(diǎn)中的重點(diǎn)。一般來(lái)講,我們實(shí)例化模塊時(shí)大部分的信號(hào)名與子模塊定義的名字一致即可。如上面代碼中的:
特殊連接關(guān)系的處理
但常常我們頂層連接時(shí)會(huì)換一個(gè)名字。比如module A有一個(gè)輸出端口dat_o,module B有一個(gè)輸入端口dat_i,這兩者怎么連?定義模版AUTO_TEMPLATE,如下:
手動(dòng)編寫(xiě)的verilog代碼:
由Autos處理后的verilog代碼:
在哪里找子模塊定義?
默認(rèn)規(guī)則:
當(dāng)前文件夾下找
當(dāng)前找不到怎么辦,指定搜索路徑(與仿真器的-y一樣)
使用方法:在頂層endmodule后面指定verilog-library-directories,如下:
除了寫(xiě)模版還需要做什么?
只需要Ctrl-C Ctrl-A,僅此而已。
如果修改了子模塊或者模版,再按一次Ctrl-C Ctrl-A。
更多功能
verilog-mode下載、安裝
新版的GNU Emacs自帶verilog-mode
VIM用戶(hù)咋辦?
可以用VIM調(diào)動(dòng)shell命令執(zhí)行(emacs批處理模式),例如:
:!emacs--batch-fverilog-batch-auto
是不是很簡(jiǎn)單!
審核編輯:劉清
-
Verilog
+關(guān)注
關(guān)注
28文章
1351瀏覽量
110107 -
RTL
+關(guān)注
關(guān)注
1文章
385瀏覽量
59797 -
模擬器
+關(guān)注
關(guān)注
2文章
875瀏覽量
43224 -
OVM
+關(guān)注
關(guān)注
0文章
4瀏覽量
7565
原文標(biāo)題:RTL頂層自動(dòng)連線的秘密武器:Emacs verilog-mode介紹(VIM也可以用)
文章出處:【微信號(hào):處芯積律,微信公眾號(hào):處芯積律】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論