1. 代码规范目的
本规范的目的是提高书写代码的可读性、可修改性、可重用性,优化代码综合和仿真的结果,指导设计工程师使用VerilogHDL规范代码和优化电路,规范可编程技术的VerilogHDL设计输入,从而做到:1.逻辑功能正确,2.提高整洁度,3.便于跟踪、分析、调试,4.增强可读性,帮助阅读者理解,5.便于程序维护,6. 便于整理文档,7. 便于交流合作。
2. 代码规范范围
本规范涉及Verilog HDL编码风格,编码中应注意的问题,Testbench的编码等。本规范适用于Verilog model的任何一级(RTL,behavioral, gate_level),也适用于出于仿真、综合或二者结合的目的而设计的模块。
3. 代码规范内容
3.1标准的文件头
在每一个版块的开头一定要使用统一的文件头,其中包括作者名,模块名,创建日期,所属项目,概要,更改记录,版权等必要信息。
3.2标准的module 格式
(1)module例化名用xx_u标示(多次例化用次序号0,1,2…)。
(2)建议每个模块加timescale。
(3)不要书写空的模块,即一个模块至少要有一个输入一个输出。
(4)为了保持代码的清晰、美观和层次感,一条语句占用一行,每行限制在80个字符以内,如果较长则要换行。
(5)采用基于名字(name_based)的调用而非基于顺序的(order_based)的调用。
(6) 模块的接口信号按输入、双向、输出顺序定义。
(7)使用降序定义向量有效位顺序,最低位是0。
(8) 管脚和信号说明部分,一个管脚和一组总线占用一行,说明清晰。
(9)在顶层模块中,除了内部的互联和module的例化外,避免再做其他逻辑。
(10)为逻辑升级保留的无用端口以及信号要注释。
(11)建议采用层次化设计,模块之间相对独立。
3.3命名规则
(1)每个文件只包含一个module,module名要小写,并且与文件名保持一致。
(2)模块接口信号定义输入后缀“_i”,输出后缀“_o”。
(3)模块接口信号定义在module()里直接声明信号类型 如module(input clk, input rst, input a, output reg b)。
(4) 三态输出的寄存器信号应后缀"_z"。
(5)除parameter外,信号名全部小写,名字中的两个词之间用用下划线连接。
(6) 由parameter定义的常量要求全部字母大写,自己定义的参数、类型用大写标识。
(7)推荐用parameter来定义有实际意义的常数,包括单位延时、版本号、板类型、单板在位信息、LED亮灯状态、电源状态、电扇状态等。
(8)信号名长度不超过20字符。
更多……请点击[手把手教你学习FPGA系列教程_硬件描述语言篇之Verilog HDL代码规范.pdf]
◆ 更多FPGA学习教程 >>【手把手教你学习FPGA教学教程】