统一的RTL编码规则使得项目团队内部的沟通更加容易

< p >随着功能复杂性的快速增加,对芯片的要求也在增加。因此,现在芯片的开发通常需要几十个人,需要几个月的共同开发才能完成。

因为Verilog HDL的语法相对开放,所以每个人开发的Verilog HDL之间的差异也很大。然而,对于设计团队来说,在RTL模块中互相检查和调用是非常常见的。因此,为了提高RTL码的可移植性和复习效率,我们通常在项目开始时组织一个RTL编码规则,包括命名规则、单词缩写、一些标准电路的常用书写方法等。通常这种编码规则会非常具体,但就个人而言,这是非常必要的。在前面的三篇文章中,我们已经谈了一些,今天的文章,我将继续谈一些共同的规则

编码规则

RTL推荐的编码规则

使用更多功能,如功能/任务等。在编码过程中,我们通常在多个地方调用一个函数,所以我建议更频繁地使用函数和任务。此外,如果不同的设计者使用该功能,建议将其作为通用知识产权进行推广,从而最大限度地提高效率。但是,应该注意的是,因为可能有多个调用,所以应该在IP或函数/任务内部进行注释,以便于其他人调用和阅读。循环语句用法必须注意循环语句的使用。循环语句可以减少RTL的行数,使代码简洁,但是有几点需要注意。首先,周期的数量必须是固定的,否则综合工具不能很好地集成。第二,我们应该注意不要因为使用循环语句而使RTL难以阅读。

编码规则

注册银行的使用寄存器组也可以在一定程度上减少RTL行数,但需要注意的是,由于引入了多维数组,调试时需要一个高版本的波形显示工具,这样可以直接显示寄存器组,方便调试。在某些较低版本的工具中,无法显示寄存器组,这将阻止调试并影响调试的进度。给总块一个标签因为在一个设计中有很多总是块,为了方便调试,我们可以给一些关键的总是块加标签,这样方便得多。然而,应该注意的是,标签不能与先前定义的信号名和变量名相同。数据类型只是由IEEE定义的标准类型在RTL设计过程中,有时设计者会自行定义一个新的数据类型或子类型。应该强调的是,不推荐这种定制方法。如果有必要自己定义它,那么必须确保定制的数据类型或子类型基于IEEE标准。

编码规则

摘要

继上一篇文章之后,今天的文章给出了一些编码规范。这看起来很琐碎,但却很重要。个人是功能/任务、循环语句等如果你对内容有任何建议或问题,请和我讨论。

大家都在看

相关专题