随着功能复杂度的快速提升,对芯片的要求也是随着提高,所以现在一款芯片的开发,往往需要数十人,长达几个月的共同开发才能完成。
因为Verilog HDL的语法相对开放,所以每个人开发的Verilog HDL之间的差异也是非常的大。但是一个设计团队之间,进行RTL模块的交叉review、相互调用是非常频繁的事情,所以为了增强RTL代码的可移植性,以及review的效率,我们通常在一个项目开始的时候,会统一整理一个RTL编码规则,里面的内容包括,命名的规则、单词的缩略原则,一些标准电路的常用写法等等。往往这个编码规则会写的很具体,但是个人认为,这是非常有必要的。在前面的五篇文章中,我们已经聊了一些,今天的文章,我就继续来聊一聊一般常见的规则。
RTL推荐编码规则
门级电路的使用,我们一定要特别注意。在RTL编码过程中,很多时候我们出于时序或者其他的需要,可能需要调用门级电路,那么门级电路是不是真的那么好用,可以随意调用?答案不是的。
门级电路的特点是可读性不强,难于阅读,从而导致后期维护、修改的困难很大,我们来看一个门级电路的例子。
and u_2x2and (out, input1, input2);
上面就是一个与门电路的实例化调用,我们再来解释一下这个调用方式以及门级电路的含义,首先是门级电路的类型,紧接着是实例化名,括号里面是端口名,包括input端口和output端口。具体到这个例子就是,调用一个2输入与门and,实例化名是u_2x2and,括号里面包括output端口out,以及两个输入端口input1和input2,写成RTL的形式就是out = input1 & input2,另外需要注意的是,端口中的input端口和output端口的顺序一定要和所调用门级电路中的顺序相对应。
从上面的例子可以看出,门级电路在使用的时候,因为并没有逻辑表达式,只是调用工艺库或者其他库里面的固有电路,所以如果大量调用这类门级电路进行电路描述,则一定要增加阅读以及维护的复杂度。并且因为很多门级电路是在某个工艺库下面特有的,所以如果调用这类门级电路,就只能在这种工艺下面使用,不能移植到别的工艺,这基本上是不能允许的。
所以如果我们一定要调用门级电路的话,就必须调用独立于具体工艺库的门电路,这样便于后面的电路移植。一般我们常见的独立于某种工艺的如Synopsys的GTECH库,里面包含了很多常用的门级电路,可以方便调用。
小结
门级电路可以作为RTL建模的一种补充方式可以调用,但是我们在编写RTL的时候,还是要尽可能避免,因为Verilog表达式确实更容易阅读和维护了。
-
Verilog
+关注
关注
28文章
1351浏览量
110075 -
RTL
+关注
关注
1文章
385浏览量
59761
发布评论请先 登录
相关推荐
评论