Verilog编码规范标准.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Verilog编码规范标准 Verilog编码规范标准 PAGE / NUMPAGES Verilog编码规范标准 ^` Verilog 编码规范 (仅供内部使用) 拟制 : xxx 日期: xxx 审查 : 审查者 日期: yyyy-mm-dd 同意 : 同意者 日期: yyyy-mm-dd 版权所有 侵权必究 ^` 订正记录 订正日期 订正版本 描绘 订正者 ^` 目录 1 命名规范 6 2 代码编写规范 8 2.1 版面 8 2.2 编写代码规范 8 3 电路设计规则 16 3.1 时钟 16 3.2 复位 17 3.3 防止 LATCH 18 3.4 防止组合反应 18 3.5 赋值语句 18 3.6 case语句和 if-then-else 语句 18 3.7 状态机 19 3.8 异步逻辑 20 4 模块区分 21 5 提升可移植性的编码风格 21 5.1 采纳参数化设计 21 5.2 采纳独立于工具平台和工艺库的设计 22 5.3 尽量使用已经获得考证的 IP 22 6 其余一些设计建议 22 7 附件 24 8 参照文档: 28 ^` ^` 基来源则:简单,一致,可重用。 简单指尽量使用简单的语句, 尽量使用简单的设计, 尽量使用简单的时钟, 尽量使用简单的复位。 一致指尽量保持代码风格一致,尽量保持命名一致。 可重用指有成熟的 IP 尽量使用 IP,设计的代码要尽量可重用。 ^` 命名规范 给信号命名就像给孩子取名字相同,有差异,有本源,有深度,还有一点,要简单,别冗长。 有差异指取名字不要相同,若是大家只有一个手机号码,那这个号码还可以有什么用 处? 有本源指取名字要能象姓氏相同,让人一看就直到是张家的后辈而不是李家的。 有深度就是取名字要有涵义,张一 ,张二 ,张三固然也是名字,可是请考虑一下被取名字人的感觉。 简单点,几十个字母长的名字,打字的和看字的都累。 大小写规则:只有 parameter , `define 和 module 名称才能享受大写。 Module 名应与文件名保持一致(文件名是小写) ,若是不想在设计后边碰到麻烦的话。 不要试试使用任何保存字,由于他们已经被保存了。 不要重复使用相同的名字去命名不一样的数据。 (建议)对 module 名加 ”LVx ”的后缀,加强 module 名称的构造层次含义 如:设计顶层为  TOP LEVEL  ,即  LEVEL1  ,命名为  QTRxxxx_LV1  ; 时钟模块,  IO_PAD  , CORE  ,为  LEVEL2  ,命名为  CLK_PROC_LV2  等等; CORE 内子模块为 LEVEL3 ,而后以此类推。 关于来自同一驱动源的所有时钟信号使用相同的名字。 关于低电平有效的信号,应当以 _n 结尾。 模块间相连端口名称要一致。 (建议)使用下表所列的命名缩写方式。 全称 名称 clock Clk reset rst clear clr address addr data_in din data_out dout interrupt request int read enable rden write enable wren count cnt ^` 全称 名称 request req control ctrl arbiter arb pointer ptr segment seg memory mem register reg (建议)使用以下后缀命名方式 全称 增添后缀 active low _n enable _en select _sel flag _flg delay _dly ? 信号命名的两个词之间用下划线间隔,如 ram_addr , cnt_ctrl 等等 ? 信号命名尽量不要使用孤立的、小写的英文字母 L ^` 代码编写规范 2.1 版面 语句独立成行,增添可读性和可保护性。 行的长度 保持每行小于或等于 72 个字符。由于有的终端或打印机每行不可以超出 80 个字 符。规定 72 个字符是为了留出边空,提升可读性。还有一个原由是为象 vi 这样的编写器留有显示行号的地方。 用回车来切割超出 72 个字符的行,并且在下一行用缩进来表示该行是前一行的持续。 缩进。 用缩进来提升续行和嵌套循环的可读性。 缩进采纳 4 个空格。 防止使用 TAB 键。不一样的编写器或用户环境使得 缩进的杂乱。有一些工具能够将 TAB 替代成空格。  TAB  的地点差异很大, 造成 (建议)使用说明 使用说明来解说端口、信号、信号组、 always 块、函数等。说明应当放在它所描绘的代码的邻近。说明应当简洁简要,并足够说明问题。防止说明凌乱。显

文档评论(0)

156****6877 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档