VsCode與Vivado的靈活使用

VsCode與Vivado的靈活使用

引言

​ 現在大二了,在接觸硬件描述語言。Vivado自帶的編輯器實在很難用,爲了能夠“極客”一些,當然是去Google了一下有哪些方法可以取而代之。

​ 網絡上的答案大同小異,基本上都是用的Sublime Text.(我的學長們也幾乎都是) 平時碼代碼的過程中,我習慣使用VsCode,尤其是在微軟收購GitHub之後,Code 簡直就是神器了。於是乎…一個大膽的想法出現了。

站在前人的肩膀上

​ 在網絡上,是找了一些古老的這樣的文章,關於VsCode替換掉Vivado原本的編輯器的。我稍作嘗試,其實也很簡單。前輩們的努力讓我們現在有着更加舒適的體驗,我所做的一切都是站在前人的肩膀上。

步驟一、更換Vivado自帶文本編輯器

​ 打開你的vivado,在Tools->Setting->Text Editor選擇Custom Editor,指令爲"…(自己電腦的地址)//Microsoft VS Code//Code.exe" -g [file name]:[line number]。

步驟二、用VsCode舒適的編寫verilog

在這裏插入圖片描述

在vscode擴展商店搜索verilog ,安裝Verilog HDL的拓展即可以舒適的編寫Verilog代碼。他能幫你實現的功能主要有:語法高亮,自動補齊。

步驟三、自動生成Testbench

​ 前人已經在VsCode編寫過自動生成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系統下

​ 在學院的電腦裏裝了一個ubuntu系統,發現vivado也有ubuntu的支持,那麼爲了能夠有更好的編程體驗,我又對上述過程進行了linux的移植(雖然上述截圖以及本文的撰寫都是在ubuntu系統下進行的)。

​ 首先,安裝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

​ 其他就能和原來一樣嘍~

寫在最後的

​ 至此,我深深體會到了作爲一名verilog編程者的辛酸,請大家都去學py吧,不要和我競爭了!

​ 我的github主頁:https://github.com/NjtechPrinceling

​ 歡迎大家點評與指正,互相學習!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章