随着功能复杂度的快速提升,对芯片的要求也是随着提高,所以现在一款芯片的开发,往往需要数十人,长达几个月的共同开发才能完成。因为Verilog HDL的语法相对开放,每个人开发的Verilog HDL之间的差异非常大。 但是一个设计团队之间,进行RTL模块的交叉review、相互调用是非常频繁的事情,所以为了增强RTL代码的可移植性,以及review的效率,我们有必要在项目刚开始的时候,统一整理一个RTL编码规则,里面的内容包括,命名的规则、单词的缩略原则,一些标准电路的常用写法等等。往往这个编码规则会写的很具体,在之前我已经写了一系列文章来详细探讨了编码规范,但是还是有朋友问我各种各样的问题,今天我继续来回答一些比较常见的问题。行内与行间限制 对编辑器来讲,一行可以显示的字符数是固定的。我们常常可以看到很多代码因为没有及时的换行,出现一行不能完全显示,出现在下一行的情况,如果我们要浏览这种代码,必须要横向或者纵向滑动鼠标,才可以看到完整的代码,当代码量比较大时,这种滑动鼠标的操作,不仅仅降低了浏览者的浏览效率,时间长了之后,相信会让浏览者心烦意乱。 我们一般建议一行的字符数不要超过80个字符,如果大于80个字符,除了上面提到的鼠标需要滑动之外,还可能使得因为编辑器自动换行而使得结构凌乱,进而导致代码不易阅读。 需要注意的是,在手动换行之后,我们需要按照下面的准则进行处理:手动向后缩进4行,表明和前一行代码的隶属关系;根据代码语义,缩进适当的行数。 使用以上的方法处理之后,虽然我们进行了手动换行,但是在代码可读性上面并没有降低。 除此之外,我们在一行代码的结尾处,不建议加上空格,主要也有两方面的考虑:结尾加空格,毫无意义;在后期如果需要进行编辑的过程中,空格会影响一些语法的正常使用,比如说使用脚本语言进行搜索、替换等操作。 除了行内的这些限制之外,在行间也要注意,相邻语句的行间,空行不要多于两行,否则,除了让文件长度加长之外,毫无意义。 代码注释 代码注释对代码的重要性,不言而喻。好的代码不仅仅是代码写的好,注释写的好也是重中之重。但是我们在工作中,经常可以看到很多注释,是为了注释而注释,因为很多项目组,对代码的注释量有要求,导致很多注释完全是为了满足项目组的要求,完全起不到注释的作用。 在添加注释的过程中,我们要注意下面几条:不得直接翻译语法。举例来讲,定义一个计数器count,如果仅仅是在注释上面写这是一个计数器,则这段注释毫无意义,可以直接删去。正确的注释应该是写清楚,计数器进行计数的条件、目的,让浏览者可以清楚这个计数器的意义所在。注释一定要及时更新,和当前代码完全的匹配。在一个项目中,一个模块可能来自另外的同时,或者继承之前的代码,如果错误的代码注释,会对当前的代码维护人造成很大的困惑。正确的做法是,修改代码之前,首先更新注释,必须保证代码和注释一致。 小结 想要写出好的代码,细节非常重要,今天提到的这两个小点,如果可以坚持下去,相信不仅仅是自己,你的同事也是非常乐于和你合作的了。