寫在前面
本文是sublime text verilog-automatic插件使用方法,作爲本人使用查閱,附贈鏈接以及插件的github地址,經過不斷試錯和嘗試,結合github上的說明,已經成功試錯。後面會更新別的好用的高效開發插件教程。
大佬原文鏈接
sublime text verilog-automatic插件安裝方法自行搜索帖子查看
Verilog-automatic
這個插件可以自動將端口添加到當前的編輯文件中,生成模塊實例(需要ctags),添加實例連接,添加Verilog代碼的文件頭。支持verilog-1995和verilog-2001樣式。
Features
AutoPort
AutoInst
AutoDef
AddFileHeader(這個功能其實自己可根據選擇使用,畢竟自己可以做自己喜歡的模板)
autoport:(shift + f6)
在 /*autoport*/
標記之後,將端口自動添加到當前編輯文件中。
同一文件中有多個模塊時,請勿使用此功能。
注意:不支持的樣式:但是這裏的不支持格式貌似已經被插件製作team,修復了
input clk,output single_out, //multiple input/output/inout keywords in the same line
input clk,rst,
chip_en; //multiple signals separated by comma written in different lines
example01(作者給出demo)
定義前
(verilog-1995 style):
module test(/*autoport*/);
input [1:0]a;
input b;
output [2:0]c,d;
inout e;
(verilog-2001 style):
module test(/*autoport*/);
input wire[1:0]a;
input wire b;
output reg [2:0]c,d;
inout wire e;
定義後:
module test(/*autoport*/
//inout
e,
//output
c,
d,
//input
a,
b);
example02(自己嘗試)
before:
module test(/*autoport*/);
input [1:0]a,g,
f,g;
input b;
output [2:0]c,
d,sdaf;
inout e;
after:
module test(/*autoport*/
//inout
e,
//output
c,
d,
sdaf,
//input
a,
g,
f,
g,
b);
input [1:0]a,g,
f,g;
input b;
output [2:0]c,
d,sdaf;
inout e;
從嘗試中我們可以看出來,作者之前的版本應該是經過更新了,他現在應該是不能支持input clk,output single_out, //multiple input/output/inout keywords in the same line
這個模式,不過這樣寫的人應該也很少吧。
這樣編寫的話,他只會人第一個看到的關鍵詞,信號錯誤聲明端口。
module test(/*autoport*/
//inout
e,
//output
c,
d,
sdaf,
//input
a,
g,
f,
g,
clk,
output single_out,
b,
clk,
rst,
chip_en);
input [1:0]a,g,
f,g;
input clk,output single_out;
input b;
output [2:0]c,
d,sdaf;
inout e;
input clk,rst,
chip_en; //multiple signals separated by comma written in different lines
AutoInst:(Shift + F7)
在/*autoinst*/
標記之後自動生成模塊實例(需要ctags)。
這裏的ctags需要再Shift + ctrl + P,進行package install 然後安裝完成ctags後,我們需要找到ctags58.zip,這個我在網上找到了免費資源
免費ctags鏈接
打開菜單
在Preferences菜單中打開Package settings->ctags->settings-user和settings-default
把default中的配置全部複製到user中,然後改一下command配置項,爲ctags的可執行文件路徑 如圖
路徑根據自己解壓的路徑設置。
修改之前爲"command": “”,修改以後爲"command": “自己設置的路徑下找到exe的路徑/ctags58/ctags.exe”。 重啓編輯器。
***注意:需要將光標放在模塊名稱上,支持多光標以生成多個實例。***
example01
之前:
test06 test_instance(/*autoinst*/);
後:
在查找中進行tag重定義,將光標放在模塊名稱“ test06”上,Shift + F7。
實例化效果還行,不過就是不能分辨輸入和輸出端口,應該是把輸出放在前面,輸入放在了後面。
注意:同個文件夾下面的.v文件如果有中文註釋則不能通過這樣實例化的方法實例化
module test06 (
input clk, // Clock
input en1, // Clock Enable
input rst_n, // Asynchronous reset active low
output reg dout
);
test06 test_instance(/*autoinst*/
.dout(dout),
.clk(clk),
.en1(en1),
.rst_n(rst_n));
AutoDef:(Shift + F8)
在/*autodef*/
標記之後自動添加實例連接。這個主要對output 和inout端口進行自動連接。
例:
之前:
/*autodef*/
test test_instance(/*autoinst*/
.e(e),
.c(c),
.d(d[2:0]),
.a(a[1:0]),
.b(b));
後:
/*autodef*/
wire e;
wire [2:0]d;
wire c;
wire b;
wire [1:0]a;
//assign e=
//assign d=
//assign c=
//assign b=
//assign a=
test test_instance(/*autoinst*/
.e(e),
.c(c),
.d(d[2:0]),
.a(a[1:0]),
.b(b));
AddFileHeader:(Shift + F9)
將您的個人信息添加到設置文件中(以用戶的設置文件爲佳),如下所示,或將其中任何一個留爲空白:
{
"Author":"AAA",
"Company":"AAA",
"Email":"ABC.com"
}
因此生成如下文件頭:
//==================================================================================================
// Filename : test.v
// Created On : 2013-04-01 21:37:31
// Last Modified :
// Revision :
// Author : AAA
// Company : AAA
// Email : ABC.com
//
// Description :
//
//
//==================================================================================================