[Verilog]Verilog 代码规范

       前言:本文主要从Naming Convention,File Header,Comments,Coding Style,Synthesis,Static 描述Timing Analysis, Simulation, Design for Test 等八个方面介绍verilog 代码设计规范。

一、術語說明

       1、Severity Levels Definition 严格等级定义:

              (1)Mandatory 1 (M1) –强制性1 --> 此等级规则必须遵守,如果不符合,设计必须更改

              (2)Mandatory 2 (M2) –强制性2 --> 此等级规则应该遵守,如果不符合,必须提供文档说明

              (3)Recommended (R) –建议等级 --> Rules are recommended to be followed in the design

二、为何要编码指南?

       1、在ASIC设计过程中,CAD工具非常重要,然而,每个CAD工具都有它自己的能力和局限性,设计者必须熟悉每个使用的CAD工具的能力和局限性,为了获得工具最好的性能以避免疲惫迭代, 要求按照工具的特性进行编码。

三、命名约定规则列表:

No. Naming Convention Level
[S.NC.1] 一个文件最多只能包含一个module 模块 M2
[S.NC.2] 文件名应该与设计模块名一致 R
[S.NC.3] 只有数字字母和下划线可以用来命名 M1
[S.NC.4] 名字应该以字母开头 M2
[S.NC.5] 名字不用只用大小写来区分 M1
[S.NC.6] 使用下划线来分开由几个单词构造的名字 R
[S.NC.7] 在整个层次中使用相同的信号名称 M2
[S.NC.8] 参数和宏定义使用大写字母 M2
[S.NC.9] 端口,信号,结构体和实例单元的名字使用小写字母 M2
[S.NC.10] 使用能够表示一定含义的单词来名字 R
[S.NC.11] 一致的时钟信号名称 M2
[S.NC.12] 一致的复位信号名称 M2
[S.NC.13] 一致的低电平信号名称 M2
[S.NC.14] 对于状态及变量,使用<fsm_cs>, <fsm_ns>命名 R
[S.NC.15] 对于latch 类型的变量,以_lat 结尾 R
[S.NC.16] 对于三态信号名,用_z 结尾 R
[S.NC.17] 对于异步信号名,用_结尾 R
[S.NC.18] 命名不能使用Verilog and VHDL 的关键字 M1
[S.NC.19] 名字的长度不能超过32 个字母 M2
[S.NC.20] 描述和缩写需要一致 R
[S.NC.21] 文档缩写和附加命名约定 R
[S.NC.22] 实例名称必须与模块名相同 M2
[S.NC.23] 要以特定的顺序来描述多位宽总线 M2
[S.NC.1] 一个文件最多只能包含一个module 模块 M2
[S.NC.2] 文件名应该与设计模块名一致 R
[S.NC.3] 只有数字字母和下划线可以用来命名 M1
[S.NC.4] 名字应该以字母开头 M2
[S.NC.5] 名字不用只用大小写来区分 M1
[S.NC.6] 使用下划线来分开由几个单词构造的名字 R
发布了140 篇原创文章 · 获赞 81 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/gsjthxy/article/details/104681477
今日推荐