如果将全加器的RTL与超前进位加法器的RTL都进行综合,是否会如前文所说,超前进位加法器的面积大于全加器呢?实际上并没有,两者最终综合出来的电路是一模一样的。使用最简单的RTL表达方式,如下例所示(配套参考代码syn_adder.v),3种代码综合出的电路都是相同的,其最终的电路面积约为37门。
为什么不同的表达方式最终结果均相同呢?是因为综合工具不会生搬硬套RTL表达,而是会对RTL进行结构优化。而且,对于加法器这类常见运算,工具对它的优化已经非常成熟,因此无论RTL如何表达,最佳的效果都与直接写a+b相同。如果设计得不合理,使得工具无法识别加法逻辑,还会综合出面积更大的电路。因此在算法设计中,一般不会纠结全加器、超前进位加法器等概念,而是直接写加号表示进行加法运算,这样的电路实现将是最优的。在一个较复杂的算法电路中,往往会包含成千上万处加法,直接写加号也大大方便了工程师,使他们能够将设计精力集中于更为复杂的部分,不会纠结于这类小型运算单元的实现上。
注意 评估电路的面积往往使用平方微米和门数两种计量方法。平方微米是绝对面积计量,而门数是相对面积计量,它是将电路面积和最低驱动能力的与非门进行比较,计算出电路面积相当于多少个与非门的面积。门数计量法的优点是可以屏蔽工艺对电路面积评估的影响。先进工艺的门电路面积小,同样的电路用先进工艺的绝对面积小。而使用门数评估,由于与非门也用先进工艺,使得分子和分母都变小,其结果在新老工艺上变化不大。因此,用门数评估面积可以排除工艺的影响,直接比较相同功能的两种不同的实现方式其面积代价的不同,就可以挑选出面积最优的实现方式。上面强调最低驱动能力的与非门,是因为工艺提供的门电路往往有多种驱动能力可选,具有大驱动能力的门电路,其面积也较大,因此为了统一标准,都使用最低驱动能力的与非门进行门数评估。