sublime text verilog-automatic插件使用方法

寫在前面

本文是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   : 
    //
    //
    //==================================================================================================

reference

  1. 插件鏈接說明
  2. 免費ctags鏈接
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章