Verilog编程规范 Verilog编程规范是一个重要的编程规范,旨在帮助开发者编写出规则、可读、可维护的代码。该规范分为七个部分,即命令规则、注释、模块、线网和寄存、表达式、条件语句和可综合性。 命令规则 * 每个文件只包含一个module,module名要小写,并且与文件名保持一致。 * 除parameter外,信号名全部小写,名字中的两个词之间用下划线连接。 * 由parameter定义的常量要求全部字母大写,自己定义的参数、类型用大写标识。 * 推荐用parameter来定义有实际意义的常数,包括单位延时、版本号、板类型、单板在位信息、LED亮灯状态、电源状态、电扇状态等。 * 信号名长度不超过20字符,避免使用Verilog和VHDL保留字。 * 命令建议给信号名添加有意义的前缀或后缀,命名符合常用命名规范。 注释 * 每个文件有一个文件头,文件头中注明文件名、功能描述、引用模块、设计者、设计时间、修改信息及版权信息等。 * 对信号、参量、引脚、模块、函数及进程等加以说明,便于阅读与维护,如信号的作用、频率、占空比、高低电平宽度等。 * 用“//”做小于1行的注释,用“/* */”做多于1行的注释。 * 更新的内容要做注释,记录修改原因,修改日期和修改人。 模块 * 模块例化名用u_xx_x标示。 * 建议每个模块加timescale。 * 不要书写空的模块,即一个模块至少要有一个输入和一个输出。 * 为了保持代码的清晰、美观和层次感,一条语句占用一行,每行限制在80个字符以内,如果较长(超出80个字符)则要换行。 * 采用基于名字(name based)的调用而非基于顺序的(order based)的调用。 * 模块的接口信号按输入、双向、输出顺序定义。 * 使用降序列定义向量有效位顺序,最低位是0。 线网和寄存 * 不允许锁存器和触发器在不同的always块中赋值,造成多重驱动。 * 出于功能仿真考虑,非阻塞赋值应该增加单位延时,尤其是对于寄存器类型的变量赋值时。 * 阻塞赋值不允许使用单位延时。 * always语句实现时序逻辑采用非阻塞赋值。 * always语句实现的组合逻辑和assign语句块中使用阻塞赋值。 * 同一信号赋值不能同时使用阻塞和非阻塞方式。 * 不允许出现定义的parameter/wire/reg没有使用。 * 建议不使用integer类型寄存器。 * 寄存器类型的信号要初始化。 * 除了移位寄存器外,每个always语句只对一个变量赋值,尽量避免在一个always语句器。 表达式 * 在表达式内使用括号表示运算的优先级。 * 除仿真外,不要使用语句tranif1/pull gate logic。 * 区分开一行中不能出现多个表达式。 * 不要给信号赋“x”态,以免x值传递。 * 设计中使用到的0,1,z等常数采用基数表示法书写(即表示为1'b0,1'b1,1'bz或十六进制)。 * 端口申明、比较、赋值等操作时,数据位宽要匹配。 条件语句 * if 都有else和它对应变量。 * 在if-else或case语句中所有变量在所有分支中都赋值。 * 如果用到case语句,写上default项。 * 禁止使用casexcase语句。 * item必须使用常数。 * 不允许使用常数作为if语句的条件表达式。 * 条件表达式必须是1bit value。 * 不推荐嵌套使用5级以上if…else if…结构。 可综合性 * 不要使用include语句。 * 不要使用disable、initial等综合工具不支持的电路,而应采用复位方式进行初时化。 * 但在testbench电路中可以使用。 * 不要使用specify模块。 * 不要使用===、!==等不可综合的操作符。 * 除仿真外,不要使用fork-join语句。 * 除仿真外,不要使用while语句。 * 除仿真外,不要使用repeat语句。












- 粉丝: 154
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 基因工程单元测试欢迎光临蚌埠一中.docx
- 品牌案例从1到100盛大网络成长秘诀(doc9).doc
- 芙蓉姐姐网络营销案例分析.ppt
- kmvvm-Kotlin资源
- 一种基于地理位置信息的无线传感器网络路由协议研究的开题报告.docx
- 计算机新技术新产品项目管理规定.pdf
- 通信基站建设方案.doc
- 国际工程大型投资项目管理模式探讨.doc
- 计算机病毒与防护.ppt
- 智能家居解决方案实例PPT课件.ppt
- 观《网络妈妈》有感1000字作文5篇.docx
- 机器人现场编程-川崎机器人的点动PPT课件.pptx
- 国家开放大学电大《消费者行为学》网络核心课形考网考作业及答案.docx
- 多通信接口的MBUS主站中继器的设计与实现论文.doc
- 几个比较实用的BIOS设置.pdf
- 基于CLSTM神经网络的公交到站时间预测.pptx


