story · 2020年09月30日

行波进位加/减法器的硬件开销和性能分析

加减法是一类非常基础的运算,本文分析最简单的行波进位加/减法器(Ripple CarryAdder/Subtractor)硬件开销性能问题

在文章的开始控制变量,仅使用工艺库中的基本逻辑门

AND-AND2X1

NOT-INVX1

OR-OR2X1

1bit半加器

1.jpg

上面分别是1bit半加器的真值表、逻辑关系式和原理图。然后编码Verilog HDL,综合设计,分析以及可视化关键路径。

module ha (Cout, Sum, A, B);
input A, B;
output Cout, Sum;wire Cbar,p;
AND2X1 a1 (.Y(Cout), .A(A), .B(B)) ;
INVX1 i1 (.Y(Cbar), .A(Cout) ) ;
OR2X1 o1 (.Y(p), .A(A), .B(B)) ;
AND2X1 a2 (.Y(Sum), .A(Cbar), .B(p));
endmodule // ha

2.png

1bit全加器

333.png

上面分别是1bit全加器的真值表、逻辑关系式和原理图。层次化的设计方法复用半加器逻辑,提高设计效率。然后编码Verilog HDL,综合设计,分析以及可视化关键路径。

module fa(Cout,Sum,A,B,Cin);
input A,B,Cin; 
output Cout,Sum; wire c1,s1;
haha1(.Cout(c1), .Sum(s1), .A(A), .B(B));
wire c2 ;
haha2(.Cout(c2), .Sum(Sum), .A(Cin), .B(s1));
OR2X1 o1(.Y(Cout),.A(c1),.B(c2)) ;
endmodule //fa

123.png

接下来进入本文的重点,行波进位加法器(Ripple Carry Adder,RCA)

这是最简单的多比特加法器。一个n比特的RCA需要n个全加器,第k-1个全加器的carry out,作为第k个全加器的carry in。虽然设计简单,但是由于这种进位传播方式,会造成随着加法器比特数增加,硬件开销和延时也会线性增加

14.png
1233.png



1\~5比特行波进位加法器硬件开销

222.png

1\~5比特行波进位加法器关键路径延时

233.png

在数字系统设计中加法器和加法器一样重要。根据A-B=A+(-B),对于n比特加法器只需要增加n个异或门即可完成n比特减法器

444.png

如果Sub=1,表示执行减法计算,反之执行加法计算。

本文转载自公众号:芯片数字实验室
原文链接:https://mp.weixin.qq.com/s/tPvMcbGyGIWG51YbscgNww
未经作者同意,请勿转载!

推荐阅读

想了解更多内容,欢迎关注芯片数字实验室专栏,由于工具,你可以专注在更重要的事情上。
推荐阅读
关注数
12273
内容数
198
前瞻性的眼光,和持之以恒的学习~
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息