VHDL组合逻辑电路设计课件.ppt

上传人:新** 文档编号:578466328 上传时间:2024-08-24 格式:PPT 页数:52 大小:222.50KB
返回 下载 相关 举报
VHDL组合逻辑电路设计课件.ppt_第1页
第1页 / 共52页
VHDL组合逻辑电路设计课件.ppt_第2页
第2页 / 共52页
VHDL组合逻辑电路设计课件.ppt_第3页
第3页 / 共52页
VHDL组合逻辑电路设计课件.ppt_第4页
第4页 / 共52页
VHDL组合逻辑电路设计课件.ppt_第5页
第5页 / 共52页
点击查看更多>>
资源描述

《VHDL组合逻辑电路设计课件.ppt》由会员分享,可在线阅读,更多相关《VHDL组合逻辑电路设计课件.ppt(52页珍藏版)》请在金锄头文库上搜索。

1、第五章第五章 组合逻辑电路设计组合逻辑电路设计5.1 门电路门电路 5.2 编码器编码器 5.3 优先编码器优先编码器5.4 译码器译码器 5.5 多路选择器多路选择器 5.6 数值比较器数值比较器 5.7 加法器加法器 在前面的各章里,分别介绍了在前面的各章里,分别介绍了VHDL语言的语句、语言的语句、语法以及利用语法以及利用VHDL语言设计硬件电路的基本方法,本语言设计硬件电路的基本方法,本章重点介绍利用章重点介绍利用VHDL语言设计基本组合逻辑模块的方语言设计基本组合逻辑模块的方法。法。 5.1 门电路门电路二输入异或门二输入异或门二输入异或门的逻辑表达式如下所示:二输入异或门的逻辑表达

2、式如下所示: 二输入异或门的逻辑符号如图所示,真值表如下表所示:二输入异或门的逻辑符号如图所示,真值表如下表所示: a b y0 0 00 1 11 0 11 1 0例例:采用行为描述方式设计的异或门采用行为描述方式设计的异或门 (依据逻辑表达式)(依据逻辑表达式)LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY xor2_v1 IS PORT(a,b: IN STD_LOGIC; y: OUT STD_LOGIC);END xor2_v1;ARCHITECTURE behave OF xor2_v1 ISBEGIN y y y y y y =X;

3、 END CASE; END PROCESS;END dataflow; 二输入异或门的仿真波形二输入异或门的仿真波形 5.2 编码器编码器 用一组二进制代码按一定规则表示给定字母、数字、符号等信息的方用一组二进制代码按一定规则表示给定字母、数字、符号等信息的方法称为编码,能够实现这种编码功能的逻辑电路称为编码器。法称为编码,能够实现这种编码功能的逻辑电路称为编码器。 I0 I1 I2 I3 I4 I5 I6 I7 A2 A1 A0 1 0 0 0 0 0 0 0 0 0 00 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 00 0 0 1 0 0 0 0 0

4、 1 10 0 0 0 1 0 0 0 1 0 00 0 0 0 0 1 0 0 1 0 10 0 0 0 0 0 1 0 1 1 00 0 0 0 0 0 0 1 1 1 1 8线线3线编码器真值表线编码器真值表 输入输入 输出输出8线线3线编码器逻辑表达式:线编码器逻辑表达式:A2=I4+I5+I6+I7A1=I2+I3+I6+I7A0=I1+I3+I5+I7 例:采用行为描述方式的例:采用行为描述方式的8线线3线编码器线编码器VHDL源代码源代码 (依据逻辑表依据逻辑表达式)达式)LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY coder8

5、3_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 ISBEGIN A2 = I4 OR I5 OR I6 OR I7; A1 = I2 OR I3 OR I6 OR I7; A0 A A A A A A A A =000; END CASE; END PROCESS;END dataflow; 采用数据流描述方式的采用数据流描述方式的8线线3线编码器仿真波形线编码器仿真波形(总线显示方式)(总线

6、显示方式)5.3 优先编码器优先编码器 EI I0 I1 I2 I3 I4 I5 I6 I7 A2 A1 A0 GS EO1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 1 0 0 1 1 0 1 0 0 1 0 0 1 1 1 0 1 1 0 1 0 0 1 1 1 1 1 0 0 0 1 0 0 1 1 1 1 1 1 0 1 0 10 0 1 1 1 1 1 1 1 1 0 0 10 0 1 1 1 1 1 1 1 1 1 1 0 1 输输 入入 输出输出 74148优先编码器真值表优先编码器真值表

7、(反码编码方案)(反码编码方案) 各输出端的逻辑方程各输出端的逻辑方程 以以74148逻辑表达式为依据,按行为描述方式编写的逻辑表达式为依据,按行为描述方式编写的VHDL源源代码如代码如 下:下: LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY prioritycoder83_v1 IS PORT(I7,I6,I5,I4,I3,I2,I1,I0 : IN STD_LOGIC; EI:IN STD_LOGIC; A2,A1,A0: OUT STD_LOGIC; GS,EO:OUT STD_LOGIC);END prioritycoder83_v1;

8、ARCHITECTURE behave OF prioritycoder83_v1 ISBEGIN A2 = EI OR (I7 AND I6 AND I5 AND I4); A1 = EI OR (I7 AND I6 AND I3 AND I2) OR (I7 AND I6 AND NOT I5) OR (I7 AND I6 AND NOT I4) ; A0 = EI OR (I7 AND NOT I6) OR (I7 AND I5 AND NOT I4) OR (I7 AND I5 AND I3 AND I1) OR (I7 AND I5 AND I3 AND NOT I2); GS =

9、EI OR (I7 AND I6 AND I5 AND I4 AND I3 AND I2 AND I1 AND I0); EO A=“000”;因此不能用因此不能用CASE语句语句来描述来描述74148 。采用。采用IF语句语句对对74148进行了逻辑描进行了逻辑描述述 如下:如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY prioritycoder83_v2 IS PORT ( I: IN STD_LOGIC_VECTOR(7 DOWNTO 0); EI:IN STD_LOGIC; A: OUT STD_LOGIC_VECTOR(2 DO

10、WNTO 0); GS,EO:OUT STD_LOGIC);END prioritycoder83_v2;ARCHITECTURE dataflow OF prioritycoder83_v2 ISBEGIN PROCESS(EI,I) BEGIN IF(EI=1)THEN A = 111; GS = 1; EO = 1; ELSIF (I=11111111 AND EI=0)THEN A = 111; GS = 1; EO = 0; ELSIF (I(7)=0 AND EI=0)THEN A = 000; GS = 0; EO = 1; ELSIF (I(6)=0 AND EI=0)THEN

11、 A = 001; GS = 0; EO = 1; ELSIF (I(5)=0 AND EI=0)THEN A = 010; GS = 0; EO = 1; ELSIF (I(4)=0 AND EI=0)THEN A = 011; GS = 0; EO = 1; ELSIF (I(3)=0 AND EI=0)THEN A = 100; GS = 0; EO = 1; ELSIF (I(2)=0 AND EI=0)THEN A = 101; GS = 0; EO = 1; ELSIF (I(1)=0 AND EI=0)THEN A = 110; GS = 0; EO = 1; ELSE (I(0

12、)=0 AND EI=0)THEN A = 111; GS = 0; EO Y Y Y Y Y Y Y Y =01111111; END CASE; ELSE Y =11111111; END IF; END PROCESS;ENDdataflow; 总线显示方式的总线显示方式的3线线8线译码器线译码器74138仿真波形图仿真波形图 5.5 多路选择器多路选择器 使能使能 地地 址址 选选 择择 Y Y b G A2 A1 A0 1 0 1 0 0 0 0 D0 D0 0 0 0 1 D1 D1 0 0 1 0 D2 D2 0 0 1 1 D3 D3 0 1 0 0 D4 D4 0 1 0 1

13、 D5 D5 0 1 1 0 D6 D6 0 1 1 1 D7 D7 输入输入 输出输出74151 8选选1数据选择器真值表数据选择器真值表 参考参考74151的真值表,采用的真值表,采用IF语句结构编写的语句结构编写的VHDL源代码如下:源代码如下: LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY mux8_v2 IS PORT(A: IN STD_LOGIC_VECTOR (2 DOWNTO 0); D0,D1,D2,D3,D4,D5,D6,D7:IN STD_LOGIC; G:IN STD_LOGIC; Y: OUT STD_LOGIC;

14、YB:OUT STD_LOGIC);END mux8_v2;ARCHITECTURE dataflow OF mux8_v2 IS BEGIN PROCESS (A,D0,D1,D2,D3,D4,D5,D6,D7,G) BEGIN IF (G =1) THEN Y =0; YB =1; ELSIF(G=0AND A=000)THEN Y = D0; YB = NOT D0; ELSIF(G=0AND A=001)THEN Y = D1; YB = NOT D1; ELSIF(G=0AND A=010)THEN Y = D2; YB = NOT D2; ELSIF(G=0AND A=011)TH

15、EN Y = D3; YB = NOT D3; ELSIF(G=0AND A=100)THEN Y = D4; YB = NOT D4; ELSIF(G=0AND A=101)THEN Y = D5; YB = NOT D5; ELSIF(G=0AND A=110)THEN Y = D6; YB = NOT D6; ELSE Y = D7; YB = NOT D7; END IF; END PROCESS; END dataflow; IF语句结构语句结构8选选1数据选择器仿真波形数据选择器仿真波形 参考参考74151的真值表,采用的真值表,采用CASE语句语句结构编写的结构编写的VHDL源代

16、码如下源代码如下 LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY mux8_v3 IS PORT(A2,A1,A0: IN STD_LOGIC; D0,D1,D2,D3,D4,D5,D6,D7:IN STD_LOGIC; G:IN STD_LOGIC; Y: OUT STD_LOGIC; YB:OUT STD_LOGIC);END mux8_v3;ARCHITECTURE dataflow OF mux8_v3 IS SIGNAL comb: STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN comb Y = D0; YB

17、Y = D1; YB Y = D2; YB Y = D3; YB Y = D4; YB Y = D5; YB Y = D6; YB Y = D7; YB Y =0; YB B、A B) THEN YA =1; YB =0; YC =0; ELSIF(A B) THEN YA =0; YB =1; YC =0; ELSE YA =0; YB =0; YC =1; END IF; END PROCESS; END behave; 两个两个4位二进制数比较器的仿真波形位二进制数比较器的仿真波形 5.7 加法器加法器 加法器是数字电路中的基本运算单元,下加法器是数字电路中的基本运算单元,下例是直接利用

18、例是直接利用VHDL运算符运算符“+”实现加法运实现加法运算的算的8位加法器源代码。其中位加法器源代码。其中A和和B是两个相是两个相加的加的8位二进制数,位二进制数,Cin是低位进位位,是低位进位位,S是是A、B相加之和,相加之和,Co是是A、B相加之后的进位相加之后的进位位。位。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY adder8_v IS PORT(A :IN STD_LOGIC_VECTOR(7 DOWNTO 0); B :IN STD_LOGIC_VECTOR(7 D

19、OWNTO 0); Cin:IN STD_LOGIC; Co : OUT STD_LOGIC; S :OUT STD_LOGIC_VECTOR(7 DOWNTO 0);END adder8_v;ARCHITECTURE behave OF adder8_v IS SIGNAL Sint : STD_LOGIC_VECTOR(8 DOWNTO 0); SIGNAL AA,BB: STD_LOGIC_VECTOR(8 DOWNTO 0); BEGINAA =0& A(7 DOWNTO 0); -将将8位加数矢量扩展为位加数矢量扩展为9位,为进位提供空间位,为进位提供空间BB =0& B(7 DOWNTO 0); -将将8位被加数矢量扩展为位被加数矢量扩展为9位,为进位提供空间位,为进位提供空间 Sint = AA + BB + Cin; S(7 DOWNTO 0) = Sint(7 DOWNTO 0); Co = Sint(8); END behave; 8位加法器仿真波形位加法器仿真波形

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号