Verilog语言缩写规范
1. 缩写目的
信号(或变量或者常量,以下统一为信号)缩写有利于减少代码长度,减少书写错误,使代码更简洁美观,但是不规范的缩写则会导致易读性降低,因此需要对Verilog语言中缩写进行规范,以提高代码的质量。本文主要针对Verilog中的信号缩写进行规范化,讲述了一些主要的缩写方法和特殊用例,其它语言比如C/C++/Java等亦可以参考本文的缩写方式。
2. 缩写方法
不同的缩写需要遵循一定的缩写方法与规范,以下为常用的几种缩写方法:
2.1 约定法
约定法即使用大家约定俗成的缩写方法,在代码中使用非常频繁,比如read缩写为rd,address缩写为addr等。
2.2 辅音法
辅音法使用单词中主要的辅音字母(以发音为准)进行缩写,比如delay缩写为dly,clear缩写为clr等。
注意:一些辅音法中对r以及元音(a/e/i/o/u)有着特殊处理。比如clear中保持r,clock缩写为clk而省略了第二个c(该c不影响辅音的发音),对于以元音开始的单词,一般将第一个元音保留,比如average缩写为avg。
2.3 词首法
词首法则使用单词的首部,比如address缩写为addr,acknowledge缩写为ack。
2.4 词组法
词组法针对多个单词的缩写,取每个单词的首字母组合而成,比如Start Of Packet缩写为SOP, Cyclic Redundancy Check缩写为CRC等。
2.5 混合法
混合法则组合其它各种缩写方式来形成新的缩写,比如使用词首的元音和主要辅音,或者采用一个词的单个字母+另一个单词的全写或者缩写,比如Address Bus缩写为ABUS Read Request缩写为rreq,write data缩写为wrdata等。
2.6 自定义
对于一些经常使用但是没有通行缩写方法的信号,可以使用自定义法参考以上各种方法进行缩写,比如Address Width缩写为AW, Data Width缩写为DW。自定义法必须通过注释添加说明,否则其他读者很难理解该缩写方式,采用该方式需要保持在各个代码中保持一致。
3. 特殊缩写
一般情况下不建议将信号缩写为一个字母。但是针对Verilog的特点,对于输入输出端口,wire和reg类型等常用信号,可以缩写为一个或者两个字母,对于缩写为单个或者一些2字母的情况,如下特殊说明
i_* for input // 定义输入端口
o_* for output // 定义输出端口
w_* for wire // 定义wire变量
r_ for register // 定义register变量
t_ for trisate // 定义三态信号
io_ for inout // 定义双向端口
_p for postive // 定义正极性,或者高有效
_n for negtive // 定义负极性,或者低有效
_r for red // 定义红色,视频处理中经常使用
_g for green // 定义绿色,视频处理中经常使用
_b for blue // 定义蓝色,视频处理中经常使用
_d# for delay // 定义寄存器延时
_h for high // 定义高,比如一个word的高字节
_l for low // 定义低,比如一个word的低字节
4. 缩写列表
信号全写 | 首选缩写 | 备选缩写 | 方式 | 备注 |
acknowledge | ack | 词首法/约定法 | ||
addition | add | 词首法/约定法 | 和sub相对 | |
address | addr | adr | 词首法/约定法 | 不可缩写为add |
almost empty | aept | aempty | 混合法 | 用于FIFO |
almost full | aful | afull | 混合法 | 用于FIFO |
answer | ans | 词首法/约定法 | ||
argument | arg | 词首法/约定法 | ||
array | arr | 词首法/约定法 | ||
asynchrounus | async | asyn | 词首法/约定法 | |
audio | aud | 词首法 | ||
average | avg | 混合法/约定法 | ||
back | bck | bk | 辅音法 | 和front相对 |
block | blk | 辅音法 | ||
blue | blu | b | 词首法/自定义 | special for R/G/B |
bottom | bot | 词首法 | 和top相对 | |
buffer | buf | buff | 词首法/约定法 | |
calculate | calc | cal | 词首法/约定法 | |
capture | cap | capt | 词首法 | 和display相对 |
change | chg | 约定法 | ||
channel | ch | 词首法/约定法 | ||
character | char | 词首法/约定法 | ||
check | chk | 辅音法/约定法 | ||
chip select | cs | 首字母/约定法 | ||
clock | clk | 辅音法/约定法 | ||
clr | clear | 辅音法/约定法 | ||
column | col | 词首法/约定法 | 和row相对 | |
combine | cmb | 辅音法 | ||
command | cmd | com | 辅音法/约定法 | |
compare | cmp | 辅音法/约定法 | ||
configure | cfg | config | 辅音法/词首法 | |
control | ctrl | ctl | 辅音法/约定法 | |
count | cnt | 辅音法/约定法 | ||
current | cur | curr | 词首法 | 和next相对 |
data | dat | 词首法 | 参考.dat文件 | |
debug | dbg | 辅音法/约定法 | ||
decode/decoder | dec | 词首法/约定法 | 和encode相对 | |
define | def | 词首法/约定法 | ||
delay | dly | 辅音法/约定法 | 和previous相对 | |
delay # cycle | _d# | 自定义 | special for #=1,2,3 | |
delete | del | 词首法/约定法 | 和insert相对 | |
destination | dst | dest | 词首法/约定法 | 和source相对 |
detect | det | 词首法/约定法 | ||
device | dev | 词首法/约定法 | ||
different | diff | dif | 词首法/约定法 | |
directory | dir | 词首法/约定法 | ||
display | disp | 词首法 | 和capture相对 | |
division/divide | div | 词首法/约定法 | 和multiply相对 | |
document | doc | 词首法/约定法 | ||
double | dbl | 辅音法 | double buffer | |
drop | drp | 辅音法 | 和copy相对 | |
dynamic | dyna | 词首法/约定法 | 和static相对 | |
empty | ept | 混合法 | 和full相对 | |
enable | ena | en | 词首法/约定法 | 和disable相对 |
encode/eoncoder | enc | 词首法/约定法 | 和decode相对 | |
environment | env | 词首法/约定法 | ||
error | err | 词首法/约定法 | 和right相对 | |
ethernet | eth | 词首法/约定法 | ||
execute | exec | 词首法/约定法 | ||
extend | ext | 词首法 | 常用于跨时钟域 | |
feed back | fb | 词组法 | ||
filter | flt | 辅音法 | ||
Finite State Machine | fsm | 首字母/约定法 | ||
first | 1st | 约定法 | first, second, third | |
flag | flg | 辅音法 | ||
frame | frm | 辅音法 | 和field相对 | |
frame per second | fps | 词组法/约定法 | ||
frequency | freq | frq | 词首法 | |
full | ful | 词首法 | 和empty相对 | |
function | fun | fn | 词首法 | |
generate | gen | 词首法 | ||
global | glb | 辅音法 | 全局时钟/复位等 | |
green | gre | g | 词首法/自定义 | special for R/G/B |
ground | gnd | 约定法 | ||
group | grp | 辅音法 | 建组,退组等 | |
header | hdr | 辅音法 | 和tail相对 | |
heartbeat | htbt | 自定义 | 心跳,网络处理 | |
height | ht | 约定法 | 和width相对 | |
high | _h | 自定义 | 和low相对 | |
identification | id | 词首法/约定法 | ||
image | img | 词首法/约定法 | ||
implement | impl | 词首法 | ||
increment | inc | incr | 词首法 | |
index | idx | 辅音法/约定法 | ||
information | info | 词首法 | ||
initalize | init | 词首法 | ||
inout | io_ | 自定义 | 双向端口前缀 | |
input | i_ | 自定义 | 输入端口前缀 | |
input & output | io | 自定义 | ||
insert | ins | 词首法 | ||
interface | if | I/F | 约定法 | |
interrupt | int | intr | 词首法 | |
iteration | itr | 自定义 | ||
layer | lay | 词首法 | ||
length | len | 词首法 | ||
level | lvl | lev | 辅音法 | |
library | lib | 词首法 | ||
line | ln | 辅音法 | ||
link | lnk | 辅音法 | ||
list | lst | 辅音法 | ||
local | loc | 词首法 | ||
logical | log | 词首法 | 和physical相对 | |
low | _l | 自定义 | 和high相对 | |
make | mk | 辅音法 | ||
manager | mgr | 自定义 | ||
master | mst | 辅音法 | 和slave相对 | |
match | mat | 词首法 | ||
maximum | max | 词首法 | ||
memory | mem | 词首法 | ||
message | msg | 约定法 | ||
micro block | mb | 约定法 | ||
middle | mid | 词首法 | ||
minimum | min | 词首法 | ||
mouse & keyboard | mk | 词组法 | ||
multiplication | mul | 词首法 | 和divide相对 | |
negedge/falling | neg | 词首法 | 和posedge相对 | |
negitivt | _n | 自定义 | 和positive相对 | |
next | nxt | 辅音法 | 和previous相对 | |
number | num | 词首法 | 和count相对 | |
object | obj | 词首法/约定法 | ||
operand | op | 词首法/约定法 | ||
operator | optr | 自定义 | ||
optimization | opt | 词首法 | ||
origin/original | org | orig | 词首法 | |
output | o_ | 自定义 | 输出端口前缀 | |
over flow | of | 词组法 | 和under flow相对 | |
package | pkg | 辅音法 | ||
packet | pkt | 辅音法 | ||
padding | pad | 词首法 | ||
parameter | para | param | 词首法 | |
password | psw | 辅音法 | ||
payload type | pt | 词首法 | ||
physical | phy | 词首法 | 和logical相对 | |
picture | pic | 词首法 | ||
point | pnt | 辅音法 | 和line相对 | |
pointer | ptr | 约定法 | ||
posedge/raising | pos | 词首法 | ||
position | pos | 词首法 | ||
positive | _p | 自定义 | 和negtive相对 | |
power | pwr | 辅音法 | 和ground相对 | |
previous | pre | prev | 词首法 | 和next相对 |
process/procedure | proc | 词首法 | ||
public | pub | 词首法 | ||
read | rd | 辅音法 | 和write相对 | |
read only | ro | 词组法 | ||
read write | rw | 词组法 | ||
ready | rdy | 辅音法 | ||
receive | rx | recv | 约定法 | 和transmitter相对 |
record | rcd | 辅音法 | ||
red | red | r | 自定义 | special for R/G/B |
region | rgn | 辅音法 | ||
register | r_ | reg | 词首法 | r_* for register |
request | req | 词首法 | ||
reset | rst | 首字母 | ||
result | res | 词首法 | ||
return | ret | 词首法 | ||
screen | srcn | scr | 词首法 | |
second | 2nd | sec | 词首法 | |
segment | seg | 词首法 | ||
select | sel | 词首法 | ||
server | svr | 约定法 | ||
signaling | sig | 词首法 | ||
slave | slv | 辅音法 | 和master相对 | |
slice | slc | 辅音法 | ||
source | src | 辅音法 | 和destination相对 | |
stack | stk | 辅音法 | ||
standard | std | 约定法 | ||
state | S_ | 自定义 | for FSM | |
status | stat | 词首法 | 和configure相对 | |
stream | strm | stm | 辅音法 | |
string | str | 词首法 | ||
subtraction | sub | 词首法 | 和add相对 | |
summation | sum | 词首法 | ||
synchronization | sync | syn | 词首法 | |
system | sys | 词首法 | ||
table | tab | tbl | 词首法 | |
temporary | temp | tmp | 词首法 | |
test | tst | 辅音法 | ||
text | txt | 辅音法 | ||
third | 3rd | 约定法 | ||
threshold | th | 词首法 | ||
time stamp | ts | 词首法/自定义 | ||
total | tot | 词首法 | 和active相对 | |
transmitter | tx | 约定法 | 和receive相对 | |
triple | tri |
| 约定法 |
|
tristate | t_ | 自定义 | t_ for tristate | |
update | upd | 词首法 | 和hold相对 | |
upgrade | upg | 词首法 | ||
user interface | ui | 词组法 | ||
utility | util | 词首法 | ||
valid | vld | 辅音法 | ||
value | val | 词首法 | ||
variable | var | 词首法 | ||
variable length code | vlc | 词组法 | ||
version | ver | 词首法 | ||
vertical synchronous | vsync | 组合法 | 和hsync相对 | |
video | vid | 词首法 | ||
wide/width | wd | 辅音法 | 和height相对 | |
window | win | wnd | 词首法 | |
wire | w_ | 自定义 | w_ for wire | |
write | wr | 词首法/约定法 | 和read相对 | |
Cyclic Redundancy Check | crc | 词组法 | ||
y | ||||
u | ||||
v |