《第七章 组合逻辑电路设计精选PPT.ppt》由会员分享,可在线阅读,更多相关《第七章 组合逻辑电路设计精选PPT.ppt(50页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第七章组合逻辑电路设计第1页,本讲稿共50页定义:定义:任一时刻的输出仅仅取决于当时的输入,与电路原来的状态 无关,这样的数字电路叫做组合逻辑电路。常用组合逻辑电路有以下几种:概述概述1、各种基本门电路(与门、或门、非门、异或门)2、多选器(二选一、四选一、八选一、)3、编码器4、译码器5、奇偶校验器6、三态门7、缓冲器第2页,本讲稿共50页用自下至上的设计方法设计一个三人表决器用自下至上的设计方法设计一个三人表决器用自下至上的设计方法设计一个三人表决器用自下至上的设计方法设计一个三人表决器第一步,选择逻辑元、器件。我们选择与非门。第一步,选择逻辑元、器件。我们选择与非门。第二步,进行电路设计
2、。第二步,进行电路设计。列真值表列真值表列真值表列真值表画卡诺图化简并写出画卡诺图化简并写出画卡诺图化简并写出画卡诺图化简并写出逻辑函数表达式逻辑函数表达式逻辑函数表达式逻辑函数表达式画逻辑电路图画逻辑电路图画逻辑电路图画逻辑电路图第3页,本讲稿共50页组合逻辑电路设计方法(补充)组合逻辑电路设计方法(补充)1.1.设计步骤:设计步骤:(1 1)建立描述逻辑问题的真值表)建立描述逻辑问题的真值表分析题目所给的条件分析题目所给的条件找出问题的条件与目的及因果关系找出问题的条件与目的及因果关系确定输入、输出变量确定输入、输出变量列出真值表列出真值表(2 2)由真值表写出逻辑函数表达式;)由真值表写
3、出逻辑函数表达式;(如:用最小项积之和的形式)如:用最小项积之和的形式)(3 3)对输出逻辑函数进行化简)对输出逻辑函数进行化简(4 4)画出逻辑电路图)画出逻辑电路图 第4页,本讲稿共50页基本的门电路包括有“与”门、“或”门、“非”门、“与非”门、“或非”门、“异或”门等等,它门是构成逻辑电路的基础。7.1 简单门电路简单门电路第5页,本讲稿共50页设计实例设计实例设计实例设计实例1 1:2 2输入输入输入输入“与非与非与非与非”门电路设计门电路设计门电路设计门电路设计aby输入输出aby001011101110&第6页,本讲稿共50页设计方案设计方案设计方案设计方案1 1:LIBRARY
4、ieee;USEieee.std_logic_1164.all;ENTITYnand2_1ISPORT(a,b:INSTD_LOGIC;y:OUTSTD_LOGIC);ENDENTITYnand2_1;ARCHITECTUREnandOFnand2_1ISBEGINyyyyyy顺序处理语句;when分支条件=顺序处理语句;when分支条件=顺序处理语句;endcase;并置运算符“&”用于位的连接,构成了两位长度位矢量第8页,本讲稿共50页课堂练习请用VHDL设计一个三输入与非门。第9页,本讲稿共50页LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYN
5、AND3ISPORT(A,B,C:INSTD_LOGIC;Q:OUTSTD_LOGIC);ENDENTITYtest1;ARCHITECTURENANDOFNAND3ISBEGINQ Y Y Y Y Y Y Y Y=01111111;END CASE;ELSE Y 顺序处理语句;when分支条件=顺序处理语句;when分支条件=顺序处理语句;endcase;第15页,本讲稿共50页7.2 7.2 编码器编码器 用一组二进制代码按一定规则表示给定字母、数字、符号等信息的方法称为编码,能够实现这种编码功能的逻辑电路称为编码器。第16页,本讲稿共50页 输入输入 输出输出I0 I1 I2 I3 I4
6、 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 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 18 8线线3 3线编码线编码器器真值真值表表A2=I4+I5+I6+I7A1=I2+I3+I6+I7A0=I1+I3+I5+I7逻辑表达式:逻辑表达式:第17页,本讲稿共50页例:采用行为描述方式的例:采用行为描述方式的8线
7、线3线编码器线编码器VHDL源代码源代码(依据逻辑表达式)依据逻辑表达式)LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY coder83_v1 IS PORT(I0,I1,I2,I3,I4,I5,I6,I7:IN STD_LOGIC;A0,A1,A2:OUT STD_LOGIC);END ENTITY 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;
8、END CASE;END PROCESS;END ARCHITECTURE dataflow;第20页,本讲稿共50页优先编码器优先编码器优先编码器常用于中断的优先控制。当其某一个输入有效时,就可以输出一个对应的3位二进制码。另外,当同时有几个输入有效时,将输出优先级最高的那个输入所对应的二进制码。第21页,本讲稿共50页低电平有效input(0)优先级最高,input(1)优先级次之,如此类推,input(7)优先级最低第22页,本讲稿共50页LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY priorityencoder IS PORT(inp
9、ut:IN STD_LOGIC_VECTOR(7 DOWNTO 0);y:OUT STD_LOGIC_VECTOR(2 DOWNTO 0);END ENTITY priorityencoder;ARCHITECTURE rtl OF priorityencoder ISBEGIN PROCESS(input)IS BEGIN IF(input(0)=0)THEN y=“111”;ELSIF(input(1)=0)THENy=“110”;按行按行为数为数据流方式据流方式编写优编写优先先编码编码器的器的VHDLVHDL源代源代码码如下:如下:方法:利用方法:利用方法:利用方法:利用 if if i
10、f if 多选择语句自顶向下的优先特性多选择语句自顶向下的优先特性多选择语句自顶向下的优先特性多选择语句自顶向下的优先特性input(0)优先级最高,input(1)优 先级次之,如此 类 推,input(7)优 先级最低第23页,本讲稿共50页ELSIF(input(2)=0)THEN y=“101”;ELSIF(input(3)=0)THEN y=“100”;ELSIF(input(4)=0)THEN y=“011”;ELSIF(input(5)=0)THEN y=“010”;ELSIF(input(6)=0)THEN y=“001”;ELSEyA=“000”;因此不能用因此不能用CASE
11、CASE语句来描述语句来描述7414874148,而采用,而采用IFIF语句对语句对7414874148进行了逻辑描进行了逻辑描述。述。第25页,本讲稿共50页7.3 7.3 选择器选择器在多路数据传送过程中,能够根据需要将其中任意一路选出来的电路,叫做数据选择器,也称多路选择器或多路开关。第26页,本讲稿共50页8选选1数据选择器设计数据选择器设计YbD7D71110D6D60110D5D51010D4D40010D3D31100D2D20100D1D11000D0D0000010XXX1A0A1A2GY地址选择使能输出输入74151 874151 8选选1 1数数据据选择选择器器真值真值表
12、表第27页,本讲稿共50页 参考参考7415174151的真值表,采用的真值表,采用IFIF语句结构编写的语句结构编写的VHDLVHDL源代码源代码如下:如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY mux8 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;YB:OUT STD_LOGIC);END ENTITY mux8;ARCHITECTURE dataflow O
13、F mux8 IS BEGIN PROCESS(A,D0,D1,D2,D3,D4,D5,D6,D7,G)IS用用IF语句设计语句设计8选选1选择器选择器第28页,本讲稿共50页 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)THEN Y=D3;YB=NOT D3;用用IF语句设计语句设计8选选1选择器(续)选择器(续)
14、多选择控制的IF语句格式:IF 条件条件 THEN 顺序处理语句;顺序处理语句;ELSIF 条件条件 THEN 顺序处理语句;顺序处理语句;ELSIF 条件条件 THEN 顺序处理语句;顺序处理语句;ELSE 顺序处理语句;顺序处理语句;END IF;第29页,本讲稿共50页 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 A
15、RCHITECTURE dataflow;用用IF语句设计语句设计8选选1选择器(续)选择器(续)第30页,本讲稿共50页 参考参考74151的真值表,采用的真值表,采用CASE语句结构编写的语句结构编写的VHDL源代源代码如下码如下 LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY mux8 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 ENTITY mu
16、x8;ARCHITECTURE dataflow OF mux8 IS SIGNAL comb:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGIN comb Y=D0;YB Y=D1;YB Y=D2;YB Y=D3;YB Y=D4;YB Y=D5;YB Y=D6;YB Y=D7;YB Y=0;YB=1;END CASE;END PROCESS;END ARCHITECTURE dataflow;用用CASE语句设计语句设计8选选1选择器(续)选择器(续)第33页,本讲稿共50页 其中其中:A和和B是两个相加的是两个相加的8位二进制数位二进制数;Cin是低位进位位是低位进位位;
17、S是是A、B相加之和相加之和;Co是是A、B相加之后的进位位。相加之后的进位位。7.4 加法器加法器 加法器是数字电路中的基本运算单元,下例是直接利用VHDL运算符“+”实现加法运算的8位加法器源代码。第34页,本讲稿共50页 输输 入入 输输 出出CIABSCO0000000110010100110110010101011100111111全加器全加器真值真值表表第35页,本讲稿共50页LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY adder8 IS PORT(A:IN STD_
18、LOGIC_VECTOR(7 DOWNTO 0);B:IN STD_LOGIC_VECTOR(7 DOWNTO 0);Cin:IN STD_LOGIC;Co:OUT STD_LOGIC;S:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);END ENTITY adder8;声声声声明明明明了了了了IEEEIEEE库库库库中中中中的的的的包包包包集集集集合合合合STD_LOGIC_UNSIGNESTD_LOGIC_UNSIGNED D,才才才才能能能能对对对对STD_LOGIC_VECTORSTD_LOGIC_VECTOR类型数据进行加减运算类型数据进行加减运算类型数据进行加减
19、运算类型数据进行加减运算把两位输入A,B分别定义成8位二进制数,输出S也定义成8位二进制数,低位进位和高位进位定义为1位逻辑位带进位的带进位的8位加法器设计位加法器设计第36页,本讲稿共50页 ARCHITECTURE behave OF adder8 IS SIGNAL Sint:STD_LOGIC_VECTOR(8 DOWNTO 0);SIGNAL AA,BB:STD_LOGIC_VECTOR(8 DOWNTO 0);BEGIN AA=0&A(7 DOWNTO 0);BB=0&B(7 DOWNTO 0);Sint=AA+BB+Cin;S(7 DOWNTO 0)=Sint(7 DOWNTO
20、0);Co=Sint(8);END ARCHITECTURE behave;将将8位位加加数数矢矢量量扩扩展展为为9位,为进位提供空间位,为进位提供空间带进位的带进位的8位加法器设计(续)位加法器设计(续)第37页,本讲稿共50页7.5 求补器求补器 求二进制数的补码求二进制数的补码,直接用直接用RTLRTL描述比较简描述比较简洁方便洁方便:第38页,本讲稿共50页7.6 7.6 三态门三态门三态门,是指逻辑门的输出除有高、低电平两种状态外,还有第三种状态高阻状态的门电路。高阻态相当于隔断状态。三态门都有一个EN控制使能端,来控制门电路的通断。利用三态门可以方便地将输出端连接到总线。第39页,
21、本讲稿共50页三态门电路第40页,本讲稿共50页结构体中是一个进程语句,而进程语句中利用IF语句的二选择语句来描述三态门。en是使能端口。高阻状态Z,必须大写。if 条件条件 then 顺序处理语句;顺序处理语句;else 顺序处理语句;顺序处理语句;end if;第41页,本讲稿共50页卫式块结构描述三态门:卫式块结构描述三态门:CASE语句描述三态门:语句描述三态门:注意:一个实体可以对应多种构造体。注意:一个实体可以对应多种构造体。卫式块语句的格式:BLOCK 卫式布尔表达式卫式布尔表达式当卫式表达式为真时,该BLOCK语句被启动执行。注意:注意:BLOCK语句中所描述的各个语语句中所描
22、述的各个语句是可以并行执行的。句是可以并行执行的。第42页,本讲稿共50页7.7 7.7 单向总线缓冲器单向总线缓冲器单向总线缓冲器单向总线缓冲器 在计算机的总线驱动中经常用单向总线缓冲器,通常由多个三态门组成,用于驱动地址总线和控制总线。左图是一个8位单向总线缓冲器。它由8个三态门组成,具有8个输入端和8个输出端。所有三态门的控制端连一起,由一个控制输入端en控制。第43页,本讲稿共50页“ZZZZZZZZ”是高阻总是高阻总线状态线状态第44页,本讲稿共50页卫式块描述单向总线缓冲器:卫式块描述单向总线缓冲器:第45页,本讲稿共50页CASE语句描述单向缓冲器:语句描述单向缓冲器:第46页,
23、本讲稿共50页在编写上述程序时候应注意,不能将不能将“Z”值赋予变量值赋予变量,否则就不能进行逻辑综合。另外,对信号赋值时“Z”和“0”或“1”不能混合使用,如:dout=“Z001ZZZZ”;-错误但如果变化赋值表达式,分开赋值时可以的。将上例分开赋值如下:dout(7)=“Z”;dout(6DOWNTO4)=“001”;dout(3DOWNTO0)=“ZZZZ”;第47页,本讲稿共50页7.7 双向总线缓冲器双向总线缓冲器双向总线缓冲器用于对数据总线的驱动和缓冲。图中双向缓冲器有两个数据输入输出端a和b,一个方向控制端dr和一个选通端en。当en=1时双向总线缓冲器未被选通,a和b都呈现高阻;en=0时,缓冲器选通,如果dr=0,那么a=b;如果dr=1,那么b=a。第48页,本讲稿共50页端口a和b数据类型是INOUT“ZZZZZZZZ”是高阻总线是高阻总线状态状态利用aout和bout将两组三态门连接起来第49页,本讲稿共50页构造体中有两个个进程存在,各PROCESS之 间 并 发执 行。而 每 个PROCESS结 构 中 的语句是按顺序执行的。第50页,本讲稿共50页