文档介绍:第五章组合逻辑电路设计
门电路
编码器
优先编码器
译码器
多路选择器
数值比较器
加法器
在前面的各章里,分别介绍了VHDL语言的语句、语法以及利用VHDL语言设计硬件电路的基本方法,本章重点介绍利用VHDL语言设计基本组合逻辑模块的方法。
门电路
二输入异或门
二输入异或门的逻辑表达式如下所示:
二输入异或门的逻辑符号如图所示,真值表如下表所示:
a b y
0 0 0
0 1 1
1 0 1
1 1 0
例:采用行为描述方式设计的异或门
(依据逻辑表达式)
LIBRARY IEEE;
USE ;
ENTITY xor2_v1 IS
PORT(a,b: IN STD_LOGIC;
y: OUT STD_LOGIC);
END xor2_v1;
ARCHITECTURE behave OF xor2_v1 IS
BEGIN
y <= a XOR b;
END behave;
例:采用数据流描述方式设计的异或门
(依据真值表)
LIBRARY IEEE;
USE ;
ENTITY xor2_v2 IS
PORT(a,b: IN STD_LOGIC;
y: OUT STD_LOGIC);
END xor2_v2;
ARCHITECTURE dataflow OF xor2_v2 IS
BEGIN
PROCESS (a,b)
b : STD_LOGIC_VECTOR(1 DOWNTO 0);
BEGIN
comb := a & b;
b IS
WHEN "00"=> y <='0';
WHEN "01"=> y <='1';
WHEN "10"=> y <='1';
WHEN "11"=> y <='0';
WHEN OTHERS => y <='X';
END CASE;
END PROCESS;
END dataflow;
二输入异或门的仿真波形
编码器
用一组二进制代码按一定规则表示给定字母、数字、符号等信息的方法称为编码,能够实现这种编码功能的逻辑电路称为编码器。
I0 I1 I2 I3 I4 I5 I6 I7 A2 A1 A0
0 0 0 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0 0 0 1
0 0 1 0 0 0 0 0 0 1 0
0 0 0 1 0 0 0 0 0 1 1
0 0 0 0 1 0 0 0 1 0 0
0 0 0 0 0 1 0 0 1 0 1
0 0 0 0 0 0 1 0 1 1 0
0 0 0 0 0 0 0 1 1 1 1
8线—3线编码器真值表
输入输出
8线—3线编码器逻辑表达式:
A2=I4+I5+I6+I7
A1=I2+I3+I6+I7
A0=I1+I3+I5+I7
例:采用行为描述方式的8线—3线编码器VHDL源代码(依据逻辑表达式)
LIBRARY IEEE;
USE ;
ENTITY coder83_v1 IS
PORT(I0,I1,I2,I3,I4,I5,I6,I7: IN STD_LOGIC;
A0,A1,A2: OUT STD_LOGIC);
END coder83_v1;
ARCHITECTURE behave OF coder83_v1 IS
BEGIN
A2 <= I4 OR I5 OR I6 OR I7;
A1 <= I2 OR I3 OR I6 OR I7;
A0 <= I1 OR I3 OR I5 OR I7;
END behave;