VsCode+Vivado让你的生活更好

引言

大二的时候,接触硬件描述语言。Vivado自带的编辑器实在很难用,为了有更加舒适的体验,我寻找着取而代之的方法。
​网络上的答案大同小异,基本上都是用的Sublime Text.(我的学长们也都是)
平时写工程的过程中,我习惯使用VsCode,尤其是在微软收购GitHub之后,虽然越来越卡了。但是我还是尽可能的选择了Code,现在用了一年多了,感觉还是很不错的,接下来分享一下如何配置使用,让您的生活更美好。

站在前人的肩膀上

​是找了一些年代相对比较久远的文章,关于VsCode替换掉Vivado原本的编辑器的。我稍作尝试,其实也很简单。

步骤一、更换Vivado自带文本编辑器

第一步 打开Vivado 再Tool菜单中 打开Settings
在这里插入图片描述
第二步 在Settings里更换默认的文本编辑器
在这里插入图片描述

这里需要键入的表达式是: C:/Program Files/Microsoft VS Code/Code.exe [file name] -[line number]
前面是VsCode应用程序的绝对路径。Linux下如果是在环境变量中,可以直接写Code 但是Windows下好像不可以。
这样双击工程下面的文件,Vivado会自动使用Code打开文件。


在这里插入图片描述

这样,我们就能用VsCode取代原本的编辑器了。

步骤二、用VsCode舒适的编写Verilog

第一步 安装Verilog扩展
在这里插入图片描述

在VsCode扩展商店搜索verilog。
我们安装使用人数最多的扩展。可以看见其是支持Verilog和SystemVerilog的,如果你使用的是VHDL则下载另外的插件即可。
他能帮你实现的功能:

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


    在这里插入图片描述

    可以看到,我们的verilog文本,被渲染的很漂亮。并且能够实现自动补齐。

第二步 实现自动纠错

使用一个IDE(文本编辑器),我们最关心的问题往往是,他能否实现自动语法纠错
当然是可以的,实现这一功能的前提是:
vivado安装目录下的xvlog(这个是vivado自带的语法纠错工具)。
你需要将这个工具所在的目录放置在系统的环境变量,以便VsCode能够方便的调用他。
具体的目录就是Vivado的bin文件夹。

在这里插入图片描述

如果你不知道上述界面如何调出,请移步:www.google.cn
添加完成之后,在命令行输入 xvlog -- version 检测是否生效
在这里插入图片描述

如果没有打印出未找到该命令,那么你可能需要重启您的电脑。

接下来我们在设置里,找到刚才安装的verilog扩展,将verilog的Linter更换成xvlog。


在这里插入图片描述

同理,如果你想使用的语法纠错插件来自modelsim,quatus,选择他们对应的linter即可。
就我个人的使用经验,各个软件的语法排错机制还是有一点细微的不同的,建议选择正确的解析器。
设置完成之后,就能实现语法的纠错,在平常的工程中已经可以很给力的帮助你了。


在这里插入图片描述

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

步骤三、自动生成Testbench

​有时候在工程中要例化一个模块,这个模块有几十个输入几十个输出,如果没有一个好的脚本帮助你,不仅人为出错的可能比较大,例化的过程想必也是痛苦的。
还好有人已经在VsCode编写过自动生成Testbench的脚本了,感谢。


在这里插入图片描述

扩展商店搜索Verilog_TestBench,安装过后,任意编写一段verilog程序。按下ctrl+shift+p,选择testbench即可生成testbench对应的tb文本。


在这里插入图片描述

效果如上图所示。执行脚本之后,其出结果导向powershell的输出结果之中。帮我们自动生成了了时钟信号,复位信号,以及进行了模块的例化。如果你只需要例化模块,复制这一部分进你的代码中就可以了。到这里,VsCode已经能够给你的工程带来及其舒适的体验了。

步骤四、进一步优化

可以看到,美中不足的是,生成的文本你还需复制粘贴到新建的testbench文件中去,真是有些麻烦了。
但是从命令行执行的命令可以看到,这个脚本是用python编写的。顺着文件目录找到原本的python文件,即可修改输出内容。
这里我为了能让输出的testbench自动生成tb文件,上了一段powershell的脚本。

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

那么profile文件在哪儿呢?打开你的powershell。输入 echo profile 即可。 想编辑文件,直接在命令行输入 codeprofile 。
前提是你的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,即可输出生成文件。


在这里插入图片描述

最后testbench文件就自动生成了。

步骤五 VsCode使用小技能

这部分用来总结一下VsCode使用过程中的一些小经验,可能会持续更新

  • 按住鼠标中键,可以连续操作多行,这个在例化模块,以及一些无脑操作的时候很管用。
  • ctrl + f 搜索 替换
  • Code支持文件对比功能,在左边的资源栏中右击比较即可(抄代码很方便)
  • ctrl+r可以搜索过去曾经使用code打开的文件,真的方便,不需要鼠标操作,够极客

如果你的vivado在ubuntu系统下

​在学院的电脑里装了一个ubuntu18.04系统,发现vivado也有ubuntu的支持,那么为了能够有更好的编程体验,我又对上述过程进行了linux的移植.

​首先,安装vscode

​其次,把更换vivado中文本编辑器的命令换成 code [filename] , 这样你的vivado文本编辑器就换成vscode了。

​然后,在您的系统里安装powershell。

​再然后在设置里搜索terminal,把终端在linux上使用的路径换成pwsh所在路径。

​最后修改powershell的profile文件,不过与windows的略有不同,这里贴上代码。

#以后要 使用 ll 而不是 ls了。

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="/home/princeling/.vscode/extensions/truecrab.verilog-testbench-instance-0.0.5/out/vTbgenerator.py"

set-alias createtb createtb_function

​ 其他就能和原来一样喽~

答疑总结

无法正确进行语法纠错的原因:

  1. 打开的Verilog文件目录有中文路径。
  2. 打开的Verilog文件目录有空格。

写在最后的

​ 至此,我深深体会到了作为一名verilog编程者的辛酸。
2020年寒假,在家给自己写了一个博客。欢迎访问:
点击进入

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,451评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,172评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,782评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,709评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,733评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,578评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,320评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,241评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,686评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,878评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,992评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,715评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,336评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,912评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,040评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,173评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,947评论 2 355

推荐阅读更多精彩内容