《数字系统设计》PPT课件.ppt
《《数字系统设计》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《数字系统设计》PPT课件.ppt(149页珍藏版)》请在三一办公上搜索。
1、第7章 数字系统设计,7.1 数字系统设计概述7.2 控制子系统的设计工具7.3 控制子系统的实现方法7.4 数字系统设计举例,7.1 数字系统设计概述,1.什么是数字系统 在数字电子技术领域内,由各种逻辑器件构成的能够实现某种单一特定功能的电路称为功能部件级电路,例如前面各章介绍的加法器、比较器、译码器、数据选择器、计数器、移位寄存器、存储器等就是典型的功能部件级电路,它们只能完成加法运算、数据比较、译码、数据选择、计数、移位寄存、数据存储等单一功能。而由若干数字电路和逻辑部件构成的、能够实现数据存储、传送和处理等复杂功能的数字设备,则称为数字系统(Digital System)。电子计算机
2、就是一个典型的复杂数字系统。,2.数字系统的一般结构 按照现代数字系统设计理论,任何数字系统都可按计算机结构原理从逻辑上划分为数据子系统(Data Subsystem)和控制子系统(Control Subsystem)两个部分,如图7-1所示。,图 7-1 数字系统的一般结构,数据子系统是数字系统的数据存储与处理单元,数据的存储、传送和处理均在数据子系统中进行。它从控制子系统接收控制信息,并把处理过程中产生的状态信息提供给控制子系统。由于它主要完成数据处理功能且受控制器控制,因此也常常把它叫做数据处理器或受控单元。控制子系统习惯上称为控制器或控制单元,它是数字系统的核心。数据子系统只能决定数字
3、系统能完成哪些操作,至于什么时候完成何种操作则完全取决于控制子系统。控制子系统根据外部控制信号决定系统是否启动工作,根据数据子系统提供的状态信息决定数据子系统下一步将完成何种操作,并发出相应的控制信号控制数据子系统实现这种操作。控制子系统控制数字系统的整个操作进程。,由此不难看出,在这种结构下,有无控制器就成为区分系统级设备和功能部件级电路的一个重要标志。凡是有控制器且能按照一定程序进行操作的,不管其规模大小,均称为数字系统;凡是没有控制器、不能按照一定程序进行操作的,不论其规模多大,均不能作为一个独立的数字系统来对待,至多只能算一个子系统。例如数字密码锁,虽然仅由几片MSI器件构成,但因其中
4、有控制电路,所以应该称之为数字系统。而大容量存储器,尽管其规模很大,存储容量可达数兆字节,但因其功能单一、无控制器,只能称之为功能部件而不能称为系统。,7.1.2 数字系统设计的一般过程,图 7-2 数字系统设计过程,1.系统调研,确定总体方案 接受一个数字系统的设计任务后,首先应对设计课题进行充分的调研,深入了解待设计系统的功能、使用环境与使用要求,选取合适的工作原理与实现方法,确定系统设计的总体方案。这是整个设计工作中最为困难也最体现设计者创意的一个环节。因为同一功能的系统有多种工作原理和实现方法可供选择,方案的优劣直接关系到所设计的整个数字系统的质量,所以必须对可以采用的实现原理、方法的
5、优缺点进行全面、综合的比较、评判,慎重地加以选择。总的原则是,所选择的方案既要能满足系统的要求,又要结构简单,实现方便,具有较高的性能价格比。,2.逻辑划分,导出系统框图 系统总体方案确定以后,可以根据数据子系统和控制子系统各自的功能特点,将系统从逻辑上划分为数据子系统和控制子系统两部分,导出包含有必要的数据信息、控制信息和状态信息的结构框图。逻辑划分的原则是,怎样更有利于实现系统的工作原理,就怎样进行逻辑划分。为了不使这一步的工作太过复杂,结构框图中的各个逻辑模块可以比较笼统、比较抽象,不必受具体芯片型号的约束。,3.功能分解,构造数据子系统 逻辑功能划分后获得的数据子系统结构框图中的各个模
6、块还比较抽象,功能也可能还比较复杂,必须进一步对这些模块进行功能分解,直到可用合适的芯片或模块来实现具体的存储和处理功能。适当连接这些芯片、模块,就可构造出数据子系统的详细结构。必须注意,为了简化控制子系统的设计,数据子系统不仅要结构简单、清晰,而且要便于控制。,4.算法设计,实现控制子系统 根据导出的数据子系统结构,编制出数字系统的控制算法,得到数字系统的控制状态图,并采用同步时序电路设计的方法完成控制子系统的设计。数字系统的控制算法反映了数字系统中控制子系统对数据子系统的控制过程,它与系统所采用的数据子系统的结构密切相关。例如,某个数字系统中有10次乘法操作,且参与乘法操作的数据可以同时提
7、供。如果数据子系统有10个乘法器,则控制算法中就可以让这10次乘法操作同时完成;但如果数据子系统中只有一个乘法器,则控制算法就只能是逐个完成这10次乘法操作。因此,算法设计要紧密结合数据子系统的结构来进行。,一般来讲,数据子系统通常为人们熟悉的各种功能电路,无论是采用现成模块还是自行设计,都有一些固定的方法可循,不用花费太多精力。相对说来,控制子系统的设计要复杂得多。因此,人们往往认为数字系统设计的主要任务就是要设计一个好的控制子系统。,经过上述四个步骤后,数字系统设计在理论上已经完成。为了保证系统设计的正确性和可靠性,如果有条件的话,可以先采用EDA软件对所设计的系统进行仿真,然后再用具体器
8、件搭设电路。搭设电路时,一般按自底向上的顺序进行。这样做,不仅有利于单个电路的调试,而且也有利于整个系统的联调。因此,严格地讲,数字系统设计的完整过程应该是“自顶向下设计,自底向上集成”。,必须指出,数字系统的上述设计过程主要是针对采用标准集成电路的系统而言的。实际上,除了采用标准集成电路外,还可以采用PLD器件或微机系统来实现数字系统,此时的设计过程会略有不同。例如采用PLD器件设计数字系统时,就没有必要将系统结构分解为一些市场上可以找到的基本模块;在编写出源文件并编译仿真后,通过“下载”就可获得要设计的系统或子系统。,7.1.3 数字系统的总体方案与逻辑划分 1.数字系统的总体方案 数字系
9、统的总体方案的优劣直接关系到整个数字系统的质量与性能,需要根据系统的功能要求、使用要求及性能价格比周密思考后确定。下面通过两个具体实例进行说明。【例7-1】某数字系统用于统计串行输入的n位二元序列X中“1”的个数,试确定其系统方案。解 该数字系统的功能用软件实现最为方便,但此处仅讨论硬件实现问题。,该系统看起来非常简单,但却无法用前面介绍的同步时序电路设计方法进行设计。因为无论从接收序列的可能组合数还是从收到“1”的个数来假设状态,其状态图或状态表都十分庞大。如果从接收序列的可能组合数来假设状态,则需要2n个状态;如果从当前接收到“1”的个数来假设状态,也需要n+1个状态。例如,n=255时,
10、分别需要设2255和256个状态,这样的设计规模是无法想象的。由此可见,时序电路的设计方法的确不适用于数字系统设计。,如果换一种思路,从实现“1”的统计功能所需要的操作入手,问题就可以迎刃而解。因为从实现“1”的统计功能所需要的操作来看,只需要这样几种操作:一是对X的数位进行累计;二是对接收到的X进行是0还是1的判断;三是当X=1时使“1”数计数器加1计数;四是判断X的全部数位是否统计完毕,如果统计完毕,工作即告结束。具体统计过程与软件实现完全相同,即每接收1位X,就判断一下该位是0还是1,如果X为0,“1”数计数器维持原态;如果X为1,则“1”数计数器加1,且每接收1位,位数计数器加1。待n
11、位X的各位全部判断、计数后,“1”数计数器的值就是X中“1”的个数。,从实现的角度看,这种方案需要1个控制器来控制整个统计过程。而为了实现统计功能,该方案至少还需要两个模n+1的计数器,其中一个计数器用于累计X中“1”的个数,另一个用于累计X的接收位数。,【例7-2】某数字系统用于7阶多项式求值:,试确定该系统的总体方案。,解 P7(x)=p7x7+p6x6+p5x5+p4x4+p3x3+p2x2+p1x+p0实现该多项式求值,可用的方案较多,此处给出其中的3种方案。,方案1:直接按上式计算多项式的值,则需要6个能计算xi的运算部件、7个能够计算pixi的乘法器及7个加法器。该方案的优点是速度
12、快,但硬件成本太高。因为仅实现xi运算的硬件成本就非常高。而且,如果采用该方案求值,没有、也不需要控制器,因此不能称为数字系统。,方案2:将该多项式分解为ax+b形式的多个子计算,依次进行计算:P7(x)=(p7x+p6)x+p5)x+p4)x+p3)x+p2)x+p1)x+p0即首先计算p7x+p6,然后计算(p7x+p6)x+p5,最后计算得到P7(x)。该方案每次仅完成1个ax+b的运算,共需7次计算才能求得P7(x)的值,运行时间较长,但硬件成本很低。如果不计存储器和用于循环次数控制的计数器、比较器,则该方案仅需要1个乘法器和1个加法器。这种分解方法称为何纳(Horner)算法。,方案
13、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=(p5x+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.数字系统的逻辑划分 由于数据子系统
14、和控制子系统的功能不同,因此,数字系统的逻辑划分并不太困难。凡是有关存储、处理功能的部分,一律纳入数据子系统;凡是有关控制功能的部分,一律纳入控制子系统。逻辑划分后,就可以根据功能需要画出整个系统的结构框图。,【例7-3】对例7-1中描述的统计串行输入的n位二元序列X中“1”的个数的数字系统进行逻辑划分,导出其系统结构框图,并简述其工作过程。解 例7-1中,已经确定了该系统的总体方案。根据数据子系统和控制子系统的特点,用于统计X中“1”的个数的模n+1计数器(称为“1”数计数器)和用于记忆X的接收位数的模n+1计数器(称为位数计数器)都属于计数操作功能,应该纳入到数据子系统中;“1”数计数器和
15、位数计数器所需要的加1控制信号由控制器产生,位数计数器的输出Q作为反映X接收位数的状态信号提供给控制器。而X是0还是1的判断可以直接在控制器中完成,不必用比较器实现;统计过程是否结束,由控制器根据位数计数器提供的状态信号来决定。据此得到该系统的结构框图如图7-3所示。图中,st是为便于操作而设的一个脉冲型启动信号,done是为便于观察统计结果而设的一个状态输出信号,CLR为两个计数器的清0控制信号,CP1为“1”数计数器的计数时钟信号,CP2为位数计数器的计数时钟信号,Q为位数计数器提供给控制器的状态信号。,图 7-3“1”数统计系统结构框图,该系统的大致工作过程如下:系统加电时,系统处于等待
16、状态,即当st=0时,系统不工作;当st=1时,系统启动工作,控制器输出CLR有效,将两个计数器清0,同时置输出状态信号done无效。工作过程中,输入X与系统时钟CP同步。每来一个CP脉冲,控制器接收1位X输入,并根据接收到的X是0还是1,决定是否输出“1”数计数器的计数时钟CP1脉冲;同时输出1个位数计数器计数时钟CP2脉冲,使位数计数器状态加1。当X输入、统计完成时,位数计数器输出状态Q使控制器停止统计过程,并使输出状态信号done有效,告知使用者此时“1”数计数器时输出有效。如果此时控制器转入等待状态,则每来一个st脉冲就可以完成一次“1”数统计工作。,【例7-4】假设例7-2中描述的7
17、阶多项式求值数字系统采用方案2,试对该数字系统进行逻辑划分,导出其系统结构框图,并简述其工作过程。解 方案2将7阶多项式P7(x)分解为ax+b形式的多个子计算,依次进行计算。显然,实现ax+b计算,a、b选择和循环控制的电路部分应该属于数据子系统,而完成这些计算和选择功能所需的控制部分应该属于控制子系统。,为了便于理解,此处给出带有较详细的数据子系统结构的系统结构框图,如图7-4所示。其中,MUL为乘法器,为加法器,MUX为数据选择器,CTR为循环次数计数器,R为寄存器。MUX2在计数器为000110时,依次选取p6p0。st为启动信号,done为操作状态输出信号;CLR为计数器CTR的清0
18、信号,CP0为CTR的计数时钟信号;C1为MUX1的数据选择信号,0选p7而1选R;C2为R寄存器的置数控制信号。这几个信号均由控制器产,图 7-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;依
19、次选取相应的a、b,计算ax+b,并将计算结果置入R寄存器中。每计算1次ax+b,计数器加1。当计数器满7时,Q=1,计算结束,done有效,告知使用者,此时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。试对该数字系统进行逻辑划分,画出结构框图。解 从牛顿-拉夫申迭代算法的迭代公式可见,该系统需要进
20、行Zi+1=Zi(2-aZi)的迭代运算和误差比较等操作。这类操作所需硬件应属于数据子系统范畴,而操作所需控制信号则由控制子系统产生。由此可得系统的结构框图如图75所示。图中,st为系统启动信号,CP为系统时钟脉冲,done为输出状态信号,k为误差比较输出状态信号。迭代结果Z满足误差要求时k=0,迭代结束,控制器输出done有效,告知使用者输出Z有效。,图 7-5 计算1/a的数字系统结构框图,7.1.4 数据子系统的构造方法 1.数据子系统的组成 数据子系统的功能是实现数据的存储、传送和处理,通常由存储部件、运算(算子)部件、数据通路、控制点及条件组成。存储部件用来存储各种数据,包括初始数据
21、、中间数据和处理结果,常用触发器(寄存器)、计数器和随机存取存储器(RAM)来作存储部件。运算部件用来对二进制数据进行变换和处理,常用的组合运算部件有加法器、减法器、乘法器、除法器、比较器等,常用的时序运算部件有计数器和移位寄存器等。,数据通路用来连接系统中的存储器、运算部件以及其它部件,常用导线和数据选择器等来实现。控制点是数据子系统中接收控制信号的组件输入点,控制信号通过它们实现运算部件操作、数据通路选择以及寄存器的置数等控制操作。以集成触发器为例,其时钟输入端和异步清0、置1端均可作为控制点。条件是数据子系统输出的一部分,控制子系统利用它来决定条件控制信号或别的操作序列。条件可以看作数据
22、子系统提供给控制子系统的操作状态信息。,2.数据子系统的构造方法 数据子系统一旦分离出来以后,接下来要做的工作就是如何选用适当的基本模块构造出数据子系统的实际结构。这里仍以前面介绍的两个数字系统为例介绍数据子系统的构造方法。【例7-6】构造例7-3中的“1”数统计系统的数据子系统。,图 7-6“1”数统计系统的数据子系统结构,【例7-7】构造例7-5中采用牛顿-拉夫申迭代算法Zi+1=Zi(2-aZi)计算1/a的近似值Z的数据子系统。解 从牛顿-拉夫申迭代算法可见,算法本身每迭代一轮有两次乘法、一次减法,而误差比较时也有一次乘法、一次减法以及一次比较。误差比较的乘法与迭代时的一次乘法相同,共
23、用一次乘法。这样,仅需两次乘法、两次减法和一次比较。由于乘法器代价较高,因此采用一个乘法器外加一个数据选择器(数据选择器用来选择乘数)来完成两次乘法运算。另外,还需采用几个寄存器来寄存初值和迭代结果: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
24、-1|COMP比较器,1个,完成误差比较,数据通路: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所示。该
25、数据子系统虽然比较复杂,但图中每一个小方框所对应的逻辑部件都不难找到,这里就不再描述用具体器件实现时的数据子系统结构了。不过需要指出的是,图中的减法器SUB2要求实现|aZi-1|的功能,即不仅要完成减法运算,而且还要能取绝对值,这与减法器SUB1有所不同。,图 7-7 计算1/a近似值的数据子系统,7.2 控制子系统的设计工具,7.2.1 ASM图 ASM图是算法状态机图(Algorithmic State Machine Chart)的简称,是一种用来描述时序数字系统控制过程的算法流程图,其结构形式与计算机中的程序流程图非常相似。算法状态机本质上是一个有限状态机(Finite State
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字系统设计 数字 系统 设计 PPT 课件
链接地址:https://www.31ppt.com/p-5519157.html