《数字逻辑设计与计算机组成》一2.7 其他逻辑门

简介: 本节书摘来自华章出版社《数字逻辑设计与计算机组成》一 书中的第2章,第2.7节,作者:[美]尼克罗斯·法拉菲,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

2.7 其他逻辑门

作为对之前标准逻辑门的补充,这节里将介绍一些其他对设计数字系统来说必需的其他逻辑门。这些逻辑门有缓存、集电极开路(OC)缓冲区和三态缓存。

2.7.1 缓存

缓存的符号和真值表如图2-22a所示。一个缓存不会改变其输入信号;只是简单地放大它。假设与门的扇出为5,缓存可以增加与门的扇出至5~9,如图2-22b所示。
image

2.7.2 集电极开路缓冲区

OC缓冲区和缓存门类似,除了当其输入为逻辑1时,其输出变为高阻抗,如Z(图2-23a)所示。高阻抗信号既不是逻辑0也不是逻辑1,而是显示为电隔离,就像导线是“浮动”的而不是连接的。图2-23b展示了有两个OC缓冲区的电路。每一个逻辑门的输出不是0就是Z,这样输出可以连接到一起产生一个输出信号f。Z输出可以使用连接到其他电源(例如5.0V)或者电源接地(0.0V)的电阻“拉起”或者“拉下”变为逻辑1或者逻辑0。图2-23b中的Z输出是拉起。
图2-24展示了使用图2-23b中有两个输入a和b的电路的高阻抗输出行为。当a = 0和b = 0时,OC缓冲区B1和B2输出0,这样就将f连接到地,即逻辑0(图2-24a)。当a = 1和b = 1时,OC缓冲区B1和B2输出为Z(浮动的);这就让f连接到电源,即为逻辑1
(图2-24d)。当a = 0和b = 1或者a = 1和b = 0时,其中一个缓存输出0而其他缓存输出Z,这样就把f和逻辑0相连,如图2-24b和图2-24c所示。4个例子总结了一张如图2-23b的真值表。真值表展示了一个与逻辑,和这个例子中的叫作线-与逻辑的电路。线逻辑电路可以拥有很大的扇入。
线-与和线-或逻辑是两种常见的线逻辑电路。例如,线逻辑电路可以用于设计有扩展槽的计算机系统。在这个例子中,线逻辑电路可以在计算机系统中通过在一个叫作设备控制器接口(DCI)的计算机扩展槽中插入扩展卡来增加功能,例如一个有n个输入的线-或逻辑电路,可以对n个信号进行与操作,信号可以来自不同的设备,如图2-23c所示。这个设备接口将在第9章中更详细地进行讨论。

image

image

2.7.3 三态缓存

图2-25展示了三态缓存及其真值表。三态缓存是一个缓存和一个OC缓存的组合。当使能时(e = 1),它像一个缓存一样工作,但当禁止时(e = 0),其输出变为Z。三态缓存用于当输入为两个或多个信号需要共享一条叫作总线的线路的情况中。通常,总线可以用于很多条线路。图2-26展示了三态缓存到1位总线的连接。每一次一个使能信号e1、e2或者e3可以使得对应的信号a、b或c放到总线上。其他禁用的三态缓存将输出Z(“浮动的”),这样可以使其与总线隔离。
image

如果一个电路模型输出到总线和从总线中输入,总线连接可以是双向的。图2-27a展示了一个双向总线连接的例子,使用一个缓存从总线中输入和一个三态缓存输出到总线中。在双向总线中传输的数据项有一个源模块和一个目的模块。源模块用一个三态缓存在总线中放置一个数据项,目的模块用一个缓存输入数据。如果总线扇出在目的模块中大于1,缓存可以保护系统在源模块中免受扇出干扰;这就是,一个总线信号在目的模块中与两个或者多个逻辑门相连,如图2-27a中的目的模块C。
总线降低了互连的开销。其可以代替多个在多个模块中一对一的连接(图2-27b),只要数据(位数)通过总线发送的速度(频率)可以足够大来处理负载。这个总线数据速度被称为带宽。例如,在图2-27a中,每10ns一位数据可以在一位总线上传输,如果使能信号e1、e2和e3每10ns只有一个有效,或者其中一个使能信号在多个10ns中有效。可以在每10ns中传送1位数据的1位总线的带宽与可以在每100ns中可以传送10位数据的10位总线的带宽是一样的;在100ns中,两条总线都可以传送10位数据。这样,总线的宽度(线路的数目)和总线的速度(频率)决定了总线的带宽。

image

image

两个三态缓存可以用于收发器(传输/接收)电路连接,例如,如图2-28所示的两条分开的总线。每一个收发器电路都有两条总线之间的双向连接。方向(dir)信号决定了数据的方向,从总线A到总线B或者从总线B到总线A。当使能(e)信号有效时,数据连接到两条总线上,并保持它们一直连接。

image

相关文章
|
7月前
|
SQL 小程序 BI
【商业级】掌上医院全套源码|挂号缴费+住院管理+报告查询|支持二次开发
掌上医院预约挂号管理系统是自主研发的医疗服务平台,含后台管理端与微信/支付宝用户端。基于C#/.NET+uni-app+SQL Server开发,支持预约挂号、当日挂号、门诊缴费(含医保)、报告查询、住院押金管理、医保服务及医院资讯等功能,已成功部署于多家三甲医院。
369 0
【商业级】掌上医院全套源码|挂号缴费+住院管理+报告查询|支持二次开发
|
安全 Java 开发者
Spring容器中的bean是线程安全的吗?
Spring容器中的bean默认为单例模式,多线程环境下若操作共享成员变量,易引发线程安全问题。Spring未对单例bean做线程安全处理,需开发者自行解决。通常,Spring bean(如Controller、Service、Dao)无状态变化,故多为线程安全。若涉及线程安全问题,可通过编码或设置bean作用域为prototype解决。
495 1
|
移动开发 定位技术 iOS开发
HTML5 Geolocation(地理定位)3
本页介绍如何在地图上显示用户位置,并利用地理定位获取给定位置的详细信息,包括更新本地信息、显示周边兴趣点及实现车载导航。通过 `getCurrentPosition()` 方法可获取用户当前位置的详细数据,如经纬度、精度等。`watchPosition()` 方法则持续跟踪用户位置变化,适用于实时导航。示例代码展示了如何使用这些方法获取并显示位置信息。
|
开发者
gitee添加仓库人员
gitee添加仓库人员
487 0
|
Java 关系型数据库 MySQL
NUL (NULL) - ASCII值0 (0x00)
NUL (NULL) - ASCII值0 (0x00)
3002 2
|
数据采集 数据挖掘 索引
Pandas中read_excel函数参数使用详解+实例代码
Pandas中read_excel函数参数使用详解+实例代码
1478 0
Pandas中read_excel函数参数使用详解+实例代码
|
前端开发 容器
ElementUI表格表头行高问题解决
ElementUI表格表头行高问题解决
ElementUI表格表头行高问题解决
|
Android开发 开发者
Android Studio 安装APK在虚拟机时报 Installation failed due to: 'null' 解决
Android Studio 安装APK在虚拟机时报 Installation failed due to: 'null' 解决
1241 0
Android Studio 安装APK在虚拟机时报 Installation failed due to: 'null' 解决
|
弹性计算 Shell Linux
阿里云服务器通过BT宝塔面板安装MediaWiki方法教程
wiki开源程序最为知名的就是MediaWiki,云吞铺子分享使用阿里云ECS云服务器通过BT宝塔面板安装MediaWiki源码的图文教程方法: BT宝塔安装MediaWiki图文教程 MediaWiki运行环境:PHP+MySQL环境,本教程的LAMP环境是使用宝塔面板搭建的。
2811 0
阿里云服务器通过BT宝塔面板安装MediaWiki方法教程
|
Linux Windows
2.1 安装Linux系统对硬件有什么要求?
很多初学者在安装 Linux 系统时,都对自己的电脑配置存在质疑,担心其是否能够满足安装 Linux 的要求。本节就从 CPU、内存、硬盘、显卡等这些方面,详细介绍一下安装 Linux 系统的最低配置。
1864 0
2.1 安装Linux系统对硬件有什么要求?

热门文章

最新文章