Verilog+HDL+代码风格规范
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
XXX Verilog HDL 代码规范
1. 目的
为了提高 Verilog HDL 代码的可读性、可修改性、可重用性,方便成员间的交流使用, 提升项目组的设计效率,现面向 FPGA 组制定 Verilog HDL 代码规范。
2. 范围
本规范内容包括可综合设计规范和仿真验证规范两部分。可综合设计规范是针对逻辑设 计代码,适用于 RTL 的任何一种描述方式(数据流描述,行为描述,门级描述)。仿真验 证规范针对 Testbench 代码。
造成设计错误。
10. 全局信号名字中应包含信号来源的一些信息。系统信号应加上 sys。 比如:adc2378_sdo 、sys_clk。
11. 添加有意义的后缀使信号名更加明确常用的后缀。
如表 1 表格 1 常用信号后缀表:
信号后缀
意义
_clk
时钟
_n
低有效
2014-11-29
版权所有 侵权必究
5
XXX Verilog HDL 代码规范
a) 命名规范
命名要做到简洁、清晰、有效,尽可能做到见名知意。 1. 使用有意义的名字。 使用有意义的的名字,使设计者更容易理解信号意义,理解模块功能,发现设计错误, 修改错误,同时方便成员间交流。 2. 使用规范的缩写。
2014-11-29
版权所有 侵权必究
4
XXX Verilog HDL 代码规范
信号命名过长对设计带来麻烦,缩写就是为了简洁、清晰,所有缩写要求能基本表明本
单词的含义。常用信号缩写见表格 2,其它信号名一般取其前三个字母。信号名长度在 20 个字母内,词与词之间用下划线连接。 3. 使用规范的大小写。 端口、信号、变量、函数名、模块名所有字母小写,宏定义、参数定义大写。
比如:
input sys_rst; parameter CLK_PERIOD = 20。 4. 总线命名规则。 总线宽度的语句必须用 [N:0], 而不能用 [0:N],标记 0 表示 LSB, 标记 N 表示 MSB。 5. 低有效信号名加 _n。 比如:
本规范读者含概 FPGA 设计人员、验证人员和其他与 FPGA 开发相关人员。
3. 定义
Verilog HDL FSM RM BFM
Verilog 硬件描述语言 有限状态机 参考模型 总线功能模型
4. 规范内容
1) 可综合设计
确保代码能被绝大多数综合工具所接受,且能无歧义快速综合,现制定可综合代码规范。
2014-11-29
缩写 ack addr arb chk clk cfg ctrl cnt curr_st din dout de dec dly dis err en frm gen gnt inc in len next_st out pkt pri ptr
版权所有 侵权必究
下降沿 上升沿 三态信号 使能
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. 同一信号在不同层次应保持一致性。 层次化设计中,同一信号相同名称可以确保不同层次信号处理正确,避免因为名称不同
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
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
读使能 读
准备好 接收 请求 复位
片段 节 源 统计 定时 转换
临时的 发送 有效
写使能 写操作
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
中文含义 应答 地址 仲裁 校验 时钟 配置 控制
计数器 当前状态 数据输入 数据输出
译码 减一 延迟 不使能 错误 使能 帧 生成 同意, 准予, 承认 加一 输入 (帧、包)长 下一状态 输出 包 优先级 指针
6பைடு நூலகம்
XXX Verilog HDL 代码规范
read enable read ready
_neg _pos
_z _en 表格 2 常见信号缩写: 全称 acknowledge adress arbiter check clock configuration control counter current state data in data out decode decrease delay disable error enable frame generate grant increase input length next state output packet priority pointer
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、增加模块规范中条 件判断算式表达式部 分。