《数字逻辑设计与计算机组成》一 2.8 设计实例

2.8 设计实例

在第1章中讨论过,一个数据通路包括许多电路模块。本节我们将讨论一些常见的但是比较小型的组合电路模块。在第1章中图1-1中所示的“选择器”模块也被叫作多路转换器。其他将讨论的实例包括简单的加法器、译码器和编码器模块。
1位加法器,也叫作全加器(FA),产生两个1位输入的和,并输出一个0或1的传位进位。译码模块将数字A(0、1、2等)转换成对应的输出信号(例如,f0、f1、f2等)。任何时候都只有一个输出f0、f1等是有效的。另一方面,编码器所做的工作是译码器的逆向工作,将产生与输入信号对应的数字。这节中我们将讨论下列实例:
高电平信号FA设计实例。
1位2-1的多路选择器和1位4-1的多路选择器设计实例。
低电平输出信号的1-2译码器设计实例。
低电平输入信号的3-2编码器设计实例。

2.8.1 全加器

一个全加器有三个1位输入,其中一个输入是进位输入(cin),输出为一位和(s)和一位进位输出(cout),如图2-29所示。表2-8展示了全加器的真值表。在表中的每一种情况中,s和cout都由三位数据a、b和cin的和决定。多全加器模块可以用于设计大型加法器,这将在下一章中讨论。

s和cout的最小SOP表达式如下求得:

作为一种选择,s和cout表达式也可以用异或门写成如公式(2-9)所示,这样就简化了电路的门级结构,如图2-30所示。然而,这个解法将导致比公式(2-8)所实现电路的更长的传输延迟。

传输延迟估计
假设与非门有0.1ns的延迟,公式(2-10)估算了公式(2-8)中信号s和cout的传输延迟,用符号Δ表示。信号s和cout的SOP表达式分别有三级和二级的逻辑门。在信号s和cout的延迟估算中我们忽略掉了线路延迟。

公式(2-11)展示了公式(2-9)中信号s和cout的延迟估算,SOP表达式中的异或门有0.3ns的延迟:

2.8.2 多路选择器

1位2-1的多路选择器,或者缩写MUX,是如图2-31所示的简单组合电路。输入x和y都为1位数据,信号s(选择器信号)导致MUX输出x或者y。如电路框图所示,标记1和0分别用来标记x和y,反映在MUX的真值表里(表2-9)。当s = 0时,MUX输出y,当s = 1时,MUX输出x。其最小SOP表达式由以下式子决定:

例如,当s = 0时,公式(2-12)计算结果符合预期,即r = y,如下所示:

类似地,当s = 1时,MUX输出(或者选择)输入x。图2-32展示了拥有4位输入w、x、y和z的1位4-1的MUX电路框图,输入分别标记为3到0的数字。MUX需要两个选择信号,标记为s1和s0。表2-10展示了其简单的真值表。其扩展真值表有6个输入,比我们使用K图所允许的4个输入要大。除了使用K图,有两种方法来确定4-1 MUX的SOP表达式: 1)用Espresso软件;2)对有4个输入和2个选择信号的公式(2-12)进行推算。这就是当s1s0 = 0 = (00)2时,MUX将输出z,当s1s0 = 1 = (01)2时,输出为y;当s1s0 = 2 = (10)2时,输出为x,当s1s0 = 3 = (11)2时,输出为w。其最小SOP表达式为:

例如,当s1s0 = 2 = (10)2时,公式(2-13)计算结果符合预期,为r = x,如下所示:

4-1 MUX的电路框图如图2-33所示。当MUX的大小增大,其扇入和扇出需求也相应地增大。考虑上述的2-1和4-1 MUX。它们最大扇入和扇出需求分别为2和2以及4和3。大型MUX,如果使用现在讨论的方法去设计,那么将导致扇入和扇出问题。在第3章中,我们将讨论大型组合电路的设计方法,首先将大型设计问题分为多个小型问题,然后对于每一个小型问题,使用这一章学到的方法去解决。之后小型电路将组合在一起形成大型组合电路,其可以避免任何的扇入和扇出问题。


2.8.3 译码器

低电平输出的1-2译码器电路框图如图2-34所示。低电平标记引脚通常在基础引脚上加一个气泡表示,如图2-34b所示。然而,图2-34b中的气泡不仅仅是简单的非门表示。表2-11展示了译码器的真值表。只有一个或者没有_?f1和_?f0输出有效,这依赖于信号v和e的值。当e = 1且v = 0时,_?f0 = 0(有效)。当e = 1且v = 1时,_?f1 = 0(有效)。否则,当e = 0(不活跃)时,_?f1和_?f0都为1(无效)。

信号_?f1和_?f0的表达式可以表达为SOP或者POS。然而在这个例子中,对于这些信号的SOP或者POS表达式都是一样的。只有与非门译码器电路只有一个逻辑门的延迟,不包括非门(图2-34c)。
  

大型译码器也可以运用不同的方法来设计避免扇入和扇出的问题。译码器有许多应用,可以用于设计例如一些内存或者CPU数据通路。译码器可以用于解释内存地址,这样地址的内容可以进行读写操作。当需要写入一个寄存器文件时(第1章),译码器也可以用于译码一个寄存器数值。

2.8.4 编码器

低电平输入信号的3-2编码器的电路框图如图2-35a所示,且低电平标记引脚也被标记为一个小圆圈,如图2-35b所示。表2-12展示了编码器的真值表。在表中输入信号用0~2的数字来表示。编码器电路输出一个由活跃的输入定义的数字。例如,当_z = 0(活跃的),_y = 1(不活跃)且_x = 1(不活跃),编码器输出r1r0 = (00)2 = 0,正确识别有效信号_z为数字0。然而,当编码器的输入没有一个是活跃的时候,定义另外一个输出信号a(输入活跃)是有必要的。当a = 1(有效)时,表示一个或者多个信号_x、_y和_z为活跃的,这样2位输出r1r0被定义为活跃的信号。另一方面,当a = 0(无效)时,输出r1r0 = (00)2被忽略。
两个或两个以上的编码器输入在同一时间变为活跃是有可能的。例如,当_x = 0,_y = 0
和_z = 1时,编码器必须遵照某一信号优先级输出信号_x或者信号_y对应的数字。这样的编码器叫作优先级编码器。

表2-12展示了3-2优先级编码器的真值表(图2-35),输入信号_x有最高优先级而
_z的优先级最低。当_x = 0(活跃)、_y = 0(活跃)和_z = 1(非活跃)时,编码器输出a = 1和r1r0 = (10)2,标记_x为最高优先级的输入信号。
信号a,r1和r0的POS表达式如下所示:


编码器也可以设计为没有输出信号a,如图2-36所示。它被设计成4-2的编码器形式,没有信号a,但是输入数字0是未使用的,且与电源连接(或者高电平有效的输入接地),这样可以有效地改变为3-2编码器。当输入信号_x、_y和_z中没有一个为活跃的时候,编码器的输出为r1r0 = (00)2(原书有误——译者注),表示输入是不活跃的。当一个或多个输入信号变为活跃时,编码器分别输出3、2和1来定义_x、_y和_z为活跃信号。这样消除了产生信号a相应的逻辑,并在设计时减少了电路信号,如图2-35所示。连接到电源的输入可以在内部实现。再次地,在设计一个大型编码器时,将用不同的方法来避免扇入扇出的问题。

编码器也可以拥有许多应用,特别是在设计母版中。例如,当外部信号变为有效时,编码器可以快速地通知CPU。有效外部信号可以由一个输入/输出设备产生或者由板上的给CPU提供服务的模块产生。

时间: 2024-09-15 15:38:19

《数字逻辑设计与计算机组成》一 2.8 设计实例的相关文章

《数字逻辑设计与计算机组成》一 第1章 1.1 简介

第1章 Digital Logic Design and Computer Organization with Computer Architecture for Security 导 论 1.1 简介 计算机.iPad.手机等设备已经引起了一场改变我们生活方方面面的数字革命.所有的数据形式,从数字和文本到音频.图像和视频,都能被表示为由一系列0和1组成的序列.数字系统已经改变了我们的沟通.工作.娱乐乃至购物的方式,并被大量应用于我们所见和所用的一事一物之上.它们也存在于汽车.杂货店结账设备.电

《数字逻辑设计与计算机组成》一 导读

前 言 Digital Logic Design and Computer Organization with Computer Architecture for Security 编写本书的目的是让读者通过一本教科书全面理解数字逻辑设计和计算机组成.此外,本书还有独立的一章介绍安全的计算机体系结构. 本书涵盖数字逻辑设计的基本原理和Verilog硬件描述语言设计.各个章节分别讨论简单和复杂的组合电路和时序电路的设计方法.本书概述了电路设计的现代工具和方法,而Verilog实例仅用于展示该语言的

《数字逻辑设计与计算机组成》一 1.2 逻辑设计

1.2 逻辑设计 数字电路即逻辑电路,可以实现一个或多个布尔表达式,而每个布尔表达式均定义了一个或多个输入与单一输出之间的逻辑关系.输入和输出都由布尔变量命名,称为信号,每个信号的值或者为真(T)或者为假(F).公式(1-2)定义了有a.b.c三个输入信号和一个输出信号f的逻辑电路布尔(逻辑)表达式.图1-3a显示了该电路的方框图. 表达式中的AND.OR和NOT为布尔逻辑运算符.晶体管构成的逻辑门用于实现每一种布尔运算符.现代集成电路使用数百万个逻辑门实现处理器这类复杂的逻辑电路.当两个输入都

《数字逻辑设计与计算机组成》一2.9 实现

2.9 实现 现代数字电路设计师依靠CAD工具来将设计模型翻译成实现数据.数字设计CAD工具将数字电路的描述综合(翻译)成优化过和对技术依赖的门级描述,称为网表.特定用途的集成芯片(ASIC)和FPGA都是非定制IC技术的例子.处理器芯片是典型的定制IC技术的例子.电路可以用框图表示,也可以用HDL语言描述,或者同时使用这两种方法描述.然而,现代CAD工具需要将电路描述成HDL语言. 2.9.1 可编程逻辑器件 可编程逻辑器件(PLD)是预制的,即不包含任何制造缺陷的封闭现成设备.它们可以被编程

《数字逻辑设计与计算机组成》一 第3章 3.1 简介

第3章 Digital Logic Design and Computer Organization with Computer Architecture for Security组合电路:大型设计 3.1 简介 在前一章中介绍的设计技术只适用于很少输入数目的组合电路.有很多输入的组合电路必须以不同的方式设计.例如,考虑有n = 32个输入的组合电路.其真值表可能会有超过40亿行--对于第2章介绍的设计电路方法来说,这个数目特别巨大.再有,大型电路肯定会遇到设计扇入和扇出的需求.这就要求一种自顶

《数字逻辑设计与计算机组成》一3.6 算术逻辑单元

3.6 算术逻辑单元 ALU包含在所有的处理器中,且不仅可以进行整数运算,还可以进行位逻辑函数运算,例如按位与.按位或.ALU可以用在整数运算和逻辑指令的执行中.?例3-7? 设计一个n位.包含7种函数的ALU,使其可以完成加法.减法.增一.减一和按位与.按位或和按位非运算.3位函数码F = f2?f1?f0用于选择ALU操作,如表3-4所示.在运行算术操作(F = 0.1.2或3)时,ALU也可以输出溢出信号ovf.F = 7不用于这个设计中,当选择操作时,ALU可以运行一个未知操作.稍后将讨

绘图软件制作-关于数字逻辑电路图绘图软件的制作

问题描述 关于数字逻辑电路图绘图软件的制作 在下最近因确定毕业设计题目,故考虑做一款数字逻辑电路图绘图软件,但因技术有限,见识浅薄,不知从何处下手,故请教各位前辈,望指点迷境. 解决方案 可以借鉴Logisim,它是开放源代码的http://sourceforge.net/projects/circuit/

做的是计算器的界面,对计算机的布局进行的设计,时组件填充计算器的父容器

问题描述 做的是计算器的界面,对计算机的布局进行的设计,时组件填充计算器的父容器 在这儿 //指定该组建占满父容器 params.setGravity(Gravity.FILL); 我使用的时候 出现了 这个问题:The method setGravity(int) in the type GridLayout.LayoutParams is not applicable for the arguments (GridLayout.Alignment) 说是 类型不符,使用不了 ,该怎么修改?

关于数字逻辑中D触发器的一个疑问

问题描述 关于数字逻辑中D触发器的一个疑问 问一个问题,输入X为0,y1y0为00时,为什么d1d0=10,而不是按照激励函数算出来的00.

数字逻辑 集成电路与触发器

问题描述 数字逻辑 集成电路与触发器 异或门 或非门 的真值表是什么啊,求大神解答,最好是表格的那种, 解决方案 参考这个: 原文地址:http://www.dianlut.com/dianyuandianlu/igbtqudong/2009/0716/2468.html