verilog中的超前进位加法器如何理解

众所周知1+1=2,对于较小位数的加法大家都可以在瞬间报出结果,但是如果比较大呢

23421=?我们就需要一些运算时间来计算出结果。当然如果您是最强大脑选手可能也能立刻报出答案。对于这种“最强大脑”选手我们在FPGA中对应的就是性能,我们选择成本更高的fpga比如您一开始使用的是cyclone I现在换成了cyclone V系列产品,那么运算速度就自然会提高

我们现在的想法就是想在同一个芯片上,减小运算的延时从而提高系统的工作频率,而不是通过改变器件

回想一下我们小学课上学的竖式加法运算

我们想得到第k位的最终结果,就需要知道第k位的加数被加数,以及是否进位那么进位又需要上一位的加数,被加数进位数..以此类推直到第一位。这就是所谓的行波加法器了

这是我从网上找到的一张图片,大概就是四个全加器级联怎么个级联方法呢,就是把他们的低位进位输出连接到高位进位输入关于全加器,如果大家不会的话还是先翻翻verilog书吧,建議还是先把基础打好因为这可以说是十分基本的内容了,任何一本verilog的书上肯定都会有的我在这里主要介绍的是他的加强版超前进位加法器。

事实上这个加法器需要9个门的传输延时,(第一个加法器需要三个其他都是两个),于是我们想有没有一种方法可以快一点让这個传输门的个数少一些呢,当然是可以的这就是我要介绍的超前进位加法器了。

大家可以先自己想想对于一个四位加法器来说,我们洳何可以立刻知道第k位的进位值呢因为如果我们知道了该位的进位值,就仅需要一个全加器也就是3个门延时就能得到了结果了这无疑昰令人兴奋的。

对于一个全加器我们知道

现在我们只需要三个门就可以实现四位加法运算了!

那么问题来了如何实现16位超前进位加法器呢!?

有一种办法是将4个4位超前进位加法器级联但实际上这是一种超前+行波的方式,并不是最快的组合!

事实上我们可以根据16位加数和被加数直接写出这四个超前进位加法器的进位值这样即实现了超前进位的超前进位加法器!


}

我要回帖

更多关于 超前进位加法器 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信