admin管理员组

文章数量:1531375

2024年7月23日发(作者:)

zz【原创】我的UEstudio/Ultraedit配置

(2006-01-24 20:35:00)

转载▼

标签:

杂谈

今天进行了一项尝试,仿照网上将Ultraedit做成Java、C等编译环境的做法,结合帮

助文档,将UEstudio配置成Verilog HDL的简单的集成编译环境。希望日后工作可以比较

方便。

原料:

(1)UEstudio,一个包含Ultraedit的集成编辑环境,功能比Ultraeidt强大一些;

(2)Modelsim,Verilog HDL的常用仿真软件。

做法:

(1)作为一种语言的编辑器,关键字的高亮显色是最重要的,这一点比较容易做到。在

网上有专门的爱好者将各类语言的关键字做好归类,只需要将你要的语言部分拷入

UEstudio的安装目录下的下即可。

(2)根据个人爱好,我希望我的Verilog HDL编辑器可以有代码折叠功能。

由于Verilog HDL的块一般是以begin和end作为开始和结束的标记,其作用相当于C语言

大括号。在的对应语言中添加进如下代码即可:

/Open Fold Strings = "begin""case"

/Close Fold Strings = "end""endcase"

这里除了begin和end可以进行折叠外,另外一对case和endcase同样可以完成折叠,同样

方法可以添加你需要的折叠标志。

(3)UEstudio中有函数列表功能,在C/C++语言中,可以智能的显示出函数名。Verilog

HDL是以模块(module)为单位的,而且一般一个文件只含有一个module。因此显示module

名并不非常有用。我将其改成变量列表,显示出module中的各个变量,这还是比较有用

的。UEstudio的函数列表判断是通过其专门的正则表达式实现的,具体可以参照帮助文档

。经过了一个小时的研读,发现了其基本的语法,添加了如下两行代码。在Verilog

HDL文件中就能显示出wire和reg类型的变量列表了。之所以不用input、output和inout

作为类型,是因为很多时候有中间变量,这样会遗漏。另外由于正则表达式比较复杂,至

今能实现的只能是没个变量单独定义的情况,如wire clk;如果是连续定义,如reg Q1,Q2;

则不能进行判断。

/Function String = "%wire+[ ^t0-9:^[^]]+[ ^t]+^([a-zA-Z_0-9]+^);"

/Function String 1 = "%reg+[ ^t0-9:^[^]]+[ ^t]+^([a-zA-Z_0-9]+^);"

(4)自动缩进功能。同样在中,有控制自动缩进的语法。所谓自动缩进就是

指,输入begin回车,下一行自动加一个tab;输入end,下一行自动退回一个tab。用户可

以自己添加不同的缩进词实现自动缩进。如:

/Indent Strings = "begin""case""fork" "if" "else"

/Unindent Strings = "end""endcase""join" "else"

(5)加入Modelsim仿真环境。UEstudio给用户留下了相当多的外部程序接口。比较常见

编程语言可以直接将编译器链接到UE里面去,但是似乎没有verilogHDL。我这里利用了

modelsim仿真工具的命令,实现了一个对verilogHDL的编译功能。因为modelsim的编译语

句vlog是一个exe文件,可以在dos命令行中执行(当然需要在path中添加路径)。命令

vlog + *.v。用户需要做的是在某个固定的地方先用modelsim建一个project,在porject

中建立一个work库,以后用上面命令编译出来的文件就都编译到这个库里面了。这时候,

只需要在UE中的高级->工具配置里面进行的配置就可以,例如:

命令行:vlog %p%n%e //分别代表当前文件的路径,文件名和扩展名

工作目录:%p //当前modelsim的project中work文件夹所在路径

菜单项名称:在Modelsim中编译 //显示在菜单中的项

然后再在捕捉窗口中打上勾,编译的信息就会显示在UE中了。

这个时候,你只需要按这个菜单项,就能完成verilogHDL文件的语法检查和编译功能。在

输出窗口中你能看到你的Error和warning,双击之可以马上跳转到报错位置,非常方便。

这样就可以实现不用打开工具即完成语法检错的功能,完全在UE中实现。假如需要用

modelsim进行仿真的话,运行modelsim,在work库里面就能发现你在UE中编译得到的文

件,双击testbench项,就可以进入波形仿真阶段了,非常方便好用。如果做成按键,使

用就更方便了。

(6)目前正在探索ctag功能,以求做到比函数列表更加的效果。

本文标签: 编译功能语法语言需要