3 译码器和编码器的仿真实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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。