vhdl通用十进制加法器Word下载.docx

上传人:b****5 文档编号:17209522 上传时间:2022-11-28 格式:DOCX 页数:13 大小:593.04KB
下载 相关 举报
vhdl通用十进制加法器Word下载.docx_第1页
第1页 / 共13页
vhdl通用十进制加法器Word下载.docx_第2页
第2页 / 共13页
vhdl通用十进制加法器Word下载.docx_第3页
第3页 / 共13页
vhdl通用十进制加法器Word下载.docx_第4页
第4页 / 共13页
vhdl通用十进制加法器Word下载.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

vhdl通用十进制加法器Word下载.docx

《vhdl通用十进制加法器Word下载.docx》由会员分享,可在线阅读,更多相关《vhdl通用十进制加法器Word下载.docx(13页珍藏版)》请在冰豆网上搜索。

vhdl通用十进制加法器Word下载.docx

年月日

摘要

随着科技的发展,通用十进制加法器的应用已广泛融入到现实生活中。

EDA技术的应用引起电子产品及系统开发的革命性变革。

本文采用EDA技术设计,并以VHDL语言为基础制作的通用十进制加法器。

该系统借助于强大的EDA工具和硬件描述语言可实现两个一位以上的十进制数的加法,在输入两个十进制数之后,给出两个数的相加结果。

本设计充分利用VHDL“自顶向下”的设计优点以及层次化的设计概念,提高了设计的效率。

设计主要步骤:

首先利用QUARTUS‖来编辑、编译、仿真各个模块;

然后以原理图为顶层文件建立工程,再进行引脚锁定、编译、下载,最后采用杭州康芯电子有限公司生产的GW48系列/SOPC/EDA实验开发系统,进行硬件测试。

关键词:

通用十进制加法器;

EDA技术;

VHDL语言;

QUARTUS‖

目录

设计要求1

1、方案论证与对比1

1.1方案一1

1.2方案二1

1.3方案的对比与选择2

2、设计原理2

3、通用十进制加法器的主要硬件模块3

3.14位BCD码全加器模块3

3.2八加法器的实现框图3

4、调试与操作4

4.1通用十进制加法器的功能仿真4

4.2模式选择与引脚锁定4

4.2.1模式选择4

4.2.2引脚锁定4

4.3设备与器件明细表5

4.4调试6

4.4.1软件调试6

4.4.2硬件调试6

5、总结与致谢7

5.1总结与思考7

5.2致谢7

附录8

附录一8

附录二10

参考文献12

通用十进制加法器

设计要求

1、用VHDL硬件描述语言设计4位的BCD码全加器;

2、以4位BCD码全加器为模块设计两位十进制数的加法。

1、方案论证与对比

1.1方案一

方案一,通过VHDL语言设计一个4位的BCD码全加器,以其作为底层文件,然后建立一个顶层文件,调用这个底层文件设计出双4位的BCD码全加器,最后结果通过译码电路译为7段显示输出。

方案一原理方框图如图1所示:

图1方案一结构方框图

1.2方案二

方案二,采用原理图输入,先定制LPM_ROM宏模块,然后再采用原理图输入的方法画出电路图。

方案二原理方框图如图2所示:

图2方案二结构方框图

1.3方案的对比与选择

方案一:

采用VHDL语言输入,它具有多层次的设计描述功能,层层细化,最后可直接生成电路描述,移植性很强。

而且采用VHDL语言输入设计不需要首先考虑选择完成设计的器件,就可以集中精力进行设计的优化。

当设计描述完成后,可以用多种不同的器件结构来实现其功能。

方案二:

采用原理图输入,原理图输入的设计方法不能实现真实意义上的自顶向下的设计,并无法建立行为模型。

而且不同的EDA软件中的图形处理工具对图形的设计规则、存档格式和图形编译方式都不同,因此兼容性差。

选择方案一的理由:

方案一比较方案二具有综合设计优点。

2、设计原理

用VHDL进行设计,首先应该了解,VHDL语言是一种全方位硬件描述语言,包括系统行为级,寄存器传输级和逻辑门级多个设计层次。

应充分利用VHDL“自顶向下”的设计优点以及层次化的设计概念,层次概念对于设计复杂的数字系统是非常有用的,它使得人们可以从简单的单元入手,逐渐构成庞大而复杂的系统。

通用十进制加法器的功能为:

输入两个十进制数,通过输入信号BTN相加得出十进制数结果,最后通过译码器来显示结果。

图3加法器原理图

3、通用十进制加法器的主要硬件模块

3.14位BCD码全加器模块

图34位的BCD码全加器

3.2八加法器的实现框图

图48位加法器原理

4、调试与操作

4.1通用十进制加法器的功能仿真

图5时序仿真1

图6时序仿真2

4.2模式选择与引脚锁定

4.2.1模式选择

根据程序,结合电路设计情况,最终选择了模式3,以CTRA,CTRA1,CTRB,CTRB1为输入信号,每按一下输入信号CTRA(CTRB),两位的十进制数的个位就加一,同理,按一下输入信号CTRA1(CTRB1),这个十进制数的十位加一;

并通过控制信号BTN来得出结果,最后译码显示出来。

4.2.2引脚锁定

表1引脚锁定表

信号名

类型(输入/输出)

引脚号

说明

BTN

IN

PIN_233

控制信号

CTRA

PIN_239

输入信号

CTRA1

PIN_240

CTRB

PIN_237

CTRB1

PIN_238

A4[0]

OUT

PIN_161

BUFFER

A4[1]

PIN_162

A4[2]

PIN_163

A4[3]

PIN_164

A14[0]

PIN_165

A14[1]

PIN_166

A14[2]

PIN_167

A14[3]

PIN_168

B4[0]

PIN_137

B4[1]

PIN_138

B4[2]

PIN_139

B4[3]

PIN_140

B14[0]

PIN_141

B14[1]

PIN_158

B14[2]

PIN_159

B14[3]

PIN_160

S[0]

PIN_13

输出信号

S[1]

PIN_14

S[2]

PIN_15

S[3]

PIN_16

S[4]

PIN_17

S[5]

PIN_18

S[6]

PIN_19

S[7]

PIN_20

S[8]

PIN_21

S[9]

PIN_41

S[10]

PIN_128

S[11]

PIN_132

4.3设备与器件明细表

表2设备与器件明细表

名称

型号/参数

数量

SOPC/EDA开发系统

GW48系列

1套

微型计算机

联想

1台

QuartusII开发软件

QuartusII

4.4调试

4.4.1软件调试

本系统的软件系统很长,首先按照QuartusII设计流程,完成各项步骤,编好VHDL程序。

然后运行,查看是否有语法错误,当确认程序没有语法错误的前提下,开始建立波形编辑器文件,开始时序仿真,查看结果是否符合题目要求,若符合,则进行下一步的硬件调试,否则,重新检查程序,以及仿真设置等等,直到符合要求。

软件调试采取的是自分断调试的方法,即单独调试好每一个模块,然后再连接成一个完整的系统,最后完成一个完整的系统调试。

4.4.2硬件调试

锁定引脚后,然后进行硬件调试,本课程设计采用的是Cycone系列的SOPC/EDA开发系统,根据电路设计情况,通过分析,最终选择了模式7,选择CLOCK0作为输入的时钟信号的端口,16位预置输入数通过4个4位的按键控制。

引脚锁定后,开始下载到Cycone系列的SOPC/EDA开发系统,通过按键输入不同的初始值,输入完毕后,通过按键2控制输出两输入数的和。

最后,通过嵌入式逻辑分析仪SignalTalII测试,然后通过设置以确定前后触发捕捉信号信息的比列。

5、总结与致谢

5.1总结与思考

本次EDA课程设计,是我们第一次深入接触电路设计和工程设计的内容。

作为一个学生,在过去的两年半中学习了专业的各方面知识,包括电路原理、模拟电路、数字电路等等,而这周的EDA课设,将我们学过的各方面电学知识和现代电路设计方法结合起来,应用计算机软件进行课题项目设计,不单夯实了我们的理论知识和对数字电路的理解,更极大的锻炼了我们实际动脑、动手能力。

我们的设计题目是通用十进制加法器,通过拨码开关输入两个十进制数,将输入的数通过数码管显示,相加后的结果也通过数码管显示出来。

这个设计题目是整体来看是比较简单的。

仔细分析这个题目,遇到的第一个问题是要对两个输入的数进行处理,当其大于9的时候要把它变成0后再输入加法器。

而后比较棘手的问题是怎样把输出的二进制结果转换成十进制数。

由此我们设计出一个查表方案。

至此,整个设计方案就比较完善了。

5.2致谢

通过两周课程设计,我们受益良多。

在老师的指导下,我们逐步完善了各个环节的构思与设计。

在这两周的时间里,这次课设让我在实际中真正地运用了在课本中学到的东西,既加深理论知识的理解,又锻炼了自己的动手能力。

在此,对老师们致以衷心的感谢和崇高的敬意!

最终,在老师及同学们的帮助与指导下顺利完成了本次的课程设计。

附录

附录一

底层源程序

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_ARITH.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYadd_fIS

PORT(C4:

INSTD_LOGIC;

--前一位的进位C

A4:

INSTD_LOGIC_VECTOR(3DOWNTO0);

--被加数A

B4:

--被加数B

S4:

OUTSTD_LOGIC_VECTOR(3DOWNTO0);

--相加的和S

BTN:

instd_logic;

CO4:

OUTSTD_LOGIC);

--相加产生的进位C

ENDENTITYadd_f;

ARCHITECTUREARTOFadd_fIS

SIGNALS5,S6:

STD_LOGIC_VECTOR(4DOWNTO0);

SIGNALA5,B5:

BEGIN

process(BTN)

begin

ifBTN'

EVENTANDBTN='

1'

then

A5<

='

0'

&

A4;

--扩展被加数A高位为0

B5<

B4;

--扩展被加数B高位为0

S5<

=A5+B5+C4;

--二数相加,并加上前一位的进位

ifS5>

"

01001"

THEN

S6<

=S5+"

00110"

;

ELSES6<

=S5;

ENDIF;

endif;

S4<

=S6(3DOWNTO0);

CO4<

=S6(4);

endprocess;

ENDARCHITECTUREART;

附录二

顶层源文件

useieee.std_logic_arith.all;

ENTITYaddIS

PORT(A4,A14:

BUFFERSTD_LOGIC_VECTOR(3DOWNTO0);

B4,B14:

BTN,CTRA,CTRA1,CTRB,CTRB1:

INstd_logic;

S:

OUTSTD_LOGIC_VECTOR(11DOWNTO0));

ENDENTITYadd;

ARCHITECTUREARTOFaddIS

componentadd_f

PORT(C4:

BTN:

INSTD_LOGIC;

endcomponent;

SIGNALCOUT,C1,C2:

STD_LOGIC;

PROCESS(CTRA,CTRA1,CTRB,CTRB1)

BEGIN

IFCTRA'

EVENTANDCTRA='

IFA4<

1001"

THENA4<

=A4+1;

ELSEA4<

="

0000"

ENDIF;

IFCTRA1'

EVENTANDCTRA1='

IFA14<

THENA14<

=A14+1;

ELSEA14<

IFCTRB'

EVENTANDCTRB='

IFB4<

THENB4<

=B4+1;

ELSEB4<

IFCTRB1'

EVENTANDCTRB1='

IFB14<

THENB14<

=B14+1;

ELSEB14<

ENDPROCESS;

C1<

u1:

add_fportmap(C4=>

C1,A4=>

A4,B4=>

B4,BTN=>

BTN,CO4=>

COUT,S4=>

S(3DOWNTO0));

u2:

COUT,A4=>

A14,B4=>

B14,BTN=>

C2,S4=>

S(7DOWNTO4));

s(8)<

=C2;

S(11DOWNTO9)<

000"

参考文献

[1]潘松,黄继业主编.EDA技术与VHDL[M].北京:

清华大学出版社.2006年9月

[2]潘松,王国栋编著.VHDL实用教程[M].成都:

电子科技大学出版社,2006

[3]江国强主编.EDA技术与应用[M].北京:

电子工业出版社.2007

[4]康华光主编.数字技术基础(第五版)[M].北京:

高等教育出版社.2000

[5]徐志军,徐光辉编著.CPLD/FPGA的开发与应用[M].北京:

电子工业出版社.2002

[6]李玉华.DEA技术与电子实验教学结合的探讨[J].长春师范学院报(自然科学版),2009,(06)

[7]庄海军,林咏海.基于FPGA的数控分频器的实现[J].电子与封装,2008,(11)

[8]周立功编著.EDA实验与实践[M].北京:

北京航空航天大学出版社.2007年3月

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 法学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1