Verilog HDL代码规范
一、项目架构设计

项目的构架用于团队的沟通,以及项目设计的全局把控
二、接口时序设计规范

模块和模块之间的通过模块的接口实现关联,因此规范的时序设计,对于程序设计的过程,以及程序的维护,
团队之间的沟通都是非常必要的。
三、命名规则
1、顶层文件
对象+功能+top
比如:video_oneline_top
2、逻辑控制文件
介于顶层和驱动层文件之间
对象+ctr
比如:ddr_ctr.v
3、驱动程序命名
对象+功能+dri
比如:lcd_dri.v、uart_rxd_dri.v
4、参数文件命名
对象+para
比如:lcd_para.v
5、模块接口命名:文件名+u
比如 lcd_dir lcd_dir_u(........)
6、模块接口命名:特征名+文件名+u
比如 mcb_read c3_mcb_read_u
7、程序注释说明

8、端口注释
input Video_vs_i,//输入场同步入
9、信号命名
命名总体规则:对象+功能(+极性)+特性
10、时钟信号
对象+功能+特性
比如:phy_txclk_i、sys_50mhz_i
11、复位信号
对象+功能+极性+特性
比如:phy_rst_n_i、sys_rst_n_i
12、延迟信号
对象+功能+特性 1+特征 2
比如:fram_sync_i_r0、fram_sync_i_r1
13、特定功能计数器
对象+cnt
比如:line_cnt、div_cnt0、div_cnt1
功能+cnt
比如:wr_cnt、rd_cnt
对象+功能+cnt
比如:fifo_wr_cnt、mcb_wr_cnt、mem_wr_cnt
对象+对象+cnt
比如:video_line_cnt、video_fram_cnt
14、一般计数器
cnt+序号
用于不容易混淆的计数
比如:cnt0、cnt1、cnt2
15、 时序同步信号
对象+功能+特性
比如:line_sync_i、fram_sync_i
16、 使能信号
功能+en
比如:wr_en、rd_en
对象+功能+en
比如:fifo_wr_en、mcb_wr_en
摘抄于米联客
评论