华东交通大学理工学院

课 程 设 计 报 告 书

所属课程名称 EDA 课程设计 题 目

分 院

专业班级

学 号

学生姓名

指导教师

2013 年 7月 2日

目录

第一章设计内容与要求 ......................................... 3

第二章 超前进位加法器设计原理 ................................ 3

第三章 详细设计流程 .......................................... 4

3.1. 创建工程文件 . ......................................... 4

3.2. 程序的编译 . ........................................... 5

3.3. 波形的仿真 . ........................................... 7

第四章 设计结果分析 ......................................... 11

第五章 源程序代码 ........................................... 12

第六章 心得体会 ............................................. 14

第七章 参考文献 ............................................. 15

第一章设计内容与要求

加法运算是最重要也是最基本的运算,所有的其他基本运算,如减、乘、除运算最终都能归结为加法运算。但因为加法运算存在进位问题,使得某一位计算结果的得出和所有低于他的位相关。因此为了减少进位传输所消耗的时间,提高计算速度,人们设计了多种类型的加法器,如跳跃进位加法器、进位选择加法器、超前进位加法器等。本设计采用的是超前进位加法器。通过Verilog 设计一个超前8位加法器。

要求在Quartus II软件下,利用Verilog 编程完成层次式电路设计,电路中的元件可以用Verilog 设计也可以用库元件连线构成再封装。8位超前进位加法器,借助EDA 工具中的综合器,适配器,时序仿真器和编程器等工具进行相应处理。适配采用Cyclone 系列的EP1C6Q240C8。

要求综合出RTL 电路,并进行仿真输入波形设计并分析电路输出波形. 试比较并阐述数据类型reg 型和wire 型的区别。

第二章 超前进位加法器设计原理

将n 个全加器相连可得n 位加法器,但是加法时间较长。解决的方法之一是采用“超前进位产生电路”来同时形成各位进位,从而实现快速加法。超前进位产生电路是根据各位进位的形成条件来实现的

首先对于1位加法器基本位值和与进位输出为1;如果a,b 有一个为1,则进位输出等于cin;

令G=ab,P=a+b,则有:

Cout==ab+(a+b)cin=G+P•cin

由此可以G 和P 来写出4位超前进位链如下(设定四位被加数和加数为A

和B ,进位输入Cin, 进位输出为cout, 进位产生Gi=AiBi,进位传输Pi=Ai+Bi);

C0=cin;

C1=G0+P0C0=G0+P0•cin

C2=G1+P1C1=G1+P1(G0+P0cin)=G1+P1G0+P1P0cin

C3=G2+P2C2=G2+P2(G1+P1cin)=G2+P2G1+P2P1G0+P2P1P0cin

C4=G3+P3C3=G3+P3(G2+P2C2)=G3+P3G2+P3P2G1+P3P2P1G0+P3P2P1P0cin Cout=c4

由超前进位链,各个进位彼此独立产生,将进位级联传播给去掉了,因此,减小了进位产生的延迟时间。

同样可推导出下面的式子:

SUM=A⊕B ⊕Cin=(AB )⊕(A+B) ⊕CinU=G⊕P ⊕Cin

本实验中采用8位超前进位加法器

第三章 详细设计流程

3.1. 创建工程文件

打开Quartus II 9.1创建一个工程文件adder_ahead

选择菜单File 中New Project Wizard 命令,在如下“工程设置”对话框中单击右侧“„”按钮,找到文件夹D:\atlera\quartus,选中已存盘的add_ahead.vhd的文件。

单击Next ,将与工程有关的文件加入此工程。

(1) 选择仿真器和综合器类型。都选默认的None 。

(2) 选择目标芯片。

(3) 工具设置。这里默认使用Quartus Ⅱ自含的所有设计工具。

(4)结束设置。

3.2. 程序的编译

(1). 选择菜单“Processing ”—“Start Compilation”命令,或者点击运行编译按钮,启动完全编译,这里的完全编译包括分析与综合、适配、装配文件、定时分析、网编文件提取过程。如果只要进行期中的某一项编译,可以选着“Tools ”---“Compiler Tool”命令,或者点击按钮即可出现编译工具选择串口,共包括5个编译工具,分别为分析与综合器、适配器、装配器、定时分析器、网表文件提提取器,单机每个工具前面的小图标可单独启动每一个编译器。

(2)编译完成后,会将有关的编译信息显示在窗口中,可查看其中的相关内容。还可以查看中和后的电路原理图,选择“Tools ”---“Netlist Viewers ”---“RTL Viewer ”菜单命令,既可观察综合生成的RLT 方式的电路原理图,在这里我们可以看到8位超期进位加法器生成的原理图如下:

8位超期进位加法器生成的原理图:

3.3. 波形的仿真

仿真时序,对项目进行仿真测试,也可以对项目中的某一个子模块进行仿真,其方法是选择菜单“Assignment ”---“Wizard ”----“Simulator Set Wizard ”命令,在设置过程中指定仿真对象,并指定对象的仿真类型、矢

量激励源等。

(1)打开波形编辑器

选择菜单“File ”---“New ”命令,在“New ”对话框中选择“Other File ”页中的“Vector Wave File ”选项,单击“ok ”按钮,即出现选择波形按钮;

(2)输入信号节点

选择菜单“View ”---“Utility Windows ”---“Node Finder ”命令,出现对话框,在“Filter ”下拉列表中选择“Pins :all ”选项,再次单击“List ”按钮,即在下面的“Nodes Found”框中出现本设计项目的所有端口引脚列表,从端口列表中选择所需要的,并逐个拖到波形编辑窗口中

(4)编辑输入信号波形

点击波形编辑窗口中的全屏显示,使用波形编辑窗口中的各种波形赋值,编辑各输入信号的激励波形。在仿真的时候需要设置一个合理的区域,选

择菜单“Edit ”---“End Time ”命令,在淡出的“Time ”窗口中输入

60us. 对数据的型号的格式可以选择:Binary(二进制) ,Hexadecimal(十六进制) 、Octal(八进制) 、Signed Decimal(有符号十进制) ,Unsgned Decimal(无符号十进制) 。这里选择的是Binary 二进制,便于观察结果。

(5)仿真参数的设置,选择菜单“Assignments ”—“Setting ” 命令,在弹出的对话框选择“Simulator Setting”项下的“Mode ”

, 以选择仿真模式,仿真模式有功能仿真模式和时序仿真模式,这里选择功能仿真。

(6)观察仿真结果

选择菜单“Processing ”---“Start Simulation”命令,即启动仿真器工作。仿真完毕后,可以通过输出波形,检验所设计电路的功能是否正确。8位超前进位的功能输出波形图:

第四章 设计结果分析

输入

a

输入

b

cin

sum 0 01101000 001010110 1 0 01010111 1 00100110 00100111 01101001 01101010 01101011

结果中显示是正常的,8位超前进位加法器得到成功的实现

8位超前进位器综合后的RTL 级原理图

第五章 源程序代码

8位超前进位加法器

module add_ahead(sum,cout,a,b,cin);

input[7:0] a,b;

input cin;

output[7:0] sum;

output cout;

wire[7:0] G,P;

wire[7:0 ] C,sum;

assign G[0]=a[0]&b[0];

assign P[0]=a[0]|b[0];

assign C[0]=cin;

assign sum[0]=G[0]^P[0]^C[0];

assign G[1]=a[1]&b[1];

assign P[1]=a[1]|b[1];

assign C[1]=G[0]|(P[0]&cin);

assign sum[1]= G[1]^P[1]^C[1];

assign P[2]=a[2]&b[2];

assign C[2]=G[1]|(P[1]&C[1]);

assign sum[2]=G[2]^P[2]^C[2];

assign G[3]=a[3]&b[3];

assign P[3]=a[3]|b[3];

assign C[3]=G[2]|(P[2]&C[2]);

assign sum[3]=G[3]^P[3]^C[3];

assign G[4]=a[4]&b[4];

assign P[4]=a[4]|b[4];

assign C[4]=G[3]|(P[3]&C[3]);

assign sum[4]=G[2]^P[2]^C[2];

assign G[5]=a[5]&b[5];

assign P[5]=a[5]|b[5];

assign C[5]=G[4]|(P[4]&C[4]);

assign sum[5]=G[5]^P[5]^C[5];

assign G[6]=a[6]&b[6];

assign P[6]=a[6]|b[6];

assign C[6]=G[5]|(P[5]&C[5]);

assign sum[6]=G[6]^P[6]^C[6];

assign G[7]=a[7]&b[7];

assign P[7]=a[7]|b[7];

assign C[7]=G[6]|(P[6]&C[6]);

assign sum[7]=G[7]^P[7]^C[7];

assign cout=G[7]|(P[7]&C[7]);

endmodule

第六章 心得体会

本学期学习了EDA 技术与Vertlog 技术,对EDA 技术应用有了一些了解,在如今生活在这个数字化和信息化时代,数字产品的广泛应用越来越多。EDA 技术的使用在我们生活中息息相关,发现了EDA 的强大功能。系统系设计,混合电路设计,综合仿真的设计,数字电路设计,版图设计,PCB 板设计,PLD 开发,高速电路设计,模拟电路设计等应用。这次课设中用到的Quartus Ⅱ软件,在安装过程中遇到不能仿真,后来下载了9.11版本得到解决。Quartus Ⅱ进行EDA 开发包括设计输入,编译,仿真,编程和验证,自己通过设计8位超前加法器对Quartus Ⅱ软件的应用也得到了一定的掌握。在编译的过程中遇到一些不能编译,通过网上找资料,和同学的讨论得到了一定的了解,通过软件的设置和通过编译错误的提示来更改错误,对设计的原理有了更深的理解。同时也发现遇到问题不要急着马上就向同学寻求帮助,我们自己可以认真地独立思考,想想问题哪里出错了,这样自己才会有不断地提高。认识涞源于实践实践是用于检验真理的唯一标准。这次使用超前进位这样就减少了延时,加快了运行速度。对于一切的设计我们都要多思考,使用最优的方法到我们实际生活当中去。这次课设设计,加强了我们自己动手,思考解决问题的能力。也让我们在学习的道路求知的一段探索道路,是对于我们生活一种充实。

第七章 参考文献

(1)《EDA 技术与Verilog 设计》 科学出版社 王金明

(2)《数字电子技术基础》,高等教育出版社 阎石

(3)《专用集成电路》,电子工业出版社

超前进位加法器实验报告_超前进位加法器设计报告相关推荐

  1. c语言航班管理系统报告,c航班管理系统课程设计报告.doc

    c航班管理系统课程设计报告 北华航天工业学院课程设计报告 PAGE 课程设计报告 报告(论文)题目: 1航班信息查询系统 2迷宫问题 作者所在系部: 计算机科学与工程系 作者所在专业: 计算机科学与技 ...

  2. 超前进位加法器实验报告_超前进位加法器

    首先画出2位全加器的真值表与卡诺图 根据真值表可知二进制加法与十进制加法一样,进位值是逢二进一.而和值则是上级进位值跟被加数跟加数总和模二的余数.根据卡诺图化简得到S与Ci+1的全加器电路为: 多位加 ...

  3. 太原理工大学linux与python编程r实验报告_太原理工大学算法设计与分析实验报告...

    <太原理工大学算法设计与分析实验报告>由会员分享,可在线阅读,更多相关<太原理工大学算法设计与分析实验报告(12页珍藏版)>请在人人文库网上搜索. 1.本科实验报告课程名称: ...

  4. 天津大学计算机课程设计挂,《天津大学_智能装置课程设计报告》.doc

    智能装置课程设计报告 一.设计题目 空调控制系统 二.设计目的 1. 深入了解PIC16F877单片机的工作原理,熟练掌握汇编语言程序设计方法,熟练使用MPLAB-ICD仿真器及MPLAB-IDE仿真 ...

  5. 电子英汉词典c语言程序设计报告,英汉电子词典设计报告_设计_C语言_C语言程序设计.doc...

    英汉电子词典设计报告_设计_C语言_C语言程序设计 课程设计 课程名称 :C语言程序课程设计 题目名称 :电子英汉词典 学生学院 :电气信息学院 专业班级 :自动化1101 学 号 :20110102 ...

  6. java课程设计连连看_连连看_java课程设计报告

    连连看_java课程设计报告 <连连看> 项目设计报告 专 业: 软件工程 班 级: 07级2班 姓 名: 二00九 年 七 月 二十一 日 目 录 1.项目设计目的.意义-------- ...

  7. java课程设计报告连连看_连连看_java课程设计报告.doc

    连连看_java课程设计报告 <连连看> 项目设计报告 专 业: 软件工程 班 级: 07级2班 姓 名: 二00九 年 七 月 二十一 日 目 录 1.项目设计目的.意义-------- ...

  8. java音乐播放器文库_微机原理课程设计报告——音乐播放器.doc

    微机原理课程设计报告--音乐播放器.doc 微机 应用系统 课程设计报告 题 目 电子音乐播放器 专业班级 电子信息科学与技术 1001 班 设计学生 完成时间 2012 年 6 月 27 日 湖南文 ...

  9. C语言数据结构迷宫实验报告,数据结构c语言课程设计报告之迷宫

    数据结构c语言课程设计报告之迷宫 C语言与数据结构课程设计报告学 号 ** 姓 名 ** 课程设计题目 迷 宫 求 解 2012 年 5 月目 录1 需求分析 1.1 功能与数据需求 1.1.1 题目 ...

最新文章

  1. 资料分享:送你一本《数据结构(C#语言版)》电子书!
  2. 第 14 章 Networking
  3. linux系统主机信任,Linux信任主机(SSH)
  4. Gitlab上传代码
  5. VC实现表单提交并设置获取COOKIE:
  6. Android 学习笔记 databinding简单使用:使用databinding在listview加入不同类型的view
  7. java 变量与常量_java的变量和常量
  8. CV还要更热闹!旷视刚宣布4.6亿美元融资,商汤:新一轮年内完成
  9. C#调用大漠插件,发送QQ和微信消息
  10. Android下USB的虚拟串口功能
  11. 数据结构与算法(C语言版)——陈越
  12. 权限持久化---映像劫持检测(Shift后门)
  13. win10一键激活,解除SymantecEndpointProtection的自动拦截
  14. MinGW在线安装包下载失败的解决办法
  15. 机器之心 Pro·AI 趋势先锋 Insight 榜单发布
  16. ITF条码的外边框如何设置
  17. 寻找生态位置,中小险企破局生态建设——保险生态建设
  18. 2018年航空概论期末考试
  19. 俞敏洪沉默,新东方落泪
  20. java 室内3d_室内地图制作-首款实时室内绘制室内地图-3D室内地图

热门文章

  1. 乱弹OpenGL中的矩阵变换
  2. 91SMTP协议和POP3协议
  3. apache beam入门之初次使用
  4. h5支付java_java实现支付宝h5手机支付
  5. mlf机器人无限制格斗_花椒直播MLF机器人无限制格斗赛 直击“电磁炮”四连胜成功夺冠...
  6. python简介小报_前端小报 - 201903月刊
  7. ROS环境下的串口通讯
  8. [Swift5] Swift 设置自定义预编译宏
  9. 长沙智能驾驶研究院 实现基于5G的人车路云协同V2X应用
  10. Matlab app designer界面(一)