Vivado加上VsCode讓你的生活更美好
引言
大二的時候,接觸硬件描述語言。Vivado自帶的編輯器實在很難用,爲了有更加溫馨的體驗,我尋找着取而代之的方法。
網絡上的答案大同小異,基本上都是用的Sublime Text.(個人學長們也都是)
平時寫工程的過程當中,我習慣使用VsCode,尤爲是在微軟收購GitHub以後,雖然愈來愈卡了。可是我仍是儘量的選擇了Code,如今用了一年多了,感受仍是很不錯的,接下來分享一下如何配置使用,讓您的生活更美好。html
站在前人的肩膀上
是找了一些年代相對比較久遠的文章,關於VsCode替換掉Vivado本來的編輯器的。我稍做嘗試,其實也很簡單。python
步驟1、更換Vivado自帶文本編輯器
第一步 打開Vivado 在Tool菜單中 打開Settings
第二步 在Settings裏更換默認的文本編輯器
這裏須要鍵入的表達式是:C:/Program Files/Microsoft VS Code/Code.exe [file name] -[line number]
前面是VsCode應用程序的絕對路徑。Linux下若是是在環境變量中,能夠直接寫Code 可是Windows下好像不能夠。
這樣雙擊工程下面的文件,Vivado會自動使用Code打開文件。
這樣,咱們就能用VsCode取代本來的編輯器了。linux
步驟2、用VsCode溫馨的編寫Verilog
第一步 安裝Verilog擴展
在VsCode擴展商店搜索verilog。
咱們安裝使用人數最多的擴展。能夠看見其是支持Verilog和SystemVerilog的,若是你使用的是VHDL則下載另外的插件便可。
他能幫你實現的功能:shell
語法高亮編程
自動補齊ubuntu
列出端口。
能夠看到,咱們的verilog文本,被渲染的很漂亮。而且可以實現自動補齊。windows
第二步 實現自動糾錯
使用一個IDE(文本編輯器),咱們最關心的問題每每是,他可否實現自動語法糾錯?
固然是能夠的,實現這一功能的前提是:
vivado安裝目錄下的xvlog(這個是vivado自帶的語法糾錯工具)。
你須要將這個工具所在的目錄放置在系統的環境變量,以便VsCode可以方便的調用他。
具體的目錄就是Vivado的bin文件夾。
若是你不知道上述界面如何調出,請移步:www.google.cn
添加完成以後,在命令行輸入 xvlog – version 檢測是否生效
若是沒有打印出未找到該命令,那麼你可能須要重啓您的電腦。bash
接下來咱們在設置裏,找到剛纔安裝的verilog擴展,將verilog的Linter更換成xvlog。
同理,若是你想使用的語法糾錯插件來自modelsim,quatus,選擇他們對應的linter便可。
就我我的的使用經驗,各個軟件的語法排錯機制仍是有一點細微的不一樣的,建議選擇正確的解析器。
設置完成以後,就能實現語法的糾錯,在日常的工程中已經能夠很給力的幫助你了。
須要注意的是,編譯器須要您手動保存,纔會開啓xvlog解析,也就是說觀看最新錯誤以前,須要保存一下。微信
步驟3、自動生成Testbench
有時候在工程中要例化一個模塊,這個模塊有幾十個輸入幾十個輸出,若是沒有一個好的腳本幫助你,不只人爲出錯的可能比較大,例化的過程想必也是痛苦的。
還好有人已經在VsCode編寫過自動生成Testbench的腳本了,感謝。
擴展商店搜索Verilog_TestBench,安裝事後,任意編寫一段verilog程序。按下ctrl+shift+p,選擇testbench便可生成testbench對應的tb文本。
效果如上圖所示。執行腳本以後,其出結果導向powershell的輸出結果之中。幫咱們自動生成了了時鐘信號,復位信號,以及進行了模塊的例化。若是你只須要例化模塊,複製這一部分進你的代碼中就能夠了。到這裏,VsCode已經可以給你的工程帶來及其溫馨的體驗了。網絡
步驟4、進一步優化
能夠看到,美中不足的是,生成的文本你還需複製粘貼到新建的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,便可輸出生成文件。
最後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
其餘就能和原來同樣嘍~
寫在最後的
至此,我深深體會到了做爲一名verilog編程者的辛酸。
歡迎喜歡寫博客的網友投稿於咱們。
文章最後特別感謝網友南工小王子對本文內容的貢獻。
本文分享自微信公衆號 - FPGA開源工做室(leezym0317)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。