玉林师范学院本科生课程设计**。
10位超前进位加法器设计。
摘要。eda(electronic design automation)技术是指以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述的主要表达方式,以计算机、大规模可编程逻辑器件的开发软件及实验开发系统为设计工具;通过有关的开发软件,自动完成用软件方式设计的电子系统到硬件系统的逻辑编译、逻辑化简、逻辑分割、逻辑综合及优化、逻辑布局布线、逻辑**,直至对特定目标芯片的适配编译、逻辑映射、编译**等工具,最终形成电子系统或专用集成芯片的一门新技术,或称为ies/asic自动设计技术。
加法运算是最重要也是最基本的运算,所有的其他基本运算,如减、乘、除运算最终都能归结为加法运算。但因为加法运算存在进位问题,使得某一位计算结果的得出和所有低于他的位相关。因此为了减少进位传输所消耗的时间,提高计算速度,人们设计了多种类型的加法器,如跳跃进位加法器、进位选择加法器、超前进位加法器等。
本设计采用的是超前进位加法器。通过verilog 设计一个超前10位加法器。
关键词:eda 加法器 verilog
目录。第一章 eda简介 1
第二章设计内容与要求 2
第三章超前进位加法器设计原理 2
第四章详细设计流程 3
4.1.创建工程文件 3
4.2.程序的编译 4
4.3.波形的** 5
第五章设计结果分析 8
第六章源程序** 9
第七章心得体会 10
第八章参考文献 10
eda(electronic design automation)技术是指以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述的主要表达方式,以计算机、大规模可编程逻辑器件的开发软件及实验开发系统为设计工具;通过有关的开发软件,自动完成用软件方式设计的电子系统到硬件系统的逻辑编译、逻辑化简、逻辑分割、逻辑综合及优化、逻辑布局布线、逻辑**,直至对特定目标芯片的适配编译、逻辑映射、编译**等工具,最终形成电子系统或专用集成芯片的一门新技术,或称为ies/asic自动设计技术。
全球提供eda软件工具的厂商有近百家之多,大体分为两类:一类是专业软件公司开发的eda开发工具,独立于半导体器件厂商;另一类是半导体器件厂商为销售本公司可编程逻辑器件pld产品开发的eda软件工具,只能开发该公司的pld器件。本设计采用的quartus8.
0开发工具属于后者,是由altera公司开发的eda软件工具。eda开发流程如下图1.1所示[2]。
图1.1 eda开发流程。
figure1.1 eda development processes
加法运算是最重要也是最基本的运算,所有的其他基本运算,如减、乘、除运算最终都能归结为加法运算。但因为加法运算存在进位问题,使得某一位计算结果的得出和所有低于他的位相关。因此为了减少进位传输所消耗的时间,提高计算速度,人们设计了多种类型的加法器,如跳跃进位加法器、进位选择加法器、超前进位加法器等。
本设计采用的是超前进位加法器。通过verilog 设计一个超前10位加法器。
要求在quartus ii软件下,利用verilog编程完成层次式电路设计,电路中的元件可以用verilog设计也可以用库元件连线构成再封装。10位超前进位加法器,借助eda工具中的综合器,适配器,时序**器和编程器等工具进行相应处理。适配采用cyclone系列的ep1c6q240c8。
要求综合出rtl电路,并进行**输入波形设计并分析电路输出波形。
将n个全加器相连可得n位加法器,但是加法时间较长。解决的方法之一是采用“超前进位产生电路”来同时形成各位进位,从而实现快速加法。超前进位产生电路是根据各位进位的形成条件来实现的。
首先对于1位加法器基本位值和与进位输出为1;如果a,b有一个为1,则进位输出等于cin;
令g=ab,p=a+b,则有:
cout==ab+(a+b)cin=g+pcin
由此可以g和p来写出4位超前进位链如下:(设定四位被加数和加数为a和b,进位输入cin,进位输出为cout,进位产生gi=aibi,进位传输pi=ai+bi。);
c0=cin;
c1=g0+p0*c0=g0+p0*cin
c2=g1+p1*c1=g1+p1*(g0+p0*cin)=g1+p1*g0+p1*p0*cin
c3=g2+p2*c2=g2+p2*(g1+p1*c1)=g2+p2*g1+p2*p1*g0+p2*p1*p0*cin
c4=g3+p3*c3=g3+p3*(g2+p2*c2)=g3+p3*g2+p3*p2*g1+p3*p2*p1*g0+p3*p2*p1*p0*cin
cout=c4
由超前进位链,各个进位彼此独立产生,将进位级联传播给去掉了,因此,减小了进位产生的延迟时间。
同样可推导出下面的式子:
sum=a⊕b⊕cin=(a*b)⊕(a+b) ⊕cin=g⊕p⊕cin
本实验中采用10位超前进位加法器。
打开quartus ii 9.1创建一个工程文件adder_ahead
选择菜单file中new project wizard命令,在如下“工程设置”对话框中单击右侧“…”按钮,找到文件夹d:\atlera\quartus,选中已存盘的add_的文件。
单击next,将与工程有关的文件加入此工程。
1) 选择**器和综合器类型。都选默认的none。
2) 选择目标芯片。
3) 工具设置。这里默认使用quartusⅱ自含的所有设计工具。
4)结束设置。
1).选择菜单“processing”—“start compilation”命令,或者点击运行编译按钮,启动完全编译,这里的完全编译包括分析与综合、适配、装配文件、定时分析、网编文件提取过程。如果只要进行期中的某一项编译,可以选着“tools”--compiler tool”命令,或者点击按钮即可出现编译工具选择串口,共包括5个编译工具,分别为分析与综合器、适配器、装配器、定时分析器、网表文件提提取器,单机每个工具前面的小图标可单独启动每一个编译器。
2)编译完成后,会将有关的编译信息显示在窗口中,可查看其中的相关内容。还可以查看中和后的电路原理图,选择“tools”--netlist viewers”--rtl viewer”菜单命令,既可观察综合生成的rlt方式的电路原理图,在这里我们可以看到10位超期进位加法器生成的原理图如下:
10位超期进位加法器生成的原理图:
**时序,对项目进行**测试,也可以对项目中的某一个子模块进行**,其方法是选择菜单“assignment”--wizard”--simulator set wizard”命令,在设置过程中指定**对象,并指定对象的**类型、矢量激励源等。
1)打开波形编辑器。
选择菜单“file”--new”命令,在“new”对话框中选择“other file”页中的“vector w**e 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(无符号十进制)。这里选择的是unsigned decimal十进制,便于观察结果。
5)**参数的设置,选择菜单“assignments”—“setting”
命令,在弹出的对话框选择“simulator setting”项下的“mode”
以选择**模式,**模式有功能**模式和时序**模式,这里选择功能**。
6)观察**结果。
选择菜单“processing”--start simulation”命令,即启动**器工作。**完毕后,可以通过输出波形,检验所设计电路的功能是否正确。
10位超前进位的功能输出波形图:
10位超前进位的时序输出波形图:
结果中显示是正常的,10位超前进位加法器得到成功的实现。
module add_ahead(sum,cout,a,b,cin);
input[9:0] a,b; input cin;output[9:0] sum;
output cout;wire[9:0] g,p;wire[9:0] c,sum;
assign g[0]=a[0]&b[0产生第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产生第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 g[2]=a[2]&b[2产生第2位本位值和进位值。
assign p[2]=a[2]|b[2];
EDA课程设计
题目一 数字钟设计 学号1 15 一 实验目的。学习并掌握数字钟的原理 设计方法。二 实验内容。计数始终由模60秒计数器 模60分计数器 模24小时计数器 报时模块 分 时设定模块及输出显示模块构成。可以采用同步计数器或异步计数器设计方法。三 实验要求。计时范围为0小时0分0秒至23小时59分59秒...
eda课程设计
哈尔滨工业大学 威海 信电学院电子信息工程。一 软硬件介绍。1软件部分介绍。1.1 quartus ii 是altera公司的综合性pld fpga开发软件,支持原理图 vhdl veriloghdl以及ahdl altera hardware description language 等多种设计输...
eda课程设计
目录。1 引言 2 1.1 课程设计的目的与任务 2 1.2 课程设计的内容 2 1.3课程设计仪器设备 2 1.4 课程设计的题目 2 1.5 方案的选择 2 2设计方案 3 2.1 设计原理 3 2.2各功能模块的原理及其源程序 3 2.2.1控制模块 3 2.2.2分频模块 4 2.2.3计时...