第一部分全部大写,第二部分所有具有明确意义的英文名全部拼写或缩写的第一个字母大写,其余部分小写。<br>
举例:CPUMMU_WrReq,下划线左边是第一部分,代表数据方向是从CPU模块发向存储器管理单元模块(MMU)。下划线右边Wr为Write的缩写,Req是Request的缩写。两个缩写的第一个字母都大写,便于理解。整个变量连起来的意思就是CPU发送给MMU的写请求信号。<br>
模块上下层次间信号的命名也遵循本规定。<br>
若某个信号从一个模块传递到多个模块,其命名应视信号的主要路径而定。<br>
<br>
6. 模块内部信号:<br>
模块内部的信号由几个单词连接而成,缩写要求能基本表明本单词的含义;<br>
单词除常用的缩写方法外(如:Clock->Clk, Write->Wr, Read->Rd等),一律取该单词的前几个字母( 如:Frequency->Freq, Variable->Var 等);<br>
每个缩写单词的第一个字母大写;<br>
若遇两个大写字母相邻,中间添加一个下划线(如DivN_Cntr);<br>
举例:SdramWrEn_n;FlashAddrLatchEn;<br>
<br>
四. 编码格式规范。<br>
<br>
1. 分节书写,各节之间加1到多行空格。如每个always,initial语句都是一节。每节基本上完成一个特定的功能,即用于描述某几个信号的产生。在每节之前有几行注释对该节代码加以描述,至少列出本节中描述的信号的含义。<br>
<br>
2. 行首不要使用空格来对齐,而是用Tab键,Tab键的宽度设为4个字符宽度。行尾不要有多余的空格。<br>
<br>
3. 注释。<br>
使用//进行的注释行以分号结束;<br>
使用/* */进行的注释,/*和*/各占用一行,并且顶头;<br>
例:<br>
// Edge detector used to synchronize the input signal;<br>
<br>
4. 空格的使用:<br>
不同变量,以及变量与符号、变量与括号之间都应当保留一个空格。<br>
Verilog关键字与其它任何字符串之间都应当保留一个空格。如:<br>
Always @ (……)<br>
使用大括号和小括号时,前括号的后边和后括号的前边应当留有一个空格。<br>
逻辑运算符、算术运算符、比较运算符等运算符的两侧各留一个空格,与变量分隔开来;单操作数运算符例外,直接位于操作数前,不使用空格。<br>
使用//进行的注释,在//后应当有一个空格;注释行的末尾不要有多余的空格。 |