版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验四32 位先行进位加法器一、功能概述串行进位加法器延时很大,每级的输出结果都要等上一级 的进位到来才可以求和算出结果,这次实验对普通全加器进行 改良,改良为先行进位加法器。先行进位加法器,各级的进位彼此是独立产生,只与输入数 据 A, B 和 C_in 有关,将各级间的进位级联传播给去掉了,这 样就可以减小进位产生的延时。每个等式与只有三级延迟的电 路对应,第一级延迟对应进位产生信号和进位传递信号,后两 级延迟对应上面的积之和。通过这种进位方式实现的加法器称 为超前进位加法器。因为各个进位是并行产生的,所以是一种 并行进位加法器。二、实验原理1、设二进制加法器第 i 位为 Ai,Bi,输出
2、为 Si,进位输入为 Ci, 进位输出为 Ci+1 ,则有:Si=A i BiCi (1-1) Ci+1 =Ai * Bi+ Ai *Ci+ Bi*Ci =Ai * Bi+ ( Ai+B i) * Ci (1-2) 令 Gi = A i * Bi , Pi = A i+B i,则 Ci+1= Gi+ Pi *Ci 当Ai和Bi都为 1时,Gi = 1, 产生进位 Ci+1 = 1当 Ai和 Bi有一个为 1时,Pi = 1,传递进位 Ci+1= Ci因此 G i定义为进位产生信号, Pi 定义为进位传递信号。 Gi的优 先级比 Pi高,也就是说:当 Gi = 1 时(当然此时也有 Pi = 1
3、), 无条件产生进位,而不管 Ci是多少;当 Gi=0 而 Pi=1 时,进位 输出为 Ci,跟 Ci 之前的逻辑有关。下面推导 4 位超前进位加法器。设 4 位加数和被加数为 A 和 B ,进位输入为 Cin,进位输出为 Cout,对于第 i 位的进位产生 Gi = AiBi ,进位传递 Pi=A i+B i , i=0,1,2,3。于是这各级进位输出, 递归的展开 Ci,有:C0 = C inC1=G 0 + P0C0C2=G 1 + P1C1 = G 1 + P1G0 + P1P0 ?C0C3=G 2+P2C2 =G2+P2G1 +P2P1G0 +P2P1P0C0C4=G 3+P3C3
4、=G3+P3G2 +P3P2G1 +P3P2P1G0 + P3P2P1P0C0(1-3)Cout=C 4由此可以看出, 各级的进位彼此独立产生, 只与输入数据 Ai 、 Bi 和 Cin 有关。2、接口说明表 1: 32 位超前进位加法器接口信号说明表序号接口信号名称方向说明备注1A31:0I输入数据2B31:0I输入数据3S31:0O加法结果4countO最高位进位3、结构框图A 1512 B1512 A118 B118 A 74 B74 A30 B30CLACLACLA916gm4 pm4gm7 pm7pm6gm5 pm54位BCLAA 3128 B3128 A 2724 B 2724 A
5、 2320 B 2320 A 1916 B19164位C28 4 位 C24 4位C20 4位CLA4位CLAC124位 CLAC84位 CLAC44位 CLAC018gm0 pm016位CLAS74gm2pm24位BCLgAm1pm1S1512gm3 pm3SS30gx1 px1 C16gx1gx0 px0C324位 BCLA三、实验方案 方案一:分为两个模块: 1个4位add_4和1个add_32,其中 add_32 调用 4 个 add_4.首先设计 4 位超前进位加法器:框图如下:设计好四位的之后,开始调用四位的实现 32 位的pg方案二:分为五个模块: ( 1)计算传播值和产生值模块
6、:模块(2)超前进位模块: cla 模块(3)加法求和模块: sum 模块( 4)求和并按输出 a, b, c_in 分组: bit_slice 模块(5)32 位超前进位加法器总模块: cla_32 总框图:四、验证方案:对 32 位的两个输入赋值:当 a=32b1000_0001_0111_1011_1101_1001_1101_1000;b=32b0111_1000_0001_1000_1100_0111_0101_0001;c_in=1b0;结果: s=32b1111_1001_1001_0100_1010_0001_0010_1001;当 a=32b1000_0001_0111_10
7、11_1101_1001_1101_1000;b=32b0111_1000_0001_1000_1100_0111_0101_0001;c_in=1b1;结果: s=32b1111_1001_1001_0100_1010_0001_0010_1010;来对波形进行观察,看波形是否正确。五、实验代码:方案一:( 1) add_32 模块顶层模块:2)4位 add_4模块 方案二:(1)cla_32顶层模块: module cla_32(a,b,c_in,s,count ); input 31:0 a,b;input c_in;output 31:0 s;output count;wire 7:0
8、 gg,gp,gc;wire 3:0 ggg,ggp,ggc;wire gggg,gggp;bit_sliceb1(.a(a3:0),.b(b3:0),.c_in(gc0),.s(s3:0),.gp(gp0),.gg(gg0); bit_sliceb2(.a(a7:4),.b(b7:4),.c_in(gc1),.s(s7:4),.gp(gp1),.gg(gg1); bit_sliceb3(.a(a11:8),.b(b11:8),.c_in(gc2),.s(s11:8),.gp(gp2),.gg(gg2) );bit_sliceb4(.a(a15:12),.b(b15:12),.c_in(gc3
9、),.s(s15:12),.gp(gp3),.gg(g g3);bit_sliceb5(.a(a19:16),.b(b19:16),.c_in(gc4),.s(s19:16),.gp(gp4),.gg(g g4);bit_sliceb6(.a(a23:20),.b(b23:20),.c_in(gc5),.s(s23:20),.gp(gp5),.gg(gg5);bit_sliceb7(.a(a27:24),.b(b27:24),.c_in(gc6),.s(s27:24),.gp(gp6),.gg(g g6);bit_sliceb8(.a(a31:28),.b(b31:28),.c_in(gc7)
10、,.s(s31:28),.gp(gp7),.gg(g g7);clac0(.p(gp3:0),.g(gg3:0),.c_in(ggc0),.c(gc3:0),.gp(ggp0),.gg(ggg 0);clac1(.p(gp7:4),.g(gg7:4),.c_in(ggc1),.c(gc7:4),.gp(ggp1),.gg(ggg1);assign ggp3:2=2b11;assign ggg3:2=2b00;cla c2(.p(ggp),.g(ggg),.c_in(c_in),.c(ggc),.gp(gggp),.gg(gggg);assign count=gggg|(gggp&c_in);e
11、ndmodule2)pg 模块:module pg(a,b,p,g);input 3:0 a,b;output 3:0 p,g;assign p=ab;assign g=a&b;endmodule(3)cla 模块:module cla(p,g,c_in,c,gp,gg); input 3:0 p,g;input c_in;output 3:0 c;output gp,gg;function 99:0 do_cla;input 3:0 p,g;input c_in;begin:labelinteger i;reg gp,gg;reg 3:0 c;gp=p0;gg=g0;c0=c_in;for(
12、i=1;i4;i=i+1)begingp=gpπ gg=(gg&pi)|gi; ci=(ci-1&pi-1)|gi-1; enddo_cla=c,gp,gg;endendfunctionassign c,gp,gg=do_cla(p,g,c_in); endmodule( 4) sum 模块:module sum(a,b,c,s );input 3:0 a,b,c; output 3:0 s; wire 3:0 t=ab;assign s=tc;endmodule5)bit_slice 模块:module bit_slice(a,b,c_in,s,gp,gg );input 3:0 a,
13、b;input c_in;output 3:0 s;output gp,gg;wire 3:0p,g,c;pg i1(a,b,p,g);cla i2(p,g,c_in,c,gp,gg);sum i3(a,b,c,s);endmodule(6)激励代码:module cla32_tb;/ Inputsreg 31:0 a;reg 31:0 b;reg c_in;/ Outputswire 31:0 s;wire count;/ Instantiate the Unit Under Test (UUT) cla_32 uut (.a(a),.b(b),.c_in(c_in),.s(s),.coun
14、t(count);initial begin/ Initialize Inputsa = 0;b = 0;c_in = 0;/ Wait 100 ns for global reset to finish#10a=32b1000_000101111011_1101_10011101_1000;b=32b0111_100000011000_1100_01110101_0001;c_in=1b0;#10a=32b1000_000101111011_1101_10011101_1000;b=32b0111_100000011000_1100_01110101_0001;c_in=1b1;/ Add stimulus here end endmodule六、波形图说明 1、仿真波形2、结果说明对于三个输入:a=32b1000_0001_0111_1011_1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 网络安全防护策略-第29篇
- 中班美术教案跳舞的小人
- 2026江西赣州兴国县茶园中学春季公益性岗位教师招聘考试参考试题及答案解析
- 2026北京平谷区卫生健康系统招聘112人笔试模拟试题及答案解析
- 四川省创新驱动发展中心公开招聘编外人员(3人)考试参考题库及答案解析
- 2026长江存储春季校园招聘考试参考题库及答案解析
- 园林绿化项目材料选择与费用管控方案
- 路面调温与铺设施工技术方案
- 堤防排水管道设计方案
- 花坛与花池施工方案
- 外科学教学课件:小肠疾病1
- 光电探测与信号处理课件C0-绪论
- 钢化炉操作手册
- 《耳鼻咽喉头颈外科学》教学大纲(完整版)
- 如愿二声部合唱简谱文档
- GB/T 325.2-2010包装容器钢桶第2部分:最小总容量208L、210L和216.5L全开口钢桶
- GB/T 31089-2014煤矿回采率计算方法及要求
- GB/T 11409-2008橡胶防老剂、硫化促进剂试验方法
- 品类管理的定义与步骤
- 第一章-旅游目的地导论-《旅游目的地管理》课件
- 制造业的绿色设计与绿色制造课件
评论
0/150
提交评论