用VS Code替代Vivado自带的文本编辑器以及vscode中好用的Verilog插件
vscode中的Verilog插件
1.替换Vivado自带的文本编辑器
1.1 Tools->Settings。
1.2 Text Editor->Custom Editior。
1.3 编辑Editor。
键入的表达式是:C:/Program Files/Microsoft VS Code/Code.exe -g [file name]:[line number] ,前面是VsCode应用程序的安装路径。
1.4 完成替换。
此时打开vivado里面的.v文件就会直接通过VS Code打开。
2.VS Code中好用的Verilog插件。
2.1 安装Verilog扩展。
2.2 实现自动纠错功能。
首先找到vivado的安装路径(即bin文件所在的路径),然后将其添加到环境变量中。
添加环境变量的步骤:右键此电脑->属性->高级系统设置->环境变量->选中“Path”->编辑,然后就可出现下图。将bin文件所在的路径添加进去即可。
添加完环境变量后,如下图所示,键入xvlog -version
,若出现如下图所示代码,则说明安装成功。(若添加完环境变量未出现以下情况,可重启电脑后再次尝试)。
接下来点击设置。
选中Verilog configuration,然后将Linter修改为xvlog
。
在此之后,即可完成了自动纠错功能,但是在观看最新错误之前,需要保存一下,才能显示出出错的部分。
2.3 自动生成Testbench。
安装verilog-testbench扩展
安装完插件后,点击chardet-4.0.0.tar下载chardet,以前安装过的可忽略。
将下载好的chardet-4.0.0.tar解压到python安装位置下的‘site-packages’目录下,例如:‘D:\python2.7\Lib\site-packages’;
然后打开终端命令窗口,进入解压的‘chardet’目录下,执行命令:python setup.py install
,如下图所示。
安装成功后任意编写一段verilog程序,按下ctrl+shift+p
,选择testbench即可生成testbench对应的tb文本,如下图所示。
2.4 不同组括号变换颜色
安装Bracket Pair Colorizer扩展
安装后即可实现不同组括号颜色不同:
2.5 不同组begin…end变换颜色
安装Rainbow End扩展
安装后即可实现不同组begin…end颜色不同:
2.6 vscode中二进制文件以及十六进制文件查看器
安装hexdump for VSCode扩展
安装插件后打开任意二进制或十六进制文件,如下图所示,提示还是无法查看,此时点击红框所示的按钮即可查看。
下图即为打开后的十六进制文件。
2.7 vscode中绘制波形图
安装Waveform Render扩展
如下图,新建一个后缀名为.json
的文件。
用vscode打开该文件,按下ctrl
+ shift
+ p
,搜索下图红框中所示指令,并打开该指令。
输入下图中对应的语句即可产生相应的波形。
{"signal":[
{"name":"clk_0","wave":"p........"},
{"name":"clk_1","wave":"n........"},
{"name":"clk_2","wave":"P........"},
{"name":"clk_3","wave":"N........"},
{"name":"clk_4","wave":"p...|...."},
{"name":"data0","wave":"x.01.=..."},
{"name":"data1","wave":"0u1d01..."},
{"name":"data2","wave":"0u1dz1..."},
{"name":"data3","wave":"x23456789"},
{"name":"data4","wave":"x6..4.5..","data":["z","y","l"]},
{"name":"data5","wave":"0u1dz1..."}
]}
其他语法可以点击下图红框处查看。
2.8 大写字符高亮显示
安装Verilog highlight扩展。
如下图所示,当没有安装插件时,vscode对大写字符和小写字符并没有颜色的区别。
当安装插件后,vscode对大写字符和小写字符会有较为明显的区别,方便代码编写。
2.9 vscode中每个Tab距离显示不同的颜色
安装Indent-Rainbow扩展。
安装后的效果如下所示,即不同的Tab距离颜色不同,方便代码的查看。
2.10 vscode中更改Verilog的自动补全功能
如下图所示,vscode中提供的自动补全功能有时候并不是很便于编写代码,在always被自动补全后,通常还需要手动添加if else等语句,降低了编写效率,因此可以通过修改配置文件来改变vscode的自动补全模板。
首先需要找到C盘中的verilog.json
文件,路径通常为C:\Users\Admin.vscode\extensions\mshr-h.veriloghdl-1.5.11\snippets,不同的电脑用户名位置处不一样。
打开verilog.json
文件,如下图所示,当输入prefix后面引号里的文字后,就能选择出body对应的代码片段,在body代码片段里,每行代码需要包含在双引号里,句末加逗号,\t等效tab键所占用的空格数。$1
表示代码片段导出之后,鼠标会停留在posedge clk之后,如果输入字符,将替代后面的空格,输入完成后按tab键,跳转到$2
处,之后再按下tab键,则继续跳转,不过该代码片段中只到了$2
。其中$+
数字在一个代码片段中可以多次出现,且数字相同的地方可以同时进行更改。
以下是修改后该片段的代码:
修改后的自动补全功能如下所示:
按照上述方法即可修改其他功能的代码补全。
2.11 Teros HDL自动生成状态机、文档及综合网表等
安装流程可参考官方流程 terosHDL。
首先安装Python
环境,点击Python3从官网下载并安装。
新建一个文本文档,起名为get-pip
,后缀名该为.py
,打开网址get-pip.py,复制所有文字到我们新建的文件get-pip.py
中。若上述网址打不开可以直接将下述代码粘贴进文件之中即可:
#!/usr/bin/env python
#
# Hi There!
#
# You may be wondering what this giant blob of binary data here is, you might
# even be worried that we're up to something nefarious (good for you for being
# paranoid!). This is a base85 encoding of a zip file, this zip file contains
# an entire copy of pip (version 22.3.1).
#
# Pip is a thing that installs packages, pip itself is a package that someone
# might want to install, especially if they're looking to run this get-pip.py
# script. Pip has a lot of code to deal with the security of installing
# packages, various edge cases on various platforms, and other such sort of
# "tribal knowledge" that has been encoded in its code base. Because of this
# we basically include an entire copy of pip inside this blob. We do this
# because the alternatives are attempt to implement a "minipip" that probably
# doesn't do things correctly and has weird edge cases, or compress pip itself
# down into a single file.
#
# If you're wondering how this is created, it is generated using
# `scripts/generate.py` in https://github.com/pypa/get-pip.
import sys
this_python = sys.version_info[:2]
min_version = (3, 7)
if this_python < min_version:
message_parts = [
"This script does not work on Python {}.{}".format(*this_python),
"The minimum supported Python version is {}.{}.".format(*min_version),
"Please use https://bootstrap.pypa.io/pip/{}.{}/get-pip.py instead.".format(*this_python),
]
print("ERROR: " + " ".join(message_parts))
sys.exit(1)
import os.path
import pkgutil
import shutil
import tempfile
import argparse
import importlib
from base64 import b85decode
def include_setuptools(args):
"""
Install setuptools only if absent and not excluded.
"""
cli = not args.no_setuptools
env = not os.environ.get("PIP_NO_SETUPTOOLS")
absent = not importlib.util.find_spec("setuptools")
return cli and env and absent
def include_wheel(args):
"""
Install wheel only if absent and not excluded.
"""
cli = not args.no_wheel
env = not os.environ.get("PIP_NO_WHEEL")
absent = not importlib.util.find_spec("wheel")
return cli and env and absent
def determine_pip_install_arguments():
pre_parser = argparse.ArgumentParser()
pre_parser.add_argument("--no-setuptools", action="store_true")
pre_parser.add_argument("--no-wheel", action="store_true")
pre, args = pre_parser.parse_known_args()
args.append("pip")
if include_setuptools(pre):
args.append("setuptools")
if include_wheel(pre):
args.append("wheel")
return ["install", "--upgrade", "--force-reinstall"] + args
def monkeypatch_for_cert(tmpdir):
"""Patches `pip install` to provide default certificate with the lowest priority.
This ensures that the bundled certificates are used unless the user specifies a
custom cert via any of pip's option passing mechanisms (config, env-var, CLI).
A monkeypatch is the easiest way to achieve this, without messing too much with
the rest of pip's internals.
"""
from pip._internal.commands.install import InstallCommand
# We want to be using the internal certificates.
cert_path = os.path.join(tmpdir, "cacert.pem")
with open(cert_path, "wb") as cert:
cert.write(pkgutil.get_data("pip._vendor.certifi", "cacert.pem"))
install_parse_args = InstallCommand.parse_args
def cert_parse_args(self, args):
if not self.parser.get_default_values().cert:
# There are no user provided cert -- force use of bundled cert
self.parser.defaults["cert"] = cert_path # calculated above
return install_parse_args(self, args)
InstallCommand.parse_args = cert_parse_args
def bootstrap(tmpdir):
monkeypatch_for_cert(tmpdir)
# Execute the included pip and use it to install the latest pip and
# setuptools from PyPI
from pip._internal.cli.main import main as pip_entry_point
args = determine_pip_install_arguments()
sys.exit(pip_entry_point(args))
def main():
tmpdir = None
try:
# Create a temporary working directory
tmpdir = tempfile.mkdtemp()
# Unpack the zipfile into the temporary directory
pip_zip = os.path.join(tmpdir, "pip.zip")
with open(pip_zip, "wb") as fp:
fp.write(b85decode(DATA.replace(b"\n", b"")))
# Add the zipfile to sys.path so that we can import it
sys.path.insert(0, pip_zip)
# Run the bootstrap
bootstrap(tmpdir=tmpdir)
finally:
# Clean up our temporary working directory
if tmpdir:
shutil.rmtree(tmpdir, ignore_errors=True)
DATA = b"""
"""
if __name__ == "__main__":
main()
打开cmd
,切换到get-pip.py
文件的路径 ,然后输入python get-pip.py
,敲回车即可开始安装:
安装完成后,输入pip list
,若显示如下信息就是安装成功了。
安装make
,(安装包链接:make安装包)正常安装即可,安装完毕后将G:\Program Files\GnuWin32\bin
路径(make
的安装路径)加入到系统环境中。
打开cmd
,输入pip install teroshdl
后敲回车,出现下述界面即为安装成功;
打开vscode
,安装TerosHDL
插件,如下图所示:
安装完成后重启vscode
,按下图所示点击,若出现黄框中所示样式即说明安装成功。
安装成功后点击下述按钮即可产生相应的功能:
生成的概述文档:
更多推荐
所有评论(0)