Verilog代码注释要求
优秀且完整的注释是代码的重要组成部分,特别是对于一个个人开发和小团队而言,能帮助你快速的了解每一个函数和功能块的具体内容、接口等。下面是个人在FPGA学习中的一点经验,希望有所帮助。
1.文件开头
Module name:XXX
Create date:XXXX/XX/XX
Modify date:XXXX/XX/XX
Engineer:XXX
Revision:XXX
Description:XXXX....
2.模块定义
module name(
input sign_1,
input sign_2,
...
//(空格或注释行隔开)
output out_sign_1,
...
output out_sign_1,
)
//接口列表中来自不同顶层模块或者一类接口与其它接口以空格隔开
//每一个端口名都要有意义,直观的表示信号含义,不能随便定义,且风格要统一
//特殊的信号要注释说明
3.wire和reg等变量的定义
//单行注释说明多个变量对应于哪个功能块
wire [3:0] vaddr; //注释说明变量的意义
wire [1:0] det; //注释说明变量的意义
举例:
//正交变换后输出信号
reg signed [width_1_2:0] a_imag; //I路
reg signed [width_1_2:0] a_real; //Q路
4.always功能块
//功能块说明
always()begin
end
//功能块说明
genver i;
for()begin
end
注意:复杂的功能块里面的begin-end也需要注释说明,以方便理解
5.代码的功能块区
建议按照功能区分代码块
mouule name(
)
// begin:信号差分转单端
//该always块功能说明
always()begin
end
//该always块功能说明
always()begin
end
//end:信号差分转单端
// begin:信号解析
//该always块功能说明
always()begin
end
//该always块功能说明
always()begin
end
//end:信号解析
endmodule
6.常量定义
//常量建议大写,且说明含义
parameter WIDTH = 10;