FPGA學習筆記(五)——Atom配置Verilog開發環境

在settings->packages下安裝這兩個包
在這裏插入圖片描述
在snippet中設置代碼塊
.v文件的scope是:source.verilog在這裏插入圖片描述
找到snippets.cson文件(我用everything直接搜出來)
時序電路模板(輸Shixu+Tab觸發):

'.source.verilog':
    'shixu template':
        'prefix':'Shixu'
        'body':'''
always@(posedge clk or negedge rst_n)begin
  if(rst_n==1'b0)begin
		${1};
	else begin
		${2};
	end
end
'''

組合邏輯電路模板(輸Zuhe+Tab觸發):

#'.source.verilog':
    'zuhe template':
        'prefix':'Zuhe'
        'body':'''
always@(*)begin
  ${1};
end
'''

Module模板(輸Module+Tab觸發):

#'.source.verilog':
    'module template':
        'prefix':'Module'
        'body':'''
module ${1:module_name}(
  clk ,
  rst_n,
  ${2:dout}
  );

  //參數定義
  parameter DATA_W = ${3};

  //輸入信號定義
  input clk;
  input rst_n;

  //輸出信號定義
  output[DATA_W-1:0] ${2:dout};
  reg[DATA_W-1:0] ${2:dout};

  //中間信號定義
  reg signal1;

  //組合邏輯
  always(*)begin
  end

  //時序邏輯
  always@(posedge clk or negedge rst_n)begin
    if(rst_n==1'b0)begin
  		;
  	else begin
  		;
  	end
  end

  endmodule
'''

測試模塊模板(輸Test+Tab觸發):

#'.source.verilog':
    'test template':
        'prefix':'Test'
        'body':'''
'timescale 1 ns/1 ns

module ${1:testbench_name}();

reg clk;
reg rst_n;

//uut的輸入信號
reg[3:0] din0;
reg din1;

//uut的輸出信號
wire  dout0;
wire[4:0] dou1;

//時鐘週期,單位ns,在這裏修改時鐘週期
parameter CYCLE = 20;

//復位時間,此時表示復位3個時鐘週期的時間
parameter RST_TIME = 3;

//待測試模塊例化
module_name uut(
  .clk  (clk  ),
  .rst_n  (rst_n  ),
  .din0 (din0 ),
  .din1 (din1 ),
  .dout0  (dout0  ),
  .dout1  (dout1  )
);
  //生成本地時鐘50M
  initial begin
    clk = 0;
    forever
    #(CYCLE/2)
    clk=~clk;
  end

  //產生復位信號
  initial begin
    rst_n = 1;
    #2;
    rst_n = 0;
    #(CYCLE = RST_TIME);
    rst_n = 1;
  end

  //輸入信號din0賦值方式
  initial begin
  #1;
  //賦初值
  din0 = 0;
  #(10*CYCLE);
  //開始賦值

  end

  //輸入信號din1賦值方式
  initial begin
  #1;
  //賦初值
  din1 = 0;
  #(10*CYCLE);
  //開始賦值

  end

endmodule
'''   

保存之後,編寫Verilog文件的時候就能用指令來生成預先定義好的代碼塊啦。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章