Verilog代码书写规范.docVIP

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Verilog代码书写规范

Verilog代码书写规范 2.5.1?信号命名规则? 信号命名规则在团队开发中占据着重要地位,统一、有序的命名能大幅减少设计人员之间的冗余工作,还可便于团队成员代码的查错和验证。比较著名的信号命名规则当推Microsoft公司的“匈牙利”法,该命名规则的主要思想是“在变量和函数名中加入前缀以增进人们对程序的理解”。例如所有的字符变量均以ch为前缀,若是常数变量则追加前缀c。信号命名的整体要求为:命名字符具有一定的意义,直白易懂,且项目命名规则唯一。对于HDL设计,设计人员还需要注意以下命名规则。 1.系统级信号的命名 系统级信号指复位信号,置位信号,时钟信号等需要输送到各个模块的全局信号。系统信号以字符串sys或syn开头;时钟信号以clk开头,并在后面添加相应的频率值;复位信号一般以rst或reset开头;置位信号为st或set开头。典型的信号命名方式如下所示: wire?[7:0]?sys_dout,?sys_din; wire?clk_32p768MHz; wire?reset; wire?st_counter; 2.低电平有效的信号命名 低电平有效的信号后一律加下划线和字母n。如: wire?SysRst_n; wire?FifoFull_n; 3.过锁存器锁存后的信号? 经过锁存器锁存后的信号,后加下划线和字母r,与锁存前的信号区别。如: ????????信号CpuRamRd信号,经锁存后应命名为CpuRamRd_r。 ????????低电平有效的信号经过锁存器锁存后,其命名应在_n后加r。如: ????????CpuRamRd_n信号,经锁存后应命名为CpuRamRd_nr ????????多级锁存的信号,可多加r以标明。如: ????????CpuRamRd信号,经两级触发器锁存后,应命名为CpuRamRd_rr。? 2.5.2?模块命名规则? HDL语言的模块类似于C语言中的函数,可采用C语言函数的大多数规则。模块的命名应该尽量用英文表达出其完成的功能。遵循动宾结构的命名法则,函数名中动词在前,并在命名前加入函数的前缀,函数名的长度一般不少于2个字母。HDL模块的命名还需要考虑以下情况: 1.模块的命名规则 在系统设计阶段应该为每个模块进行命名。命名的方法是,将模块英文名称的各个单词首字母组合起来,形成3到5个字符的缩写。若模块的英文名只有一个单词,可取该单词的前3个字母。各模块的命名以3个字母为宜。例如: Arithmatic?Logical?Unit模块,命名为ALU。 Data?Memory?Interface模块,命名为DMI。 Decoder模块,命名为DEC。 2.模块之间接口信号的命名 所有变量命名分为两个部分,第一部分表明数据方向,其中数据发出方在前,数据接收方在后,第二部分为数据名称。两部分之间用下划线隔离开。第一部分全部大写,第二部分所有具有明确意义的英文名全部拼写或缩写的第一个字母大写,其余部分小写。举例: ????????wire?CPUMMU_WrReq; 下划线左边是第一部分,代表数据方向是从CPU模块发向存储器管理单元模块(MMU)。下划线右边Wr为Write的缩写,Req是Request的缩写。两个缩写的第一个字母都大写,便于理解。整个变量连起来的意思就是CPU发送给MMU的写请求信号。模块上下层次间信号的命名也遵循本规定。若某个信号从一个模块传递到多个模块,其命名应视信号的主要路径而定。 3.模块内部信号: 模块内部的信号由几个单词连接而成,缩写要求能基本表明本单词的含义;单词除常用的缩写方法外(如:Clock-Clk,?Write-Wr,?Read-Rd等),一律取该单词的前几个字母(?如:Frequency-Freq,?Variable-Var?等);每个缩写单词的第一个字母大写;若遇两个大写字母相邻,中间添加一个下划线(如DivN_Cntr);举例: ????????SdramWrEn_n; ????????FlashAddrLatchEn;? 2.5.3?代码格式规范 1.?分节书写格式 各节之间加1到多行空格。如每个always,initial语句都是一节。每节基本上完成一个特定的功能,即用于描述某几个信号的产生。在每节之前有几行注释对该节代码加以描述,至少列出本节中所描述信号的含义。 ??????? 行首不要使用空格来对齐,而是用Tab键,Tab键的宽度设为4个字符宽度。行尾不要有多余的空格。 2.?注释的规范 使用//进行的注释行以分号结束;使用/*?*/进行的注释,/*和*/各占用一行,并且顶头;例如: //?Edge?detector?used?to?synchronize?the?input?sign

文档评论(0)

li3543jian + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档