统一这些RTL编码规则,让项目管理更轻松

随着功能复杂度的快速提升,对芯片的要求也是随着提高,所以现在一款芯片的开发,往往需要数十人,长达几个月的共同开发才能完成。

因为Verilog HDL的语法相对开放,所以每个人开发的Verilog HDL之间的差异也是非常的大。但是一个设计团队之间,进行RTL模块的交叉review、相互调用是非常频繁的事情,所以为了增强RTL代码的可移植性,以及review的效率,我们通常在一个项目开始的时候,会统一整理一个RTL编码规则,里面的内容包括,命名的规则、单词的缩略原则,一些标准电路的常用写法等等。往往这个编码规则会写的很具体,但是个人认为,这是非常有必要的。在前面的两篇文章中,我们已经聊了一些,今天的文章,我就继续来聊一聊一般常见的规则。

统一这些RTL编码规则,让项目管理更轻松

RTL推荐编码规则

  • 在一个自然行中,只写一条语句。因为Verilog语法灵活,所以在一行中写多条语句时没有问题,但是我还是建议只写一条,原因是增强了可读性,进而使得维护更加容易。当每行只有一条语句时,我们可以清楚的看清楚RTL块的起止,方便阅读,相反,如果有多条语句时,我们比较难去区别不同begin-end的语句块。
  • begin-end区分的RTL块,需要使用缩进来进行区分,同一级的begin-end缩进相同。缩进与缩进之间,相差四个空格,依次递增。不要使用TAB键,因为对于不同机器,编辑器,TAB对应的缩进值是不同的,所以防止出现在进行RTL移植之后,出现乱码的情况,所以统一使用空格进行缩进。

统一这些RTL编码规则,让项目管理更轻松

  • 在取名字时,不能出现Verilog HDL或者VHDL的关键字。这条建议非常重要,在RTL中定义的输入端口、输出端口、变量、function、task、module等等,禁止使用关键字。
  • 在定义输入、输出端口以及信号时,每行只定义一个。这么做的目的,也是为了增强可读性,如果多个信号定义在一行,很容易出现遗漏,发现不了,一行只定义一个则可以很好地缓解这个问题。并且建议端口进行定义时,按照clock、reset、input、output的顺序进行。
  • 在进行实例化模块时候,应该使用显式的名字映射,而不是位置映射。因为当信号增多之后,通过位置映射,容易出现信号的丢失,或者连线的错误,而这种问题是很难去debug,并且可读性比较差。

统一这些RTL编码规则,让项目管理更轻松

小结

今天的文章,我们接着之前的文章,给出了一些编码的规范,看起来特别琐碎,但是却是非常重要。比如说,要使用几个空格进行缩进、每行写几条语句、每行定义几个信号等等。如果您对内容有什么建议或者疑问,欢迎和我进行讨论。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。