H74139是双2-4译码器,最近才搞懂其大致的原理,稍微记录记录。
工作原理的VHDL代码:
-- H74139 双2-4译码器,VHDL主要代码
libray IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
entity H74139 is
PORT(A1, B1, G1: in STD_LOGIC;
A2, B2, G2: in STD_LOGIC;
Y: out STD_LOGIC_VECTOR(10 to 13); --
Y: out STD_LOGIC_VECTOR(20 to 23));
end H74139;
ARCHITECTURE dataflow of H74139 is
begin
Y10 <= ‘0‘ when(A1=‘0‘)and(B1=‘0‘)and(G1=‘0‘)
else ‘1‘;
Y11 <= ‘0‘ when(A1=‘1‘)and(B1=‘0‘)and(G1=‘0‘)
else ‘1‘;
Y12 <= ‘0‘ when(A1=‘0‘)and(B1=‘1‘)and(G1=‘0‘)
else ‘1‘;
Y13 <= ‘0‘ when(A1=‘1‘)and(B1=‘1‘)and(G1=‘0‘)
else ‘1‘;
--...Y(23 downto 20) --类似以上的规律,就不浪费空间了
end dataflow;
单个2-4译码器的真值表
---- 2-4译码器真值表 ----
G B A | Y0 Y1 Y2 Y3
0 0 0 | 0 1 1 1
0 0 1 | 1 0 1 1
0 1 0 | 1 1 0 1
0 1 1 | 1 1 1 0
1 0/1 0/1 | 1 1 1 1
--------------------------------
通过真值表可以发现规律:将GBA看作由高位到低位表示的二进制数i,则输出端的Yi为0其他为高电平。
当i>3时,即使能端(G)为1时输出全部为高电平。
来一道题目分析分析。提起注意,在设置STD_LOGIC_VECTOR时,若B downto A,则信号接收顺序为B-->A;若是A to B,则信号的接收顺序为A-->B。
原文:https://www.cnblogs.com/GorgeousBankarian/p/11633012.html