用VS Code替代Vivado自带的文本编辑器以及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,按下图所示点击,若出现黄框中所示样式即说明安装成功。

在这里插入图片描述
安装成功后点击下述按钮即可产生相应的功能:

在这里插入图片描述
生成的概述文档:

在这里插入图片描述

在这里插入图片描述

  • 41
    点赞
  • 225
    收藏
    觉得还不错? 一键收藏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值