如何用ultraedit高亮语法显示verilog
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用ultraedit高亮语法显示verilog相关的知识,希望对你有一定的参考价值。
1:下载Verilog的语法高亮文件。即可支持相应的语言编辑,关键字将用不同色彩标出。
可以到官方网站去下载,包括上百种语法文件,我想应该都能满足大家的需要吧!
http://www.ultraedit.com/index.php?name=Content&pa=showpage&pid=40#wordfiles
2:将下载的文件打开,将里面的内容复制到WordFile.txt文件中(在UltraEdit的安装目录下),一般加在最后。
UltraEdit默认只有20种语法,将下载的文件的第一行“L20”改成你想要的序号,如L19。
3:加入折叠功能
由于Verilog HDL的块一般是以begin和end作为开始和结束的标记,其作用相当于C语言的
大括号。在wordfile.txt的对应语言中添加进如下代码即可:
/Open Fold Strings = "begin""case"
/Close Fold Strings = "end""endcase"
这里除了begin和end可以进行折叠外,另外一对case和endcase同样可以完成折叠,同样的
方法可以添加你需要的折叠标志。
4:加入自动缩进功能
同样在wordfile.txt中,有控制自动缩进的语法。所谓自动缩进就是指,输入begin回车,下一行自动加一个tab;输入end,下一行自动退回一个tab。用户可以自己添加不同的缩进词实现自动缩进。如:
/Indent Strings = "begin""case""fork" "if" "else"
/Unindent Strings = "end""endcase""join" "else"
5: 还可以加入其它一些自定义功能,如函数调用功能,大家可以自己摸索。
方便大家,做了个压缩包供大家下载。
包中
verilog.txt 是加入自动缩进和折叠功能的verilog-98语法文件。已改为L19。
verilog2001 是加入自动缩进和折叠功能的verilog-2001语法文件。已改为L20
wordfile.txt 是加入verilog和veriog2001的文件,替代原安装目录下的wordfile.txt文件即可。
(说明:在这里我修改的是高级->配置->语法高亮->mysql5.1->打开,然后在其后面加入了verilog2001里面的内容,并加入了上面的四句话,在这句话/Delimiters = ~!@%^&*()-+=|//[]:;"<> , .?#的上面加入的)
UltraEdit-32 注册码信息:
注册名:www.newdou.com
注册码:GKDDZ-PHOKG-OKFHH-RLJTM-EHFHF-NGJOK-NLHJW-RPFTH 参考技术A 在wim7下安装了ultraedit,用来编辑verilog时看上去都是灰灰的,于是google了一下,发现只要把一段模板放在wordfile文件里就可以了,但是把模板代码放入ultraedit下安装目录中的 wordfilet中后打开verilog还是没有语法高亮显示。于是自己看了下configuration里面的设置,果然 被我发现在syntax highlighting 里面有设置wordlist文件的路径,根本不是安装路径下的那个wordfile,把模板代码放入正确的文件果然有语法高亮了。打开ultraedit,查看高级/配置/编辑器显示/语法高亮,就可以看到正确目录了。还要注意的是,wim7 下C盘的appdata文件夹默认隐藏的,所以直接搜索C:\Users\asus\AppData就可以找到。
下面贴一下模板代码,放入wordfile的最后面就可以了,中第一行L后面的数字代表序号,要保证新添加的值是最大的,比如上一个L后面是13,那你添加的就写成14,如果以后还有新的格式就写成15,如此类推。wordfile里的文件都是.uew文件。
/L14″Verilog 1364-2001″ Line Comment = // Block Comment On = /* Block Comment Off = */ String Chars = ” File Extensions = V VL VMD
/Delimiters = ~!@%^&*()-+=|\/[]:;”<> , .?#
/Function String = “%[a-z0-9]+[ ^t]+[a-z_0-9]+[ ^t]+(”
/Indent Strings = “begin” “fork” “specify” “config“
/Unindent Strings = “end” “join” “endspecify” “endconfig”
/C1″Keywords”
always and assign automatic
begin buf bufif0 bufif1
case casex casez cell cmos config
deassign default defparam design disable
edge else end endcase endconfig endmodule endfunction endgenerate endprimitive endspecify endtable endtask event
for force forever fork function
generate genvar
highz0 highz1
if ifnone initial inout input instance integer
join
large liblist library localparam
macromodule medium module
nand negedge nmos none nor noshowcancelled not notif0 notif1
or output
parameter pulsestyle_onevent pulsestyle_ondetect pmos posedge primitive pull0 pull1 pullup pulldown
real realtime reg release repeat rcmos rnmos rpmos rtran rtranif0 rtanif1
scalared showcancelled signed small specify specparam strength strong0 strong1 supply0 supply1
table task time tran tranif0 tranif1 tri tri1 tri0 triand trior trireg
use
vectored
wait wand weak0 weak1 while wire wor
xnor xor
/C2″System”
** ‘b ‘B ‘o ‘O ‘d ‘D ‘h ‘H ’sb ’sB ’so ’sO ’sd ’sD ’sh ’sH ‘Sb ‘SB ‘So ‘SO ‘Sd ‘SD ‘Sh ‘SH
** _
$async$and$array $async$and$plane $async$nand$array $async$nand$plane $async$nor$array $async$nor$plane $async$or$array $async$or$plane
$bitstoreal
$countdrivers
$display $displayb $displayh $displayo
$dist_chi_square $dist_erlang $dist_exponential $dist_normal $dist_poisson $dist_t $dist_uniform
$dumpall $dumpfile $dumpflush $dumplimit $dumpoff $dumpon $dumpportsall $dumpportsflush $dumpportslimit $dumpportsoff $dumpportson $dumpvars
$fclose $fdisplayh $fdisplay $fdisplayf $fdisplayb $ferror $fflush $fgetc $fgets $finish $fmonitorb $fmonitor $fmonitorf $fmonitorh $fopen $fread $fscanf $fseek $fsscanf $fstrobe $fstrobebb $fstrobef $fstrobeh $ftel $fullskew $fwriteb $fwritef $fwriteh $fwrite
$getpattern
$history $hold
$incsave $input $itor
$key
$list $log
$monitorb $monitorh $monitoroff $monitoron $monitor $monitoro
$nochange $nokey $nolog
$period $printtimescale
$q_add $q_exam $q_full $q_initialize $q_remove
$random $readmemb $readmemh $readmemh $realtime $realtobits $recovery $recrem $removal $reset_count $reset $reset_value $restart $rewind $rtoi
$save $scale $scope $sdf_annotate $setup $setuphold $sformat $showscopes $showvariables $showvars $signed $skew $sreadmemb $sreadmemh $stime $stop $strobeb $strobe $strobeh $strobeo $swriteb $swriteh $swriteo $swrite $sync$and$array $sync$and$plane $sync$nand$array $sync$nand$plane $sync$nor$array $sync$nor$plane $sync$or$array $sync$or$plane
$test$plusargs $time $timeformat $timeskew
$ungetc $unsigned
$value$plusargs
$width $writeb $writeh $write $writeo
/C3″Operators”
->
+:
-:
@
@*
*>
,
;
+
-
// /
*
**
%
>
>=
>>
>>>
<
<=
<<
<<<
!
!=
!==
&
&&
|
||
=
==
===
^
^~
~
~^
~&
~|
?
:
/C4″Directives”
** `
`accelerate `autoexepand_vectornets
`celldefine
`default_nettype `define `default_decay_time `default_trireg_strength `delay_mode_distributed `delay_mode_path `delay_mode_unit `delay_mode_zero
`else `elsif `endcelldefine `endif `endprotect `endprotected `expand_vectornets
`file
`ifdef `ifndef `include
`line
`noaccelerate `noexpand_vectornets `noremove_gatenames `noremove_netnames `nounconnected_drive
`protect `protected
`remove_gatenames `remove_netnames `resetall
`timescale
`unconnected_drive `undef `uselib
/C5″DelaysAndParameters”
#
/Open Fold Strings = “begin”"case”
/Close Fold Strings = “end”"endcase”
/Indent Strings = “begin”"case”"fork” “if” “else”
/Unindent Strings = “end”"endcase”"join” “else” 参考技术B 可以用notepad++,里面有verilog的语法
Verilog 如何用持续赋值语句实现2选1多路选择器
Verilog 如何用持续赋值语句实现2选1多路选择器
参考技术A 持续赋值定义的2选1多路选择器module MUX2_1(out,a,b,sel);
input a, b, sel;
output out;
assign out = (sel==0)?a:b;
endmodule 参考技术B 画真值表:
assign out=(IN1&(~SEL)) | (IN2&SEL) ; 参考技术C assign out = select ? IN1 : IN2;
以上是关于如何用ultraedit高亮语法显示verilog的主要内容,如果未能解决你的问题,请参考以下文章
如何将UltraEdit的输入格式设置成JAVA语言的格式 例如关键词的高亮、自动缩进等