看看下面eda代码实现的功能

来源:百度知道 编辑:UC知道 时间:2024/06/11 20:35:47
Library IEEE;
Use IEEE.Std_Logic_1164.All;
Entity decoder Is
Port(
A: In Std_Logic_Vector(2 downto 0);
EN:In Std_Logic;
Y: Out Std_Logic_Vector(7 downto 0)
);
End Entity decoder;
Architecture a Of decoder Is
Signal Sel:Std_Logic_Vector(3 downto 0);
Begin
Sel(0)<=EN;
Sel(1)<=A(0);
Sel(2)<=A(1);
Sel(3)<=A(2);
With Sel select
Y<="00000001" WHEN "0001",
"00000010" WHEN "0011",
"00000100" WHEN "0101",
"00001000" WHEN "0111",
"00010000" WHEN "1001",
"00100000" WHEN "1011",
"01000000" WHEN "1101",
"10000000" WHEN "1111",
"00000000" WHEN Others;
End a;

这段代码实现了译码功能
可以这样解释:
当输入使能信号EN为1时,便开始对A进行译码
即:当A=000时,Y输出为“00000001”(标志出Y的第0位)
当A=001时,Y输出为“00000010”(标志出Y的第1位)
当A=010时,Y输出为“00000100”(标志出Y的第2位)



当输入为EN和A其他状态时,Y的输出值为“00000000”

如果不明白的话可以给我留言或者自己再看一下关于译码器的VHDL实现的相关程序,应该就可以了。