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

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

第3章

Digital Logic Design and Computer Organization with Computer Architecture for Security
组合电路:大型设计

3.1 简介

在前一章中介绍的设计技术只适用于很少输入数目的组合电路。有很多输入的组合电路必须以不同的方式设计。例如,考虑有n = 32个输入的组合电路。其真值表可能会有超过40亿行——对于第2章介绍的设计电路方法来说,这个数目特别巨大。再有,大型电路肯定会遇到设计扇入和扇出的需求。这就要求一种自顶向下的方法,将大型组合电路设计问题反复地分成较小的问题,直至小到可以用第2章所学的设计技术来解决为止。然后大型电路通过将较小型电路模块进行组装来设计完成。
具有加法、减法、乘法和除法等初级算术操作的电路是大型电路应用于处理器的例子。类似于软件解决方案可以实现需要不同处理器时间和存储器使用情况的代替算法,大型组合电路可以用不同总量的硬件实现(例如三极管数量)。具有越多的三极管数量的电路解决方案,通常意味着具有更小的电路延迟来执行更高数量的逻辑操作,但也更耗能量。
通常,更多的硬件意味着更少的处理时间。包含快速算法模块的CPU有望更快地运行;多核处理器有望比单核处理器运行任务速度更快,等等。
在这章中,我们提供了算术电路的设计实例。特别地,我们将讨论通常称为快速加法器的设计,也展示减法器、2的补码加法器、算术逻辑单元(ALU)、乘法器和除法器的设计。这章同样也会展示IEEE浮点(FP)数标准和算术。
自顶向下的设计方法
自顶向下的方法,也叫分层的方法,是指一种设计流程,如包含父结点和叶结点的树结构。在根结点的大型设计问题可以依次在叶结点划分为较小的设计问题。根结点的问题第一次将被分为较小设计问题为子结点。如果需要,在每一个子结点(现在为父结点)上的较小设计问题又可以分为更小的设计问题。这个处理过程一直持续直到每一个在叶结点的设计问题足够小并且拥有更少的输入。
对于叶结点上的每一个设计问题,第2章中的技术都可以用来设计电路。这些电路随后将连续组合成目标大型组合电路。设计可能需要一个或多个较小电路的副本。最终电路必须无任何扇入和扇出问题。
在设计流程中的每一步,有很多种方法和算法都会进行检查,对如电路延迟和逻辑门数量进行权衡分析,然后选出最佳的解决方案来满足整个设计要求。通常,一位并行和一位串行设计分区技术(稍后定义)从根结点开始被用于每一个父结点。
当设计问题被分成较小的设计问题时,分区被称为位并行的。例如,生成n位与或者n位和的组合AND/ADD电路模块的设计可以视为三个分开的设计问题:n位的位与逻辑、n位的加法器和n位2-1的多路选择器(MUX),当n = 8时如图3-1所示。MUX选择位与逻辑的结果或者加法器的和值来作为输出。虽然位与逻辑、加法器和MUX都只是实现单一的功能,但是对于第2章所学的方法来说,还是很大型的设计问题。这三个模块都必须再分为更小的设计问题。

image

位串行方法用于将设计问题分成有更少输入的较小问题。例如,n位输入的大型电路设计问题可以分为称为片的k位输入设计问题,这里k(最好)能整除n。每片都可以执行一个或者多个函数操作,但只能对较少的输入位进行操作。例如,一个8位加法器可以用8个全加器(FA)进行设计;8位2-1 MUX可以用8个1位2-1 MUX进行设计。在图中,每个结点旁边的数字表示了片的数量。在k位片不会违反所用逻辑门的扇入扇出限制时,常数k可以作为一个选择。
在用位串行方法设计8位AND/ADD模块时,我们可以使用8片1位AND/ADD片或者4片2位AND/ADD片来进行设计,如图3-2所示。通常n位模块可以用n个1位、n/2个2位、n/4个4位等来设计。每片需要输出附加信号——例如,当选择加法函数时,连接片所需要的进位输出位。为了保证最小传输延迟,位串行可以被用真值表和其他设计方式化简成SOP或者POS表达式进行模块化。

image

使用位并行还是位串行方法,在每一步的使用中都会对结果电路的最大传输延迟和所需逻辑门数目造成影响。这一章展示了一些常见的大型组合电路。

相关文章
[c++][记录]编译libusb-win32过程
[c++][记录]编译libusb-win32过程
555 0
|
存储 资源调度 负载均衡
云计算——常见集群策略
云计算——常见集群策略
698 0
|
存储 数据采集
时序逻辑电路的应用及其作用
一、什么时序逻辑电路 时序逻辑电路是一种电子电路,用于处理和存储时序信息。它通过使用时钟信号来控制电路的行为,以实现特定的功能。 时序逻辑电路通常由触发器和组合逻辑电路组成。触发器是一种存储器件,可以存储和传递电信号。组合逻辑电路则根据输入信号的组合产生输出信号。 时序逻辑电路的行为是根据时钟信号的变化来确定的。时钟信号是一个周期性的信号,用于同步电路的操作。在每个时钟周期中,电路根据输入信号和当前状态来计算输出信号,并在时钟信号的上升沿或下降沿时更新状态。 时序逻辑电路可以用于实现各种功能,如计数器、状态机、时序控制器等。它在数字系统中起着重要的作用,用于处理时序信息和控制电路的行为。 二、
1290 0
|
弹性计算 运维 安全
阿里云无影云电脑——更安全可靠便宜
阿里云无影云电脑——更安全可靠便宜,什么是阿里云无影云电脑?无影云电脑(原云桌面)是一种快速构建、高效管理桌面办公环境,无影云电脑可用于远程办公、多分支机构、安全OA、短期使用、专业制图等使用场景,阿里云百科分享无影云桌面的详细介绍、租用价格、云电脑的优势、使用场景、网络架构、无影云电脑与云服务器的区别以及关于无影云电脑的常见问题解答FAQ
988 1
|
算法 安全 Go
Go语言哈希函数不可不知的N个实战技巧
Go语言哈希函数不可不知的N个实战技巧
549 0
|
程序员 开发者 Python
Python新手常见问题五:如何避免模块导入错误?
在Python编程中,模块的导入是每个开发者必须掌握的基础技能之一。模块化设计让代码更加有序、可复用和易于维护。然而,在实际操作过程中,新手程序员常常会遇到一些关于模块导入的问题,导致程序无法正常运行。本文将探讨几种常见的模块导入场景及容易犯错的操作,并提供相应的解决方案。
1702 4
|
负载均衡 安全 Java
【C++ 并发 线程池】轻松掌握C++线程池:从底层原理到高级应用(一)
【C++ 并发 线程池】轻松掌握C++线程池:从底层原理到高级应用
1975 2
|
存储 监控 Java
Java多线程优化:提高线程池性能的技巧与实践
【4月更文挑战第6天】Java并发编程中,线程池通过重用线程降低性能开销,控制并发级别。关键在于理解线程池工作原理:核心线程数、最大线程数、队列和拒绝策略。优化技巧包括合理设置线程池大小、选择合适队列、避免过度使用、自定义拒绝策略和正确关闭线程池。I/O密集型应用案例:大核心线程数、使用 `CachedThreadPool`、`LinkedBlockingQueue` 和定制拒绝策略。正确配置和管理线程池对提升应用性能至关重要。
860 3
|
数据安全/隐私保护 开发者 索引
Python 简易图形界面库easygui 对话框大全
EasyGUI库提供了一个简单而直观的方式来创建基本的图形用户界面,无需深入了解复杂的GUI编程概念。EasyGUI是一个用于非常简单的Python GUI编程的库。与Tkinter等更高级的库相比,EasyGUI通过提供一系列预构建的对话框和简单的函数调用来简化GUI开发过程。这使得开发者可以专注于应用程序的逻辑,而不是花费大量时间在界面设计上。
488 1
Python 简易图形界面库easygui 对话框大全