代码编写规范讲述.doc

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
代码书写规范 3.1 命名规范 3.1.1 HDL代码命名总则 具有意义的命名比注释要好得多。在写代码时,命名应给予充分的重视,任何命名都应遵循简洁、明了、准确的原则,切忌模棱两可。 3.1.1.1 文件名应由字母、数字及下划线组成 命名只能由26个英文字母(a-z,A-Z)、数字(0-9)或者下划线( _ )组成。不允许使用破折号和连续的下划线。 3.1.1.2 文件名的首字符必须是字母 第一个字符只能使用字母,不能使用下划线,避免与一些工具的冲突。 3.1.1.3 用下划线分开多个单词 由多个字组成的文件名,每个字要用下划线分开。在保证一致性的情况下,提高了在修改、验证和调试中的可读性。 举例:R_ram_addr。 3.1.1.4 IO信号与信号名的区分 为了增加可读性,便于阅读代码的人理解,输入输出口与内部的寄存器、变量名要区分开,采用加前缀的方法,且统一用大写字母。如: I_sigan1 , // 表示是输入信号 I_signal2, // 表示是输入信号 O_signal3, // 表示是输出信号 reg [31:0] R_signal4; // 表示是本模块内部寄存器信号 wire [7:0] W_signal5; // 表示是本模块内部连线信号 3.1.1.5 Verilog文件名与相应的文档名一致 说明文档中所参考的Verilog RTL的信号及模块名必须与FPGA设计说明中命名相一致,代码和模块名字的注释也要保持一致,易于文档和代码之间的交叉参考。 3.1.1.6 常量用大写字母表示 常量必须大写,包括参量名、文本宏名也要大写,以易于变量识别。 3.1.1.7 net、variable、construct及instance以小写命名(前缀大写) 与建模电路密切相关的硬件结构,在命名时所有字母必须小写,避免混淆及错误的发生。 .net .variable .construct:如 function、task、named block、module .instance: 如 gate、module 3.1.1.8 命名要唯一 construct、net、variable的命名要唯一,不能用大小写来区分命名,尽量用小写完整单词命名,禁用C语言编程中常用的大小写互用且缩写的单词命名方式。 原因:有些工具是不区分大小写的。 3.1.1.9 命名要望文生义 标识符的命名必须描述其目的、应当有意义,可以达到望文生义。 标识符的命名应该描述“对象做什么”而不是“过程怎么做”,要根据每个标识符做什么来命名,而不要以其如何实现来命名,这些标识符包括:net、variable、parameter、instance名、construct 名( 如 function、module、task)。标识符必须使用英文命名。 如果标识符需要多个意义独立的字符串命名,字符串之间要用下划线“_”隔开。 举例: W_set_priority 对net或variable W_SBUS_DATA_BITS 对parameter R_ram_addr_p3 任意的 pipeline stage 指示 3.1.1.10 低电平有效的信号的后缀为_n 当一个信号低电平有效时,它必须用后缀_n命名,_n的含义为negative;只是低电平有效的信号才能用_n结尾。 举例: I_reset_n 3.1.1.11 时钟信号名含_clk或_clock 时钟信号的命名必须含_clk或_clock,并要求在信号名中再加入该信号速度的指示,非时钟信号的命名不能含有clock或clk。 举例:I_system_clk_32M,I_ram_clk_8k或I_system_32M_clk, I_ram_8K_clk 3.1.1.12 测试信号的后缀为_test 举例:R_parallel_clk_test 3.1.1.13 寄存器按照功能进行命名,注释需写明寄存器地址 采用功能命名时需要进行寄存器说明,指出其寄存器地址。 例:R_protocol_reg; //register address is 0x51 3.2 注释 对HDL代码的功能进行注释是必要的,注释语句是对上下文信息的补充说明。 3.2.1 其它注释 为描述HDL代码及其功能,注释说明是必要的,这有助于其它设计者理解和维护程序代码。 3.2.2.1功能块注释 对代码的每个功能块必须加以注释说明,说明其目的及功能,便于代码理解。 3.2.2.2 对不常用或不易理解的关键代码行进行注释说明 对不常用或不容易理解的代码及其使用限制要进行注释,说明其功能、

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档