verilog书写规范

书写规范

模块名和文件名

  1. 两者一致
  2. 一律小写

举例

module clk_div	//时钟分频器
clk_8div
adder
adder_8bits
hdb3_coder

端口命名规范

  1. 一律小写
  2. 排列顺序
    先全局信号:如复位信号、时钟信号
    再按功能进行分组
    功能组内按输入、输出、双向
  3. 端口定义时,带上方向定义
  4. 端口前缀
    输入信号:i_data
    输出信号:o_data
    双向信号:io_data

参数命名规范

大写

函数与任务

  1. 一律小写
  2. 后缀_func 或 _task

变量命名规范

  1. 一律小写
  2. 前缀:wire:w, reg:r, integer:i
意义 后缀
使能 en
准备好 rdy
接收 rx
发送 tx(transport)
读有效 ren
写有效 wen
复位 rst
控制 ctrl
应答 ack

例子:reg r_sdram_addr; reg r_clk_en

注意

  1. 组合电路设计中,多运算符语句中使用括号可以减少信号的流向路径。
  2. 在组合电路设计多分支if语句中,关键跨径信号放在靠前的if分支。
  3. 时序电路设计中always进程中,只允许一个时钟信号作为时序控制。
  4. 时序电路设计中always进程中,被赋值的信号需要有异步或同步的初始化操作。
  5. 同一信号只能在一个进程中赋值
  6. 一个always进程中只进行相关性较强的信号赋值
posted @ 2020-02-10 09:33  friedCoder  阅读(465)  评论(0)    收藏  举报