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,对源文件进行预处理,得到目的文件。
芯片供应缺口扩大,汽车行业新一轮危机正在酝酿
基于PLC控制技术实现定尺剪切控制系统的设计
上交所对广东紫晶信息存储技术股份有限公司予以公开谴责
现代工程笔记本是什么样的
报道称微软自研基于Arm的处理器芯片
dvteclipse代码预处理的简单操作方法推荐
如何制作超声波雷达
夏普切断三星电视面板供应,三星将与LG进行协商
国产圆柱电池真空注液机
百大案例 | 玩转网络乐高,肯尼亚Absa银行打造分支网点数字新底座
焊盘直径和最大导线宽度的关系
终极太阳能电池:结晶硅型太阳能电池接近理论极限
空调1级能效比3级省很多电?结果让人大跌眼镜
液位传感器怎么接线
韩国研发可拉伸锂离子电池用于可穿戴或可植入人体电子设备中
iPhone8遇冷,苹果iPhoneX将在10月27日开始预购,价格贵到心碎,网友:不如买华为Mate10
如何迅速构建一个太阳能逆变器网关设计
三大晶圆代工厂2011年成长乏力
三极管的电流分配及放大原理
老中医远程把脉 数据先于救护车到达