在好例子网,分享、交流、成长!
您当前所在位置:首页Others 开发实例一般编程问题 → 华为 内部资料 verilog编码规范coding style

华为 内部资料 verilog编码规范coding style

一般编程问题

下载此实例
  • 开发语言:Others
  • 实例大小:0.16M
  • 下载次数:9
  • 浏览次数:426
  • 发布时间:2020-08-20
  • 实例类别:一般编程问题
  • 发 布 人:robot666
  • 文件格式:.pdf
  • 所需积分:2
 

实例介绍

【实例简介】
华为 内部资料 比较全面 基本覆盖了所有规则
密级:内部公开 DKBAXXXX-2001.XX 前言 按照顺序写出下列部分的内容(哪·条没有就不写) 说明与对应的国际标准或其他文件的一致性程度 —说明规范代替或作废的全部或部分其他文件 -说明与规范前版本相比的重大技术变化 说明与其他规范或文件的关系 本技术规范参考 Proverilig自带规则、 Verilog Coding s!yle培训教材,结合公司各部 门实际实践经验编制而成 本规范由光终硏究管理部逻辑研究部提出。 规范主要起草和解释部门:光网络研究管理部逻辑硏究部 本规范主要起草人:张振祥、曹安萍、周道习、徐春 本规范主要审核人: 本规范批准人 本规范规氾所替代的历次修订情况和修订人为: 2001-12-30.17:56:05 密级:内部公开 DKBAXXXX-2001.XX Proverilog编码规范(草案) 1范围 本规范规定了 rovering编码规范,即采用 verilog设计时的代码书写规范。 本规范适用于逻辑芯片开发中使用 verilog诘言作为RTL级设训言。 2规范性引用文件 下列文件中的条款通过本规范的引用而成为本规范的条款。凡是注日期的引用文件,其随后 所有的修改单(不包括勘误的内容)或修订版均不适用于本规范,然而,鼓励根据本规范达成协 议的各方研究是含可使用这些文件的最新版本。凡是不注日期的引用文件,其最新版本适用于本 规范 序号编号 名称 Proverilog自带规贝 Ⅴ ERILOG CODING STYLE培训教材 3术语和定义 对规范中涉及的术语和定义做解释) (从第四开始是规范的主要内容) 2001-12-30.17:56:05 密级:内部公开 DKBAXXXX-2001.XX 4规范内容 级别|评审/不评审 人类编号 规则要素内容 说明 规则建议是|否|免 1低电平有效的信号,信号名后缀“n 2模块名小写 3 module例化名用Uxxx标示(多次例化用次序号0、1、2.) 4使用降序排列定义向量勻效位顺序,最低位是0 5采用小写字母定义wire、reg和 input/inout/output 6采用大写字母定义参数,参数名小于20个字母 7时钟信号应前缀“ck”,复位信号应前级“rst 8三态输出的寄存器信号应后缀“z” 9代码中不能使用ⅤHDL保留字,更不能使用 verily保留字 0输出信号必须被寄存(只对顶层模块) I匚三态逻辑可以作顶层模坎他用,子坎中避兔使用三态 12没有未连接的端口 设13到其他模块的接口信号,按如下顺序定义端口信号:输入、(双 向)、输出 风14|建议使用 Jorgen生成的乘法电路 格 采用基于名字( name based)的调用而非基于序( order based)的 胃用 16不要书写空的模块,即一个模块至少要有一个输入和一个输出√ 17/时钟事件的表达式要用“ ncgcdgc <clk namo”或“ posed < clock name>”的形式 18 异步复位,高电平有效用 If(< asynch reset>==1bl)”,低电 平有效用“fi(< asynch reset=1b0)” 9 i句嵌套不能太多 20建议不使用 include句 21建议每个模块加 timescale 22代码中给出必要的注释 23每个文件有一个文件头 24每个文件只包含一个模块 25模块名和文件名保持敬 26 同步时序逻辑的 always block中有且只有一个时钟信号,并且在 同一个沿动作(如上升沿) 设计可靠性 27同步时序逻辑的 module中,在时钟信号的同一个沿动作 28采用同步设计,避免使用异步逻辑全局异步复位除外) 29一般不要将时钟信号作为数据信号输入 30不要在时钭路径上添加仨何 buffer 设 不要门控时钟 在顶层模块中,时钟信号必须可见 可|33不要采用向量的方式定义一组时钟信号 性|34不要在模块内部生成时钟信号,使用DLPL产生的时钟信号 35 建议使用单一的全局同步复位电路或者单一的全部异步复位电 路 36 不要在复位路径上添加仁何 buffer,也不要使用任何门控复位信 37不使用PL函数 38建议不使用任务 39不使用事件变量 2001-12-30.17:56:05 密级:内部公开 DKBAXXXX-2001.XX 大类编号 规则要素内容 级别评审/不评审说明 规则建议是否兔 40不使用系统函数 41不使用用户自定义单元UDP) 42不使用 disabler语句 43不使用=、=—等不可综合的运算符 44建议不使用 forever、 repeat、 while等循环语句 45避免产生Lach(除CPU接口) 组合逻辑语句块敏感表中的敏感变量必须和该块中使用的相 46致,不能多也不能少 47在一个away语句中有且只能有一个事件列表 48时Wy块的度感事件列表中必须都是沿能发事什,不允 49数据位宽要匹配 50不使用eal、tme、 realtime类型 51建议不使用 Integer类型 52移位变量必须是一个常数 53避免使用异步反馈环路 54时序逻辑语句块中统一便用非阻塞型赋值 55组合逻辑语句共中使用阻塞型赋值 56 非阻塞型赋值应不加单位延时,尤其是对于寄存器类型的变量 赋值时 57整型常量基数格式中不能有“?” 符串中不能含有控制字符(如(TR键等) 59禁止使用空的时序电路块及非法的 always:结构 60不要在连续赋值话句中引入驱动强度和延时 61|不要为nt、 n input、 n output、 enable gate型变量定义驱动强 度、电荷保持强度以及延时 62禁止使用tieg(具有电荷保持特性性连接)NET型定义 63禁止使用til、tio、 triand和tior型的连接net 不 常64 在RTL级代码中不能含有 initial结构,也不可以对任何信号进行 用 初始化赋值,而应采用复位的方式进行初始化 规|65不要在过程语句中使用 assign、 deassign、 force、 release等语 则「6不要使用wa句 67不要使用fork-join语句块 68|不要为驱动类型为m)90和py型的连线(ne值 69设计中不使用 macro module 不要在RTL代码中实例门级单元,尤其是下列单元: 70 CMOS开关、 RCMOS开关、NMOS开关、PMOS开关 RNMOS开关、 RPMOS开关、tans双向开关、 rtrans双向开关 transf0、 tranifl、 tranit0、 rtranifl、 pull gatc 71不要使用 specify模块 泣:1:结论为“否”需要注明理由。 注2:根据具休情况,分别在“是、否、免”三栏填写“1”,然后可以自动统计。 2001-12-30.17:56:05 密级:内部公开 DKBAXXXX-2001.XX 5附录 5.1附录A 附录内容(包括案例等) 5.2附录B 附求内容 2001-12-30.17:56:05 密级:内部公开 DKBAXXXX-2001.XX 6参考文献 制定本规范参考的一些文献,但没有直接引用甲面的条文 序号编号或出处名称 XXXX XX文档 XXXX XX文档 2001-12-30.17:56:05 【实例截图】
【核心代码】

标签:

实例下载地址

华为 内部资料 verilog编码规范coding style

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警