- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
VerilogHDL程序编写规范
Verilog HDL程序编写规范
版本号: 1.0
编写者: 刘兆庆
状态: 试用
发布日期: 2008年 月 日
摘要
本文定义了VerilogHDL RTL编码规则和指南,按照本文介绍的方法进行编码,有助于使VerilogHDL RTL代码具有良好的可读性、可修改性和可重用性,同样也有助于综合和仿真。
文档控制表
表1 文档控制表
文档 标题:
版本号:
发行号: VerilogHDL程序编写规范
V1.0
实行日期:
关键词 2008年6月1日
编辑工具 名称 Microsoft? Office Word 2003 模板: 作者情况 原作者: 刘兆庆 协作者: 罗杰俊 校对: 审核:
文档状态表
表2 文档状态表
标题 VerilogHDL程序编写规范 ID号 版本号 发行号 日期 更改原因 1.0 0 2008.03.20 试发布 1.0 1 2008.06.01 补充内容
目录
1 概述 1
1.1 目的 1
1.2 所面向的对象 1
1.3 文档的组织结构 2
2基本编码规范 2
2.1命名规范: 2
2.2源文件中信息头书写规范 4
2.3注释书写规范 5
2.4代码书写规范 5
2.5端口声明规范 6
2.6端口映射和常量映射 8
2.7立即数的使用 8
2.8编辑器 9
2.9语法规则 9
2.9.1模块 9
2.9.2变量 10
2.9.3参数 11
2.9.4 function和task 12
2.9.5其他规则 12
3时钟和复位信号设计规范 13
3.1避免使用混合时钟沿 13
3.2避免使用时钟缓冲器 14
3.3避免使用门控时钟 14
3.4避免在模块内部产生时钟 15
3.5门控时钟和低功耗设计 15
3.6避免在模块内部产生复位信号 16
3.7复位逻辑功能 17
3.8一位同步器 17
3.9多位同步器 17
4可综合性编码规范 18
4.1寄存器描述 18
4.2避免产生锁存器 18
4.3避免产生组合电路反馈。 19
4.4完整的敏感量列表 20
4.5阻塞和非阻塞赋值 21
4.6 case语句和if-else语句 23
4.7时序逻辑电路的描述 24
4.8对关键信号的描述 25
4.9避免使用延时语句 25
5可综合划分规范 25
5.1所有输出采用寄存器输出 25
5.2将相关的组合逻辑放在同一模块 26
5.3将具有不同设计目标的部分分配到不同模块中 27
5.4异步逻辑 27
5.5避免时序设计中的例外情况 27
5.6消除顶层模块中的胶连逻辑电路 28
1 概述
本文的编码指南基于几个基本原则。最基本的目标是,要求开发出来的RTL代码简单,而且规范。简单且规范的结构比复杂的结构更容易设计、编码、验证和综合。在满足功能和性能的前提下,这个可重用设计的目标是尽可能简单。编码指南详细描述了以下几个值得推荐的建议。
使用简单结构、基本类型和简单的时钟规划;
使用一致的编码方式,一致的命名习惯,一致的过程和状态机;
使用规则的划分方法,所有模块采用寄存器输出,模块大小尽量一致;
为了让RTL代码容易理解,编码中使用注释,使用有意义的命名方式,使用常用或参数代替立即数。
在这些原则指导下,开发者能够更容易编码,达到理想的性能、功能、时序、功耗和面积。
1.1 目的
本文档的目的是定义一个VerilogHDL编码标准,编写VerilogHDL代码时必须遵循该标准的规定。这一标准的提出,可以为VerilogHDL编程者提供以下便利:
避免犯低级错误
便于不同程序员的维护
便于程序的移植和复用
便于阅读和理解
具有一致的书写风格
另外请注意,本文档都不能替代VerilogHDL的编程书籍。
1.2 所面向的对象
本文档面向哈尔滨工业大学自动化测试与控制研究所所有从事VerilogHDL RTL程序编写的人员。
1.3 文档的组织结构
文档组织如下:
概述;
基本编码规范,同时给出解释和例子;
时钟和复位信号设计规范,同时给出解释和例子;
可综合性编码规范,同时给出解释和例子;
可综合划分规范,同时给出解释和例子;
2基本编码规范
2.1命名规范:
在整个设计中一直遵守命名习惯有助于提高代码的可读性,同样也有助于代码的调试、检查、维护和修改。具体规范如下:
规则——为设计开发命名习惯。以文档的形式规定下来,并在整个设计中一直遵守命名习惯。
指南——变量名、模块名、参数和端口名使用小写字母。
指南——常数(`define)使用大写字母。
指南——信号、端口、函数和参数命名时采用有意义的名称。例如,不要用ra命名RAM地址,而应该用r
文档评论(0)