3 译码器和编码器的仿真实验报告

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

实验三译码器与编码器的设计与仿真

一、实验内容

1.参照芯片74LS138的电路结构,用VHDL语言设计3-8译码器;

2.参照芯片74LS148的电路结构,用VHDL语言设计8-3优先编码器。二、电路功能介绍

1.74148:8-3优先编码器(8 to 3 Priority Encoder)

用途:将各种输入信号转换成一组二进制代码,使得计算机可以识别这一信号的作用。键盘里就有大家天天打交道的编码器,当你敲击按键时,被敲击的按键被键盘里的编码器编码成计算机能够识别的ASCII码。译码器与编码器的功能正好相反。

2.74138:3-8译码器(3 to 8 Demultiplexer),也叫3-8解码器

用途:用一组二进制代码来产生各种独立的输出信号,这种输出信号可以用来执行不同的工作。显示器中的像素点受到译码器的输出控制。

逻辑框图:用逻辑符号(Symbol)来解释该电路输入与输出信号之间的逻辑关系,既省事又直观。如下图所示。

一、编码器

1.VHDL实现

library IEEE;

use IEEE.std_logic_1164.all;

entity pencoder is

port ( i7,i6,i5,i4,i3,i2,i1,i0:in STD_LOGIC;

a2,a1,a0,idle:out STD_LOGIC);

端低

输入

使能输入端

end pencoder;

architecture pencoder_arch of pencoder is

signal h:STD_LOGIC_VECTOR(7 downto 0);

begin

h(7)<=i7;

h(6)<=i6 and not i7;

h(5)<=i5 and not i6 and not i7;

h(4)<=i4 and not i5 and not i6 and not i7;

h(3)<=i3 and not i4 and not i5 and not i6 and not i7;

h(2)<=i2 and not i3 and not i4 and not i5 and not i6 and not i7;

h(1)<=i1 and not i2 and not i3 and not i4 and not i5 and not i6 and not i7;

h(0)<=i0 and not i1 and not i2 and not i3 and not i4 and not i5 and not i6 and not i7;

idle<=not i0 and not i1 and not i2 and not i3 and not i4 and not i5 and not i6 and not i7;

a0<=h(1) or h(3) or h(5) or h(7);

a1<=h(2) or h(3) or h(6) or h(7);

a2<=h(4) or h(5) or h(6) or h(7);

2.波形图:

3.逻辑图:

4.用途:将各种输入信号转换成一组二进制代码,使得计算机可以识别这一信号的作用。键盘里就有大家天天打交道的编码器,当你敲击按键时,被敲击的按键被键盘里的编码器编码成计算机能够识别的ASCII码。译码器与编码器的功能正好相反。

5. 逻辑功能表

二、译码器

1.VHDL实现

library IEEE;

use IEEE.STD_LOGIC_1164.all;

entity decoder_3_8 is

port( a:in STD_LOGIC_VECTOR(2 downto 0);

q:out STD_LOGIC_VECTOR(7 downto 0)); end decoder_3_8;

architecture decoder_3_8_arch of decoder_3_8 is begin

process(a)

begin

case a is

when"000"=>q<="00000001";

when"001"=>q<="00000010";

when"010"=>q<="00000100";

when"011"=>q<="00001000";

when"100"=>q<="00010000";

when"101"=>q<="00100000";

when"110"=>q<="01000000";

when"111"=>q<="10000000";

when others=> null;

end case;

end process;

end decoder_3_8_arch;

2.波形图:

3.逻辑图:

注:使能端G1是高电平有效;

使能端G2是低电平有效,G2 = G2A AND G2B。

相关文档
最新文档