EDA设计38译码器

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

班级:通信13-3班姓名:王亚飞

学号:1306030318 指导教师:

成绩:

电子与信息工程学院

信息与通信工程系

摘要

EDA技术是以微电子技术为物理层面,现代电子设计技术为灵魂,计算机软件技术为手段,最终形成集成电子系统或专用集成电路ASIC为目的的一门新兴技术。而VHDL语言是硬件描述语言之一,其广泛应用性和结构的完整性使其成为硬件描述语言的代表。随着社会经济和科技的发展,越来越多的电子产品涌如我们的日常生活当中,在日常生活中译码器起着不可忽视的作用。本设计就是运用VHDL语言设计的3-8译码器。3-8译码器电路的输入变量有三个即D0,D1,D2,输出变量有八个Y0-Y7,对输入变量D0,D1,D2译码,就能确定输出端Y0-Y7的输出端变为有效(低电平),从而达到译码目的。

关键词:EDA;3-8译码器

1实验目的

1、通过一个简单的3-8译码器的设计,让学生掌握组合逻辑电路的设计方法。

2、初步掌握VHDL语言的常用语句。

3、掌握VHDL语言的基本语句及文本输入的EDA设计方法。

2实验背景

2.1 VHDL的简介

VHDL语言是一种用于电路设计的高级语言。它在80年代的后期出现。最初是由美国国防部开发出来供美军用来提高设计的可靠性和缩减开发周期的一种使用范围较小的设计语言。但是,由于它在一定程度上满足了当时的设计需求,于是他在1987年成为A I/IEEE的标准(IEEE STD 1076-1987)。1993年更进一步修订,变得更加完备,成为A I/IEEE的A I/IEEE STD 1076-1993标准。目前,大多数的CAD厂商出品的EDA软件都兼容了这种标准。VHDL的英文全写是:VHSIC (Very High eed Integrated Circuit)Hardware Descriptiong Language.翻译成中文就是超高速集成电路硬件描述语言。因此它的应用主要是应用在数字电路的设计中。

2.2 VHDL语言的特点

VHDL是一种用普通文本形式设计数字系统的硬件描述语言,主要用于描述数字系统的结构、行为、功能和接口,可以在任何文字处理软件环境中编辑。除了含有许多具有硬件特征的语句外,其形式、描述风格及语法十分类似于计算机高级语言。VHDL程序将一项工程设计项目(或称设计实体)分成描述外部端口信号的可视部分和描述端口信号之间逻辑关系的内部不可视部分,这种将设计项目分成内、外两个部分的概念是硬件描述语言(VHDL)的基本特征。

VHDL的主要特点如下:

1.与其他的硬件描述语言先比,VHDL语言描述能力更强,从而决定了它成

为系统设计领域最佳的硬件描述语言。

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

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

4. VHDL语言支持广泛。

3 3-8译码器简介

3.1 3-8译码器

3线-8线译码器是能实现译码功能的电路,常用的二进制集成译码器,二进制译码器是将输入的二进制代码转换成相对应的输入信号,它也是全译码器。3-8译码器属于通用译码器,多用于计算机中的变量译码、地址译码及代码变换等

3.2 3-8译码器工作原理

对于3线-8线译码器来说,3位二进制共有8种状态,所以对应的输出有8种状态。例如:对于二进制代码111来说,输出为11111110。由于3线-8线译码器只需要输入3根线即可输出8种不同的状态,对信息的译码有很大的好处,所以在硬件电路中占有较重要的地位,实验中也经常用到。

表3-1真值表

图3-2逻辑图

无论从逻辑图还是功能表我们都可以看到3-8译码器的八个输出管脚,任何时刻要么全为高电平1—芯片处于不工作状态,要么只有一个为低电平0,其余7个输出管脚全为高电平1。如果出现两个输出管脚在同一个时间为0的情况,说明该芯片已经损坏。

3.3 3-8译码器的作用

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

由上式可以看出,在同一个时间又是这三个变量的全部最小项的译码输出,所以也把这种译码器叫做最小项译码器。3-8译码器有三个附加的控制端、和。当、时,输出为高电平(S=1),译码器处于工作状态。否则,译码器被禁止,所有的输出端被封锁在高电平,如表1所示。这三个控制端也叫做“片选”输入端,

利用片选的作用可以将多篇连接起来以扩展译码器的功能。带控制输入端的译码器又是一个完整的数据分配器。电路中如果把作为“数据”输入端(在同一个时间),而将作为“地址”输入端,那么从送来的数据只能通过所指定的一根输出线送出去。这就不难理解为什么把叫做地址输入了。例如当=101时,门的输入端除了接至输出端的一个以外全是高电平,因此的数据以反码的形式从输出,而不会被送到其他任何一个输出端上。

4设计思路与程序

根据查找的关于3-8译码器的资料了解到3-8译码器的工作原理与真值表,来编写程序,3-8译码器有3个输入和8个输出,所以可以指定当输入为:111时,译码后为指定的状态,即输出00000001,紧接着依次类推,当输入为:110时,输出01111111,当输入为101时,输出11011111,当输入为100时,输出11101111,输入011时,输出为11110111,输入为010时,输出11111011,输入为001时,输出11111101,输入为000时,输出为11111110。调用库函数,定义实体,定义端口,不难设计出程序:

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY SA IS

PORT(

D:IN STD_LOGIC_VECTOR(2 DOWNTO 0);

S0,S1,S2:IN STD_LOGIC;

Y:OUT STD_LOGIC_VECTOR(7 DOWNTO 0)

);

END ;

ARCHITECTURE XIANI OF SA IS

BEGIN

PROCESS(D,S0,S1,S2)

BEGIN

IF (S0='0')THEN Y<="11111111";

ELSIF(S0='1' AND S1='0' AND S2='0')THEN

IF (D(2)='0' AND D(1)='0' AND D(0)='0')THEN Y<="01111111";

ELSIF (D(2)='0' AND D(1)='0' AND D(0)='1')THEN Y<="10111111";

ELSIF (D(2)='0' AND D(1)='1' AND D(0)='0')THEN Y<="11011111";

ELSIF (D(2)='0' AND D(1)='1' AND D(0)='1')THEN Y<="11101111";

ELSIF (D(2)='1' AND D(1)='0' AND D(0)='0')THEN Y<="11110111";

相关文档
最新文档