verilog编码规范

verilog编码规范@TOC

  1. 模块
    (1) 一个module模块单独在一个单独的源文件里,且原文件名和模块名一致
    (2) 在文件开始加注说明,至少包括:
    设计时间
    设计者
    文件名
    所属项目
    上下层模块
    模块名称及功能描述
    修改记录
    (3) 模块名要求可描述模块功能,可用下划线间隔简写单词
    (4) 顶层模块的设计只是各子模块信号的连接,不做信号设计,这样有利于系统综合

  2. 信号
    (1) 模块名和信号名不使用大写字母
    (2) 常数和参数使用大写字母
    (3) 信号命名要能体现信号功能,进来使用简写,中间用下划线间隔
    (4) 系统级信号命名要以system的简写开始
    (5) 低电平有效信号以_n结束
    (6) 经过所存的信号要以_r结束
    (7) 时钟信号采用clock简写clk_加频率表示
    (8) Fifo和ram命名方式为功能+fifo+深度位宽+ip说明,以下划线间隔
    (9) 每设计一个模块,都添加一个debug信号备用,每一个debug模块应包含模块设计关键点

  3. 设计
    (1) 同一时钟信号在各模块尽量保持一致
    (2) 一个模块中只使用时钟上升沿或者下降沿驱动
    (3) 尽量不使用组合逻辑设计电路,减少竞争和冒险
    (4) 一个模块尽可能不超过五百行
    (5) 代码中不出现保留字
    (6) 关键always块加备注
    (7) 时序逻辑中不使用阻塞赋值
    (8) 在顶层中输出信号要做寄存
    (9) 多实用状态机进行设计,状态使用独热码,注意添加default项
    (10) 使用单一的复位电路
    (11) 一个always中尽可能只对一个变量操作

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

泡面为伴

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值