ZYNQ从入门到秃头[番外] Vivado VSCode现代化编辑工具配置

Posted “逛丢一只鞋”

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ZYNQ从入门到秃头[番外] Vivado VSCode现代化编辑工具配置相关的知识,希望对你有一定的参考价值。

在Vivado中指定VSCode作为文本编辑器

第一步:打开Vivado的设置

第二步:选择"Text Editor"

第三步:填写"编辑器的路径

填写"编辑器的路径 -g [file name]:[line number]",完成后点击"OK"

填写的内容示例:C:\\Users\\ShengZM\\AppData\\Local\\Programs\\Microsoft VS Code\\Code.exe -g [file name]:[line number]
到此为止,设置已经结束。

双击Vivado中的一个文件(例如,.v文件),该文件将在VSCode中打开(原先是在Vivado自带的文本编辑器中打开)。开发者可以使用VSCode来编辑和保存文件。

当Vivado检测到代码中的语法错误时,对于“Messages”框中的提示,点击后VSCode将被打开,并且光标会被自动定位到语法错误的所在行,如下图所示:

最后,对Vivado自带的文本编辑器与VSCode做一下简单的对比:

使用 xvlog / Verilator 作为代码分析工具

Verilog-HDL/SystemVerilog/Bluespec SystemVerilog 在官方文档中给出了多个兼容的代码分析工具的比较。以下选用 xvlog / Verilator 作为对比,进行相应配置。

语法高亮
自动补齐
列出端口

  • xvlog
    • Vivado 自带代码分析工具
    • 不需要额外安装依赖
    • 但是功能稍弱。
  • Verilator
    • 基于 C/C++ 开发的 HDL 编译、检查工具
    • 提供强大很多的代码检查功能
    • 但 Windows 平台下需要手动编译。

xvlog 配置

xvlog 不需要额外安装依赖,我们只需要将 xvlog 所在路径添加到环境变量中即可(一般路径为<你的安装目>\\Xilinx\\Vivado\\2021.2\\bin)。

然后确保在控制台/命令行中能够运行 xvlog:

❯ xvlog --version
Vivado Simulator 2021.2

如果没有出现上述命令,选择管理员运行VSCode即可。

接下来我们按ctrl+shift+x,打开扩展程序,找到安装的verilog扩展,右键点击配置,将verilog的Linter更换成xvlog。

需要注意的是,编译器需要您手动保存,才会开启xvlog解析,也就是说观看最新错误之前,需要保存一下

Verilator 安装与配置

在 Linux 平台下,你可以直接通过包管理器进行安装。

# Debian 系
❯ apt-get install verilator

# Arch Linux
❯ pacman -S verilator

在 Windows 平台下,Verilator 需要使用 WSL 安装(推荐)或者手工编译(不建议)。

基于 WSL 安装

Windows Subsystem for Linux(简称 WSL )是一个在Windows 10上能够运行原生Linux二进制可执行文件(ELF格式)的兼容层。

因此在 WSL 中,安装 Verilator 就像在 Linux 中安装一样轻松。

最后在 VSCode 中,除了配置 Verilog > Linting: Linter 为 verilator 之外;还需要开启 Verilog > Linting > Verilator: Use WSL:

使用 TabNine作为符号补全工具

Tabnine 是世界领先的 AI 代码补全工具,受到超过 100 万所有编程语言开发人员的信赖。TabNine支持23种编程语言、5种编辑器,使用简单,效果惊艳。 不少使用过的网友说:TabNine是他们用过的最好的代码补全工具,这是属于程序员的杀手级应用。

TabNine和我认识中的自动补全工具有很大的不同,传统的补全工具更多的是根据上下文信息和第三方库进行补全,换句话说就是基于既有的内容进行补全。而TabNine更多的是偏向推理,它能够根据开发者前面输入的内容快速推理接下来要输入的代码,甚至参数、字符串、符号它都能够准确的推理并补全。

通过 AI 快速有效的&准确的完成更快地编写代码 使用 Tabnine 的 AI 自动完成功能将您的编码时间缩短一半、减少错误并发现最佳实践。 Tabnine 强大的人工智能助手可在您的 IDE 中正常工作,实现轻松、无中断的编码 Tabnine AI 研究公开共享的代码,使用深度学习来预测和建议节省时间的代码完成。

免费 Tabnine Pro 全年通行证

只要您是学生,就可以每年更新。获得 Pro 的所有特权 高级机器学习模型 无限的代码建议 可定制的体验 优先支持。

教育优惠申请地址:https://www.tabnine.com/students

如果edu域名符合符合教育资格,页面则会跳转到如下图所示:“干得好,已获批!为学生激活您的 Tabnine Pro ”.

我们的edu教育邮箱会收到一封标题为“Activate Your Tabnine Pro for Students”为学生激活您的 Tabnine Pro的通知邮件。

然后跟着官网的教程走就可以了,用教育邮箱注册一个他们平台的账号。

自动生成Testbench

首先确保你的电脑已经安装了Python环境

环境变量一定要配好

然后还是管理员运行 VSCode

下载 chardet(chardet检测编码非常容易,chardet支持检测中文、日文、韩文等多种语言。)

https://pypi.org/project/chardet/

pip install chardet

接下来,安装这个插件


现在按ctrl+shift+p,输入Testbench,在命令行就会自动输出Testbench代码了

进一步优化

可以看到,美中不足的是,生成的文本你还需复制粘贴到新建的testbench文件中去,真是有些麻烦了。

但是从命令行执行的命令可以看到,这个脚本是用python编写的。顺着文件目录找到原本的python文件,即可修改输出内容。

这里我为了能让输出的testbench自动生成tb文件,上了一段powershell的脚本。

理清一下我们脚本的思路:脚本需要将命令执行,输入的第一个参数为文件名a.v,输出的文件名为tb_a.v.
可以将整个脚本的初始化条件写入powershell的profile文件中(就和bash里的.bashrc一样,ps在启动时会自动加载此配置文件的内容)。

那么profile文件在哪儿呢?打开你的powershell。输入 echo $profile 即可。
想编辑文件,直接在命令行输入 code $profile 。
前提是你的vscode添加进系统环境变量了,关于怎么添加环境变量,请看上文。

最后写的脚本如下,只需更改TestBenchPath的值就行了,你完全可以写的比我好,不如自己试一下?

function createtb_function
    param(
        [Parameter(ValueFromPipeline=$true)]
        $InputObject
    )
    $FileName = $InputObject
    $tbFileName = "tb_" + $FileName.split("\\")[-1]
    echo $tbFileName
    python $env:TestBenchPath $FileName >> $tbFileName


set-alias ll Get-ChildItemColor  

$env:TestBenchPath="C:\\Users\\22306\\.vscode\\extensions\\truecrab.verilog-testbench-instance-0.0.5\\out\\vTbgenerator.py"

set-alias createtb createtb_function

修改过后,重启vscode的powershell命令行。输入命令createtb xxx.v,即可输出生成文件。

安利一些好用的插件

Bracket Pair Colorizer

多重括号显示为不同颜色

vscode-icons

Material Icon Theme

安装好,即可实现的功能:不同文件夹和文件显示为不同的图标

TCL Language Support

安装好,即可实现的功能:

约束文件的语法高亮

GBKtoUTF8

安装好,即可实现的功能:

自动将文件的编码方式由GBK转为UTF8

最后

但是我在使用一段时间后,其实也还是有一定的槽点:

在代码设计、编写阶段,我们并不需要使用 Vivado,因此更不需要使用 Vivado 进行代码编辑。

同时Vivado打开的vscode没有办法直接使用testbeach生成插件

必须单独管理员运行打开才可以

很多时候只是希望在 Vivado 中快速浏览文件代码,如果替换了默认编辑器,每一次浏览文件都将切换到 VS Code 中,影响体验。

除非一直用vscode打开整个功能文件

以上是关于ZYNQ从入门到秃头[番外] Vivado VSCode现代化编辑工具配置的主要内容,如果未能解决你的问题,请参考以下文章

ZYNQ从入门到秃头09番外 DDS增强版实验(基于ALINX 7020 && AN108)

ZYNQ从入门到秃头06 Vivado下的IP核MMC/PLL实验

ZYNQ从入门到秃头06 Vivado下的IP核MMC/PLL实验

ZYNQ从入门到秃头07 FPGA 片内 RAM && ROM 读写测试实验

ZYNQ从入门到秃头07 FPGA 片内 RAM && ROM 读写测试实验

ZYNQ从入门到秃头05 LED闪烁实验 && 按键控制LED实验Verilog(PL)