您的位置: 网站首页 > 电子与嵌入式 > 数字电子技术与逻辑设计教程 > 第10章 数字系统 > 【10.1 数字系统概述】

10.1 数字系统概述

 

本章要在前面所掌握知识的基础上学习如何构造具有一定功能的数字系统。

本章主要内容

&        数字系统的基本概念和模型

&        数字系统的设计方法和设计过程

&        算法状态机图(ASM

&        介绍ASM图的3种实现方法

&        介绍寄存器传输语言(RTL

10.1  数字系统概述

10.1.1  数字系统的概念

数字系统就是一个能对数字信号进行采集、转换、加工、传递和存储的实体,它由实现各种功能的数字逻辑电路相互连接而成。数字系统实质上是一个规模较大的时序电路,但由于数字系统的输入信号、输出信号和内部状态的数目都可能很大,所以如果把整个数字系统当成一个时序电路来设计,将是非常复杂的。因此通常把一个数字系统划分为几个子系统,每个子系统完成一定的功能,它们可以由寄存器、译码器、计数器和运算器等逻辑部件构成,各子系统通过数据通道和控制通道相互连接构成一个完整的数字系统。

与模拟系统相比,数字系统所具有的优势是稳定性好、精确度高和集成度高等,而且随着半导体技术的高速发展,数字系统的性能、功能、体积和功耗都得到显著改善,制作成本也在下降。目前,数字技术在机械学、化学、电学、计算机、汽车电子和工业电子等领域都有非常广泛的应用。

10.1.2  数字系统的基本模型

如图10-1所示,任何数字系统都可以遵照计算机的结构原理,从逻辑上划分为控制子系统(又称为控制器)和数据子系统(又称为受控电路)两部分。在图10-1的虚线框内是数字系统的核心,包括控制器电路和受控电路。下面分别来介绍该模型中的各个部分。

10-1  数字系统的基本结构模型

1)控制器一般是一个时序电路,是控制系统内各个部分协同工作的电路,它根据外部输入信号以及受控电路送来的反映目前的电路状态的内部应答信号,产生对受控电路的控制信号以及系统对外界的输出信号,使整个系统同步协调地工作。

2)受控电路一般是由若干功能部件按照一定的方式互相连接而成,是数字系统中数据传送、存储和处理的单元。它从控制器接收控制信号,并把处理过程中产生的状态信号反馈给控制器,在控制器的控制下完成计数运算、逻辑运算等各种操作。

3)存储器电路是用来存储数据和各种控制信息的,以供控制器调用,存储器和数字系统的核心部件之间通过传输线相互连接。当信息被传输到核心部件且被处理时,存储器就保存并不断地供给信息,且计算结果又被送回到存储器,这在数字系统中是周期性的活动。

4)输入输出接口主要用于系统和外界交换信息。它从外部环境中接收信息,并将处理后的结果供给外部环境。

10.1.3  数字系统的设计方法

在这里介绍两种数字系统的设计方法。

1.试凑法

因为数字系统实际上就是一个复杂的时序电路,所以理论上还是可以用前面学过的设计普通时序电路的方法,运用真值表﹑卡诺图﹑逻辑方程﹑状态图等工具来设计数字系统,这种设计方法是先按照设计任务来建立真值表和状态图,给出逻辑功能描述,再进行逻辑化简和状态化简,最后把有关的逻辑功能电路拼接成设计任务所要求的数字系统。我们把这种设计方法称为试凑法。这是一种自下而上的设计过程,设计思路是选用标准的通用集成芯片,再用这些芯片和其他的逻辑元器件自下而上构成电路、子系统和系统。当数字系统比较简单时,选用中﹑大规模集成器件,适宜采用试凑法设计,这样设计过程简单,逻辑清晰,电路的调试方法也简单。但是当要设计的数字系统比较复杂时,由于输入变量和状态变量很多,试凑法的工作效率就会很低,过程也很复杂。

2.自顶向下的设计方法

现代数字系统的设计要求完成以下任务:

·    对设计任务进行分析,将所设计的系统合理地划分为若干个子系统,使每个子系统完成相对较小的任务。

·    设计系统控制器,以控制和协调各子系统的工作。

·    对各子系统的各个功能部件进行逻辑设计。

·    对复杂的数字系统,还要设计各个子系统的连接关系和数据传输方式。

在实际的设计当中,通常采用自顶向下的设计方法。这种方法的一般设计步骤为:

1)明确设计的总体任务,确定设计目标。

用户提出的系统总体任务,对于设计者来说一般都比较笼统模糊,所以必须在设计的开始明确设计任务。这是自顶向下设计方法的关键也是初学者感觉比较棘手的问题。为了确定设计任务是否真的明确了,可以从3个方面来考虑:首先,考虑对任务的叙述是否清楚了;其次,考虑能否对任务重新加以叙述,以产生更清晰的叙述或使任务变得更简单;最后,如果涉及的是一个大系统的子系统,考虑子系统与系统的关系是怎样的,整个系统能否作不同的分割,以使被设计子系统的任务变得更简单。

2)将系统分割为控制器和受控装置。

控制器和受控装置都是所设计系统的子系统,但它们的功能不同,所以要分开来进行设计。将系统分割为控制器和受控装置,是自顶向下设计方法中不可缺少的一步。

分割系统,首先要粗略估计受控装置的硬件组成,并初步确定其所需的控制信号和产生的状态信号。任何的总体任务总是可以被分成若干分任务。对于一些较复杂的总体任务,可能要进行多层次的分解,分解任务的目标是使每一个分任务都有一个与其适应的功能块。需要注意的是,这里所说的功能块是抽象的功能块,即泛指功能块的功能,而不涉及用何种型号的集成电路。当估计了受控装置的硬件组成后,就可以根据各功能块各自应完成的任务,确定其所需的控制信号和产生的状态信号。

3)确定控制器的算法。

控制器的作用是,根据外来的输入信号和由受控装置反馈回来的状态信号,向受控装置输出有序的命令。所谓控制器算法,就是控制器为实现其控制任务而采取的有限步骤。对控制器的工作,有多种描述的方法,控制算法是从逻辑上来描述控制器的工作,所有输入和输出均是用布尔变量表示的一些抽象概念,不涉及任何物理量,所以它是一种抽象的算法。

4)用硬件实现控制算法。

用硬件实现控制算法的有传统方法、多路选择器方法、环形计数型方法等。

5)受控装置的硬件实现。

在分割系统时,粗略估计了受控装置的硬件组成,在确定控制算法时,又对其组成情况加以检验,但是,现在所说的硬件只是抽象的功能块。这一步所要解决的主要问题是以具体的集成电路来代替抽象的功能块,并确定它们之间的连接关系。