第7章数字系统设计.ppt

上传人:本田雅阁 文档编号:2608435 上传时间:2019-04-17 格式:PPT 页数:149 大小:2.24MB
返回 下载 相关 举报
第7章数字系统设计.ppt_第1页
第1页 / 共149页
第7章数字系统设计.ppt_第2页
第2页 / 共149页
第7章数字系统设计.ppt_第3页
第3页 / 共149页
亲,该文档总共149页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《第7章数字系统设计.ppt》由会员分享,可在线阅读,更多相关《第7章数字系统设计.ppt(149页珍藏版)》请在三一文库上搜索。

1、第7章 数字系统设计,7.1 数字系统设计概述 7.2 控制子系统的设计工具 7.3 控制子系统的实现方法 7.4 数字系统设计举例,7.1 数字系统设计概述,1. 什么是数字系统 在数字电子技术领域内,由各种逻辑器件构成的能够实现某种单一特定功能的电路称为功能部件级电路,例如前面各章介绍的加法器、 比较器、 译码器、数据选择器、计数器、移位寄存器、 存储器等就是典型的功能部件级电路, 它们只能完成加法运算、 数据比较、译码、数据选择、计数、移位寄存、数据存储等单一功能。 而由若干数字电路和逻辑部件构成的、能够实现数据存储、 传送和处理等复杂功能的数字设备,则称为数字系统(Digital Sy

2、stem)。电子计算机就是一个典型的复杂数字系统。 ,2. 数字系统的一般结构 按照现代数字系统设计理论,任何数字系统都可按计算机结构原理从逻辑上划分为数据子系统(Data Subsystem)和控制子系统(Control Subsystem)两个部分, 如图7-1所示。 ,图 7 - 1 数字系统的一般结构,数据子系统是数字系统的数据存储与处理单元,数据的存储、传送和处理均在数据子系统中进行。它从控制子系统接收控制信息, 并把处理过程中产生的状态信息提供给控制子系统。由于它主要完成数据处理功能且受控制器控制, 因此也常常把它叫做数据处理器或受控单元。 控制子系统习惯上称为控制器或控制单元,它

3、是数字系统的核心。数据子系统只能决定数字系统能完成哪些操作,至于什么时候完成何种操作则完全取决于控制子系统。控制子系统根据外部控制信号决定系统是否启动工作, 根据数据子系统提供的状态信息决定数据子系统下一步将完成何种操作,并发出相应的控制信号控制数据子系统实现这种操作。控制子系统控制数字系统的整个操作进程。,由此不难看出,在这种结构下,有无控制器就成为区分系统级设备和功能部件级电路的一个重要标志。凡是有控制器且能按照一定程序进行操作的, 不管其规模大小,均称为数字系统;凡是没有控制器、不能按照一定程序进行操作的,不论其规模多大,均不能作为一个独立的数字系统来对待,至多只能算一个子系统。 例如数

4、字密码锁, 虽然仅由几片MSI器件构成, 但因其中有控制电路,所以应该称之为数字系统。 而大容量存储器,尽管其规模很大,存储容量可达数兆字节,但因其功能单一、无控制器,只能称之为功能部件而不能称为系统。 ,7.1.2 数字系统设计的一般过程,图 7 - 2 数字系统设计过程,1. 系统调研, 确定总体方案 接受一个数字系统的设计任务后,首先应对设计课题进行充分的调研, 深入了解待设计系统的功能、使用环境与使用要求, 选取合适的工作原理与实现方法,确定系统设计的总体方案。 这是整个设计工作中最为困难也最体现设计者创意的一个环节。因为同一功能的系统有多种工作原理和实现方法可供选择,方案的优劣直接关

5、系到所设计的整个数字系统的质量,所以必须对可以采用的实现原理、 方法的优缺点进行全面、 综合的比较、 评判,慎重地加以选择。总的原则是,所选择的方案既要能满足系统的要求,又要结构简单,实现方便,具有较高的性能价格比。,2. 逻辑划分,导出系统框图 系统总体方案确定以后,可以根据数据子系统和控制子系统各自的功能特点,将系统从逻辑上划分为数据子系统和控制子系统两部分,导出包含有必要的数据信息、 控制信息和状态信息的结构框图。逻辑划分的原则是, 怎样更有利于实现系统的工作原理,就怎样进行逻辑划分。 为了不使这一步的工作太过复杂,结构框图中的各个逻辑模块可以比较笼统、比较抽象,不必受具体芯片型号的约束

6、。,3. 功能分解, 构造数据子系统 逻辑功能划分后获得的数据子系统结构框图中的各个模块还比较抽象,功能也可能还比较复杂, 必须进一步对这些模块进行功能分解,直到可用合适的芯片或模块来实现具体的存储和处理功能。 适当连接这些芯片、 模块, 就可构造出数据子系统的详细结构。必须注意,为了简化控制子系统的设计, 数据子系统不仅要结构简单、清晰,而且要便于控制。,4. 算法设计, 实现控制子系统 根据导出的数据子系统结构, 编制出数字系统的控制算法, 得到数字系统的控制状态图,并采用同步时序电路设计的方法完成控制子系统的设计。 数字系统的控制算法反映了数字系统中控制子系统对数据子系统的控制过程,它与

7、系统所采用的数据子系统的结构密切相关。 例如, 某个数字系统中有10次乘法操作,且参与乘法操作的数据可以同时提供。如果数据子系统有10个乘法器, 则控制算法中就可以让这10次乘法操作同时完成;但如果数据子系统中只有一个乘法器, 则控制算法就只能是逐个完成这10次乘法操作。因此, 算法设计要紧密结合数据子系统的结构来进行。,一般来讲, 数据子系统通常为人们熟悉的各种功能电路, 无论是采用现成模块还是自行设计,都有一些固定的方法可循,不用花费太多精力。 相对说来, 控制子系统的设计要复杂得多。 因此,人们往往认为数字系统设计的主要任务就是要设计一个好的控制子系统。 ,经过上述四个步骤后,数字系统设

8、计在理论上已经完成。 为了保证系统设计的正确性和可靠性,如果有条件的话,可以先采用EDA软件对所设计的系统进行仿真,然后再用具体器件搭设电路。 搭设电路时,一般按自底向上的顺序进行。 这样做, 不仅有利于单个电路的调试,而且也有利于整个系统的联调。因此,严格地讲, 数字系统设计的完整过程应该是“自顶向下设计,自底向上集成”。,必须指出,数字系统的上述设计过程主要是针对采用标准集成电路的系统而言的。实际上,除了采用标准集成电路外,还可以采用PLD器件或微机系统来实现数字系统,此时的设计过程会略有不同。例如采用PLD器件设计数字系统时, 就没有必要将系统结构分解为一些市场上可以找到的基本模块;在编

9、写出源文件并编译仿真后, 通过“下载”就可获得要设计的系统或子系统。,7.1.3 数字系统的总体方案与逻辑划分 1. 数字系统的总体方案 数字系统的总体方案的优劣直接关系到整个数字系统的质量与性能, 需要根据系统的功能要求、使用要求及性能价格比周密思考后确定。 下面通过两个具体实例进行说明。 【例7-1】某数字系统用于统计串行输入的n位二元序列X中“1”的个数,试确定其系统方案。 解 该数字系统的功能用软件实现最为方便, 但此处仅讨论硬件实现问题。 ,该系统看起来非常简单,但却无法用前面介绍的同步时序电路设计方法进行设计。因为无论从接收序列的可能组合数还是从收到“1”的个数来假设状态, 其状态

10、图或状态表都十分庞大。如果从接收序列的可能组合数来假设状态,则需要2n个状态;如果从当前接收到“1”的个数来假设状态,也需要n+1个状态。 例如, n=255时, 分别需要设2255和256个状态,这样的设计规模是无法想象的。 由此可见, 时序电路的设计方法的确不适用于数字系统设计。,如果换一种思路,从实现“1”的统计功能所需要的操作入手, 问题就可以迎刃而解。因为从实现“1”的统计功能所需要的操作来看, 只需要这样几种操作:一是对X的数位进行累计;二是对接收到的X进行是0还是1的判断; 三是当X=1时使“1”数计数器加1计数;四是判断X的全部数位是否统计完毕, 如果统计完毕, 工作即告结束。

11、 具体统计过程与软件实现完全相同,即每接收1位X,就判断一下该位是0还是1, 如果X为0, “1”数计数器维持原态;如果X为1, 则“1”数计数器加1,且每接收1位, 位数计数器加1。 待n位X的各位全部判断、 计数后, “1”数计数器的值就是X中“1”的个数。,从实现的角度看,这种方案需要1个控制器来控制整个统计过程。 而为了实现统计功能,该方案至少还需要两个模n+1的计数器, 其中一个计数器用于累计X中 “1”的个数,另一个用于累计X的接收位数。,【例7-2】 某数字系统用于7阶多项式求值:,试确定该系统的总体方案。,解 P7(x) = p7x7 + p6x6 + p5x5 + p4x4

12、+ p3x3 + p2x2 + p1x+ p0 实现该多项式求值, 可用的方案较多, 此处给出其中的3种方案。,方案1: 直接按上式计算多项式的值, 则需要6个能计算xi的运算部件、 7个能够计算pixi的乘法器及7个加法器。该方案的优点是速度快, 但硬件成本太高。因为仅实现xi运算的硬件成本就非常高。而且,如果采用该方案求值,没有、也不需要控制器,因此不能称为数字系统。 ,方案2: 将该多项式分解为ax+b形式的多个子计算,依次进行计算: P7(x) = (p7x + p6)x + p5)x + p4)x + p3)x + p2)x + p1)x + p0 即首先计算p7x + p6,然后计

13、算(p7x + p6)x + p5, , 最后计算得到P7(x)。该方案每次仅完成1个ax+b的运算,共需7次计算才能求得P7(x)的值,运行时间较长,但硬件成本很低。如果不计存储器和用于循环次数控制的计数器、比较器,则该方案仅需要1个乘法器和1个加法器。这种分解方法称为何纳(Horner)算法。 ,方案3: 将该多项式分解为ax+b和x2形式的子计算, 一次可同时进行几个计算: P7(x) = x4x2(p7x + p6) + (p5x + p4) + x2(p3x + p2) + (p1x + p0) 设A= x2 = xx,B=(p1x + p0), C=(p3x + p2),D=(p5

14、x + p4),E=(p7x + p6),F= x4 =AA,则第1次首先并行计算A、B、C、D、E 5个子计算,第2次并行计算F、AC+B=G、AE+D=H等子计算, 第3次通过计算FH+G就可得到P7(x)。如果不计存储器,该方案需要5个乘法器和4个加法器,硬件成本稍高, 但运行时间很短。 这种分解方法称为埃士纯(Estrin)算法。 ,2 . 数字系统的逻辑划分 由于数据子系统和控制子系统的功能不同, 因此, 数字系统的逻辑划分并不太困难。凡是有关存储、 处理功能的部分, 一律纳入数据子系统; 凡是有关控制功能的部分,一律纳入控制子系统。逻辑划分后,就可以根据功能需要画出整个系统的结构框

15、图。 ,【例7-3】对例7-1中描述的统计串行输入的n位二元序列X中“1”的个数的数字系统进行逻辑划分,导出其系统结构框图, 并简述其工作过程。 解 例7-1中,已经确定了该系统的总体方案。 根据数据子系统和控制子系统的特点,用于统计X中“1”的个数的模n+1计数器(称为“1”数计数器)和用于记忆X的接收位数的模n+1计数器(称为位数计数器)都属于计数操作功能, 应该纳入到数据子系统中; “1”数计数器和位数计数器所需要的加1控制信号由控制器产生, 位数计数器的输出Q作为反映X接收位数的状态信号提供给控制器。 而X是0还是1的判断可以直接在控制器中完成,不必用比较器实现;统计过程是否结束, 由

16、控制器根据位数计数器提供的状态信号来决定。据此得到该系统的结构框图如图7-3所示。图中, st是为便于操作而设的一个脉冲型启动信号,done是为便于观察统计结果而设的一个状态输出信号,CLR为两个计数器的清0控制信号,CP1为“1”数计数器的计数时钟信号,CP2为位数计数器的计数时钟信号,Q为位数计数器提供给控制器的状态信号。 ,图 7 - 3 “1”数统计系统结构框图,该系统的大致工作过程如下: 系统加电时,系统处于等待状态,即当st=0时,系统不工作;当st=1时,系统启动工作,控制器输出CLR有效,将两个计数器清0,同时置输出状态信号done无效。 工作过程中,输入X与系统时钟CP同步。

17、 每来一个CP脉冲, 控制器接收1位X输入,并根据接收到的X是0还是1,决定是否输出“1”数计数器的计数时钟CP1脉冲;同时输出1个位数计数器计数时钟CP2脉冲,使位数计数器状态加1。 当X输入、统计完成时, 位数计数器输出状态Q使控制器停止统计过程, 并使输出状态信号done有效, 告知使用者此时“1”数计数器时输出有效。如果此时控制器转入等待状态, 则每来一个st脉冲就可以完成一次“1”数统计工作。 ,【例7-4】假设例7-2中描述的7阶多项式求值数字系统采用方案2,试对该数字系统进行逻辑划分,导出其系统结构框图,并简述其工作过程。 解 方案2将7阶多项式P7(x)分解为ax+b形式的多个

18、子计算,依次进行计算。显然,实现ax+b计算,a、b选择和循环控制的电路部分应该属于数据子系统,而完成这些计算和选择功能所需的控制部分应该属于控制子系统。 ,为了便于理解,此处给出带有较详细的数据子系统结构的系统结构框图,如图7-4所示。其中,MUL为乘法器,为加法器, MUX为数据选择器, CTR为循环次数计数器,R为寄存器。MUX2在计数器为000110时,依次选取p6p0。st为启动信号, done为操作状态输出信号;CLR为计数器CTR的清0信号,CP0为CTR的计数时钟信号; C1为MUX1的数据选择信号,0选p7而1选R;C2为R寄存器的置数控制信号。这几个信号均由控制器产,图 7

19、 - 4 7阶多项式求值系统结构框图,该系统的大致工作过程如下: 系统加电时,系统处于等待状态,即当st=0时,系统不工作, 控制器输出CLR有效,将计数器清0;当st=1时,系统启动工作, 置CLR和输出状态信号done无效,置C1=0,MUX1选择P7。由于计数器清0,MUX2选择P6国控制器输出C2有效,将p7x+p6的运算结果置入R寄存器中;输出1个CP0脉冲,使计数器加1。,在接下来的工作过程中,数据子系统在控制器的控制下, C1=1,MUX1选择R;依次选取相应的a、b,计算ax+b,并将计算结果置入R寄存器中。每计算1次ax+b,计数器加1。当计数器满7时,Q=1,计算结束, d

20、one有效,告知使用者,此时R寄存器的数值就是多项式P7(x)的计算结果。如果此时控制器转入等待状态, 则每来一个st脉冲就计算1次多项式的值。 ,【例7-5】 某数字系统采用牛顿-拉夫申(Newton-Raphson)迭代算法计算a(1/2a1)的倒数1/a的近似值Z,误差要求为aZ-1e/2。 牛顿-拉夫申迭代算法的迭代公式为Zi+1 = Zi (2-aZi),迭代初值为Z0=1。试对该数字系统进行逻辑划分,画出结构框图。 解 从牛顿-拉夫申迭代算法的迭代公式可见,该系统需要进行Zi+1 = Zi(2-aZi)的迭代运算和误差比较等操作。这类操作所需硬件应属于数据子系统范畴,而操作所需控制

21、信号则由控制子系统产生。由此可得系统的结构框图如图75所示。图中,st为系统启动信号,CP为系统时钟脉冲,done为输出状态信号,k为误差比较输出状态信号。迭代结果Z满足误差要求时k=0,迭代结束,控制器输出done有效,告知使用者输出Z有效。,图 7 - 5 计算1/a的数字系统结构框图,7.1.4 数据子系统的构造方法 1. 数据子系统的组成 数据子系统的功能是实现数据的存储、传送和处理,通常由存储部件、运算(算子)部件、数据通路、控制点及条件组成。 存储部件用来存储各种数据,包括初始数据、中间数据和处理结果,常用触发器(寄存器)、计数器和随机存取存储器(RAM)来作存储部件。 运算部件用

22、来对二进制数据进行变换和处理, 常用的组合运算部件有加法器、减法器、乘法器、除法器、比较器等,常用的时序运算部件有计数器和移位寄存器等。 ,数据通路用来连接系统中的存储器、运算部件以及其它部件, 常用导线和数据选择器等来实现。 控制点是数据子系统中接收控制信号的组件输入点, 控制信号通过它们实现运算部件操作、数据通路选择以及寄存器的置数等控制操作。以集成触发器为例,其时钟输入端和异步清0、置1端均可作为控制点。 条件是数据子系统输出的一部分,控制子系统利用它来决定条件控制信号或别的操作序列。条件可以看作数据子系统提供给控制子系统的操作状态信息。,2. 数据子系统的构造方法 数据子系统一旦分离出

23、来以后,接下来要做的工作就是如何选用适当的基本模块构造出数据子系统的实际结构。这里仍以前面介绍的两个数字系统为例介绍数据子系统的构造方法。 【例7-6】构造例7-3中的“1”数统计系统的数据子系统。 ,图 7 - 6 “1”数统计系统的数据子系统结构,【例7-7】构造例7-5中采用牛顿-拉夫申迭代算法Zi+1= Zi(2-aZi)计算1/a的近似值Z的数据子系统。 解 从牛顿-拉夫申迭代算法可见,算法本身每迭代一轮有两次乘法、一次减法,而误差比较时也有一次乘法、一次减法以及一次比较。 误差比较的乘法与迭代时的一次乘法相同,共用一次乘法。这样,仅需两次乘法、两次减法和一次比较。由于乘法器代价较高

24、,因此采用一个乘法器外加一个数据选择器(数据选择器用来选择乘数)来完成两次乘法运算。另外,还需采用几个寄存器来寄存初值和迭代结果:A寄存器寄存a,E寄存器寄存误差值e/2,Z寄存器寄存结果Z,W寄存器寄存中间结果aZi, Y寄存器寄存2-aZi。这样,数据子系统所需硬件如下: ,存储部件: A寄存器, 1个, 寄存a E寄存器, 1个, 寄存e/2 W寄存器, 1个, 寄存aZi Y寄存器, 1个, 寄存2-aZi Z寄存器, 1个, 寄存结果Z及中间迭代结果Zi+1,运算部件: MUL乘法器, 1个 SUB减法器, 2个,分别用于计算2-aZi和|aZi-1| COMP比较器,1个,完成误差

25、比较,数据通路: MUX数据选择器,2个,分别用于选择Z寄存器和乘法 器的输入参数控制点(控制信号): C1Aa,将a置入寄存器A中 C2Z输入参数选择,0选初值“1”,1选Zi+1 C3ZMUX1,与C2配合将“1”或一轮迭代结果Zi+1置入寄存器Z中 C4MUL的输入参数选择,0选A,1选Y C5Ee/2,将e/2置入寄存器E中 C6WaZi,将aZi置入寄存器W中 C7-Y2-aZi,将2-aZi置入寄存器Y中,条件: k误差比较结果, 满足误差要求时, k = 0 st系统启动信号, st = 1表示系统启动 由此可得计算1/a近似值Z的一种数据子系统结构如图77所示。该数据子系统虽然

26、比较复杂,但图中每一个小方框所对应的逻辑部件都不难找到,这里就不再描述用具体器件实现时的数据子系统结构了。不过需要指出的是, 图中的减法器SUB2要求实现|aZi-1|的功能,即不仅要完成减法运算,而且还要能取绝对值, 这与减法器SUB1有所不同。,图 7 - 7 计算1/a近似值的数据子系统,7.2 控制子系统的设计工具,7.2.1 ASM图 ASM图是算法状态机图(Algorithmic State Machine Chart)的简称,是一种用来描述时序数字系统控制过程的算法流程图, 其结构形式与计算机中的程序流程图非常相似。 算法状态机本质上是一个有限状态机(Finite State M

27、achine)。 有限状态机也称有限自动机或时序机,是一个抽象的数学模型, 主要用来描述同步时序系统的操作特性。时序机理论不仅在数字系统设计和计算机科学中得到应用,而且在社会、经济、系统规划等学科领域也有着非常广泛的应用。,1. ASM图的基本符号和结构 ASM图由状态块(State Box)、判别块(Decision Box)、条件输出块(Conditional Output Box)和输入、 输出路径(Entry or Exit Path)构成。输入、输出路径实际上就是一些带箭头的向线,由它们把状态块、判别块和条件输出块有机地连接起来,构成完整的ASM图。 ,状态块为矩形框,代表ASM图的

28、一个状态。 状态的名称及编码分别标在状态块的左、右上角(也可只标状态或编码), 块内列出该状态下数据子系统进行的操作及控制器为实现这种操作而产生的控制信号输出(如果无数据操作和控制输出, 状态块内为空白),如图7-8所示。该状态块表明, 当电路处于S5(编码为101)状态时, 数据子系统应将XY的结果置入P寄存器中; 为了实现这一操作,控制器应发出C5控制信号, 且为高电平。 有时为了简便,状态块内也可只列出控制信号而省略数据操作。,图 7 - 8 状态块,判别块为菱形框, 用来表示ASM图的状态分支。 判别块内列出判别条件, 判别块的出口处列出满足的条件,如图7-9所示。 该图说明此处的判别

29、条件是XY, 当XY=00时,电路转向S2状态; 当XY=01时,电路转向S1状态;当XY=1时,电路转向S4状态。,图 7 - 9 判别块,图 7-10 条件输出块,条件输出块为椭圆状或两端为圆弧线的框, 用来表示ASM图的条件输出。条件输出块总是位于满足状态分支条件的支路上,当满足该分支条件时, 立即执行条件输出块中规定的操作(这与状态块中的操作明显不同)。例如,图7-10中,SRLA即为一个条件输出块。当X=0时,电路将转向S1状态;而当X=1时,将立即执行该条件输出块中规定的SRLA操作(将寄存器A的内容右移1位), 然后转向S2状态。 电路状态的转换是在系统时钟脉冲CP的控制下进行的

30、。当无CP脉冲到来时,系统将维持现在的状态不变。,图 7 - 11 “1”1数统计系统控制器ASM图,在S2状态下,系统控制器输出位数计数器的CP2计数脉冲,使位数计数器在CP脉冲的下降沿(CP2的上升沿,表示上升沿)时状态加1。 此时, 如果X=1, 则同时产生“1”数计数器的CP1计数脉冲,使“1”数计数器状态加1; 如果X=0, 则不产生CP1脉冲, “1”数计数器状态保持不变。下一个CP时钟脉冲信号上升沿到来时, 如果位数计数器的状态输出Q=0, 说明X尚未收完,系统进入S2状态;如果位数计数器的状态输出Q=1,说明X已经收完,系统进入S0状态,输出状态信号done=1, 告知使用者“

31、1”数统计已经结束, “1”数计数器的内容即为X中“1”的个数。只要没来新的st启动脉冲, “1”数计数器的内容即X中“1”的个数将一直保持下来。,图 7 - 12 7阶多项式求值系统的结构框图,图 7 - 13 7阶多项式求值系统控制器的ASM图,在S2状态下,计数器74161在CP0上升沿状态加1。 当下一个CP脉冲上升沿到来时,系统转入S3状态。 在S3状态下, C2的上升沿(CP的下降沿)将ax+b的计算结果存入R寄存器中。由于C2在S1和S3状态时表达式不同,其总的表达式必须综合这两种情况,因此可用C2=S1CP+S3CP来描述。如果此时Q=0, 说明尚未计算完, 下一个CP脉冲上升

32、沿到来时转入S2状态,继续计算过程;如果此时Q=1,即计数器已经进入111状态, 说明计算已经结束, 下一个CP脉冲上升沿到来时系统转入S0状态,将计数器清0;同时使操作状态信号done=1,表示计算已经结束,等待下一次启动。,7.2.2 分组-按序算法语言 与ASM图用图形方式描述时序系统控制算法不同, 算法语言是用语言文件方式描述数字系统的控制算法。 常用的算法语言有RTL语言(Register Transfer Language)、VHDL语言(VHSIC Hardware Description Language)和分组-按序算法语言(GroupSequential Algorithm

33、s Language), 它们都属于硬件描述语言。 硬件描述语言HDL(Hardware Description Language)是一种能够描述硬件电路的功能、 信号连接关系及定时关系的语言,它能比电路原理图更好地描述硬件电路的特性。利用算法语言设计数字系统,其过程类似于程序设计。 ,与VHDL 语言和RTL语言相比, 分组-按序算法语言具有以下优点: 语法简单, 语义明了, 非常便于理解和使用; 在实现层次上用该语言描述的算法,可用硬件或微程序直接实现,非常便于系统功能的实现; 设计过程类似程序设计, 稍具程序设计知识的人即可用它设计数字系统; 采用这种算法设计的数字系统, 运行速度较高,

34、 硬件成本较低,具有较高的性能价格比。 ,1. 分组-按序算法语言 分组-按序算法语言简称GSAL语言, 它与RTL语言非常接近。 所谓分组-按序算法,是指包括很多子计算且子计算被分成许多组, 执行时组内并行、组间按序的算法, 如图7-14所示。图中椭圆框中的每个小圆圈表示一个子计算, 每个椭圆框中的子计算为一组。 一个时间节拍系统只计算一组子计算,下一个时间节拍才按照顺序计算下一组子计算。,图 7 - 14 分组-按序算法,1. 分组-按序算法语言 分组-按序算法语言简称GSAL语言, 它与RTL语言非常接近。 所谓分组-按序算法,是指包括很多子计算且子计算被分成许多组, 执行时组内并行、组

35、间按序的算法,如图7-14所示。 图中椭圆框中的每个小圆圈表示一个子计算, 每个椭圆框中的子计算为一组。一个时间节拍系统只计算一组子计算, 下一个时间节拍才按照顺序计算下一组子计算。 ,数字系统的大多数算法都属于分组-按序算法。 例如前面介绍的“1”数统计系统和7阶多项式求值系统中ASM图描述的控制算法, 都是分组-按序算法。 分组-按序算法语言通常包括数据集、函数、指定、语句结构、模块化结构以及注释等。实现层次的数据集只能是比特矢量, 而采用模块化结构只是为了便于算法的扩展。,1) 函数 函数也称算子,其抽象符号为OP。 它是数据子系统中的数据处理模块,可能是组合的, 也可能是时序的。 例如

36、, “比较”算子是组合的, 而“移位”算子就是时序的。 算子有一般函数和条件选择函数之分。 一般函数: 常用大写字母串命名,例如,ADD(X,Y)就是一个“加法”算子, 如果其输出为Z, 则可记为 Z := ADD(X,Y) (7-1) 其中, ADD(X,Y) := X+Y。 符号“:=”用于说明或再命名。, 条件选择函数: 它的功能是根据条件的真假从可能的输出集合中选择一个输出,其语言结构为 A if a|B if b|C if c (7-2) 此处,A、B、C为输出集中的元素,a、b、c为相应的条件,|为选择符。该式的含义是:如果条件 a为真, 则输出为A; 如果条件b为真, 则输出为B

37、; 如果条件c为真,则输出为C。 一般情况下,每次至多只有一个条件为真(取值为1)。 当所有条件均为假时, 函数值未定义。,条件选择函数可用逻辑门或数据选择器实现。四选一数据选择器的功能可以用条件选择函数描述如下:,2) 指定 指定也称赋值,其功能就是将源值S赋给目标D, 需要由寄存器传送来实现。 指定有无条件指定和条件指定之分。 无条件指定:就是指这种指定的执行是无条件的,其语言结构为 DS (7-3) 无条件指定的实现结构如图7-15(a)所示,图中L为置数使能输入端,高电平有效。 允许AA+B这样的指定,意为 A(tn+1) = A(tn)+B(tn)。 , 条件指定: 就是指这种指定的

38、执行是有条件的。 它有两种语言结构 if c then DS if c then D1S1 else D2S2 它们的实现结构分别如图7-15(b)和图7-15(c)所示。假定寄存器置数控制L高电平有效。,(7-4),(7-5),图 7 - 15 指定的实现结构 (a) 无条件指定; (b) 条件指定1; (c) 条件指定2,3) 语句结构 语句是算法的最小执行单位, 是描述可同时实现的一组指定的语言结构, 其格式为 标号: 指定1指定2 指定n; 标号是由字符串构成的语句标识, 以冒号为结束标志。 语句的标号可有可无。 为各指定的间隔符(注意与条件选择函数的选择符| 的区别),表示一种并列关

39、系,与顺序无关。分号表示语句的结束。 ,在实现层次上, 语句既可用硬件(Hardware)实现, 又可用微程序(microprogram)实现。用硬件实现时, 语句的标号用状态名表示; 用微程序实现时,语句的标号用控制存储器中微指令的地址表示。 语句有显式和隐式两种执行顺序。 在显式顺序中,每条语句包含将要执行的下一条语句的标号,该标号作为语句的一部分列于全部指定之后, 用右向箭头及标号表示 指定标号; (7-7) 由于这种方法中明显地给出了语句的执行顺序, 因此称为显式顺序。显式顺序可以是有条件的, 也可以是无条件的。 ,所谓隐式顺序,就是一般情况下,各条语句的执行顺序隐含于语句的书写顺序中

40、;当需要脱离隐式顺序时, 采用条件转移。例如上例中的显式算法,采用隐式顺序时可改写如下:,LP: WMUL(A,B); CHEC: if c then AINC(A); YXOR(A,B)LP if a| CHEC if b; END: ZADD(W,Y)ASUB(W,Y); ,在微程序实现中,常用这种隐式顺序, 以便缩短微指令长度, 减少存储器容量, 降低成本。 ,4) 注释 注释用于对算法或语句的说明, 以便阅读、 检查。 注释占用单独的行, 且位于/* */之间。 注释可有可无。 ,2. 分组-按序算法语言应用举例 【例7-11】编写“1”数求值系统的控制算法。 解 例7-6中已经导出了

41、“1”数统计系统的数据子系统结构。 根据前面确定的统计方法,得到其系统控制算法如下(每条语句后为解释性说明): WAIT: done=1WAIT if st;等待st启动脉冲。done=1为组合输出 CTR10CTR20; 计数器清0 CN: if X then CTR1CTR1+1CTR2CTR2+1CN if Q|WAIT if Q; ; 如果X=1, “1” 数计数器加1, 否则保持。 位数计数器加1,当Q=1时统计结束该控制算法并非惟一。 例如, 也可以采用下面的控制算法:,【例7-12】 编写7阶多项式求值系统的控制算法。 解 图7-12中已经导出了7阶多项式求值系统的结构框图。其控

42、制算法如下: ,WAIT:done=1CTR0WAIT if st; done=1,计数器清0, 等待st启动脉冲 Rp7; 将p7置入R寄存器中 LOOP:CTRCTR+1; 循环次数计数器加1 Rax+bLOOP if WAIT if Q; 将ax+b置入R寄存器中, Q=1时 统计结束 ,7.3 控制子系统的实现方法,实现控制子系统一般包括以下几个步骤: 根据所采用的数据子系统结构, 导出合适的系统控制算法(ASM图或算法文件); 根据导出的系统控制算法, 画出系统的控制状态图(也可省略这一步); 采用同步时序电路的设计方法或微程序设计方法, 实现控制子系统。,7.3.1 硬件控制器的实

43、现方法 硬件控制器的实现方法与同步时序电路的设计方法并无多大差别。由于常常以MSI计数器或移位寄存器为核心进行设计, 所以一般情况下,这种实现方法不需要对控制状态图进行化简。 使用计数器进行设计时, 状态编码要注意按照计数器的规律进行编码,尽量多使用MSI计数器的计数功能来实现控制器的状态转换;使用移位寄存器进行设计时,状态编码要注意按照移位寄存器的规律进行编码,尽量多使用MSI移位寄存器的移位功能来实现控制器的状态转换。,【例7-13】以4位二进制同步可预置加法计数器74161为核心, 设计图7-11所示ASM图描述的“1”数统计系统控制器。 解 根据图7-11所示ASM图,得到“1”数统计

44、系统的控制状态图如图7-16所示。 状态转换条件中,原变量表示1,反变量表示0,这与时序电路的状态图有些不同。,图 7 - 16 “1”数统计系统的控制状态图,表7-1 74161控制激励表,有关激励和控制信号的表达式为,用74161构成的“1”数统计系统控制器电路如图7-17所示。 为了保证控制器一开始处于S0状态,加电后应先将74161清0。,图 7 - 17 “1”数统计系统控制器电路,由于只有4个状态,因此只需要两位二进制编码。 采用74194且使用右移方式时,只需使用QAQB即可。状态编码如下: S000, S110, S211, S301 由此得到74194的控制激励表,如表7-2

45、所示。从中直接写出有关激励和控制输出表达式,表7-2 74194控制激励表,图 7 - 19 7阶多项式求值系统控制器电路,7.3.2 微程序控制器的实现方法 在微程序控制器的实现方法中, 控制算法中的每一条语句称为一条微指令(Micro-instrution),每条微指令中的一个基本操作称为微操作。一条微指令可有多个微操作,它们的编码即为微指令的操作码。描述一个算法的全部微指令的有序集合就称为微程序。 微程序控制器实现方法的基本思想是: 将反映系统控制过程的控制算法以微指令的形式存放在控制存储器中,然后一条条将它们取出并转化为系统的各种控制信号,从而实现预定的控制过程。这种实现方法称为微程序

46、设计方法,用微程序方法设计的控制器称为微程序控制器。,微程序控制器的基本结构如图7-20所示。由图中可见,在微程序控制器中,条件与现态(PS)作ROM的地址,次态(NS)与控制信号作ROM 的内容, 寄存器作状态寄存器。 p个条件、n位状态编码, 要求ROM有n+p位地址、 2n+p个单元;n位状态编码、m个控制信号,要求ROM单元的字长为n+m位。 这就意味着所选ROM的存储容量不少于2n+p(n+m)。 与硬件控制器相比,微程序控制器具有结构简单、 修改方便、 通用性强的突出优点。尤其是当系统比较复杂、状态很多时,微程序控制器的优势更加明显。当然,如果控制器非常简单、状态不多时,因控制存储

47、器的浪费,使用微程序控制器反而有可能提高系统成本。因此,在决定采用微程序控制器前,应该估算一下系统的综合成本。 ,【例7-15】用微程序设计方法实现图7-18所示的控制状态图描述的7阶多项式求值系统控制器。 解 从图7-18所示的系统控制状态图可见,该系统共有4个状态、2个条件(st ,Q)、5个控制信号。 4个状态, 需要2位二进制编码, 即n=2; 2个条件,5个控制信号,即p=2,m=5。因此,所需ROM的地址为n+p=2+2=4位,ROM单元数为2n+p=24=16个,ROM字长为n+m=2+5=7位,ROM容量为2n+p(n+m)=167位。,表7-3 7阶多项式求值系统微程序控制器

48、ROM的地址-内容表,图 7 - 21 7阶多项式求值系统微程序控制器电路,7.4 数字系统设计举例,7.4.1 14位二进制数密码锁系统 密码锁在防盗保险箱、 汽车防盗门等领域有着非常广泛的应用,其基本功能是,当使用者按序正确输入预置的密码时, 才能打开密码锁。实际的密码锁一般使用十进制数密码,为了简单起见,此处使用二进制数密码。14位二进制数密码共有214(16384)种密码组合,密码性能介于45位十进制数密码之间, 可以满足一般场合的使用要求。,1. 系统功能与使用要求 为了给设计者提供较大的设计灵活性, 这里仅对14位二进制数密码锁系统提出一些最基本的功能和使用方面的要求: 具有密码预置功能; 密码串行输入, 且输入过程中不提供密码数位信息; 只有正好输入14位密码且密码完全正确时按下试开键, 才能打开密码锁,否则,系统进入错误状态(死机); 在任何情况下按下

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1