【精品博文】dvteclipse代码预处理(六)

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,对源文件进行预处理,得到目的文件。

(0)

相关推荐

  • 【Linux 命令】cp 命令详解

    一.cp 命令简介 cp 命令主要用于复制文件或目录.即用来将一个或多个源文件或者目录复制到指定的目的文件或目录. cp 命令可以将单个源文件复制成一个指定文件名的具体的文件或一个已经存在的目录下. ...

  • 如何批量复制同一目录下的不同文件夹中的大量不同快捷方式的源文件?

    现有大量因为工程需要而整理的装有快捷方式的文件夹.如何能够直接复制这些文件夹里快捷方式的源文件,而不需要每一个都"打开文件所在的位置",从而提高复制拷贝的效率? 网友林语风给出了一 ...

  • tar文件归档

    tar是UNIX和类UNIX系统上的压缩,备份工具, 名字来源于Tape archive--磁盘归档,最初的时候是用来将数据储存,备份到磁带上的.而今最简单的备份方法是添加新的磁盘或者在云端存储,但即 ...

  • 【精品博文】dvteclipse软件使用(三)

    下面,简单介绍下,该软件的一些功能. 一.自动补全 输入一部分,按 ctrl + 空格,就会弹出对话框,进行选择,要自动补全的内容. DVT还支持,缩写补全,比如上面的 uvm_table_print ...

  • 【精品博文】dvteclipse打开demo工程(二)

    下面,介绍一下,该软件如何打开demo工程. 在终端,输入 dvt, 就会启动dvt软件. 打开软件后,在左上角工程目录,会自动出现2个文件夹.其中DVT-Examples,里面是软件提供的demo工 ...

  • 【精品博文】dvteclipse工具简介(一)

    这几天,在公司体验了开发verilog,systemverilog,UVM的IDE,真是不用不知道,一用吓一跳,该IDE的功能真是太强大了,简直是开发verilog,systemverilog,UVM ...

  • 【精品博文】stm32F4----DHT22(AM2302)数字温湿度传感器读取(六)

    经过了自己用FPGA来驱动DHT22,http://blog.chinaaet.com/xzy610030/p/5100051014 下面开始用STM32F4来读取温湿度了. 首先非常感谢他人的原创, ...

  • 【精品博文】Vivado中将verilog代码封装成IP

    赢一个双肩背包 有多难? 戳一下试试看! →_→ 长摁识别 Xilinx的Vivado采用原理图的设计方式,比较直观适合大型项目,我们自己的code都需要封装成user IP. 这里主要介绍怎么把多个 ...

  • 【精品博文】闲聊代码测试

    最近时不时和TL聊一些怎么提高开发效率的东西,不是说具体而微的技术,大都是抽象层面的,包括软件的maintainence.FCI(function component implementation). ...

  • 楹联大观 | 每日一副网络精品联鉴(第六期:余德泉)

    刊头作者/广西青年诗联艺术家 韦代森 往期回顾 楹联大观 | 每日一副网络精品联鉴(第一期:林南) 楹联大观 | 每日一副网络精品联鉴(第二期:空空道人) 楹联大观 | 每日一副网络精品联鉴(第三期: ...

  • 张清华:中国当代文学精品31.先锋小说(六)

    张清华:中国当代文学精品31.先锋小说(六)

  • 精品五星-北京天津双飞六天游

              美食篇----1自助+5特色 美食特色1.潮汕精品菜 佛跳墙套餐 美食特色2.中华老字号东来顺羊肉火锅,相传已有数百年历史.不腥不膻,肥瘦相宜 美食特色3.北方饺子宴:浓郁的喜庆味 ...