信号(或变量或者常量,以下统一为信号)缩写有利于减少代码长度,减少书写错误,使代码更简洁美观,但是不规范的缩写则会导致易读性降低,因此需要对Verilog语言中缩写进行规范,以提高代码的质量。本文主要针对Verilog中的信号缩写进行规范化,讲述了一些主要的缩写方法和特殊用例,其它语言比如C/C++/Java等亦可以参考本文的缩写方式。
不同的缩写需要遵循一定的缩写方法与规范,以下为常用的几种缩写方法:
约定法即使用大家约定俗成的缩写方法,在代码中使用非常频繁,比如read缩写为rd,address缩写为addr等。
辅音法使用单词中主要的辅音字母(以发音为准)进行缩写,比如delay缩写为dly,clear缩写为clr等。
注意:一些辅音法中对r以及元音(a/e/i/o/u)有着特殊处理。比如clear中保持r,clock缩写为clk而省略了第二个c(该c不影响辅音的发音),对于以元音开始的单词,一般将第一个元音保留,比如average缩写为avg。
词首法则使用单词的首部,比如address缩写为addr,acknowledge缩写为ack。
词组法针对多个单词的缩写,取每个单词的首字母组合而成,比如Start Of Packet缩写为SOP, Cyclic Redundancy Check缩写为CRC等。
混合法则组合其它各种缩写方式来形成新的缩写,比如使用词首的元音和主要辅音,或者采用一个词的单个字母+另一个单词的全写或者缩写,比如Address Bus缩写为ABUS Read Request缩写为rreq,write data缩写为wrdata等。
对于一些经常使用但是没有通行缩写方法的信号,可以使用自定义法参考以上各种方法进行缩写,比如Address Width缩写为AW, Data Width缩写为DW。自定义法必须通过注释添加说明,否则其他读者很难理解该缩写方式,采用该方式需要保持在各个代码中保持一致。
一般情况下不建议将信号缩写为一个字母。但是针对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的低字节
信号全写 |
首选缩写 |
备选缩写 |
方式 |
备注 |
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 |