设计一个-4-位超前进位加法器(数字逻辑课设)_第1页
设计一个-4-位超前进位加法器(数字逻辑课设)_第2页
设计一个-4-位超前进位加法器(数字逻辑课设)_第3页
设计一个-4-位超前进位加法器(数字逻辑课设)_第4页
设计一个-4-位超前进位加法器(数字逻辑课设)_第5页
已阅读5页,还剩3页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数字逻辑课程设计题目:设计一个4位超前进位加法器评语:学院计算机工程班级计算姓名学号成绩指导老师黄斌刘丽莉2016年7月12日《数字逻辑》实验报告题目:课程设计——4位超前进位加法器学号:成绩班级:计算1414班日期:2016-7-12姓名:指导老师:黄斌刘丽莉一、实验目的:1、使用Verilog语言设计常用的组合逻辑电路。2、学会应用数字系统设计方法进行电路设计。3、加强和培养学生对电子系统的设计能力,培养学生理论联系实际的设计思想,训练学生综合运用数字逻辑课程的理论知识的能力。二、实验使用环境:Vivado2015.2三、实验内容与完成情况:设计一个4位超前进位加法器 背景:串行进位加法器的运算速度比较缓慢,其原因在于必须依次等待每一个加法器完成进位。一种改进的设计叫做超前进位加法器。超前进位加法器的设计思路是:把加法器分解成若干块,同时额外增加电路,在每个块一得到输入进位时就快速算出此块的输出进位。因此,超前进位加法器不需要等待进位通过一块内所有加法器单元,而是直接先行通过每个单元。设计要求:在这个设计中,你需要使用Verilog代码设计一个4位的超前进位加法器。这个4位超前进位加法器可以完成对两个4位二进制数的相加。完成设计后,你还需要设计测试程序(testbench)来验证你的设计。你的测试程序需要考虑到所有可能的输入情况。设计思路:因为各进位的产生依赖于低位的进位,所以运算速度较慢。为了提高速度,必须设法使较低位的进位信号越过中间各级直接决定较高位的进位输出,设计Ai和Bi分别表示第i位的被加数和加数,Ci-1为来自第i-1位全加器的进位,令Pi=Ai^Bi,Gi=Ai&Bi函数表达式为:Co=PoCo+GoC1=P1Co+G1C2=p2C1+G2C3=p3c2+G3逻辑电路图如下:真值表如下:AiBiCi-1Si00000011010101101001101011001111其卡诺图如下:AB00011110C0010111010化简之后的表达式:S=Ai^Bi^Ci-1进位c的表达式:33231230123012332120120122101011000ggpgppgpppcppppcggpgppcpppcggpcppcgcpcinininin代码如下:add.v`timescale1ns/1psmoduleadd(input[3:0]a,input[3:0]b,inputci,output[3:0]s,outputco);//定义所需变量wire[3:0]p,g;//进位传递函数p,进位产生函数gwire[3:0]c;//进位函数assigng[0]=a[0]&b[0],g[1]=a[1]&b[1],g[2]=a[2]&b[2],g[3]=a[3]&b[3],p[0]=a[0]^b[0],p[1]=a[1]^b[1],p[2]=a[2]^b[2],p[3]=a[3]^b[3];assign c[0]=(p[0]&ci)|g[0],c[1]=(p[1]&p[0]&ci)|(p[1]&g[0])|g[1], c[2]=(p[2]&p[1]&p[0]&ci)|(p[2]&p[1]&g[0])|(p[2]&g[1])|g[2],c[3]=(p[3]&p[2]&p[1]&p[0]&ci)|(p[3]&p[2]&p[1]&g[0])|(p[3]&p[2]&g[1])|(p[3]&g[2])|g[3];assigns[3:0]=a[3:0]^b[3:0]^{c[2:0],ci},co=c[3];endmodule测试代码:add_tb`timescale1ns/1psmoduleadd_tb;reg[3:0]a;reg[3:0]b;regci;wire[3:0]s;wireco;addU0( //连接设计.a(a),.b(b),.ci(ci),.s(s),.co(co));initialbegina=0;b=0;ci=0; //设置默认值#512$finish; //运行512个时间单位后停止endalways //通过下列三条always语句取到所有的情况#32a=a+1; //每32个时间单位a+1always#2b=b+1; //每2个时间单位b+1always#1ci=!ci; //每1个时间单位ci取反endmodule仿真图截图及其解释:下图仿真波形图全图:下图为局部波形图:举例:A=0000,B=1011,c_in=0,c=1011,c_out=0四、实验小结。通过这次课程设计,我感觉我对Verilog语言还是不够熟悉,在写的过程中需要经常询问同学,或是通过网上查询来解决一些语法上的问题,对

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论