VHDL硬件描述语言与数字逻辑电路设计 第三版 侯伯亨1-6 第2章

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2 3
M=0 M=0
4 5
M=1
18
表中有一个9位寄存器,低4位存放乘数。如果乘数的最低 位(寄存器的最低位)为“1”,则将被乘数加到寄存器的b4~b7 位上;如果为“0”,则不作加法,然后向右移一位。再重复上 述过程,直至将乘数全部移出9位寄存器为止(此例中要移4位)。 将这种算法的运算过程用算法流程图来描述,如图2-7(a)所示, 与该算法流程图对应的硬件电路框图如图2-7(b)所示。该乘法 器由3大部分组成:9位长的累加器ACC、4位加法器和一个乘 法控制电路。乘法控制电路有3个输入信号和4个输出控制信号:
的描述,在许多文献和著作中也称它们为Mealy状态机和
Moore状态机,以表示它们构造电路时的不同机理。
35
2.2.2 算法状态机流程图的符号及描述方法
所谓状态机,就是用来控制数字系统,使其根据它的输 出,一步一步地进行相应的操作和运算的机器(这里应理解为 电路)。实际上,时序电路就是一种状态机。 分析状态机的传统方法是利用状态图和状态表。但是,随
算法流程图由若干种描述符号构成,即启动框、工作框、 判断框、条件框、结束框及有向线(带有箭头的连线)等。
1.启动框和结束框
与程序流程图一样,启动框和结束框仅仅表示该算法流程
图的开始和结束,使读者一目了然。一般这两个框可以省略,
而以文字和箭头直接表示,如图2-1所示。
4
图2-1 启动框和结束框
5
2.工作框
19
(1) Load——累加器数据装载控制信号; (2) sh——累加器移位控制信号; (3) Add——累加器输出相加信号; (4) Done——乘法结束标志信号; (5) clk——时钟信号; (6) START——启动控制信号; (7) M——加被乘数控制信号。
20
图2-7 乘法器 (a) 算法流程图;(b) 硬件电路框图
参照图2-8所示的米勒型时序电路的典型结构,此时串行
加法器控制电路的输入为START,输出信号为sh,状态寄存器 的锁存信号为clk,状态寄存器的输出为si,根据前述工作过程,
我们不难列出其状态表和状态图,如表2-2和图2-9所示。
26
表2-2 串行加法器的控制状态表
下 一 个 状 态 START=0 S0 S2 S3 S0 START=1 S1 S2 S3 S0 0 1 1 1 当前输出(sh) START=0 START=1 1 1 1 1
2
2.1 数字系统算法流程图描述
算法流程图实际上是从程序流程图衍生出来的一种描述数 字系统硬件操作功能的方法。两者在形式上有许多相似或类同 的地方。但是,由于算法流程图描述的是系统的硬件动作,某 些操作结果存在并发性,因此在描述时与程序流程图相比会略 有不同,这一点在后面还会提及,请读者注意。
3
2.1.1 算法流程图的符号及其描述方法
(Algorithmic State Machine Chart,ASM图)描述方法。
23
2.2.1 状态机的分类及特点
控制器按一定时序关系产生一系列的时序控制信号,因此 它必定包含时序电路。根据时序输出信号产生的机理不同,时 序电路可以分成两类:米勒(Mealy)型和摩尔(Moore)型。
1.米勒型时序电路
29
2.摩尔型时序电路
摩尔型时序电路的典型结构如图2-10所示。 图2-10中,输入有输入信号X和状态锁存时钟clk,输出只有一个Y,其
值仅与当前的状态值有关,而与输入X无关。
非归零(NRZ)串行数据信号转换成曼彻斯特(Manchester)串行数据信号 的时序电路就是摩尔型时序电路的典型实例。NRZ信号和Manchester信号
路设计带来很大的方便。但是,毕竟算法流程图更贴近数字系
统的行为描述,当数字系统较复杂时这种对应关系就不那么紧 密了。
16
2.乘法器
乘法器可实现的算法很多。2个4位数乘法的运算过程如表 2-1所示。
17
表2-1 2个4位二进制数的相乘过程
步 骤 1 操 作 内 容 初始化 9 位寄存器, 乘数最低位 为“1” ,故加被乘数 右移 1 位,最低位为“0” ,不加 被乘数 右移 1 位,最低位为“0” ,不加 被乘数 右移 1 位,最低位为“1” ,加被 乘数 右移 1 位,产生乘法结果 被乘数 乘数 0 0000 1001 0101 0 0101 1001 0 0010 1100 0 0001 0110 0 0000 1011 0101 0 0101 1011 0 0010 1101 备 注 M=1
22
2.2 状态机及算法状态机图描述
众所周知,数字系统由控制单元和处理单元两大部分组成。 控制单元在统一的同步时钟控制下,严格按照一定的时间关系 输出控制信号;处理单元一步一步地完成整个数字系统的操作。 这种工作过程用算法流程图是无法正确描述的。下面介绍一种
用于描述控制器工作过程的方法,即算法状态机图
是否等于7,如果等于7则再执行下一条指令,点亮发光二极管
(D←1)的操作过程是有显著区别的。
10
图2-4 判断框
11
图2-5 条件框
12
2.1.2 算法流程图描述数字系统实例
为了熟悉算法流程图描述方法,现举几个例子加以说明。
1.串行加法器
串行加法器是利用一位加法器实现两个多位二进制数据相 加的电路。4位串行加法器的算法流程图如图2-6(a)所示,其对
应的硬件电路框图如图2-6(b)所示。该4位串行加法器电路由5
部分组成:加法控制电路、累加器、加数寄存器、一位全加器 和进位位寄存器。
13
图2-6 4位串行加法器 (a) 算法流程图;(b) 对应的硬件框图
14
加法控制电路产生移位控制信号sh和时钟脉冲clock。当启 动信号START有效(START=1)时,sh=1,该电路还将输出4个 时钟脉冲(clock),以完成4位二进制数的加法操作。 累加器存放被加的4位二进制数。累加器的最高位输入与 加法器输出端sumi相连;最低位输出与加法器的一个输入端ai 相连。当sh=1时,每个时钟脉冲下降沿到来将使累加器向右移 一位。4个时钟脉冲过后,累加器中将存放两数相加之和。 加数寄存器存放相加的加数,其最低位输出与加法器的
如图2-2所示,工作框用一个矩形框表示,在框内用文字 说明该工作框所对应的硬件操作内容及对应的输出信号。 通常算法流程图与硬件功能有极好的对应关系。也就是说, 一个工作框的功能应该很容易地映射成为一个较基本的逻辑电
路。图2-3(a)描述两个二进制数a和b相加,其结果为输出c的工
作框;图2-3(b)则是实现该工作框功能的逻辑电路。在设计数 字系统时,如用算法流程图描述其功能,则总要经历由粗至细
逐步细化的过程。所以,在数字系统描述的初期,一个工作框
的功能不一定完全能用一个逻辑电路来实现。但是,随着描述 的逐步细化,设计者应考虑每一个工作框的可实现性,只有这
样,算法流程图最后才能被综合成逻辑电路。
6
图2-2 工作框
7
图2-3 工作框与硬件之间的对应关系 (a) 工作框;(b) 对应的逻辑电路
着计算机技术及电子设计自动化(EDA)技术的发展,为了提高
电路的设计效率,人们试图用硬件描述语言(Hardware Description Language,HDL)来描述数字系统的硬件电路。硬
另一个输入端bi相连。另外,还和最高位的移位输入端相连,
构成一个循环移位寄存器。sh和clock连接同一累加器。
15
进位位寄存器存放上一次加法器相加所产生的进位位结 果。它实际上是一个D触发器。 一位全加器实现2个二进制位的相加,其输入、输出连接 如图2-6(b)所示。 需要说明的是,为简化电路,该电路的初始化未包含在上 述电路框图中。 如图2-6(a)所标明的一样,如果算法流程图描述适当, 则其各工作框和判断框等都会有较好的对应关系,这样会给电
9
4.条件框
条件框用椭圆形符号来表示,如图2-5所示。条件框一定 与判断框的一个分支相连,且仅当该分支条件满足时,条件框 中所表明的操作才被执行。请读者注意,条件框是算法流程图 中所特有的,它可描述硬件操作的并发性。与软件程序图中的
分支程序不同的是,条件框的操作是与判断结果同时发生的,
如图2-5所示,当cnt=7时,发光二极管就发亮(D←1)。在时序 上cnt=7和D←1 发生在同一个标定时刻。这和程序中先判别cnt
8
3.判断框
判断框与程序流程图中所采用的符号一样,用菱形框来描 述。框内应给出判断量和判断条件。根据不同的判断结果,算 法流程图将确定采用什么样的后继操作。判断框必定有两个或 两个以上的后续操作,当后续操作超过3个时可以用若干个判
断框连接来描述。图2-4是用算法流程图中的判断框描述2-4译
码器的示例。图2-4中,输入为a、b,输出为y0、y1、y2、y3, 用4个判断框描述该电路的四种不同的后续操作。
第2章 数字系统的算法描述
2.1 数字系统算法流程图描述 2.2 状态机及算法状态机图描述
1源自文库
在学习高级语言时,通常用程序流程图来描述程序所实现 的一种算法。程序流程图实际上就是一种算法描述的方法。在 对数字系统进行算法描述时,为了便于最后进行逻辑综合,常 用的算法描述有:算法流程图描述、算法状态机描述、硬件描 述语言描述等。本章将对算法流程图描述及状态机描述进行详 细讨论。
30
图2-10 摩尔型时序电路的典型结构
31
图2-11 NRZ信号和Manchester信号的时序关系
32
表2-3 NRZ信号转换成Manchester码的状态表
下一个状态 当前状态 X=0 S0 S1 S2 S3 S1 S2 S1 - X=1 S3 - S3 S0 0 0 1 1 当前输出 Y
的时序关系如图2-11所示。从图2-11中可以看出,当非归零信号由“1”变
成“0”或由“0”变成“1”时,曼彻斯特信号在一个码元宽度的时间内将维 持不变,在其它情况下,在每个码元中间信号将发生一次变化(由“1”变 “0”或由“0”变“1”)。据此,我们可以得出该串行码转换电路的状态表和 状态转换图分别如表2-3和图2-12所示。
当 前 状 态 S0 S1 S2 S3
从表2-2中可以看到,控制器的输入START只有在S0 状态下才会对输出sh产生影响,它表明该电路一旦启动, 一定要做完4位加法才能使其停止工作。
27
图2-9 串行加法器的控制状态图
28
在图2-9中,每一个圆代表一个状态,在其中标出了状态 名S0、S1、S2、S3。各状态之间用带箭头的线连接起来,表 示状态转换的方向。在连接线旁标出了箭头所指状态的输入值 和输出值,如0/0,斜杠左边为输入值,右边为输出值,本例 中应为START/sh。
33
图2-12 NRZ信号转换成Manchester码的状态图
34
clk的时钟周期为码元宽度的二分之一,每个时钟周期为 一个状态,也就是半个码元为一个状态。还应注意, Manchester码的输出相对于NRZ信号的输入将滞后一个时钟周 期。产生这个滞后的原因是:摩尔时序电路在有效时钟边沿到 来以前不能立即响应NRZ信号输入的变化。这是Moore型电路 和Mealy型电路的主要区别。在Mealy型电路中,只要在下一个 时钟脉冲到来以前,输入的变化立即会引起输出的变化。 Mealy型和Moore型时序电路常用于数字系统控制电路
米勒型时序电路的典型结构如图2-8所示。
24
图2-8 米勒型时序电路的典型结构
25
从图2-8中可以看到,该电路由一个组合逻辑电路和一个 状态寄存器构成。状态寄存器的输入是下一个状态值,而输出 是当前的状态值。组合逻辑电路的输入为电路输入X及当前状 态值,输出为电路输出Y及下一个状态值。该电路的特点是: 其输出不仅与当前状态有关,还和输入值有关。也就是说,输 入X的值不仅决定了电路的下一个状态,而且对当前的输出值 也会产生影响。下面以四位串行加法器(见图2-6)的控制电路为 例作一说明。
21
在启动信号有效(START=“1”)以前应先将乘数装入累加器, 将被乘数装入被乘数寄存器(该寄存器图中未画出),即初始化 完毕。在启动信号有效以后,经4个时钟脉冲,乘法操作完成, 其结果将存于累加器ACC中。 如前所述,算法流程图常用于数字系统的行为描述,它仅 仅规定了数字系统的一些操作顺序,而并未对操作的时间和操 作之间的关系做出严格的规定。因而它常用于验证数字系统数 学模型的正确性,对其硬件的可实现性未作更多的关注。
相关文档
最新文档