赞
踩
传统加法器在多比特位宽的情况下,相加会有较多的门延迟,每高一位比特的相加都需要低一级相加并提供进位后,再进行本比特的加法运算,多位宽在高速情况下容易造成时序问题,无法在一个时钟内完成相应运算,故而考虑采用超前进位加法器,用更复杂的电路以缩短时间,即面积换时间。上述仅为废话,正文内容为下面链接转载内容,个人觉得该作者对于超前进位加法器说的极好,想详细学习请于原文学习,如有侵权,请及时联系本人。
另附可供参考的代码:
- module adder(a,b,cin,sum,cout);
- input wire [3:0]a,b;
- input wire cin;
- output wire [3:0]sum;
- output wire cout;
-
- wire [4:0]g,p,c;
-
- assign c[0] = cin;
- assign P = a | b;
- assign g = a & b;
- assign c[1] = g[0] | (p[0]&c[0]);
- assign c[2] = g[1] | ( p[1]&(g[0] | (p[0]&c[0]) );
- assign c[3] = g[2] | (p[2]&(g[1]|(p[1]&(g[0]|(p[0]&c[0])))));
- assign c[4] = g[3] | (p[3]&(g[2]|(p[2]&(g[1]|(p[1]&(g[0]|(p[0]&c[0])))))));
- assign sum = p ^ c[3:0];
- assign cout = c[4];
-
- endmodule

按超前进位逻辑,得到C[4] 进位需要的门延迟会远远小于传统全加器所带来的。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。