原创 如何利用quicktext快速进行verilog的编写

2011-6-8 15:45 3693 3 3 分类: 工程师职场

notapad是一个比较好的文本编辑器,在使用过程中发现其无法创建文件模板,每次写代码的时候,总要复制粘贴,给代码加上文档的说明等信息,便于自己以后的管理和维护。
我使用的quicktext0.2.2,因为APIS下没有verliog的xml文件,所以首先创建一个verilog.xml文件,将verliog的关键词存入其中。可以将VHDL,xml文件复制修改为verilog,xml,然后再将里面的关键词替换成verilog的,就ok了。具体如下。
<?xml version="1.0" encoding="Windows-1252" ?>
<NotepadPlus>
 <AutoComplete>
  <KeyWord name="always" />
  <KeyWord name="and" />
  <KeyWord name="assign" />
  <KeyWord name="begin" />
  <KeyWord name="default" />
  <KeyWord name="defparam" />
  <KeyWord name="design" />
  <KeyWord name="edge" />
  <KeyWord name="else" />
  <KeyWord name="end" />
  <KeyWord name="endcase" />
  <KeyWord name="endcongfig" />
  <KeyWord name="endtable" />
  <KeyWord name="endtask" />
  <KeyWord name="for" />
  <KeyWord name="force" />
  <KeyWord name="forever" />
  <KeyWord name="fork" />
  <KeyWord name="function" />  
  <KeyWord name="generate" />
  <KeyWord name="if" />
  <KeyWord name="ifnone" />
  <KeyWord name="incdir" />
  <KeyWord name="include" />
  <KeyWord name="initial"/>
  <KeyWord name="inout" />
  <KeyWord name="input" />
  <KeyWord name="instance" />
  <KeyWord name="integer" />
  <KeyWord name="join" />
  <KeyWord name="large" />
  <KeyWord name="liblist" />
  <KeyWord name="library" />
  <KeyWord name="module" />
  <KeyWord name="nand" />
  <KeyWord name="negedge" />
  <KeyWord name="nmos" />
  <KeyWord name="nor" />
  <KeyWord name="noshowcancelled" />
  <KeyWord name="not" />
  <KeyWord name="notif0" />
  <KeyWord name="notif1" />
  <KeyWord name="or" />
  <KeyWord name="output" />
  <KeyWord name="parameter" />
  <KeyWord name="pmos" />
  <KeyWord name="posedge" />
  <KeyWord name="primitive" />
  <KeyWord name="pull0" />
  <KeyWord name="pull1" />
  <KeyWord name="pulldown" />
  <KeyWord name="pullup" />
  <KeyWord name="pulsestyle_onevent" />
  <KeyWord name="pulsestyle_ondetect" />
  <KeyWord name="rcoms" />
  <KeyWord name="real" />
  <KeyWord name="reg" />
  <KeyWord name="release" />
  <KeyWord name="repeat" />
  <KeyWord name="rnmos" />
  <KeyWord name="rpmos" />
  <KeyWord name="rtran" />
  <KeyWord name="rtranif0" />
  <KeyWord name="rtranif1" />
  <KeyWord name="scalared" />
  <KeyWord name="showcancelled" />
  <KeyWord name="signed" />
  <KeyWord name="small" />
  <KeyWord name="specify" />
  <KeyWord name="specparam" />
  <KeyWord name="strong0" />
  <KeyWord name="strong1" />
  <KeyWord name="supply0" />
  <KeyWord name="supply1" />
  <KeyWord name="table" />
  <KeyWord name="task" />
  <KeyWord name="time" />
  <KeyWord name="tran" />
  <KeyWord name="tranif0" />
  <KeyWord name="tranif1" />
  <KeyWord name="tri" />
  <KeyWord name="tri0" />
  <KeyWord name="tri1" />
  <KeyWord name="triand" />
  <KeyWord name="trior" />
  <KeyWord name="trireg" />
  <KeyWord name="unsigned" />
  <KeyWord name="use" />
  <KeyWord name="vectored" />
  <KeyWord name="wait" />
  <KeyWord name="wand" />
  <KeyWord name="weak0" />
  <KeyWord name="weak1" />
  <KeyWord name="while" />
  <KeyWord name="wire" />
  <KeyWord name="wor" />
  <KeyWord name="xnor" />
  <KeyWord name="xnor" />
 </AutoComplete>
</NotepadPlus>
然后再将quicktext.ini里添加,自己需要定义的部分,如
module=module $ ($);\nendmodule
begin=begin \nend
input=input $;\noutput $;\nreg $;\n$
always=always @ (posedge $)\n begin \n end
state=reg  [$:0]state;\n\nparameter $,\n$;\nalways @ (posedge $)\n begin\n if(!rst_n)\n begin\n end\n else\n case($) \n begin $:\n end\nendcase\n end\n
if=if($)\nelse
wire=wire$;assign $=$;
case=case($)\n begin $:\n end\nendcase
task=task$;\n begin\n end\nendtask等
另外quicktext.config.ini里的allowedChars的值,比如加上&,[],会支持更多的定义
如:增加//,就可以使用给带增加一个写有相关说明的刊头了:
v=//-----------------------------------Creating code--------------------------------------\n// Company :  \n// Engineer :     \n// Create Date :  2011年$月$日\n// Design Name :$\n// Target Device: $\n// Tool versions : $\n// Description    :$\n//$     \n// Revision : v$\n// Additional Comments : $\n//------------------------------------Modifying Code---------------------------------\n// Modifying Date:  2011年$月$日\n// Modification:$\n// Revision :v$\n// Engineer :  \n//-------------------------------------------------------------------------------------------\n `timescale  1ns/1ps\n module $ ($);\n\n\n\n\n\n endmodule
然后将快捷方式,Replace Tag修改为自己常用的键就搞定了。

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
我要评论
0
3
关闭 站长推荐上一条 /3 下一条