VsCode与Vivado的灵活使用

匿名 (未验证) 提交于 2019-12-02 23:38:02

VsCode与Vivado的灵活使用

引言

站在前人的肩膀上

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

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

在vscode扩展商店搜索verilog ,安装Verilog HDL的拓展即可以舒适的编写Verilog代码。他能帮你实现的功能主要有:语法高亮,自动补齐。

步骤三、自动生成Testbench


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


效果如上图所示。执行脚本之后,其出结果导向powershell的输出结果之中。其帮我们自动生成了了时钟信号,复位信号,以及进行了模块的例化。

步骤四、进一步优化

可以看到,美中不足的是,生成的文本你还需复制粘贴到新建的testbench文件中去,真是有些麻烦了!但是?从命令行执行的命令可以看到,这个脚本是用python编写的!顺着文件目录找到原本的python源文件,即可修改输出内容,至于自动生成新的文本文件?那就简单了,上一段powershell脚本~

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

那么profile文件在哪儿呢?打开你的powershell。输入 echo $profile 即可。想编辑文件,直接在命令行输入 code $profile 。 前提是你的vscode添加进系统环境变量了,如果没有,就顺着文件所在地,直接编辑。

那么奉献上我最后写的脚本吧。

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脚本就自动生成啦!

如果你的vivado在ubuntu系统下

#以后要 使用 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 

写在最后的

https://github.com/NjtechPrinceling

文章来源: https://blog.csdn.net/qq_39498701/article/details/84668833
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!