文章目录
-
- 一、问题描述
- 二、verilog源码
- 三、仿真结果
一、问题描述
前面介绍4位行波进位全加器(串行加法器)的原理及verilog实现,但是它是一种串行加法器,当位数多时,比如32位的二进制数相加,由于进位逐位从低位向高位传递,这会造成相当大的延迟。对于需要快速加法运算的信号处理电路来说,我们需要对其进行改进,一个常见的想法就是将进位提前计算出来,这样我们可以实现一种称为超前进位加法器的加法电路。
4位超前进位加法器的结构如下图所示:
其中
Pi=Ai or Bi 称为进位传递函数
Gi=Ai and Bi 称为进位产生函数
Si=Pi xor Ci
Ci=(Pi and Ci-1) or Gi
根据上述逻辑等式算出各进位的逻辑值:
C0 = cin
C1=G0 + P0·C0
C2=G1 + P1·C1 = G1 + P1·G0 + P1·P0 ▪C0
C3=G2 + P2·C2 = G2 + P2·G1 + P2·P1·G0 + P2·P1·P0·C0
C4=G3 + P3·C3 = G3 + P3·G2 + P3·P2·G1 + P3·P2·P1·G0 + P3·P2·P1·P0·C0
cout=C4
二、verilog源码
module cla_adder4b(
input[3:0] a,
input[3:0] b,
input cin,
output[3: