verilog代码风格_第1页
verilog代码风格_第2页
verilog代码风格_第3页
verilog代码风格_第4页
verilog代码风格_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、编码风格 - 注释1. 在文件头列出文件名,作者,作者的email , 版本, 关键字,目的, 以及使用了多少个时钟,需要注意的内容2. 单行注释使用 / 而不用/*.*/3. 每个功能模块要用注释描述4. 每个端口都需要有描述编码风格 - 命名规则1. 一个module 一个文件2. 文件名根据内容来命名,如果是task ,那么名字的后缀应该加上_task来表示文件内是一些task 。3. 文件名要有意义,描述文件内容。4. 第一个字符必须是字母,允许使用数字和字母以及下划线5. 如果名字中有几个单词那么要用下划线隔开6. 文档和代码中的名字要一致7. 宏定义和参数全部用大写,其他最好都用小

2、写8. 宏定义要在顶层模块,因为它是全局的9. 单个例化时,使用同模块相同的名字,如果有多个例化,加后缀10. 信号名的后缀有很多来表示信号的属性,如_z 高阻信号_b 低有效信号11. 在自模块命名上,需要跟上所有上层模块名字作为前缀12. 整个设计中使用一致的信号名13. 信号名长度不超过32个字符编码风格 - 编写风格1. 代码要表格化,便于阅读2. 代码用空格对齐,用空格代替tab3. 一行一个表达式4. 每行写一个端口申明5. 端口申明的顺序要和模块申明时保持一致6. 内部的线必须显示申明, 最好在端口申明后一起做申明7. 一行不要超过80个字符8. 没有特殊必要,不同的时钟要放在不

3、同的模块9. 不能有组合的环路10. 所有的寄存器都需要初始化编码风格 - 其他1 . 不赋 x 给任何信号;2. 同一个reg 值不能在2个alw ays 结构里赋值;3. 少用或不用宏(define,用参数(parameter来代替;4. 宏不重复定义;5. 在保持常数定义之间关系6. 用参数来代替状态编码7. 如果在一个设计中使用了define的,那么在设计结束一定要使用'undef8. 地址的产生用基址+偏移实现9. 基址必须可调10. 寄存器的值要常数11.ifdef 套嵌不能超过3级12. 操作数的位数必须相符13. 在例化时,模块间的互连使用名字而不是位置14. 输出的位

4、数和申明的位数必须相同15. 端口互连时候位数一致16. 尽量避免使用inout17. 在复杂的算术方程中,使用括号18. 状态机编程时,使用2段式编程19. 不使用内部的3态门20. 不使用三态输出编码风格 - 与综合相关1. 在描述组合逻辑时,在always 块中要完备敏感列表2. 每个alw ays 的敏感列表中只存在一个时钟3. 在描述条件时,即if 或者case 中,完备所有分支4. 要对输出做缺省的赋值5. 不使用full_case综合的指示符6. 避免顶层的glue 逻辑7. 使用阻塞赋值在组合逻辑中,使用非阻塞在边缘敏感的块中8. 所有未使用的端口都要有驱动9. 所有的端口都需

5、要连接到一个悬空的线上10. 设计中不要引入latch11. 不能使用casex12. 不使用内嵌的综合脚本13. 避免使用直接例化门编码风格 - 高层次设计考虑1. 在不是不得以的情况的话,不是用异步设计。而应该使用同步设计。2. 分割模块把一个设计分割为几个易于管理的块,有利于团队工作。如果只有一个主要功能模块则分为几个子模块。遵循SPEC 分割。3. 复位要对DFF 和LA TCH 进行复位。设计时采用异步复位。复位信号要直接连入FF 。4. 对于FF 的输出要用非阻塞语句。每个FF 只能在一个always 块中赋值。FF 最好规定单沿触发。5. 有些地方也不一定要用非阻塞语句。比如要从

6、一个时钟产生另一个时钟时:alw ays (posedge clkaclkb = clka;6. 有些时候也不是必须要统一一个沿触发,如DDR 。7. 组合逻辑简单的组合逻辑用连续赋值实现。复杂的用alw ays 。描述组合逻辑时,一个需要注意的是latch 的引入,要把if 和case 的条件写全。8. 组合的case在case 前赋值,来使case 条件完备,不会出现额外的latch模板:/$Log$/*/ /function:/*/ /include filesinclude "."/definitionsdefine HAHA VALUEmodule (/input

7、ssignals ,/注意此处,标号对齐,signals ,/方便module 实例化/outputssignals ,signals ,signals;/*/ /* inputs and outputs */ /*/input signals;output signals;/*/ /* wire declaration */ /*/ wire signals;wire signals;/*/ /* registers declaration */ /*/ reg registers;reg registers;/*/ /* function block 1 */ / function description / / /

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论