verilog书写规范
书写规范
模块名和文件名
- 两者一致
- 一律小写
举例
module clk_div //时钟分频器
clk_8div
adder
adder_8bits
hdb3_coder
端口命名规范
- 一律小写
- 排列顺序
先全局信号:如复位信号、时钟信号
再按功能进行分组
功能组内按输入、输出、双向 - 端口定义时,带上方向定义
- 端口前缀
输入信号:i_data
输出信号:o_data
双向信号:io_data
参数命名规范
大写
函数与任务
- 一律小写
- 后缀_func 或 _task
变量命名规范
- 一律小写
- 前缀:wire:w, reg:r, integer:i
| 意义 | 后缀 |
|---|---|
| 使能 | en |
| 准备好 | rdy |
| 接收 | rx |
| 发送 | tx(transport) |
| 读有效 | ren |
| 写有效 | wen |
| 复位 | rst |
| 控制 | ctrl |
| 应答 | ack |
例子:reg r_sdram_addr; reg r_clk_en
注意
- 组合电路设计中,多运算符语句中使用括号可以减少信号的流向路径。
- 在组合电路设计多分支if语句中,关键跨径信号放在靠前的if分支。
- 时序电路设计中always进程中,只允许一个时钟信号作为时序控制。
- 时序电路设计中always进程中,被赋值的信号需要有异步或同步的初始化操作。
- 同一信号只能在一个进程中赋值
- 一个always进程中只进行相关性较强的信号赋值

浙公网安备 33010602011771号