用UEstudio配置Verilog HDL的IDE
今天進(jìn)行了一項(xiàng)創(chuàng)舉!仿照網(wǎng)上將Ultraedit做成Java、C等編譯環(huán)境的做法,結(jié)合幫助文檔,將UEstudio配置成Verilog HDL的簡(jiǎn)單的集成編譯環(huán)境。希望日后工作可以比較方便。
原料:(1)UEstudio,一個(gè)包含Ultraedit的集成編輯環(huán)境,功能比Ultraeidt強(qiáng)大一些;(2)Modelsim,Verilog HDL的常用仿真軟件。
做法:(1)作為一種語(yǔ)言的編輯器,關(guān)鍵字的高亮顯色是最重要的,這一點(diǎn)比較容易做到。在網(wǎng)上有專門的愛好者將各類語(yǔ)言的關(guān)鍵字做好歸類,只需要將你要的語(yǔ)言部分拷入U(xiǎn)Estudio的安裝目錄下的wordfile.txt下即可。
(2)根據(jù)個(gè)人愛好,我希望我的Verilog HDL編輯器可以有代碼折疊功能。由于Verilog HDL的塊一般是以begin和end作為開始和結(jié)束的標(biāo)記,其作用相當(dāng)于C語(yǔ)言的大括號(hào)。在wordfile.txt的對(duì)應(yīng)語(yǔ)言中添加進(jìn)如下代碼即可:
/Open Fold Strings = "begin""case"
/Close Fold Strings = "end""endcase"
這里除了begin和end可以進(jìn)行折疊外,另外一對(duì)case和endcase同樣可以完成折疊,同樣的方法可以添加你需要的折疊標(biāo)志。
(3)UEstudio中有函數(shù)列表功能,在C/C++語(yǔ)言中,可以智能的顯示出函數(shù)名。Verilog HDL是以模塊(module)為單位的,而且一般一個(gè)文件只含有一個(gè)module。因此顯示module名并不非常有用。我將其改成變量列表,顯示出module中的各個(gè)變量,這還是比較有用的。UEstudio的函數(shù)列表判斷是通過(guò)其專門的正則表達(dá)式實(shí)現(xiàn)的,具體可以參照幫助文檔。經(jīng)過(guò)了一個(gè)小時(shí)的研讀,發(fā)現(xiàn)了其基本的語(yǔ)法,添加了如下兩行代碼。在Verilog HDL文件中就能顯示出wire和reg類型的變量列表了。之所以不用input、output和inout作為類型,是因?yàn)楹芏鄷r(shí)候有中間變量,這樣會(huì)遺漏。另外由于正則表達(dá)式比較復(fù)雜,至今能實(shí)現(xiàn)的只能是沒個(gè)變量單獨(dú)定義的情況,如wire clk;如果是連續(xù)定義,如reg Q1,Q2;則不能進(jìn)行判斷。
/Function String = "%wire+[ ^t0-9:^[^]]+[ ^t]+^([a-zA-Z_0-9]+^);"
/Function String 1 = "%reg+[ ^t0-9:^[^]]+[ ^t]+^([a-zA-Z_0-9]+^);"
(4)自動(dòng)縮進(jìn)功能。同樣在wordfile.txt中,有控制自動(dòng)縮進(jìn)的語(yǔ)法。所謂自動(dòng)縮進(jìn)就是指,輸入begin回車,下一行自動(dòng)加一個(gè)tab;輸入end,下一行自動(dòng)退回一個(gè)tab。用戶可以自己添加不同的縮進(jìn)詞實(shí)現(xiàn)自動(dòng)縮進(jìn)。如:
/Indent Strings = "begin""case""fork" "if" "else"
/Unindent Strings = "end""endcase""join" "else"
(5)加入Modelsim仿真環(huán)境。UEstudio給用戶留下了相當(dāng)多的外部程序接口。比較常見的編程語(yǔ)言可以直接將編譯器鏈接到UE里面去,但是似乎沒有verilogHDL。我這里利用了modelsim仿真工具的命令,實(shí)現(xiàn)了一個(gè)對(duì)verilogHDL的編譯功能。因?yàn)閙odelsim的編譯語(yǔ)句vlog是一個(gè)exe文件,可以在dos命令行中執(zhí)行(當(dāng)然需要在path中添加路徑)。命令為vlog + *.v。用戶需要做的是在某個(gè)固定的地方先用modelsim建一個(gè)project,在porject中建立一個(gè)庫(kù),以后用上面命令編譯出來(lái)的文件就都編譯到這個(gè)庫(kù)里面了。這時(shí)候,只需要在UE中的高級(jí)->工具配置里面進(jìn)行的配置就可以,例如:
命令行:vlog %p%n%e //分別代表當(dāng)前文件的路徑,文件名和擴(kuò)展名
工作目錄:%p //當(dāng)前modelsim的project中work文件夾所在路徑
菜單項(xiàng)名稱:在Modelsim中編譯 //顯示在菜單中的項(xiàng)
然后再在捕捉窗口中打上勾,編譯的信息就會(huì)顯示在UE中了。
這個(gè)時(shí)候,你只需要按這個(gè)菜單項(xiàng),就能完成verilogHDL文件的語(yǔ)法檢查和編譯功能。在輸出窗口中你能看到你的Error和warning,雙擊之可以馬上跳轉(zhuǎn)到報(bào)錯(cuò)位置,非常方便。這樣就可以實(shí)現(xiàn)不用打開工具即完成語(yǔ)法檢錯(cuò)的功能,完全在UE中實(shí)現(xiàn)。假如需要用modelsim進(jìn)行仿真的話,運(yùn)行modelsim,在work庫(kù)里面就能發(fā)現(xiàn)你在UE中編譯得到的文件,雙擊testbench項(xiàng),就可以進(jìn)入波形仿真階段了,非常方便好用。
(6)目前正在探索ctag功能,以求做到比函數(shù)列表更加的效果
以上只是我根據(jù)自己的喜好進(jìn)行的一些配置,歡迎交流以達(dá)到更好的效果。