首页 > 编程知识 正文

超前进位加法器原理,使用超前进位加法器的目的

时间:2023-05-06 08:20:23 阅读:125025 作者:4986

华东交通大学理工学院

课程设计报告

所属课程名称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(ab ) cin=G P•cin

因此,可以从g和p中如下书写4位的进位前链接()

和b、进位输入Cin,进位输出为cout,进位发生Gi=AiBi,进位传输Pi=Ai Bi;

C0=cin;

C1=G0 P0C0=G0 P0•cin

C2=G1P1C1=G1P1(G0P0CIN )=G1 P1G0 P1P0cin

C3=G2P2C2=G2P2(G1P1CIN )=G2 P2G1 P2P1G0 P2P1P0cin

C4=G3P3C3=G3P3(G2P2C2)=g3p 3g2p3p 2g1p3p 1g0P2P1P0 cinco ut=C4

推进进位链,各个进位是相互独立发生的,去除了进位级联,缩短了进位延迟时间。

也可以导出以下公式:

sum=abCIN=(ab ) ) ab )cinu=gpCIN

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

第三章详细设计流程

3.1 .建立工程档案

打开Quartus II 9.1并创建项目文件adder_ahead

在菜单文件中选择New Project Wizard命令,然后在下面的“项目设置”对话框中单击右侧的按钮,查找并保存文件夹D:atleraquartus

单击Next将与项目相关的文件添加到项目中。

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

)2)选择目标芯片。

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

)4)结束安装。

3.2 .程序编译

(1) .菜单“Processin”

g ”—“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五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。