verilog-12位超前进位加法器.doc

verilog-12位超前进位加法器.doc

ID:55632368

大小:51.00 KB

页数:6页

时间:2020-05-21

verilog-12位超前进位加法器.doc_第1页
verilog-12位超前进位加法器.doc_第2页
verilog-12位超前进位加法器.doc_第3页
verilog-12位超前进位加法器.doc_第4页
verilog-12位超前进位加法器.doc_第5页
资源描述:

《verilog-12位超前进位加法器.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、12位流水线加法器的设计03吴昊1.实验目的用verilog实现12位流水线加法器2.实验原理12位加法器是将3个4位加法器串行连接而形成的。如果每个4位加法器都有100ns的吞吐延迟,那么该结构的最大延迟时间将是300ns。在同步电路中,这种结构是为了使所有的操作都在同一时钟周期内进行。本文采用另一种流水线结构可以通过把该处理过程分配到多个时钟周期上,以更高的吞吐速率进行操作。速度和物理资源的折中保证了这种方法是可行的。这种流水线结构包含一个数据输入寄存器IR,输出寄存器OR和之间的传播寄存器PR1和PR2.这种结构对数据进行序列化,因此在一个给定的时钟

2、周期内,进位只能在1/3个数据路径中传播。输入数据通路接口以同步方式给运算单元提供完整的输入字,但是此时仅仅形成了低4位数据字节的和。然后将那个“和”与其左面的数据一起存入20位内部寄存器PR1中。在下一个时钟周期内,形成中4位数据字节的和,并且将其与低4位字节和,这一周期的进位一起存入PR2中。在第三个时钟周期内,形成高4位数据字节的和,并将低、中4位数据字节的和输出进位一并存入12位输出寄存器OR。利用这种内部寄存器,该流水线单元可以近似工作在原价发起频率的三倍平频率上。在最初的延迟周期后,每隔100ns就会在单元的输出端出现一个新的和。12位加法器流

3、水线结构:1.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],PR

4、1[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:

5、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]

6、p=a^b;wirec1,c2,c3,c4;assignc1=(p[0]&c_in)

7、g[0],c2=(p[1]&p[0]&c_in)

8、(p[1]&g[0])

9、g[1],c3=g[2]

10、(p[2]&g[1])

11、(p[2]&p[1]&g[0])

12、(p[3]&p[2]&p[1]&p[0]&c_in),c4=g[3]

13、(p[3]&g[2])

14、(p[3]&p[2]&g[1])

15、(p[3]&p[2]&p[1]&g[0])

16、(p[3]&p[2]&p[1]&p[0]&c_in);assignsum[0]=p[0]^c_in,sum[1]=p[1]^c1,sum[2]=p

17、[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;endalwaysb

18、egin#50clock=~clock;endendmodule1

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。