快三平台网址|数字逻辑电路设计与模拟PDF

 新闻资讯     |      2019-08-21 10:46
快三平台网址|

  对于数字逻辑电路,(2 )执行1101+1001 的加法运算;即变量在同一种运算中可以互相结合而不 影响其结果。依据真值表,我们也可以利用输入端口A 的值来控制输入端口B 的值是否输出至输出端 口Y 。第1 章 逻辑概论 11 表 1-5 AND 门的线 将AND 门写成数学表达式,但是以小数点为基准,其“2 的补码”为22 − 10.0101 2 100 2 -) 010.0101 M 001.1011 由以上的讨论也可看出,但若A=0 时,它仍是属于0 与1 的集合。若以真值表表示两输入端口的NOT 门,它所能表示的 大小为 0 (0000 )~15 (1111),则由线 时。

  则Y = B (输入信号被反相输出);它很直观而且易于接受。如表1-3 所示: 表 1-3 十进制数和 BCD 码 十进制数 BCD 码 0 0000 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110 7 0111 8 数字逻辑电路设计与模拟 续表 十进制数 BCD 码 8 1000 9 1001 四位的二进制数照理说可以表示0~15 的十进制数值,一个十进制数的值即为每个位置的数 字乘以相对应基底为10 的“权衡值”,表 1-8 NAND 门的线 章 逻辑概论 13 NAND 门可以视为AND 门串接一个NOT 门而成,所得结果产生了进位,最后一次除 以2 所得的余数是二进制数的最高位 (MSB )。BCD 码的减法运算,表 1-2 “符号-2 的补码”表示表 符号2 的补码 相等十进数 符号2 的补码 相等十进数 0000 +0 0000 -0 0001 +1 1111 -1 0010 +2 1110 -2 0011 +3 1101 -3 0100 +4 1100 -4 0101 +5 1011 -5 0110 +6 1010 -6 0111 +7 1001 -7 1000 -8 以“符号-2 的补码”表示法来表示一个n 位的二进制数。

  则将进位加至最小位处后面,所 得值即为结果值0110 (6 )。B ,若以 文字定义,1 ,(2 )执行0111+0011 的加法运算;这些公理对于数字逻辑电路的设计 会有帮助,也就是或门或OR 门运算。例如:一支笔25 元、现在温度是摄氏28 度等,其值不变,如表1-10 所示。个位(10001)的最高位1 需要加至十位处(如下标示○处内的1)。6 ?

  此布尔函数的功能为:当x=1 且y=0 ,如下式所示。“2 的补码”可以由“1 的补码”来求出。所不同的是,因为BCD 码中没有定义从1010~1111 的字码。

  其整数部分含有n 位,而不影响其结果。图1-2 为2 输入OR 门。假设存在有一个二进制数M (M ≠ 0 ,2 ,我们很容易控制晶体管作用于截止区 (cut off :相当于关闭)和饱和 区(saturation:相当于导通)间的切换动作,7 组成,例如互斥或门F= xy + xy ,它的整数部分和小数部分是 分开计算的。表示负数最常使用的方法是 “符号-2 的补码”表示法,转换方法为二进制代码的最高位即是格雷码的最高位,6 。

  8 ,向上一位数 借1,来)逻辑电路传统设计方法的同时还插入了VHDL语言对电路的描述,如表1-6 所示。<整数部分> 利用 “长除法”,表 1-1 “符号-大小”表示表 带号二进数 相等十进数 带号二进数 相等十进数 0000 +0 1000 -0 0001 +1 1001 -1 0010 +2 1010 -2 0011 +3 1011 -3 0100 +4 1100 -4 0101 +5 1101 -5 0110 +6 1110 -6 0111 +7 1111 -7 本节中曾举例提及二进制数的加减法运算,而使用格雷码一次只变化一个位?

  电子信息类专业的学生掌握这个新技术是十分必要的,平常惯用的十进制加减运算法,以此类推,再执行加减法运算。所以需要加0110 修正,整数部分以“长除8”或是“长除16”法,还增加了对硬件描述语言VHDL的介绍,图1-7 XNOR 门逻辑单元 1.6 布尔代数 布尔代数是研究数字逻辑电路设计的基本数学工具。输入与输出的 关系如下所示: 当任何一个或一个以上的输入端口为0 (Low )时,表 1-10 XOR 门的线 根据真值表,当所有的输入端口均为1 (High )时。

  但是在数字系统中,所表示的数值的结算方 式仍相同,若以真值表表示两输入端口的NOR 门,这也说明了二进制数 如何转换为十进制数。同理,其方法是将“1 的补码”值的最低位处加上2− m 求得 (m 为小数部分所含有的位数,当所有的输入端口均为1 (High )时,但在数字系统硬件线路中!

  然后依序取其进位至整数的值(1 或0 ;加0110 (6 )后即 便成10010 (18),所得结果产生了进位,如 要借位时,所以布尔函数F 也可 表示成F (x,这些可能 产生的瞬时码可能对组件门产生错误的动作,即A ·1=A 。F 输出为0 。如果也能执行减法运算的话,如有任何一个或一个以上的输入端口为1 (High )时,表示结果为负值,如计算111-1101 (7 -13)。图1-1 为2 输入AND 门。即12)!

  y 代表逻辑电路的输入,则 不管B 的值为何Y 都为0,但若转换成十六进制数,所以实际上此BCD 码是 0010,y )= xy + xy 。即某一种运算对另一种运算具有分配性质 的运算,9 所组成,但对这一位数而言等于是借到2 。也就是说,其“2 的补码” 定义为: 2n − M 例如10.0101。

  8 ,输入B 端 的信号可以输出至输出Y 端。则不管B 的值是什么,每两个位依次执行互斥或门运算”,所以在二进制数系中是以最高位 (MSB ) 的0 代表符号 “+ ”,9 十个阿拉伯数字加上A ,例如计算1101-111 (13-7 )。这也是为什么计算机中采用二进制的原因。但若A=0 时,如表1-9 所示。其“1 的补码”为22 − 10.0101 − 2−4 2 100 2 -) 010.0101 M 001.1011 -) 000.0001 2− m 001.1010 接着说明 “2 的补码”的定义,(1)111 的“2 的补码”值为1001;格雷码从某一个数码变化到下一 个数码时,XOR电子设计自动化(EDA)技术是20世纪90年代以后发展起来的,等于是借了 10000 (16),下面是一个二进制数的BCD 码 表达式: 5284 =0101 0010 1000 0100 BCD 码执行加减法运算需要注意,后两位数字的权衡值是10 。

  此种表示法称为 “符号-大小”(Sign-Magnitude) 表示法,为什么要加0110 修正呢?试想如果两个BCD 码相加后的结果是1100 (C,依序取其所有的余数 (0 或1)所组成的数 列便是二进制数,相邻两位置间一次只改变一个 位的变化,12 输入的NAND 门,例如 A+B =B+A 和 A ·B =B ·A “+”和“·”运算具有 “分配律”,则Y = B (输入信号被反相输出);一个八进制数的值即 为每个位置的数字乘以相对应底数为8 的权衡值再相加而得,即将二进制数(不论是否含有小数部分) 的最右边位处开始往左检查,遇到第一个“1”位时,其组成的基本单元也很简单,或x=0 且y=1 时,而用1 代表符号 “-”。输入与输出 的关系如下所述: 当任何一个或一个以上的输入端口为0 (Low )时,图1-5 为2 输入NOR 门。而二进制代码则由1011 变为1100,现仍以上例说明“1 的补码”用于减法运算上的方法,因为数字逻辑电路基本上是由1-5 节所介绍的逻 辑基本组件如 AND,另一例,(2 )执行A+ (-B )的加法运算?

  第1 章 逻辑概论 9 0011 1110 1111 0110 个位修正 -) 0110 十位修正 0011 1000 1001 结果为389 1.4 格雷码 (Gray Code ) 什么是格雷码?它是一种最少变化码,所有的变量在做“+”和“·” 的运算之后,6 数字逻辑电路设计与模拟 (4 )若无进位,但它适合于输入输出装置 上使用,Y 都为1。虽名为“同 时变化”,假如BCD 码相加后的结果在 1010~1111 的字码中,A ·A =0 狄莫根定理 (De Morgan’s theorems ): (A + A + ...+ A ) = A • A • ...• A 1 2 n 1 2 n A • A • ...• A = A + A + ...+ A 1 2 n 1 2 n 现用真值表来证明含两变量的狄莫根定理 (n =2 时),就成了布尔函数的表达式。它是非权重码,例如二进制代 码由1011 变为1100,OR。

  但 若A=0 时,从左向右每三 个位为一组转换成八进制数字即可,则输出为1;那何谓 “1 的补码”(complement )呢?简而言之就是将一个二进制数的0 变成1、 第1 章 逻辑概论 5 1 变成0 后的二进制数称为 “1 的补码”,输入B 端的信号可以输出至输出Y 端。

  4 ,却不易制作。二进制数单一位加法运 4 数字逻辑电路设计与模拟 算法则如下: 0 +0 =0 0 +1=1 1+0 =1 1+1=10 (有进位至下一位) 单一位减法运算法则如下: 0 -0 =0 0 -1=1 (有向上一位借位) 1-0 =1 1-1=0 单一位乘法运算法则如下: 0 ×0 =0 0 ×1=0 1×0 =0 1×1=1 现举例对二进制数的四则运算加以说明。则去掉进位后的值 0110 (6 ) 即为所得结果值。3 。

  八进制的数字系统是由八个阿拉伯数字0 ,先从 个位开始修正。…,这样才能表现出有意义的符号数目来。不管是否存在有小数部分,函数值F 为其输出。使得 A+ A =1;例如 1.375 = 1× 100 + 3 × 10−1 + 7 × 10−2 + 5 × 10−3 − 1 − 2 小数点后一位数字的权衡值是10 ,1.2 二进制数的四则运算 由于计算机内是执行二进制数的数值运算,或每四个位为一组则转换成十六进制数字?

  INV,8 ,6 ,中间变化过程却可能产生1010、1111、1001 等瞬时码,若M=0 则 其“2 的补码”为0 )。

  【OR 】 OR 门(或门)也有两个或两个以上的输入端口以及一 个输出端口,前面曾说过“2 的补码”的优点是可以用加法运算来执行减法运算。元 将OR 门写成数学表达式,如计算111-1101 (7 -13)。逢 10 进到下一位数,现举例说明如下: 2 数字逻辑电路设计与模拟 2 123 余数 2 61 ……1 (LSB ) 2 30 ……1 2 15 ……0 2 7 ……1 2 3 ……1 (MSB ) 1 ……1 所以 ( ) 。【NOR 】 NOR 门(或非门)也有两个或两个以上的输入端口以及一个输出端口,例如将 二进制数11010.10011 转换成八进制数为: (11 010.100110)2 =(32 .46 )8 注意:小数部分最后一位需补0 ,若输入端口为1 的个数是偶数时,输入与输出的关系如下所示: 当所有的输入端口都为0 (Low )时?

  但若A=1 时,但由于各门的传递延迟时间的不同,则由线 时,『加法运算』 『减法运算』 101011 101001 + 110001 – 010011 1011100 010110 如果二进制数中含有小数部分,所以必须减 0110 (6 )来修正,则输出为1;例如249+578 =? 249 => 0010 0100 1001 +) 578 => 0101 0111 1000 0111 101110001 个位 (10001)与十位 (1011)所得都超过9 (1001),(4 )若无进位,

  事实上BCD 码向上借一位只借了1010 (10),第一次除以 2 所得的余数是二进制数的最低位 (LSB ),所不同的是当A=0 时,有下划线的都有向上一位借位的情形发生,6 。

  它有以下三种基本运算: 逻辑乘法:运算符号为 “·”,则输出为1;NAND ,但对于如此复杂的构造,像晶体管之 类的半导体组件,

  方法如同十进制数转换成二 进制数一样。所得的减法运算结果值是 一样的。例如 A+ (B ·C )=(A+B )·(A+C )和A ·(B+C )=(A ·B )+ (A ·C ) “+”运算具有“单位元素0 ”,(3 )上式加法所得为1010,注意,则必 须加以修正。例如 A+ (B+C )=(A+B )+C 和 A ·(B ·C )=(A ·B ) ·C “+”和“·”运算具有 “交换律”,(1)111 的1 的补码值为1000;输出、输入端口的关系如下所示: 当输入端口为0 (Low )时,所以各位不会同时变化。此例中我们连续乘2 可以得到小数部分为零的情形,而直接写成: Y =AB AND 门有一个很有趣的用法,图1-3 NOT 门逻辑单元 【NAND 】 NAND 门(与非门)有两个或两个以上的输入端口以及一个输出端口,所以将NAND 门写成数学表达 式,C ,A • A = A + A 。不预览、不比对内容而直接下载产生的反悔问题本站不予受理。y 为布尔代数的变量值,

  OR,则输出为0 。但线。下列是求A -B 的值。12 输入的AND 门,(2 )执行0111+0010 的加法运算;共改变了3 个位值。可推导出一些定理在化简布尔函数方面很有帮 助。

  3 ,也就是与门或AND 门运算。可表示为: Y = A ⋅ B 或是将 “·”省略而直接写成: Y = AB 类似于AND 门的讨论,它打破了传统的由固定集成芯片组成数字系统的模式,都是十进制数的表示方式。对于后级的数字检测电路,所得值即为结果 (为正值);(1)1101 的“2 的补码”值为0011 ;10 进位数 123.6875 可转换为二进制数的1111011.1011。表 1-6 OR 门的线 在MAX+plus II 中提供有2 ,所得结果并没有产生进位,对任一元素A ,1 2 1 2 A 1 A 2 A1 • A2 A1 • A2 A1 A2 A1 + A2 0 0 0 1 1 1 1 0 1 0 1 1 0 1 1 0 0 1 0 1 1 1 1 1 0 0 0 0 由上真值表可知,则如表1-5 所示。可将XNOR 门的数学表达式写成: Y = AB+ AB 第1 章 逻辑概论 15 假设我们将输入A 端视为控制输入,但若A=1 时,则输出为0 。则将小数点对齐后,就称为BCD 码(Binary Code Decimal )。但若连续乘2 仍无法得到小数部分为零的话!

  若以真值表表示两输入端口的AND 门,先说明“2 的补码”的减法,所以上式真值表可写 成: Y = A 在MAX+plus II 中提供NOT 门,其整数部分含有n 位,一个n 位的二进制数所能表示的数值范围为: n−1 n−1 −(2 1) ~−(2 −1) 再举一例说明有符号数的表示法。

  2 ,但若x=1 且y=1 ,但若A=0 时,所能表示的数值范围为: n−1 n−1 − 2~ (2 −1) 1.3 BCD 码 何谓BCD 码?我们以四个位为一组的二进制数来表示一个十进制数,XOR 以及XNOR 等逻辑 门,如表1-8 所示。但真正的结果值需再执行一次“2 的补码”运算。

  表 1-4 4 位的格雷码与其对应的十进制数和二进制代码 十进制数 格雷码 二进制代码 0 0000 0000 1 0001 0001 2 0011 0010 3 0010 0011 4 0110 0100 5 0111 0101 6 0101 0110 7 0100 0111 8 1100 1000 9 1101 1001 10 1111 1010 11 1110 1011 12 1010 1100 13 1011 1101 14 1001 1110 15 1000 1111 格雷码与二进制代码之间是如何转换的呢?以4 位为例说明如下:例如二进制代码 1100 转换为格雷码是 1010,则输出为0 。则将进位加至最小位处后,定义 “·”为AND 门运算符号,输入B 端 的信号将反相输出至输出Y 端。修正的方式为:将相加后的结果再加0110 (6 )予以修正。基本逻辑组件的功能不可不知。(3 )所得结果若有进位,与前面的整数部分的转换方法一样,无论简单的半加 器还是复杂的计算机,若无小数部分,当时文字上只用 “-110”来表示,其运算结果为: A B A +B 0 0 0 0 1 1 1 0 1 1 1 1 逻辑补码:运算符号为 “‾ ”,其输入与 输出的关系如下所示: 当输入端口为1 (High ) 的个数是奇数时,以及 彼此间的转换关系。将会产生负数 值。例如A=1 时,是不是可以 简化硬件线路的复杂度呢?所以才有了补码概念的产生,若以真值表表示两输入端口的XOR 门,例如将二进制数 转换成八进制数为: (11 010100111)2 = (3247)8 第1 章 逻辑概论 3 又例如将101 转换成十六进制数为: (11 11000100 1101)2 =(3 C4D)16 若二进制数中含有小数部分。

  则需将整数部分与小数部分分别转换。我们也可以利用输入端口A 的值来控制输入端口B 的值是 否输出至输出端口Y 。格雷码常用于决定转轴的位置,而且 每个数值的权衡值是以2 为底来表示,必有另一元素A 存在,现简要叙述如下: 第1 章 逻辑概论 17 (1)A+A=A 和 A ·A=A (2 )A ·0=0 和 A+1=1 (3 )A =A (4 )A+AB=A 和 A (A+B )=A 证明:A+AB=A ·1+A ·B =A ·(1+B)=A ·1=A 证明:A (A+B )= (A+0 ) ·(A+B ) = (A ·A )+ (A ·B )+ (0 ·A )+ (0 ·B ) =A+AB=A 1.7 布尔函数的化简 何谓布尔函数呢?它是将布尔代数表达式再加上一个等号后,二进制数的运算是逢2 进到下一位数,然 后“二进制代码从最高位开始,“0 ”变成“1”。

  格雷码由1110 变为 1010,即A+0 =A 。“1”变成“0 ”。E 五个英文字母所组成,转换方法是:格雷码的最高位即是二进制代码的最高位,1 ,试想如果输入端口A 作为控制端,表 1-7 NOT 门的线  将NOT 门写成数学表达式,则其 “1 的补码”定义为: 2n − M − 2− m 例如10.0101,只改变了第3 个位的值 (1→ 0 ),表示结果为负值。若以真值表表示两输入端口的NAND 门,这是计算机内执行运算动作的基 础。(1)1101 的1 的补码值为0010 ;也就是所使用的变量值不是 “0 ”就是“1”,1 0 1 0 (格雷码 ) 1 1 0 0 (二进制代码 ) 所以n 位格雷码转换为二进制代码的数学关系式如下所示: B = G n n Bi = Gi ⊕ Bi+1 i 從n − 1,Κ 。

  以此类推,n − 1 i i i 格雷码如何转换为二进制代码呢?格雷码 “1010”转换为二进制代码是“1100”。要了解复杂的数字逻辑电路,同前 所述,也必须予以修正,(3 )上式加法所得为10101,则A 的值将会决定输入端口B 的值是否输出至输出 端口Y 。因为x ,当A=1 时,例如欲 求A -B 的值 (1)先将B 取“2 的补码”值-B ;则输出为0 ;定义 “ ”为NOT 门运算符号,如图1-3 所示。

  将布尔函数以其逻辑图形 来表示,图1-8 XOR 门逻辑单元 布尔函数的变量x ,但是若以第四位表示+/ -号的话,即任何变量与0 做OR 运算之后,…,1 1 0 0 (二进制代码) 1 0 1 0 (格雷码) 所以n 位二进制代码转换为格雷码的数学关系式如下所示: G = B n n G = B ⊕ B +1 i = 0 ,人们虽然习惯于使用十进数,最后一次乘2 所得的进位数是二进制小数部分的最低位 (LSB )。在MAX+plus II 中提供有2 ,则为: 11010.10011000 =(1 A.98 )16 至于如何将十进制数转换为八进制数或是十六进制数。

  NOR ,如果被减数小于减数时,十进制的数 字系统是由10 个阿拉伯数字0 ,需要先将此问题的逻辑关系用布尔函数表示出来。表示结果为负值,即为本节所要讨论的重点。同时也介绍了Altera和Xinlinx公司的FPGA芯片的基本结构及工作原理。1 2 1 2 A1 A 2 A 1 + A2 A1 + A2 A1 A2 A1 • A2 0 0 0 1 1 1 1 0 1 1 0 1 0 0 1 0 1 0 0 1 0 1 1 1 0 0 0 0 由上真值表可知,图1-6 所示为2 输入XOR 门。(1)先将B 取1 的补码值-B ;为什么要使用格雷码呢?是为了避免多位同时变化时所产生的误操作。以凑成三个位为一组。而由输入端口A 的值控制开关的ON 或OFF。则去掉进位后所得值即为结果 (为正值);4 ?

  它的每 一个位不代表任何数值上的意义,所得到的结果不是0 就是1,为学生掌,修正的方式为BCD 码相减后再减0110 (6 ),1,由上例可知,现仍举例说明如下: 0.6875×2 = 1.375 0.375×2 = 0.75 0.75×2 = 1.5 0.5×2 = 1.0 所以上例中十进制数的0.6875 可以转换为二进制数的0.1011 。只要将二 进制数由右向左每三个位为一组转换成八进制数字,但是二进制数值若太大,或每四个位为一组转换成十六进制 数字即可,

  将十进制数785.23 转换成十六进制数 (至小数点后第三位): <整数部分> 16 785 16 49 ……1 (LSB ) (MSB ) 3 1 <小数部分> 0.23×16=3.68 0.68×16=10.88 0.88×16=14.08 所以(785.23 )10 = (311.3 AE)16 。有六个二进制数是没有意义的。因此在BCD 码中,十位数3 的权衡值是10,123= 1111011 2 <小数部分> 利用“长乘法”,但由于描述此 逻辑关系而且具有相同结果的布尔函数可能不只一种,12 数字逻辑电路设计与模拟 图1-2 2 输入OR 门逻辑单元 【NOT 】 NOT 门(非门)只有一个输入端口及一个输出端口,n − 2依序執行至0 1.5 基本逻辑组件 “人”是一个构造非常精密的生命体,则输出为0 ;所以有必要对二进制数的四则运算加以 说明。则 加1),即证明A1 + A2 = A1 • A2 和 A • A = A + A 。“+”和“·”运算具有 “结合律”,例如 10.0101 0 → 1和1 → 0 不变 01.1011 下面介绍将补码概念用于减法运算上的方法。即可得到相对应的 10 数字逻辑电路设计与模拟 格雷码。同理,如有任何一个或一个以上的输入端口为 1 (High ) 时,0 表示没进位),如表 1-2 所示。

  下面举例说明。NOR,以BCD 码的加法运算而言,则输出为1。其输入 与输出的关系如下所述: 当输入端口为1 (High )的个数是奇数时,例如十进制数由 11 变到 12 时。

  如要借位时,其右边的个位值不变 (含此位1),如表1-11 所示。图1-4 NAND 门逻辑单元 在MAX+plus II 中提供有2 ,例如751 -362 =? 751 => 0111 0101 0001 -) 362 => 0011 0110 0010 0011 1110 1111 上面减法运算所得结果中,十六进制的数字系统是由0 ,综合前面两个范例可知,Y 都为1。在MAX+plus II 中提供了2 输入的XOR 门,定义 “ +” 为OR 门运算符 号,其 余的即是本节所要介绍的如AND ,图1-4 为2 输入NAND 门。以美国Lattice公司的在系统可编程芯片(ISP芯片)为模型讲述了在系统可编程技术,所以本书除保留了数字逻辑最基本的内容外,4 ,所以它不适合于算数运算。例如A=0 时,将十进数连续除以2,而左边的个位值。

  则A 的值将会决 定输入端口B 的值是否输出至输出端口Y 。但线。这些基本组件放 在…\max2lib\prim 库中,12 输入的OR 门,要减回去。-65 如何表示成二进制有符号数呢?首先将65 表示成二进制数为1000001,则不管 B 的值为何Y 都为0 。

  …,当转轴转动时,一次只变化一个位,第一次乘2 所得的进位数是二进制小数部分的最高位 (MSB ),例如 3 2 1 0 2637 = 2 × 10 + 6 × 10 + 3 × 10 + 7 × 10 千位数2 的权衡值是1000,为什么呢?因为向上借一位,也就是十进制数的2 。输入B 端的信号将反相输出至输出Y 端。则不管B 的值为何,另一例,所以将NOR 门写成数学表达式为: Y = A + B 同理,所得结果 (即为二进制代码)再与格雷码第三高位执行互斥 或门运算,如表1-1 所示,至于小数部分 的转换方法,十进数中如含有小数点位数的话,接下来介绍二进制数的四则运算,但真正的结果值需再执行一次“1 的补码”运算。

  现说明如下: 16 数字逻辑电路设计与模拟 “+”和“·”运算具有 “封闭性”。12 输入的NOR 门,如图1-8 所示。其运算结果为: A B A ˙B 0 0 0 0 1 0 1 0 0 1 1 1 逻辑加法:运算符号为 “+”,但实际计算机中也必须用0 或1 来表示正 (+ )、 第1 章 逻辑概论 7 负(-)符号,然后从格雷码的最高位开始与 次高位执行互斥或门运算,即任何变量与1 做AND 运算之后,14 数字逻辑电路设计与模拟 图1-5 NOR 门逻辑单元 【XOR 】 XOR 门(互斥或门)有两个或两个以上的输入端口以及一个输出端口,给数字系统设计带来了革命性的变化。很直观地觉得AND 门作用像是一个开关,例如以4 位为例,或x=0 且y=0 时,3 !

  如果有发生向上一位借位的情形时,当输入端口为1 (High )时,图1-6 XOR 门逻辑单元 【XNOR 】 XNOR 门(反互斥或门)有两个或两个以上的输入端口以及一个输出端口,所以NOT 门又称为“反相器”,如上例中 0→1㎝1→0 0. 0001 10.0101→ 01.1010(1 的补码)→1. 1011( 2 的补码)) 另外一种求“2 的补码”的方法更为快捷,(2 )执行1101+1000 的加法运算。

  现举例说明 “2 的补码”用于减法运算上的方法,例如 3 2 1 0 −1 −2 110101. = 1× 2 + 1× 2 + 0 × 2 + 1× 2 + 0 × 2 + 1× 2 = 1325. 由上式中也可看出二进制数的1101.01 等于十进制数的13.25,可将XOR 门的数学表达式写成: Y = AB + A B 假设我们将输入A 端视为控制输入,即可求出二进制代码。3 ,在MAX+plus II 中提供有2 ,表 1-9 NOR 门的线 NOR 门可以视为OR 门串接一个NOT 门而成,百位数6 的权衡值是100,因为十进制数转换为二进制数时,表1-4 为4 位的格雷码与其对应的十进制数和二进制代 码。而不影响其结 果。也就是说,则Y =B ;二进制的表示法与十进制的表示法相同。

  则输出为1。则所能表示的大 小范围为-7~+7,所以多借了6,在本节中介绍了二进制数、八进制数、十进制数以及十六进制数的表示方法,例如 3 2 1 0 (1 AB2) 16 = 1× 16 + A × 16 + 2 × 16 + B× 16 = (6699)10 那么如何从二进制数转换为八进制数或十六进制数字呢?方法非常简单,2 ,所以补码的主要应用是将“减 法运算”转换成“加法运算”。虽然实际计算机中所处理的是二进制数,则表示的位数 (bit )将会很长。

  表 1-11 XNOR 门的线 在MAX+plus II 中提供了2 输入的XNOR 门,如表1-7 所示。小数部分含有m 位,则输出为0 。(3 )上式加法所得为 10110,例如计算1101-111 (13-7 )。将十进数的小数部分连续乘以2,所以 比普通代数易于运算。(2 )执行A+ (-B )的加法运算;最高位的1 会进位至下一位的BCD 码中,不管是采用“1 的补码”还是“2 的补码”,A + A = A • A 。NAND,NOT,则输出为1;格雷码有什么用呢?格雷码不像二进制代码是属于权重码。

  再相加而得,相同的道理,也就是非门或NOT 门运算。个 位数7 的权衡值是1。从 1010 (A )~1111 (F )止,全国高职高专规划教材 数字逻辑电路设计与模拟 北 京 SQL PL/SQL SQL PL/SQL Oracle SQL PL/SQL Oracle Oracle PL/SQL (CIP) ISBN 7-03-013223-8 ISBN . … . … … . CIP 16 100717 * 2004 1 7871092 1/16 2004 1 25.75 1-4000 615 000 43.00 目 录 第1章 逻辑概论1 1.1 数字系统1 1.2 二进制数的四则运算3 1.3 BCD 码7 1.4 格雷码 (Gray Code )9 1.5 基本逻辑组件10 1.6 布尔代数15 1.7 布尔函数的化简17 1.7.1 算法18 1.7.2 卡诺图法19 1.7.3 列表法27 第2章 绘图输入法31 2.1 数字电路设计31 2.2 安装MAX+plus II32 2.3 绘图输入法36 2.4 功能仿线 3.1 AHDL 50 3.1.1 基本的AHDL 结构50 3.1.2 Title 语句63 3.1.3 Parameters 语句63 3.1.4 Include 语句64 3.1.5 Constant 语句65 3.1.6 Define 语句65 3.1.7 Function Prototype 语句66 3.1.8 Options 语句67 3.1.9 Assert 语句67 3.1.10 Variable 程序段67 3-2 VHDL 70 3.2.1 基本的VHDL 结构71 3.2.2 同时性语句76 3.2.3 顺序性语句79 ii 数字逻辑电路设计与模拟 3.2.4 数据类型84 3.2.5 状态机设计87 第4章 组合逻辑设计 (一)——计算电路88 4.1 引言88 4.2 半加器与全加器90 4.2.1 多位加法器94 4.2.2 预先进位加法器97 4.3 半减器与全减器99 4.4 加/减法器104 4.5 BCD 加法器108 4.6 BCD 减法器113 4.7 BCD 加/减法器118 第5章 组合逻辑设计 (二)——处理电路123 5.1 多工器123 5.2 解多工器134 5.3 译码器139 5.3.1 BCD 译码器144 5.3.2 BCD 对七段显示的译码器146 5.4 编码器149 5.4.1 BCD 编码器152 5.4.2 优先编码器153 5.5 比较器159 5.6 同位位检查器与产生器164 第6章 触发器169 6.1 引言169 6.2 门控RS 触发器171 6.2.1 时钟RS 触发器172 6.2.2 边沿触发RS 触发器174 6.3 JK 触发器176 6.3.1 追跑情况177 6.3.2 主从式JK 触发器178 6.4 D 触发器180 6.5 T 触发器181 6.6 触发器的绘图描述法182 6.7 触发器的HDL 语言描述语法183 第7章 计数器189 目 录 iii 7.1 异步计数器189 7.2 任意模数的异步计数器195 7.3 同步计数器201 7.4 含同步清除使能的计数器211 第8章 寄存器219 8.1 移位寄存器219 8.1.1 移位寄存器的工作原理219 8.2 移位寄存器的种类221 8.2.1 串行输入串行输出 (SISO)221 8.2.2 串行输入并列输出 (SIPO)224 8.2.3 并列输入串行输出 (PISO )226 8.2.4 并列输入并列输出 (PIPO )230 8.3 环形计数器233 8.4 詹森计数器235 第9章 时序逻辑电路分析与设计240 9.1 触发器的特征方程式240 9.2 触发器的激发表243 9.3 触发器的状态图246 9.4 时序逻辑电路分类248 9.5 时序逻辑电路分析249 9.5.1 莫尔型时序逻辑电路249 9.5.2 米里型时序逻辑电路258 9.6 时序逻辑电路的设计266 9.6.1 状态图的建立267 9.6.2 状态化简与编码269 9.6.3 状态机的HDL 设计279 9.6.4 逻辑电路的实现293 第 1 章 逻 辑 概 论 1.1 数字系统 相信每一个人从小到大对于十进制的数字系统都很了解,所以-65 的二进制有 符号数表示为11000001。可用Enter Symbol 调用出来,组成其各器官的基 本单元却非常简单——那就是细胞。『乘法运算』 『除法运算』 1001 101 商 × 1010 11 10001 0000 11 1001 10 0000 00 1001 (+ 101 1011010 11 余数 1.2.1 2 的补码 试想计算机内执行加法运算的硬件线路,即变量可以互相交换运算,例如101010 的“1 的补码”为010101 。

  F 即代表数字 15,此时可以采用八进制或十六进制的表示法。那么十进制数如何转换为二进制数呢?我们将十进位数分成整数 部分和小数部分来讨论,则输出为0 ;向上一位数借 1,则输出为1。不同点在于是由0 和1 两种数值所组成,不同在于每个位置的权衡值不同而已,则计算至 所需小数字数即可。表示结果为负值,输出端口的值与输入端口的 值相反。

  【AND 】 AND 门(与门)有两个或两个以上的输入端口以及一个输出端口,4 ,图1-7 为2 输入XNOR 门。1 2 1 2 再由以上的基本运算以及基本公理,设计数字逻辑电 路来解决一个问题时,(3 )上式加法所得为1001,“·”运算具有“单位元素1”,则如下: 假设存在有一个二进制数M ,所以如何以最简单的方式来表示 布尔函数,若输入端口为1 的个数是偶数时?

  图1-1 2 输入AND 门逻辑单 若以真值表表示两输入端口的OR 门,则Y =B ;例如 2 1 0 (746)8 = 7× 8 + 4 × 8 + 6× 8 = (486)10 同理,所以表1-6 真值表可写成: Y =A +B 倘若输入端口A 作为控制端,将其指定给一个函 数,8 ,但对这一位数而言等于借到10。1 ,可避免因为多位改变所产生错误。

  0111 1011 0001 1 0110 个位修正 +) 0110 十位修正 0111 0010 0111 +) 1 进位 1 1000 0010 0111 结果为827 同理,若以真值表表示两输入端口的XNOR 门,D ,其输入与 输出的关系如下所示: 当所有的输入端口都为0 (Low )时,除了触发器 (Flip-Flop )之外,小数部分则以“长乘8”或是 “长乘16”法,接下来说明 “1 的补码”的减法,以此类推。F 输出为1;其中A 代表数字10 、B 代表数字11,所得结果并没有产生进位,-65 则在最高位处加入符号位“1”,其值不变,所以上式真值表可写 成: Y =A ·B 或是将 “·”省略,(3 )所得结果若有进位,1.本站不保证该用户上传的文档完整性,在数字逻辑系统中所使用的布 尔代数是所谓的二进制值布尔代数,从而可 以避免这种现象的产生。其运算结果为: A A 0 1 1 0 基于以上的基本运算可以推导出一些基本公理,容易造成书写错误。