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 读写测试实验