dvteclipse工具,提供了對代碼預處理的功能。
官網上,也對代碼預處理進行了介紹:
https://www.dvteclipse.com/documentation/sv/Preprocessed_Files_Support.html
這里,以使用ep3命令對代碼進行預處理為例,進行說明。
工程結構如下:
test.svp: 需要使用ep3命令預處理的源文件
test.sv: 使用ep3命令轉換之后的文件
Makefile: 使用ep3命令預處理test.svp文件
dvt的代碼預處理,關鍵是 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:指示預處理之前文件后綴和預處理之后文件后綴
-
dvt_pverilog_ext_path_map: 指示預處理文件位置和預處理之后文件位置,工具會自動將2個目錄下的同名文件但不同文件后綴,進行對應
-
dvt_pverilog_run_on_save: 指示當預處理文件保存時,指定執行的run
配置好default.build文件后,重新build工程。打開預處理文件,需要文件右鍵,選擇Open With->PVerilog Language Editor。
如果沒有這個選項,選擇Other,在界面中選擇PVerilog Language Editor。
此時test.svp的代碼區域,變成下面的界面,在左下角,有[p],[g],Compare。分別表示源文件,生成文件,文件比較。
生成文件界面:
比較界面:
此時,對源文件進行修改,左下角,選擇[p]test.svp,切換到源文件。修改后保存,就會自動運行設置的run-ep3,在default.build中配置的run,從而對源文件進行預處理,生成新的文件。
ep3這個run,其實就是執行make命令。
以上,就是dvt的文件預處理介紹,其實就是配置run參數,然后對于預處理文件,自動運行該run,得到生成文件,然后工具將源文件和生成文件,進行對應。
以上的run參數,寫得比較簡單。源文件和生成文件均在同一個目錄,而且文件是固定的,如果文件不是固定的,并且源文件和生成文件不是在同一個目錄,就需要寫比較復雜的run參數。
如以下的run參數。能將dvt中選中的文件,自動預處理,生成到指定的位置去。能夠識別.svp, vfp, vp三種待預處理文件。
#!/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的內建變量,選中文件的絕對路徑
-
${selected_resource_name}: dvt的內建變量,選中文件的文件名
首先得到源文件目錄和生成文件目錄,提取文件后綴,判斷源文件類型,然后調用ep3命令,在使用emacd的verilog-mode插件,對源文件進行預處理。
這樣,每當源文件保存的時候,就會自動觸發該run,對源文件進行預處理,得到目的文件。
原文標題:【精品博文】dvteclipse代碼預處理(六)
文章出處:【微信號:ChinaAET,微信公眾號:電子技術應用ChinaAET】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論