38译码器实现逻辑电路
- 格式:ppt
- 大小:726.00 KB
- 文档页数:11
8-3编码器,3-8译码器的verilog实现在数字系统中,由于采⽤⼆进制运算处理数据,因此通常将信息变成若⼲位⼆进制代码。
在逻辑电路中,信号都是以⾼,低电平的形式输出。
编码器:实现编码的数字电路,把输⼊的每个⾼低电平信号编成⼀组对应的⼆进制代码。
设计⼀个输⼊为8个⾼电平有效信号,输出代码为原码输出的3位⼆进制编码器。
化简逻辑表达式:由逻辑表达式可以得出,普通的8-3编码器⽤或门即可实现。
对应的verilog程序如下:module mb_83(x,y);input [7:0]x;output [2:0]y;reg [2:0]y;always@(x)begincase (x)8'b00000001:y=3'b000; //当当 x=8 ’b00000001,则则 y 输出为 3 ’b0008'b00000010:y=3'b001; //当当 x=8 ’b00000010,则则 y 输出为 3 ’b0018'b00000100:y=3'b010; //当当 x=8 ’b00000100,则则 y 输出为 3 ’b0108'b00001000:y=3'b011; //当当 x=8 ’b00001000,则则 y 输出为 3 ’b0118'b00010000:y=3'b100; //当当 x=8 ’b00010000,则则 y 输出为 3 ’b1008'b00100000:y=3'b101; //当当 x=8 ’b00100000,则则 y 输出为 3 ’b1018'b01000000:y=3'b110; //当当 x=8 ’b01000000,则则 y 输出为 3 ’b1108'b10000000:y=3'b111; //当当 x=8 ’b10000000,则则 y 输出为 3 ’b111default: y=3'b000;endcaseendendmodule上述编码器有⼀个缺点,即在某⼀个时刻只允许有⼀个有效的输⼊,⽽同时若⼜有两个或两个以上的输⼊信号要求编码,输出端⼀定会发⽣混乱,出现错误。
试验一组合逻辑3线-8线译码器设计试验一、试验目的1、了解并初步掌握ModelSim软件的使用;2、了解使用ModelSim进行组合数字电路设计的一般步骤;3、掌握组合逻辑电路的设计方法;4、掌握组合逻辑电路3线-8线译码器的原理;5、掌握门级建模的方法;二、试验原理译码器(Decoder)的逻辑功能是将每个输入的二进制代码译成对应得输出高、低电平或另外一个代码。
因此,译码是编码的反操作。
常用的译码器电路有二进制译码器、二-十进制译码器和显示译码器等。
二进制译码器的输入是一组二进制代码,输出是一组与输入代码一一对应得高、低电平信号。
例如,典型的3线-8线译码器功能框图图1-1所示。
输入的3位二进制代码共有8种状态,译码器将每个输入代码译成对应的一根输出线上的高、低电平信号。
图1-1 3线-8线译码器框图74HC138是用CMOS门电路组成的3线-8线译码器,它的逻辑图图1-2所示。
表1-1是74HC138的逻辑功能表。
当门电路G S的输出为高电平时,可以由逻辑图写出。
图1-2 74HC138逻辑功能图表1-1 74HC138逻辑功能表由上式可以看出,由''07Y Y -同时又是210,,A A A 这三个变量的全部最小项的译码输出,所以也将这种译码器称为最小项译码器。
74HC138有3个附加的控制端''123,S S S 和。
当''123S 1,S S 0=+=时,s G 输出为高电平,译码器处于工作状态。
否则,译码器被禁止,所有的输出端被封锁为高电平。
这3个控制端也称为“片选”输入端,利用片选的作用可以将多片连接起来以扩展译码器的功能;三、 预习要求1、数字电子技术基础组合逻辑电路设计一般设计方法;2、74HC138的逻辑功能;3、门级建模的一般方法和基本语句;4、ModelSim 软件的一般使用方法(ModelSim SE Tutorial);四、 实验步骤(一)、熟悉ModelSim 软件环境 1、建立一个新Project1-1双击左面快捷方式或者电击[程序]/[ModelSim SE 6.1f]/[ModelSim]启动ModelSim 6.1(如图1-3);注意:必须首先关闭IMPORTANT Information 对话框才能开始其它操作;图1-31-2 [File]/[New]/[Project…]新建一个project,会弹出Create Project对话框(如图1-4);图1-4⏹Project Name(项目名称)需要填入你所建立的项目的名称;⏹指定项目所在路径;如果所指定的目录不存在,会弹出对话框提示是否建立这个目录;一般选择是;⏹缺省的工作库名;注意:1、路径一般不应包含汉字;2、逻辑应在ModelSim的安装目录下指定;3、缺省的工作库的名称一般不需要改动;2、载入HDL元文件2-1设定好1-2步骤的每项内容后,点击OK,弹出Add items to the Projects对话框;如图1-5所示。
译码器设计组合逻辑电路案例分析【信息单】一、编码器在数字系统中,把二进制码按一定的规律编排,使每组代码具有特定的含义,称为编码。
具有编码功能的逻辑电路称为编码器。
编码器是一个多输入多输出的组合逻辑电路。
按照编码方式不同,编码器可分为普通编码器和优先编码器;按照输出代码种类的不同,可分为二进制编码器和非二进制编码器。
1.普通编码器普通编码器分二进制编码器和非二进制编码器。
若输入信号的个数N 与输出变量的位数n 满足N =2n ,此电路称为二进制编码器;若输入信号的个数N 与输出变量的位数n 不满足N =2n ,此电路称为非二进制编码器。
普通编码器任何时刻只能对其中一个输入信息进行编码,即输入的N 个信号是互相排斥的。
若编码器输入为4个信号,输出为两位代码,则称为4线-2线编码器(或4/2线编码器)。
2.优先编码器优先编码器是当多个输入端同时有信号时,电路只对其中优先级别最高的信号进行编码的编码器。
3.集成编码器10线-4线集成优先编码器常见型号为54/74147、54/74LS147,8线-3线常见型号为54/74148、54/74LS148。
4.编码器举例(1)键控8421BCD 码编码器10个按键S 0~S 9代表输入的10个十进制数0~9,输入为低电平有效,即某一按键按下,对应的输入信号为0,输出对应的8421码,输出为4位码,所以有4个输出端A 、B 、C 、D 。
真值表见表7.1,由真值表写出各输出的逻辑表达式为 9898S S S S =+=A76547654S S S S S S S S =+++=B 76327632S S S S S S S S =+++=C 9753197531S S S S S S S S S S =++++=D表7.1键控8421BCD 码编码器真值表(2)二进制编码器用n 位二进制代码对2n 个信号进行编码的电路称为二进制编码器。
3位二进制编码器有 8个输入端3个输出端,所以常称为8线—3线编码器,其功能真值表见表7.2,输入为高电平有效。
三八译码器预备知识三八译码器是一种常用的译码器一译码器知识1 译码是编码的逆过程,在编码时,每一种二进制代码,都赋予了特定的含义,即都表示了一个确定的信号或者对象。
把代码状态的特定含义“翻译”出来的过程叫做译码,实现译码操作的电路称为译码器。
或者说,译码器是可以将输入二进制代码的状态翻译成输出信号,以表示其原来含义的电路。
2 译码器是组合逻辑电路的一个重要的器件3 译码器是一种具有“翻译”功能的逻辑电路,这种电路能将输入二进制代码的各种状态,按照其原意翻译成对应的输出信号。
有一些译码器设有一个和多个使能控制输入端,又成为片选端,用来控制允许译码或禁止译码。
二三八译码器知识1 三八译码器3-8译码器三输入,八输出。
当输入信号按二进制方式的表示值为N时,输出端标号为N的输出端输出高电平表示有信号产生,而其它则为低电平表示无信号产生。
因为三个输入端能产生的组合状态有八种,所以输出端在每种组合中仅有一位为高电平的情况下,能表示所有的输入组合。
2 三八译码器的真值表其真值表如表3-2的输入,输出关系输入输出A B C D7 D6 D5 D4 D3 D2 D1 D00 0 0 0 0 0 0 0 0 0 10 0 1 0 0 0 0 0 0 1 00 1 0 0 0 0 0 0 1 0 00 1 1 0 0 0 0 1 0 0 01 0 0 0 0 0 1 0 0 0 01 0 1 0 0 1 0 0 0 0 01 1 0 1 0 0 0 0 0 01 1 1 1 0 0 0 0 0 0 0表3-23电路中的实现本电路图中,有三个输入A,B,C及八个输出D0-D7,其输入,输出关系如表3-24 现象的体现在本实验中,用三个拨动开关来表示三八译码器的三个输入(A、B、C);用八个LED 来表示三八译码器的八个输出(D0-D7)。
通过输入不同的值来观察输入的结果与三八译码器的真值表(表3-2)是否一致。
实验箱中的拨动开关与FPGA的接口电路如下图3-3所示,当开关闭合(拨动开关的档位在下方)时其输出为低电平,反之输出高电平。
实验五 译码器、数据选择器及其应用一、实验目的1.掌握中规模集成译码器、数据选择器的逻辑功能和使用方法。
2.了解译码器的应用。
3.学习用数据选择器构成组合逻辑电路的方法。
二、实验原理1.译码器是将输入的具有特定含义的二进制代码翻译成输出信号的不同组合,实现电路控制功能的逻辑电路。
译码器在数字系统中应用广泛,可用于代码的转换、终端数字的显示、数据的分配等等。
译码器可分为变量译码器和显示译码器。
74LS138是目前常用的三线——八线译码器(变量译码器),它有三根输入线,可以输入三位二进制数码,共有八种状态组合,即可译出8个输出信号。
管脚图如图1所示。
该集成芯片共有16个引脚,其中8脚应接地线,16脚接+5V 电源,脚0A 、1A 、2A 为二进制编码输入端(2A 为高位,0A 为低位);0Y ~7Y 为译码输出端(7Y 为高位,0Y 为低位),1E 、A E 2、B E 2为信号输入允许端,也称使能端。
A E 2、B E 2为低电平有效(图中用管脚处的圆圈来表示低电平有效),1E 为高电平有效。
只有信号输入允许端有效时输入的信号才有效,才可能实现译码。
74LS138的功能见表一。
图1 74LS138管脚和符号图表一 74LS138的逻辑功能2.74LS138可用作函数信号发生器,如图2所示,实现的逻辑函数是ABC C B A C B A C B A Z +++= 图23.数据选择器又叫“多路开关”。
数据选择器在选择控制电位的控制下,从几个数据输入中选择一个并将其送到一个公共的输出端。
数据选择器的功能类似一个多掷开关,,如图3所示,图中有四路数据0D ~3D ,通过选择从控制信号1A 、0A 从四路数据中选中某一路数据送至输出端W 。
数据选择器为目前逻辑设计中应用十分广泛的逻辑部件,它有2选1、4选1、8选1、16选1等类别。
8选1数据选择器74LS151:74LS151引脚排列如图3,功能如表二。
题目:三八译码器的结构、原理与设计学院:物理学院专业:电子科学与技术姓名:董少雨指导教师:赵宏亮完成日期:2014年5月20日毕业论文任务书毕业论文题目:三八译码器的结构、原理与设计选题意义、创新性、科学性和可行性论证:如今全球信息化的步伐正在不断加快,数字信号的产生、变换等方面应用的更加广泛。
三八译码器在信号处理方面起着十分重要的作用。
本文主要阐述三八译码器的基本结构和工作原理,并通过对时序逻辑电路设计方法的研究,完成三八译码器的设计。
主要内容:译码器的种类与特点,三八译码器的结构和工作原理,最后完成了三八译码器的设计。
目的要求:1、熟悉三八译码器的发展背景和趋势。
2、掌握各类译码器的工作性能。
3、了解三八译码器的基本结构和工作原理。
4、学会时序逻辑电路的设计方法。
计划进度:2013年12月21日~2014年2月25日,确定毕业论文选题,并搜集资料,查阅相关文献;2014年2月26日~4月10日,写出论文总体大纲,运用软件得到仿真数据;2014年4月11日~4月25日,论文撰写;提交初稿;2014年4月26日~5月19日,修改论文,论文定稿,准备答辩。
指导教师签字:主管院长(系主任)签字:2013年12 月25 日辽宁大学本科毕业论文(设计)指导记录表论文题目三八译码器的结构、原理与设计学生姓名董少雨学号101002103 年级、专业10级电子科学与技术指导教师姓名赵宏亮指导教师职称讲师所在院系物理学院第一次指导(对确定题目、毕业论文(设计)任务书的指导意见):由于以前对三八译码器有所了解,《三八译码器的结构、原理与设计》题目符合毕业论文设计的要求。
研究三八译码器可以加强对数字集成电路的了解,毕业论文进度安排合理,接下来按照进度写出论文总体大纲。
指导方式:(请选择)面谈√电话电子邮件指导教师签字:2013年12月24日第二次指导(对论文提纲的指导意见):查阅相关资料,进一步地掌握三八译码器的基本结构和工作原理,三八译码器的设计方法十分合理,要熟悉掌握相关软件的使用并从中得到相关数据。
74138的工作原理如下图所示:从上图可看出,74138有三个输入端:A0、A1、A2和八个输出端Q0~Q7。
当输入端A0、A1、A2的编码为000时,译码器输出为Q0=0,而Q1~Q7=1。
即Q0对应于A0、A1、A2为000状态,低电平有效。
A0、A1、A2的另外7种组合见后面的真值表。
图中S1、S2、S3为使能控制端,起到控制译码器是否能进行译码的作用。
只有S1为高电平,S2、S3均为低电平时,才能进行译码,否则不论输入羰输入为何值,每个输出端均为1。
下图是输入端A0、A1、A2为000,控制端S1=1、S1=0、S2=0的电平示意图(红色数字为端口电平),大家可按下图进行分析,也可以分析输出端另外七种组合时的输出情况。
74138 三线-八线译码器真值表:一、译码器的定义及功能1. 定义:具有译码功能的逻辑电路称为译码器。
译码即编码的逆过程,将具有特定意义的二进制码进行辨别,并转换成控制信号。
2. 分类:3. 功能:二进制译码器一般原理图一个n→2n译码器结构如上图,n个输入端,2n个输出端。
它是一个多输出逻辑组合电路,对每种可能的输入条件,有且仅有一个输出信号为逻辑“1”,所以我们可以把它当作最小项产生器,一个输出就相应于提取一个最小项。
4. 译码器电路结构:首先我们先来分析两输入译码器结构,由于2输入变量A、B共有4种不同状态的组合,因而可以译出4个输出信号,所以简称为2/4线译码器。
2线-4线译码器逻辑图由图可以写出输出端逻辑表达式:根据输出逻辑表达式可以列出功能表。
由表可知,时无论A、B 为何种状态,输出全为1,译码器处于非工作状态。
而当时,对应于AB 的某种状态组合,其中只有一个输出量为0,其余各输出量均为1。
例如:AB=0时,输出Y0=0,Y1~Y3=1,由此可见,译码器是通过输出端的逻辑电平来识别不同的代码。
在我们讲述的这种结构中,输出0表示有效电平,所以就叫做低电平有效。
2线-4线译码器功能表输入输出EI A B Y0Y1Y2Y31 x X 1 1 10 0 0 0 1 1 10 0 1 1 0 1 10 1 0 1 1 0 10 1 1 1 1 0二、集成电路译码器1.74138集成译码器下图为常用的集成译码器74LS138的逻辑图和引脚图。
院系电子信息工程学院班级姓名学号实验名称38译码器实现组合逻辑电路实验日期一、实验目的1.掌握常用集成组合电路的应用;2.掌握译码器的工作原理和特点;3.熟悉集成门电路、译码器的逻辑功能和管脚排列。
二、实验器件1.数字电路实验箱2.集成电路:74LS00、74LS138三、实验原理译码器所谓译码,就是把代码的特定含义“翻译”出来的过程,而实现译码操作的电路称为译码器。
译码器可分为三类:变量译码器、码制变换译码器和显示译码器。
变量译码器又称二进制译码器,用以表示输入变量的状态。
对应于输入的每一组二进制代码,译码器都有确定的一条输出线有信号输出。
若有n个输入变量,则有2n个不同的组合状态,就有2n个输出端。
而每一个输出所代表的函数对应于n 个输入变量的最小项。
74LS138为3/8译码器,管脚图如图所示:其中:A2、A1、A0为地址输入端Y0-Y7 为输出端,低电平有效STA、STB、STC 为选通端74LS138功能表如表3-2所示,当STA=1,STB+STC=0时,执行正常的译码操作,地址码所指定的输出端有信号输出(低电平0),其它所有输出端均无信号输出(全为1)。
当STA=0,STB+STC=1,或STA=,STB+STC=1时,译码器被禁止,所以输出同时为1。
指导教师签名院系电子信息工程学院班级姓名学号实验名称38译码器实现组合逻辑电路实验日期三、设计电路,实现四、(1)逻辑电路图(2)原理图指导教师签名院系电子信息工程学院班级姓名学号实验名称38译码器实现组合逻辑电路实验日期(3)实物连接图五、电路功能验证ABC为0,Y为1 A为1,BC为0,Y为0 AB为0,B为1,Y为0指导教师签名院系电子信息工程学院班级姓名学号实验名称38译码器实现组合逻辑电路实验日期AB为0,C为1,Y为0 A为0,BC为1,Y为0 ABC为1,B为1AB为1,C为0,Y为1 AC为1,B为0,Y为0指导教师签名。
《电子设计自动化》实验报告实验一实验名称:3-8译码器的设计专业及班级:姓名:学号:一、实验目的:1.掌握组合逻辑电路的设计方法。
2.掌握 VHDL 语言的基本构造及设计的输入方法。
3.掌握 VHDL 语言的基本描绘语句的使用方法。
二、实验步骤(附源代码及仿真结果图):1.成立工程, Quartus II -- project wizard (注意工程目录中不可以出现中文字符,不可以成立在桌面上);弹出窗口如图 2-3 所示。
图 2-3 New Project Wizard 窗口2.点击next,在出现的对话框中输入以下项目信息:a.项目路径,如: D:\EDA experiment\decoder38; b.项目名称,如: decoder38。
如图 2-4 所示:图 2-4 项目路径和项目名称对话框3.点击 2 次 next 后,出现如图 2-5 所示的对话框:a.Device family 中选择 Cyclone IV E;b.Available devices 中选择 EP4CE115F29C7.图 2-5器件选择窗口4.点击next后,出现EDA工具设置对话框。
在Simulation一行中, Tool Name 选择ModelSim-Altera , Fomat(s)选择 VHDL ,如图 2-6 所示。
图 2-6 EDA 工具设置对话框5.点击 next,出现如图 2-7 所示的对话框:图 2-7 新建项目汇总对话框6. 点击 Finish 后,出现如图2-8 所示的界面:图 2-8 decoder38 项目界面7.点击 File->New->VHDL File ,如图 2-9 所示。
点击 ok 封闭对话框。
图 2-9 新建 VHDL 文件窗口8.在文本编写框内键入以下程序:LIBRARY ieee;USE ieee.std_logic_1164.ALL;ENTITY decoder38 ISPORT(A, B,C,G1,G2A,G2B: IN STD_LOGIC;Y: OUT STD_LOGIC_VECTOR(7 DOWNTO 0)); END decoder38;ARCHITECTURE Behavior OF decoder38 ISSIGNAL indata: STD_LOGIC_VECTOR(2 DOWNTO 0); BEGINindata <= C&B&A;PROCESS (indata, G1, G2A,G2B)BEGINIF (G1='1' AND G2A='0' AND G2B='0') THENCASE indata ISWHEN "000"=>Y<="11111110";WHEN "001"=>Y<="11111101";WHEN "010"=>Y<="11111011";WHEN "011"=>Y<="11110111";WHEN "100"=>Y<="11101111";WHEN "101"=>Y<="11011111";WHEN "110"=>Y<="10111111";WHEN "111"=>Y<="01111111";WHEN OTHERS =>Y<="XXXXXXXX";END CASE;ELSEY<="11111111";END IF;END PROCESS;END Behavior;9. 将文件保留为decoder38.vhd 后,开始编译,点击Processing->Start Compilation ,编译成功后,出现如图2-10 所示界面:图 2-10 编译成功界面10.再次新建一个 vhdl 文件,键入以下的 modelsim 测试程序:LIBRARY ieee;USE ieee.std_logic_1164.ALL;ENTITY decoder38_tb ISEND decoder38_tb;ARCHITECTURE Behavior OF decoder38_tb ISCOMPONENT decoder38PORT (A,B,C,G1,G2A,G2B: IN STD_LOGIC;Y:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));END COMPONENT;SIGNAL A: STD_LOGIC:='0';SIGNAL B : STD_LOGIC:='0';SIGNAL C: STD_LOGIC:='0';SIGNAL G1: STD_LOGIC:='1';SIGNAL G2A: STD_LOGIC:='0';SIGNAL G2B: STD_LOGIC:='0';SIGNAL Y: STD_LOGIC_VECTOR(7 DOWNTO 0);CONSTANT CLK_PERIOD: TIME:=10ns;BEGINA<=not A after CLK_PERIOD;B<=not B after 20ns;C<=not C after 40ns;U1: decoder38 port map(A=>A,B=>B,C=>C,G1=>G1,G2A=>G2A,G2B=>G2B,Y=>Y);END behavior;11.将文件保留为 decoder38_tb.vhd ,编译经过。