用VHDL进行基本逻辑电路设计总结
组合逻辑电路设计
时序逻辑电路设计
状态机设计
存储器设计(调用宏功能模块进行设计
)
1 组合逻辑电路设计
常见组合逻辑电路设计主要有:基本门电路、3-8译码器
、8-3线优先编码器、比较器、多路选择器、三态门电路、
单向总线驱动器、双向总线缓冲器等。
1.1 基本门电路
基本门电路用VHDL语言来描述十分方便。为方便起见,在下面的两
输入模块中,使用VHDL中定义的逻辑运算符,同时实现一个与门、或门、
与非门、或非门、异或门及反相器的逻辑。
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY GATE IS
PORT (A,B:IN STD_LOGIC;
YAND,YOR,YNAND,YNOR,YNOT,YXOR:OUT STD_LOGIC);
END GATE;
ARCHITECTURE ART OF GATE IS
BEGIN
YAND <=A AND B; --与门输出
YOR <=A OR B; --或门输出
YNAND<=A NAND B; --与非门输出
YNOR <=A NOR B; --或非门输出
YNOT <=A NOT B; --反相器输出
YXOR <=A XOR B; --异或门输出
END ART;
方法1:使用CASE_WHEN 语句
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY DECODER IS
PORT(SEL:IN STD_LOGIC_VECTOR(2 DOWNTO 0);
EN: IN STD_LOGIC; ---加使能控制端
Y:OUT STD_LOGIC _VECTOR (7 DOWNTO 0));
END;
1.2 3-8译码器
下面我们分别以2种方法描述一个3-8译码器。
ARCHITECTURE ART1 OF DECODER IS
BEGIN
PROCESS(SEL,EN)
BEGIN
Y<=”11111111”;
IF(EN=’1’) THEN
CASE SEL IS
WHEN "000"=> Y(0)<= ‘0’;--输出低有效
WHEN "001"=> Y(1)<= ‘0’;
WHEN "010"=> Y(2)<= ‘0’;
WHEN "011"=> Y(3)<= ‘0’;
WHEN "100"=> Y(4)<= ‘0’;
WHEN "101"=> Y(5)<= ‘0’;
WHEN "110"=> Y(6)<= ‘0’;
WHEN "111"=> Y(7)<= ‘0’;
WHEN OTHERS=>NULL;
END CASE;
ELSE Y<=”11111111”;
END IF;
END PROCESS;
END ART1;
评论0