当前位置:文档之家› Verilog+HDL+代码风格规范

Verilog+HDL+代码风格规范


读使能 读
准备好 接收 请求 复位
片段 节 源 统计 定时 转换
临时的 发送 有效
写使能 写操作
b) 模块规范
模块的命名尽量用英文表达出其完整的功能,长度一般不少于 2 个字母。 1. 每文件最多只能包含一个模块。 每个模块必须用一个文件表示。在一个文件中不允许存在一个以上的模块。(该模块的
作者 frwfpga frwfpga
2014-11-29
版权所有 侵权必究
2
XXX Verilog HDL 代码规范
目录
Verilog HDL 代码规范......................................................................................................................1 修订记录........................................................................................................................................... 2 目录 ..................................................................................................................................................3 1. 目的...........................................................................................................................................4 2. 范围...........................................................................................................................................4 3. 定义...........................................................................................................................................4 4. 规范内容...................................................................................................................................4
2) 仿真验证.........................................................................................................................17
2014-11-29
版权所有 侵权必究
3
本规范读者含概 FPGA 设计人员、验证人员和其他与 FPGA 开发相关人员。
3. 定义
Verilog HDL FSM RM BFM
Verilog 硬件描述语言 有限状态机 参考模型 总线功能模型
4. 规范内容
1) 可综合设计
确保代码能被绝大多数综合工具所接受,且能无歧义快速综合,现制定可综合代码规范。
receive request
reset segment source statistics
timer switch temporary transmit valid write anable write
rden rd rdy rx req rst seg scr stat tmr sf tmp 或者 temp tx vld wren wr
造成设计错误。
10. 全局信号名字中应包含信号来源的一些信息。系统信号应加上 sys。 比如:adc2378_sdo 、sys_clk。
11. 添加有意义的后缀使信号名更加明确常用的后缀。
如表 1 表格 1 常用信号后缀表:
信号后缀
意义
_clk
时钟
_n
低有效
2014-11-29
版权所有 侵权必究
5
XXX Verilog HDL 代码规范
XXXX Verilog HDL 代码规范
FPGA 组
Verilog HDL 代码规范
文档作者: frwfpga 审 批:
日期: 2014-03-07 日期:
XXX Verilog HDL 代码规范
修订记录
日期 2013-8-5 2013-9-27
修订版本 1.00 1.01
描述 初稿完成 1、命名规范中函数 名、模块名大写修改 为小写。 2、增加模块规范中条 件判断算式表达式部 分。
信号命名过长对设计带来麻烦,缩写就是为了简洁、清晰,所有缩写要求能基本表明本
单词的含义。常用信号缩写见表格 2,其它信号名一般取其前三个字母。信号名长度在 20 个字母内,词与词之间用下划线连接。 3. 使用规范的大小写。 端口、信号、变量、函数名、模块名所有st; parameter CLK_PERIOD = 20。 4. 总线命名规则。 总线宽度的语句必须用 [N:0], 而不能用 [0:N],标记 0 表示 LSB, 标记 N 表示 MSB。 5. 低有效信号名加 _n。 比如:
sys_rst_n。 6. 信号打拍加 _Xd,打 1 拍加 _d 或者 _1d,打 2 拍加 _2d。 比如:
sck_ctrl_d,
sck_ctrl_2d。
7. 避免使用数字和 reg 作为后缀。 综合工具会给寄存器自动加上_reg,如果自己加上_reg,网表可读性变差。多 bit 信号
综合后可能会改名成 bit 数后缀的单 bit 信号,造成网表理解困难。 比如:ctrl_reg 改为 reg_ctrl, 8. 避免使用关键字。 比如:in out case 等不能够做为变量端口或模块。 9. 同一信号在不同层次应保持一致性。 层次化设计中,同一信号相同名称可以确保不同层次信号处理正确,避免因为名称不同
1) 可综合设计.......................................................................................................................4 a) 命名规范...................................................................................................................4 b) 模块规范...................................................................................................................7 c) Net and Register......................................................................................................13 d) Expressions..............................................................................................................13 e) For 语句 ..................................................................................................................13 f) If 语句 .....................................................................................................................14 g) Case 语句 ...............................................................................................................14 h) Writing functions.....................................................................................................14 i) 使用可综合的语句.................................................................................................14 j) Comments ...............................................................................................................15 k) FMS..........................................................................................................................15
a) 命名规范
命名要做到简洁、清晰、有效,尽可能做到见名知意。 1. 使用有意义的名字。 使用有意义的的名字,使设计者更容易理解信号意义,理解模块功能,发现设计错误, 修改错误,同时方便成员间交流。 2. 使用规范的缩写。
相关主题