12位流水线加法器的设计2016311030103吴昊1.实验目的用verilog实现12位流水线加法器2.实验原理12位加法器是将3个4位加法器串行连接而形成的。如果每个4位加法器都有100ns的吞吐延迟,那么该结构的最大延迟时间将是300ns。在同步电路中,这种结构是为了使所有的操作都在同一时钟周期内进行。本文采用另一种流水线结构可以通过把该处理过程分配到多个时钟周期上,以更高的吞吐速率进行操作。速度和物理资源的折中保证了这种方法是可行的。这种流水线结构包含一个数据输入寄存器IR,输出寄存器OR和之间的传播寄存器PR1和PR2.这种结构对数据进行序列化,因此在一个给定的时钟周期内,进位只能在1/3个数据路径中传播。输入数据通路接口以同步方式给运算单元提供完整的输入字,但是此时仅仅形成了低4位数据字节的和。然后将那个“和”与其左面的数据一起存入20位内部寄存器PR1中。在下一个时钟周期内,形成中4位数据字节的和,并且将其与低4位字节和,这一周期的进位一起存入PR2中。在第三个时钟周期内,形成高4位数据字节的和,并将低、中4位数据字节的和输出进位一并存入12位输出寄存器OR。利用这种内部寄存器,该流水线单元可以近似工作在原价发起频率的三倍平频率上。在最初的延迟周期后,每隔100ns就会在单元的输出端出现一个新的和。12位加法器流水线结构:3.Verilog代码源代码:moduleadd12(a,b,c_in,c_out,sum,clock);input[11:0]a,b;inputc_in,clock;output[11:0]sum;outputc_out;reg[24:0]IR;reg[20:0]PR1;reg[16:0]PR2;reg[12:0]OR;wire[3:0]A,C,E;wireB,D,F;assign{c_out,sum}=OR;add4wh1(A,B,IR[4:1],IR[8:5],IR[0]);add4wh2(C,D,PR1[8:5],PR1[12:9],PR1[4]);add4wh3(E,F,PR2[12:9],PR2[16:13],PR2[8]);always@(posedgeclock)beginIR[0]=c_in;IR[4:1]=a[3:0];IR[8:5]=b[3:0];IR[12:9]=a[7:4];IR[16:13]=b[7:4];IR[20:17]=a[11:8];IR[24:21]=b[11:8];PR1[3:0]=A;PR1[4]=B;PR1[8:5]=IR[12:9];PR1[12:9]=IR[16:13];PR1[16:13]=IR[20:17];PR1[20:17]=IR[24:21];PR2[7:4]=C;PR2[8]=D;PR2[3:0]=PR1[3:0];PR2[12:9]=PR1[16:13];PR2[16:13]=PR1[20:17];OR[11:8]=E;OR[12]=F;OR[7:0]=PR2[7:0];endEndmodule4位超前进位加法器模块:moduleadd4(sum,c_out,a,b,c_in);output[3:0]sum;outputc_out;input[3:0]a;input[3:0]b;inputc_in;wire[3:0]g=a&b;wire[3:0]p=a^b;wirec1,c2,c3,c4;assignc1=(p[0]&c_in)|g[0],c2=(p[1]&p[0]&c_in)|(p[1]&g[0])|g[1],c3=g[2]|(p[2]&g[1])|(p[2]&p[1]&g[0])|(p[3]&p[2]&p[1]&p[0]&c_in),c4=g[3]|(p[3]&g[2])|(p[3]&p[2]&g[1])|(p[3]&p[2]&p[1]&g[0])|(p[3]&p[2]&p[1]&p[0]&c_in);assignsum[0]=p[0]^c_in,sum[1]=p[1]^c1,sum[2]=p[2]^c2,sum[3]=p[3]^c3;assignc_out=c4;endmodule测试代码:moduleadd12_test;reg[11:0]a,b;regc_in,clock;wirec_out;wire[11:0]sum;add12k(a,b,c_in,c_out,sum,clock);initialbeginclock=0;a=12'h123;b=12'h321;c_in=0;#100a=12'h111;b=12'h222;#100a=12'h189;b=12'h739;#100a=12'h458;b=12'hc52;endalwaysbegin#50clock=~clock;endendmodule4.实验数据仿真图:由仿真图可知,加法器输出结果正确,并在三个时钟周期后,每一个时钟周期输出一个新的和,成功加快了三倍频率。模块图;5.实验小结通过本次实验,我理解了流水线结构的优点和用法,并且掌握了用流水线结构和超前进位加法器结合构造多位加法器的方法。