在linux系统下,通常使用gvim较多,coding效率高。至于vscode工具,之前早有耳闻,今天上手玩一玩。
前言
在linux系统下,通常使用gvim较多,coding效率高。至于vscode工具,之前早有耳闻,今天上手玩一玩。
一、vscode软件下载?
vscode下载链接链接: https://code.visualstudio.com/Download
下载界面如下所示,可以下载安装包或免安装的zip文件:
下载完成后安装并启动软件。
1.安装扩展库
在扩展库搜索verilog开头的库,并安装Verilog Format,Verilog Highlight,Verilog_Testbench和verilog-utils。
2.Verilog_Testbench
Verilog_Testbench用于将当前verilog文件中的module生成testbench文件。本质上就是使用python工具处理.v生成tb。因此在使用这项功能前需要安装python编译器,下载路径如下:
链接: https://www.python.org/downloads/release/python-392/
安装时需要勾选Add Python 3.6 to PATH。在vscode的verilog文件中按下Ctrl+Shift+P,打开python terminal如下所示:
在vscode打开的窗口中通过pip命令安装一下第三方库:
pip install certifi
pip install chardet
pip install idna
pip install urllib3
安装完成后就可通过Ctrl+Shift+P命令生成testbench:
生成的tb如下图所示:
3.Verilog-Format
从github下载verilog格式化插件:
LINUX链接: https://github.com/ericsonj/verilog-format
WIN下载链接: https://github.com/ericsonj/verilog-format/blob/master/bin/verilog-format-WIN.zip
JAVA下载链接: https://www.java.com/zh-CN/download/
下载完成后需要设置环境变量,让软件可以找到对应的可执行文件
这里需要解释下,verilog-format.exe是WIN下执行代码对其的可执行文件;
.verilog-format.properties是verilog格式定义文件,在github的README中有,copy下来复制到此文件中就可以。最后设置下路径就可以使用了。
对齐之前:
module test (input clk,
input [1:0] signal_1,
input [1:0] signal_2,
output reg [2:0] signal_3);
wire [2 : 0] signal_4;
assign signal_4 = signal + signal_2;
always@(posedge clk) begin
signal_3 <= signal_4;
end
endmodule
对齐之后(Shift+Alt+F):
module test (input clk,
input [1:0] signal_1,
input [1:0] signal_2,
output reg [2:0] signal_3);
wire [2 : 0] signal_4;
assign signal_4 = signal + signal_2;
always@(posedge clk) begin
signal_3 <= signal_4;
end
endmodule
4.verilog-utils
复制module到括号分号那一行,粘贴后选中Ctrl+Shift+P后
选择Verilog Utils-Instation就例化成功了:
module test (input clk,
input [1:0] signal_1,
input [1:0] signal_2,
output reg [2:0] signal_3);
wire [2 : 0] signal_4;
assign signal_4 = signal + signal_2;
always@(posedge clk) begin
signal_3 <= signal_4;
end
endmodule
test u_test(
.clk ( clk ),
.signal_1 ( signal_1 ),
.signal_2 ( signal_2 ),
.signal_3 ( signal_3 )
);
总结
以上就是今天要讲的内容,本文仅仅简单介绍了vscode的verilog相关扩展库的使用方法。