Coding Style
1. 文件书写规范
1.1 文件头格式
文件头包含三部分内容:
-
版权信息声明,该部分保持不变;
-
文件描述:包括文件名、版本信息、日期、作者,特别关注Description项,可以添加使用限制、模块功能说明等内容。
-
日志信息:该日志信息仅用于记录较大改动(如需求变更),对于仿真BUG修正记录则不用放在这里。
//------------------------------------- //COPYRIGHT(c) 2021, huawei //ALL right are reserved. //------------------------------------- // Design information //------------------------------------- //File name :iic_top.v //Version :v0.1 //Date :2021/04/10 //Author :WA //Decription : //------------------------------------- //Log: // v0.1 :initial // //-------------------------------------
1.2 文件命名规则
- 文件名 必须与 模块名相同(模块命名遵照命名规则)。
- 单个文件只能定义一个模块,无论该模块代码行数多少,禁止在单个文件内定义多个模块。
1.3 有效注释
- 单个文件中代码注释(不包含文件头 和 日志信息)不低于30%
- 注释信息采用英文
- 注释说明添加在目标代码的前面,力求准确
2. 变量命名规范
2.1 参数、宏命名规范
参数、宏命名采用 大写字母+下划线+数字 的方式,禁止使用其他类别的字符
//-----------Parameter Define-----------------
parameter DEC_IDLE = 3'h0;
parameter SYS2DEC = 3'h1;
parameter DEC = 3'h2;
parameter DEC2SYS = 3'h3;
parameter DEC_REAL_DONE = 3'h4;
2.2 普通变量的命名
变量命名遵循简洁、清晰、有意义的原则,禁止私有&&随意的命名,好的变量命名能够提高程序的健壮性和可维护性。
-
变量命名采用 小写字母+下划线+数字 的方式,禁止使用其他类别的字符
-
除IP Core外,独立开发模块命名 同 变量命名规则
-
变量命名应表征该变量的具体含义,禁止随意使用a,b,x,temp等没有含义的单个字符串来命名
-
对于低电平有效变量,在名称后面加“_n”或者“_b”,例如rst_n
-
读?写是能信号命名为xxx_we/xxx_re,高电平有效;低电平有效的读写使能信号命名为xxx_wen/xxx_ren,其他高有效使能信号采用后缀“_ena”标记,低有效使能信号采用后缀“、_ena_n”标记
-
边沿变量后缀为“_pos”和“_neg”, 例如ack_pos表示总线响应变量ack的上升沿
always @ (posedge clk or negedge rst_n)begin if(rst_n==1'b1) ncu_ack_1z <= `TD 1'b0; else begin ncu_ack_1z <= `TD i_ncu_ack; end end assign ncu_ack_pos = i_ncu_ack & (~ncu_ack_1z)
-
打拍变量采用“xz”后缀表示,x表示数字;禁止组合逻辑采用“_z“命名
always@(posedge clk)begin drx_data_1z <= i_drx_data; drx_data_2z <= drx_data_1z; drx_data_3z <= dr