收藏 分销(赏)

设计一个-4-位超前进位加法器(数字逻辑课设).doc

上传人:精**** 文档编号:3109791 上传时间:2024-06-18 格式:DOC 页数:8 大小:845KB
下载 相关 举报
设计一个-4-位超前进位加法器(数字逻辑课设).doc_第1页
第1页 / 共8页
设计一个-4-位超前进位加法器(数字逻辑课设).doc_第2页
第2页 / 共8页
设计一个-4-位超前进位加法器(数字逻辑课设).doc_第3页
第3页 / 共8页
设计一个-4-位超前进位加法器(数字逻辑课设).doc_第4页
第4页 / 共8页
设计一个-4-位超前进位加法器(数字逻辑课设).doc_第5页
第5页 / 共8页
点击查看更多>>
资源描述

1、数字逻辑 课程设计 题目: 设计一个 4 位超前进位加法器 评语: 学 院 计算机工程 班 级 计算 姓 名 学 号 成 绩 指导老师 黄斌 刘丽莉 2016年 7 月 12日数字逻辑实验报告题目:课程设计4 位超前进位加法器学号:成绩班级:计算1414班日期:2016-7-12姓名:指导老师:黄斌 刘丽莉一、实验目的:1、使用Verilog语言设计常用的组合逻辑电路。2、学会应用数字系统设计方法进行电路设计。3、加强和培养学生对电子系统的设计能力,培养学生理论联系实际的设计思想,训练学生综合运用数字逻辑课程的理论知识的能力。二、实验使用环境: Vivado 2015.2三、实验内容与完成情况

2、: 设计一个 4 位超前进位加法器 背景:串行进位加法器的运算速度比较缓慢,其原因在于必须依次等待每一个加法器完成进位。一种改进的设计叫做超前进位加法器。超前进位加法器的设计思路是:把加法器分解成若干块,同时额外增加电路,在每个块一得到输入进位时就快速算出此块的输出进位。因此,超前进位加法器不需要等待进位通过 一块内所有加法器单元,而是直接先行通过每个单元。 设计要求:在这个设计中,你需要使用 Verilog 代码设计一个 4 位的超前进位加法器。这个 4 位超前进位加法器可以完成对两个 4 位二进制数的相加。完成设计后,你还需要设计测试程序(test bench)来验证你的设计。你的测试程序

3、需要考虑到所有可能的输入情况。 设计思路:因为各进位的产生依赖于低位的进位,所以运算速度较慢。为了提高速度,必须设法使较低位的进位信号越过中间各级直接决定较高位的进位输出,设计Ai和Bi分别表示第i位的被加数和加 数,Ci-1为来自第i-1位全加器的进位,令Pi=AiBi,Gi=Ai&Bi函数表达式为: Co=PoCo+Go C1=P1Co+G1 C2=p2C1+G2 C3=p3c2+G3 逻辑电路图如下:真值表如下:AiBiCi-1Si00000011010101101001101011001111其卡诺图如下:AB00011110C0010111010化简之后的表达式:S=AiBiCi-1

4、进位c的表达式: 3231230123012332120120122101011000ggpgppgpppcppppcggpgppcpppcggpcppcgcpcinininin+=+=+=+=代码如下: add.vtimescale 1ns/1psmodule add(input 3:0a,input 3:0b,input ci,output 3:0s,output co); /定义所需变量wire 3:0 p, g; /进位传递函数p,进位产生函数gwire 3:0 c; /进位函数assign g0=a0&b0,g1=a1&b1,g2=a2&b2,g3=a3&b3, p0=a0b0,p1

5、=a1b1,p2=a2b2,p3=a3b3;assign c0=(p0&ci)|g0, c1=(p1&p0&ci)|(p1&g0)|g1, c2=(p2&p1&p0&ci)|(p2&p1&g0)|(p2&g1)|g2, c3=(p3&p2&p1&p0&ci)|(p3&p2&p1&g0)|(p3&p2&g1)|(p3&g2)|g3;assign s3:0 = a3:0 b3:0 c2:0,ci, co=c3;endmodule测试代码:add_tbtimescale 1ns/1psmodule add_tb; reg 3:0a; reg 3:0b; reg ci; wire 3:0s; wire

6、 co; add U0(/连接设计 .a(a), .b(b), .ci(ci), .s(s), .co(co) ); initial begin a=0;b=0;ci=0;/设置默认值 #512 $finish;/运行512个时间单位后停止 end always/通过下列三条always语句取到所有的情况 #32 a=a+1;/每32个时间单位a+1 always #2 b=b+1;/每2个时间单位b+1 always #1 ci=!ci; /每1个时间单位ci取反endmodule仿真图截图及其解释:下图仿真波形图全图:下图为局部波形图: 举例:A=0000,B=1011,c_in=0,c=1011,c_out=0 四、实验小结。 通过这次课程设计,我感觉我对Verilog语言还是不够熟悉,在写的过程中需要经常询问同学,或是通过网上查询来解决一些语法上的问题,对于这个加法器,只会按照书本上的来写,不知道怎么修改,测试代码的循环用FOR循环写不出来,只好问同学用always循环。 (注:专业文档是经验性极强的领域,无法思考和涵盖全面,素材和资料部分来自网络,供参考。可复制、编制,期待你的好评与关注)

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服