38译码器设计.docx

上传人:b****4 文档编号:26907477 上传时间:2023-06-24 格式:DOCX 页数:15 大小:136.18KB
下载 相关 举报
38译码器设计.docx_第1页
第1页 / 共15页
38译码器设计.docx_第2页
第2页 / 共15页
38译码器设计.docx_第3页
第3页 / 共15页
38译码器设计.docx_第4页
第4页 / 共15页
38译码器设计.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

38译码器设计.docx

《38译码器设计.docx》由会员分享,可在线阅读,更多相关《38译码器设计.docx(15页珍藏版)》请在冰豆网上搜索。

38译码器设计.docx

38译码器设计

摘要

EDA技术是以微电子技术为物理层面,现代电子设计技术为灵魂,计算机软件技术为手段,最终形成集成电子系统或专用集成电路ASIC为目的的一门新兴技术。

而VHDL语言是硬件描述语言之一,其广泛应用性和结构的完整性使其成为硬件描述语言的代表。

随着社会经济和科技的发展,越来越多的电子产品涌如我们的日常生活当中,在日常生活中译码器起着不可忽视的作用。

本设计就是运用VHDL语言设计的3-8译码器。

3-8译码器电路的输入变量有三个即D0,D1,D2,输出变量有八个Y0-Y7,对输入变量D0,D1,D2译码,就能确定输出端Y0-Y7的输出端变为有效(低电平),从而达到译码目的。

关键词EDA输入,输出,译码器

Abstract

EDAtechnologyisforthephysicalplanemicroelectronicstechnology,modernelectronicdesigntechnologyforthesoul,andcomputersoftwaretechnologyasthemeans,andfinallyformintegratedelectronicsystemorapplication-specificintegratedcircuitASICforthepurposeofanewtechnology.AndVHDLlanguageisoneofthehardwaredescriptionlanguage,whicharewidelyappliedandtheintegrityofthestructuretomakeitahardwaredescriptionlanguagerepresentative.

Alongwiththesocialeconomyandthedevelopmentofscienceandtechnology,moreandmoreelectronicproductsurgedintoourdailylifeinthedailylifeofdecoderplaysanimportantrole.Thisdesignistheuseofthedesignof3-VHDLlanguage8decoder.3-8decodercircuit,inputvariableshavethreenamelyD0,D1,D2,outputvariablehaseightY0-Y7,D0toinputvariables,D1,D2decoding,candeterminetheoutput,theoutputterminaloftheY0-Y7intoeffective(lowlevel),soastoachievethepurposedecoding.

KeywordEDAinputoutputdecode

目 录

 

引言

EDA(ElectronicDesignAutomation)技术是现代电子工程领域的一门新技术。

基于可编程逻辑器件的数字系统EDA技术可以简单概括为以大规模可编程逻辑器件为设计载体,通过硬件描述语言输入给相应开发软件,经过编译和仿真,最终下载到设计载体中,从而实现系统电路的设计任务。

EDA技术伴随着计算机、集成电路、电子系统设计的发展,经历了计算机辅助设计、计算机辅助工程设计和电子设计自动化三个发展阶段,EDA技术也在不断的更新与成熟。

如今,可编程器件正向高密度大规模、系统内可重构、低电压低功耗与混合可编程技术的方向发展。

随着集成电路制造技术的发展,可编程ASIC器件的规模不断的扩大,从最初的几百门到现在的上万门,而且高密度的可编程的产品已经成为主流器件。

我们此次课设主要设计的就是用VHDL语言来设计38译码器电路,它是常用的二进制集成译码器。

在数字系统中,能将二进制代码翻译成所表示信息的电路称为译码器。

译码器是一个多输入、多输出的组合逻辑电路。

它的作用是把给定的代码进行“翻译”,变成相应的状态,使输出通道中相应的一路有信号输出。

译码是编码的反过程,他能把输入的一组二进制代码转换成具有特定含义的输出信号。

多用于计算机中的变量译码、地址译码及代码变换等。

本次课程设计的题目为3-8译码器。

要求用掌握3-8译码器的构成、原理与设计方法;熟悉MAXPLUSII软件的使用方法;能用VHDL语言设计3-8译码器电路;能进行3-8译码器硬件下载;硬件显示3-8译码器功能。

1设计任务描述

1.1设计题目:

3-8译码器

1.2设计要求

1.2.1设计目的

(1)掌握3-8译码器的构成、原理与设计方法;

(2)熟悉MAXPLUSII软件的使用方法

1.2.2基本要求

(1)能用VHDL语言设计3-8译码器电路;

(2)能进行3-8译码器硬件下载;

1.2.3发挥部分

硬件显示3-8译码器功能。

2MAX+plusII及VHDL简介

2.1MAX+plusII基本介绍

2.1.1MAX+plusII的概念

ALTERA公司的MAX+plusII是其中较常被使用的EDA开发环境,它操作方便、功能强大,提供了原理图输入和VHDL语言输入功能,在环境中可以完成编译、查错、设计驱动信号、逻辑功能模拟、时序功能模拟、对FPGA/CPLD芯片编程等功能。

MAX+plusII支持下列FPGA/CPLD器件的编程:

FPGA器件包括ACEX1K系列、FLEX系列;

CPLD器件MAX系列

2.1.2使用MAX+plusII设计的特点

采用可编程器件,通过设计芯片来实现系统功能。

采用硬件描述语言作为设计输入和库(LibraLy)的引入,由设计者定义器件的内部逻辑和管脚,将原来由电路板设计完成的大部分工作故在芯片的设计中进行。

由于管脚定义的灵活性,大大减轻了电路图设计和电路板设计的工作量和难度,有效增强了设计的灵活性,提高了工作效率。

并且可减少芯片的数量,缩小系统体积,降低能源消耗,提高了系统的性能和可靠性。

能全方位地利用计算机自动设计、仿真和调试。

2.2硬件描述语言——VHDL

2.2.1VHDL的简介

VHDL语言是一种用于电路设计的高级语言。

它在80年代的后期出现。

最初是由美国国防部开发出来供美军用来提高设计的可靠性和缩减开发周期的一种使用范围较小的设计语言。

但是,由于它在一定程度上满足了当时的设计需求,于是他在1987年成为AI/IEEE的标准(IEEESTD1076-1987)。

1993年更进一步修订,变得更加完备,成为AI/IEEE的AI/IEEESTD1076-1993标准。

目前,大多数的CAD厂商出品的EDA软件都兼容了这种标准。

VHDL的英文全写是:

VHSIC(VeryHigheedIntegratedCircuit)HardwareDescriptiongLanguage.翻译成中文就是超高速集成电路硬件描述语言。

因此它的应用主要是应用在数字电路的设计中。

2.2.2VHDL语言的特点

VHDL是一种用普通文本形式设计数字系统的硬件描述语言,主要用于描述数字系统的结构、行为、功能和接口,可以在任何文字处理软件环境中编辑。

除了含有许多具有硬件特征的语句外,其形式、描述风格及语法十分类似于计算机高级语言。

VHDL程序将一项工程设计项目(或称设计实体)分成描述外部端口信号的可视部分和描述端口信号之间逻辑关系的内部不可视部分,这种将设计项目分成内、外两个部分的概念是硬件描述语言(HDL)的基本特征。

VHDL的主要特点如下:

1.与其他的硬件描述语言先比,VHDL语言描述能力更强,从而决定了它成为系统设计领域最佳的硬件描述语言。

2.VHDL语言技术完备,具有丰富的仿真语句和库函数,而且还支持同步电路。

异步电路和其他电路的设计

3.VHDL语言方法灵活,对设计的秒东湖具有相对独立性

4.VHDL语言支持广泛。

2.2.3VHDL的设计流程

在MAX+plusII下进行电路设计时包括以下几个步骤:

1.文本编辑:

包括图形方式和文本方式两种,编辑完成后将其设置为当前工程,

2.工程编译源:

包括功能编译和实际编译两种。

3.功能仿真:

将功能编译后的结果进行仿真。

4.后仿真过程:

将实际编译及我国仿真。

5.引脚锁定:

将个信号按要求分配到相应引脚后再进行一次实际编译。

6.物理实现:

将结果下载到所悬着的器件中。

33-8译码器的介绍

3.13-8译码器

3线-8线译码器是能实现译码功能的电路,常用的二进制集成译码器,二进制译码器是将输入的二进制代码转换成相对应的输入信号,它也是全译码器。

3-8译码器属于通用译码器,多用于计算机中的变量译码、地址译码及代码变换等。

3.23-8译码器工作原理

对于3线-8线译码器来说,3位二进制共有8种状态,所以对应的输出有8种状态。

例如:

对于二进制代码111来说,输出为10000000。

由于3线-8线译码器只需要输入3根线即可输出8种不同的状态,对信息的译码有很大的好处,所以在硬件电路中占有较重要的地位,实验中也经常用到。

输入

输出

S1

+

A2

A1

A0

1

0

0

0

0

0

1

1

1

1

1

1

1

1

0

0

0

1

1

0

1

1

1

1

1

1

1

0

0

1

0

1

1

0

1

1

1

1

1

1

0

0

1

1

1

1

1

0

1

1

1

1

1

0

1

0

0

1

1

1

1

0

1

1

1

1

0

1

0

1

1

1

1

1

1

0

1

1

1

0

1

1

0

1

1

1

1

1

1

0

1

1

0

1

1

1

1

1

1

1

1

1

1

0

0

×

×

×

×

1

1

1

1

1

1

1

1

×

1

×

×

×

1

1

1

1

1

1

1

1

 

 

 

 

 

 

 

 

 

 

 

 

 

表3.2.13-8译码器功能表

图3.2.13-8译码器逻辑图

无论从逻辑图还是功能表我们都可以看到3-8译码器的八个输出管脚,任何时刻要么全为高电平1—芯片处于不工作状态,要么只有一个为低电平0,其余7个输出管脚全为高电平1。

如果出现两个输出管脚在同一个时间为0的情况,说明该芯片已经损坏。

3.33-8译码器作用

当附加控制门的输出为高电平(S=1)时,可由逻辑图写出

由上式可以看出,在同一个时间又是这三个变量的全部最小项的译码输出,所以也把这种译码器叫做最小项译码器。

3-8译码器有三个附加的控制端、和。

当、时,输出为高电平(S=1),译码器处于工作状态。

否则,译码器被禁止,所有的输出端被封锁在高电平,如表1所示。

这三个控制端也叫做“片选”输入端,利用片选的作用可以将多篇连接起来以扩展译码器的功能。

带控制输入端的译码器又是一个完整的数据分配器。

电路中如果把作为“数据”输入端(在同一个时间),而将作为“地址”输入端,那么从送来的数据只能通过所指定的一根输出线送出去。

这就不难理解为什么把叫做地址输入了。

例如当=101时,门的输入端除了接至输出端的一个以外全是高电平,因此的数据以反码的形式从输出,而不会被送到其他任何一个输出端上。

4设计思路

根据查找的关于3-8译码器的资料了解到3-8译码器的工作原理与真值表,来编写程序,3-8译码器有3个输入和8个输出,所以可以指定当输入为:

111时,译码后为指定的状态,即输出00000001,紧接着依次类推,当输入为:

110时,输出00000010,当输入为101时,输出00000100,当输入为100时,输出00001000,输入011时,输出为00010000,输入为010时,输出00100000,输入为001时,输出01000000,输入为000时,输出为10000000。

调用库函数,定义实体,定义端口,不难设计出程序:

WHEN"000"=>Y<="10000000";

WHEN"001"=>Y<="01000000";

WHEN"010"=>Y<="00100000";

WHEN"011"=>Y<="00010000";

WHEN"100"=>Y<="00001000";

WHEN"101"=>Y<="00000100";

WHEN"110"=>Y<="00000010";

WHEN"111"=>Y<="00000001";

WHENOTHERS=>Y<="00000000";     --CASE对应于真值表

在加入调入库程序及库德文说明:

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;      --库的说明

端口说明:

ENTITYyima38aIS

PORT(A:

INSTD_LOGIC_VECTOR(2DOWNTO0);

Y:

OUTSTD_LOGIC_VECTOR(7DOWNTO0));

--定义端口,3-8译码器有3个输入8个输出

END;

5程序设计与系统仿真

5.1程序设计

一段完整的VHDL代码包括程序包,程序实体和程序结构体,程序实体定义电路的输入输出引脚信号,在次实际中定义A0-A2为输入信号引脚,定义D0-D7为输出引脚信号,结构体具体描述电路的内部结构和逻辑功能。

3-8译码器源程序:

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;      --库的说明

ENTITYyima38aIS

PORT(A:

INSTD_LOGIC_VECTOR(2DOWNTO0);

Y:

OUTSTD_LOGIC_VECTOR(7DOWNTO0));

--定义端口,3-8译码器有3个输入8个输出

END;

ARCHITECTUREBEHAVIOROFyima38aIS

BEGIN

PROCESS(A)                --A为敏感信号

BEGIN

CASEAIS

WHEN"000"=>Y<="10000000";

WHEN"001"=>Y<="01000000";

WHEN"010"=>Y<="00100000";

WHEN"011"=>Y<="00010000";

WHEN"100"=>Y<="00001000";

WHEN"101"=>Y<="00000100";

WHEN"110"=>Y<="00000010";

WHEN"111"=>Y<="00000001";

WHENOTHERS=>Y<="00000000";     --CASE对应于真值表

ENDCASE;

ENDPROCESS;

ENDBEHAVIOR;

5.2编译及仿真

使用VHDL语言编写程序后,接下来要做的就是验证程序的正确性,利用

Max+plusII导入源程序后,对源程序进行编译,然后进行模拟仿真,可以得到一个波形文件,可以非常直观知道程序是否正确。

在进行模拟仿真之后,为了能了解软件模拟仿真中各信号之间的具体延时量,可以用MAX+plusII提供的时序分析功能来做时序分析。

在MAX+plusII中启动时序分析,分析完成后,各信号之间的延时时间以表格形式显示出来,表格中的数据即为两信号之间的延时时间。

把编写好程序进行编译,如果有错误及时改正错误。

如编译正确后如图显示:

图5.2.1编译正确

编译正确后的程序要经过引脚封装才能把程序下载到试验箱中,下表是3-8译码器引脚分配图

A0

A1

A2

Y0

Y1

Y2

Y3

Y4

Y5

Y7

Y7

6

5

4

15

16

17

18

20

21

22

24

 

 

 

 

 

 

 

 

 

 

 

图5.2.13-8译码器引脚分配图

按照要求步骤把引脚封装到3-8译码器程序中去,如图5.2.2

图5.2.2引脚封装

封装后对程序进行仿真,仿真后的波形如图5.2.3和图5.3.4

图5.2.33-8译码器工作框图

图5.2.4程序仿真波形图

总结

在这两周的课程设计中,使我又了解到了一种汇编语言,使我对本来很陌生的EDA有了进一步的了解。

课设刚开始的两天里,我们在图书馆及相关网站上查阅了大量关于3-8译码器资料,之后我们就开始编程及仿真。

由于前段时间出去工作的原因,使我少学了不少关于MAX软件的知识,因为没有把文件夹的名字命名成英文或数字的,导致编写好的程序存不到磁盘里,后来发现了这个问题。

书上有3-8译码器的程序,我想把程序里的某个部分改一下,改完之后经过编译出现了8个一样的错误,后来请教了老师才把错误改正过来。

编译正确后进行引脚分配,分配后开始进行仿真。

MAX软件的编译与引脚分配我已经很熟练了,但是仿真和下载运行不是很明白,最后请教了同学,在同学的耐心指导下我编译好的程序也仿真成功了。

课设给我带来不少的收获,我了解VHDL设计的语言使用方法,并进一步熟悉MAX+plusII软件的使用和操作方法、波形仿真。

提高了将理论应用于实践的能力,同时对我独立思考和解决问题的能力有了很大的锻炼。

从课程设计中学到了不少平时上课难以学习的知识,提升了自我钻研、提出问题、发现问题解决问题的能力。

在设计中要求我要有耐心和毅力,还要细心,稍有不慎,一个小小的错误就会导致结果的不正确,而对错误的检查要求我要有足够的耐心,通过这次设计和设计中遇到的问题,也积累了一定的经验,对以后从事工作会有一定的帮助。

在应用VHDL的过程中让我真正领会到了其在电路设计上的优越性。

用VHDL硬件描述语言的形式来进行数字系统的设计方便灵活,利用EDA软件进行编译优化仿真极大地减少了电路设计时间和可能发生的错误,降低了开发成本,这种设计方法必将在未来的数字系统设计中发挥越来越重要的作用。

致谢

为期一周的EDA课程设计结束了,在这一周中我受益匪。

我顺利完成了3-8译码器的设计,通过本次设计使我对使用VHDL语言进行编程及MAX+plusII的使用有了更深一步的了解

首先在这里感谢尹常永老师,由于本门课程是我们专业课,尹老师也教我们一学期了,所以课设时我并没有感到陌生。

EDA是我接触到的第四种汇编语言了,我一直觉得汇编语言是很抽象很难学的东西,刚开始学时对EDA有一种抵触心理,但是尹老师是我们的任课老师,在他讲述的课程下,把抽象难立理解的EDA形象化了,我开始用尹老师的方法学习这门课程,发现其实并不难。

而且在尹老师不仅仅教我们怎么去学习,他还教会我们许多做人做事的道理,我非常尊敬喜爱尹老师。

在两周的课设期间,尹常永老师和包妍老师都给予了我们很大的帮助,老师每天都要不辞辛劳的来到机房为我们辅导、答疑。

当我有问题时,老师总会耐心地为我解答。

而且身为老师他能主动发现学生的问题,

然后我要感谢我的同学们,在我制作报告的过程中同学们为我提出了宝贵的意见,而且对于我不会的地方帮我演示,使我的报告得以顺利的完成,而且在我对程序有不明白的地方时耐心地为我讲解,所以我真诚的对他们表示感谢。

我也要感谢学校,为我们提供了这么好的理论与实践相结合机会,还有图书馆的老师们,为我们提供了那么多的学习资料,为增加我们的知识面起到了很大的作用!

在此,我再次向尹常永老师包妍老师和同学等表示感!

本次课程设计的顺利完成,与尹老师和包老师的大力支持和帮助是分不开的,同时也感谢在设计给予我帮助的所有同学,谢谢大家!

参考文献

[1]尹常永.EDA技术与数字系统设计.西安:

西安电子科技大学出版社,2004

[2]郝波.电子技术基础—数字电子技术.西安:

西安电子科技大学出版社,2009

[3]胡晓光.数字电子技术基础[M].北京:

高等教育出版社,2010.

[4]曾繁泰,陈美金,沈卫红,曾名等.EDA工程方法学[M],清华大学出版社

[5]刘昌华.数字逻辑EDA设计与实践[M],国防工业出版社

[6]李洋.EDA技术实用教程[M].北京:

机械工业出版社,2009.

[7]王金明.数字系统设计与VHDL[M].北京:

电子工业出版社,2010

[8]马建国,孟宪元.FPGA现代数字系统设计[M].北京:

清华大学出版社,2010

[9]李云,侯传教,冯永浩.VHDL电路设计实用教程[M].北京:

机械工业出版社,2009.

[10]赵岩,林白,王志强.实用EDA技术与VHDL教程[M].北京:

人民邮电出版社,2011.

[11]

[12]

[13]LatticeInc..DataBook.WashingtonSA:

LatticeInc.,2002

[14]AlteraCorporation.DataBook.SanJose:

AlteraCo.,2002

[15]XilinxInc..DataBook.SanJose:

XilinxInc.,2002

附录

3-8译码器源程序:

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;      --库的说明

ENTITYyima38aIS

PORT(A:

INSTD_LOGIC_VECTOR(2DOWNTO0);

Y:

OUTSTD_LOGIC_VECTOR(7DOWNTO0));

--定义端口,3-8译码器有3个输入8个输出

END;

ARCHITECTUREBEHAVIOROFyima38aIS

BEGIN

PROCESS(A)                --A为敏感信号

 

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

当前位置:首页 > 幼儿教育 > 家庭教育

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

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