dvteclipse工具,提供了對代碼預(yù)處理的功能。
官網(wǎng)上,也對代碼預(yù)處理進(jìn)行了介紹:
https://www.dvteclipse.com/documentation/sv/Preprocessed_Files_Support.html
這里,以使用ep3命令對代碼進(jìn)行預(yù)處理為例,進(jìn)行說明。
工程結(jié)構(gòu)如下:

test.svp: 需要使用ep3命令預(yù)處理的源文件
test.sv: 使用ep3命令轉(zhuǎn)換之后的文件
Makefile: 使用ep3命令預(yù)處理test.svp文件
dvt的代碼預(yù)處理,關(guān)鍵是 default.build 的文件編寫
|
file: default.build +dvt_pverilog_ext_map+.svp=.sv +dvt_pverilog_ext_path_map+./=./ +dvt_pverilog_run_on_save+"ep3" +dvt_init+dvt test.sv |
-
dvt_pverilog_ext_map:指示預(yù)處理之前文件后綴和預(yù)處理之后文件后綴
-
dvt_pverilog_ext_path_map: 指示預(yù)處理文件位置和預(yù)處理之后文件位置,工具會自動將2個目錄下的同名文件但不同文件后綴,進(jìn)行對應(yīng)
-
dvt_pverilog_run_on_save: 指示當(dāng)預(yù)處理文件保存時,指定執(zhí)行的run
配置好default.build文件后,重新build工程。打開預(yù)處理文件,需要文件右鍵,選擇Open With->PVerilog Language Editor。

如果沒有這個選項(xiàng),選擇Other,在界面中選擇PVerilog Language Editor。

此時test.svp的代碼區(qū)域,變成下面的界面,在左下角,有[p],[g],Compare。分別表示源文件,生成文件,文件比較。

生成文件界面:

比較界面:

此時,對源文件進(jìn)行修改,左下角,選擇[p]test.svp,切換到源文件。修改后保存,就會自動運(yùn)行設(shè)置的run-ep3,在default.build中配置的run,從而對源文件進(jìn)行預(yù)處理,生成新的文件。

ep3這個run,其實(shí)就是執(zhí)行make命令。

以上,就是dvt的文件預(yù)處理介紹,其實(shí)就是配置run參數(shù),然后對于預(yù)處理文件,自動運(yùn)行該run,得到生成文件,然后工具將源文件和生成文件,進(jìn)行對應(yīng)。
以上的run參數(shù),寫得比較簡單。源文件和生成文件均在同一個目錄,而且文件是固定的,如果文件不是固定的,并且源文件和生成文件不是在同一個目錄,就需要寫比較復(fù)雜的run參數(shù)。
如以下的run參數(shù)。能將dvt中選中的文件,自動預(yù)處理,生成到指定的位置去。能夠識別.svp, vfp, vp三種待預(yù)處理文件。
|
#!/bin/tcsh set src_root = `dirname ${selected_resource_loc}` set gen_root = `echo $src_root | sed "s#$PROJ_SRC_ROOT#$PROJ_GEN_ROOT" set svp_file = ${selected_resource_name} set file_exten = `echo $svp_file |awk-F"."'{print $NF}'` if ( $file_exten == "svp" ) then set sv_file = `basename $svp_file .svp`.sv else if ( $file_exten == "vfp" ) then set sv_file = `basename $svp_file .vfp`.vf else set sv_file = `basename $svp_file .vp`.v endif ep3 $src_root/$svp_file -noprotect > $gen_root/$sv_file emacs --no-site-file --batch -l verilog-mode.el $gen_root/$sv_file -f remove-pound -f verilog-auto -f save-buffer |
-
${selected_resource_loc}: dvt的內(nèi)建變量,選中文件的絕對路徑
-
${selected_resource_name}: dvt的內(nèi)建變量,選中文件的文件名
首先得到源文件目錄和生成文件目錄,提取文件后綴,判斷源文件類型,然后調(diào)用ep3命令,在使用emacd的verilog-mode插件,對源文件進(jìn)行預(yù)處理。
這樣,每當(dāng)源文件保存的時候,就會自動觸發(fā)該run,對源文件進(jìn)行預(yù)處理,得到目的文件。
原文標(biāo)題:【精品博文】dvteclipse代碼預(yù)處理(六)
文章出處:【微信號:ChinaAET,微信公眾號:電子技術(shù)應(yīng)用ChinaAET】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
GPIO引腳操作方法概述
EWB的基本操作方法
智能儀表組態(tài)操作方法評述
獨(dú)立按鍵操作方法
C語言有哪些預(yù)處理操作?

dvteclipse代碼預(yù)處理的簡單操作方法推薦
評論