《数字系统与逻辑设计》课件第11章_第1页
《数字系统与逻辑设计》课件第11章_第2页
《数字系统与逻辑设计》课件第11章_第3页
《数字系统与逻辑设计》课件第11章_第4页
《数字系统与逻辑设计》课件第11章_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第11章数字系统设计基础11.1数字系统的概念11.2系统控制器的设计11.3数字系统设计实例——交通灯控制系统

11.1数字系统的概念

11.1.1数字系统的基本模型

图11-1-1所示为数字系统的基本模型框图,它由输入部件、输出部件及逻辑系统构成。图11-1-1数字系统结构框图逻辑系统包括存储部件、处理部件和控制部件三大部件。从控制与被控制的关系看,逻辑系统内的存储部件和处理部件是被控部件,又称执行部件或被控子系统,它们在控制部件的控制下完成各种操作。控制部件是逻辑系统的核心,它是用来控制系统内各部分协同工作的电路,控制部件根据输入信号及处理部件反馈的信号,产生对处理部件的控制信号及对外界的输出信号。

这里的输入/输出部件主要用于系统和外界交换信息,输入部件可看做被处理的信息源,而输出部件可看做运算结果的输出显示。11.1.2数字系统与逻辑功能部件的区别

数字电子技术领域内,由逻辑器件构成的能够实现某一特定功能的电路称为逻辑功能部件,例如加法器、比较器、译码器、数据选择器、计数器、移位寄存器、存储器等,它们分别只能完成加法运算、数据比较、译码功能、数据选择、计数、移位寄存、数据存储等单一功能。数字系统的设计过程是从总体任务开始,然后再划分为若干子系统。对于复杂的子系统,还可以再细分,直至任务明确且易于实现。划分出来的子系统一般就是一个逻辑功能部件,比如译码器、寄存器组等。当我们将这些细分的子系统合并为大系统时,必须有一个控制部件来统一协调和管理各个子系统的工作,所以,数字系统是由若干个逻辑功能部件组成,并由一个控制部件统一指挥,具有数据存储、传输和处理等功能的数字设备。因此,有没有控制部件是区别数字系统和逻辑功能部件的重要标志。

数字系统的规模可大可小,复杂程度差别也大,但通常都是由组合和时序逻辑功能电路连接而成的。整个系统按照一定的要求,实现复杂的逻辑运算。例如,通用计算机就是一个典型的复杂数字系统。

11.1.3数字系统的设计方法及设计流程

现代数字电路系统设计过程可以分为自底向上、自顶向下以及混合设计三种。自底向上设计是指先进行基于门电路级的设计,并在此基础上建立单元模块,逐级向上构成大模块以至整个电路的方式。自顶向下是指把初始设计看做一个大模块,逐级将其划分成子模块,直至物理实现。混合设计则介于这两种设计方法之间,在设计大模块的同时还可以设计其中的子模块及物理实现。

1.自底向上设计方法

自底向上设计是传统的设计方法。在进行设计时,一个硬件系统的实现过程是从选择具体的元器件开始的,如图11-1-2所示。当开始使用计算机辅助设计(CAD)进行系统设计时,为电路设计开发的CAD软件也是按照这种设计流程建立的。在CAD设计中,由底层逻辑库中调用逻辑门单元的过程是借助计算机完成的。自底向上设计过程的优点是符合硬件设计工程师的传统习惯,缺点是在进行底层设计时,缺乏对整个系统总体性能的把握。若在整个系统完成后还需进行改进,则修改起来就比较困难。随着系统规模与复杂度的提高,这种设计方法的缺点越来越突出,因而逐渐被自顶向下的设计方法所取代。图11-1-2自底向上的设计方法

2.自顶向下的设计方法

自顶向下的设计方法是从整个系统的功能要求出发,先进行最上层的系统设计,然后逐级向下将全局系统分成若干子系统,再将每个子系统分为若干功能模块,模块继续划分成子模块,直至许多最基本的模块单元,如图11-1-3所示。图11-1-3自顶向下的设计方法自顶向下的设计方法是随着硬件描述语言(HDL)和电子设计自动化(EDA)工具同步发展起来的。随着设计层次向下进行,系统性能参数将得到进一步的细化与确认,并随时可以根据需要加以调整,从而可保证设计结果的正确性,缩短设计周期。设计规模越大,这种设计方法的优势越明显。自顶向下的设计方法需要先进的EDA设计工具和精确的工艺库的支持,自顶向下设计模式也是当前采用EDA技术进行设计的最常用的模式。自顶向下设计方法在数字系统设计中的设计流程如下:

(1)分析系统任务,确定总体方案。首先分析系统设计任务,了解系统功能要求,选取合适的设计方案。通常同一功能的系统有多种实现方法,必须对系统实现原理及方法进行综合的比较和评判,慎重地选择,使所选方案既满足系统要求,又结构简单、实现方便。

(2)划分逻辑,导出系统框图。系统总体方案确定以后,可以将系统从逻辑上划分为控制子系统和被控子系统。凡是有关处理功能的部分都纳入被控子系统,有关控制功能的部分则纳入控制子系统,然后画出整个系统的结构框图。结构框图中的各个逻辑模块可以比较笼统和抽象,不必受具体芯片型号的约束。被控子系统一般实现数据的存储、传送和处理功能,通常由存储部件、运算部件、数据通路、控制点等组成。存储部件常用寄存器、计数器和随机存取存储器(RAM)来实现;运算部件中,常用的组合运算部件有加法器、比较器等,常用的时序运算部件有计数器和移位寄存器等;数据通路常用导线和数据选择器来实现;控制点是被控子系统中接收控制信号的组件输入点,控制信号通过它们实现对运算部件操作、数据通路选择以及寄存器的置数等控制操作。以集成触发器为例,其时钟输入端和异步清0、置1端均可作为控制点。

控制子系统的设计是整个设计的核心,而控制电路通常相当于时序机。在设计时,常根据导出的被控子系统结构,编制出数字系统的控制算法,得到数字系统的控制状态图,并采用同步时序电路设计的方法完成控制子系统的设计。

(3)功能分解,描述系统逻辑。

逻辑功能划分后获得的被控子系统结构中的各个模块还比较抽象,必须进一步对这些模块进行功能分解,直到可用合适的芯片来实现之。系统中各个子系统和模块的逻辑功能结构确定后,应采用比较规范的形式来描述系统的逻辑功能,可先采用较粗略的逻辑流程图,再将逻辑流程图逐步细化为详细逻辑流程图,最后将详细逻辑流程图表示成与硬件相对应的形式,为下一步的电路级设计提供依据。

(4)逻辑电路设计。

电路级设计是指选择合理的器件及连接关系以实现系统逻辑要求。电路级设计的结果通常采用两种方式来表达:电路图方式和硬件描述语言方式。

上述设计过程主要是针对采用标准集成电路的数字系统设计而言的。实际上,现代数字系统的设计都是采用可编程逻辑器件PLD或微机系统来实现的,采用PLD器件的设计就没有必要将系统结构分解为标准器件基本模块。

11.2系统控制器的设计

11.2.1控制器的描述

1.ASM图的基本符号和结构

ASM图由状态块、判别块、条件输出块以及指向线组成。

1)状态块

状态块的符号是一个矩形块,它用于表示控制器的一个状态,该状态的名称及二进制代码分别标在状态块的左、右上角,块内标明该状态下数据处理单元应进行的操作以及控制器的相应输出。如果无数据操作和控制输出,状态块内为空白,如图11-2-1所示。该状态块表明,当电路处于S5(编码为101)状态时,被控子系统应将X⊕Y的结果置入P寄存器中。为了实现这一操作,控制器应发出C5控制信号,且为高电平。有时为了简便,状态块内也可只列出控制信号而省略数据操作。

图11-2-1状态块

2)判别块

判别块的符号是一个单入口双出口的菱形或者单入口多出口的多边形符号,用于表示状态分支的判别,如图11-2-2所示。判别变量(分支变量)写入菱形框内,在判别块的出口处写明各分支所满足的条件。图11-2-2判别块

3)条件输出块

条件输出块用平行四边形表示,如图11-2-3所示。条件输出块位于满足状态分支条件的支路上,条件输出的名称写在框内,条件块的输入总是来自判别块,仅当相应判别条件满足时才进行框中表明的操作,而且是在条件满足时立即执行的。图11-2-3条件输出块

4)指向线

指向线(箭头线)用于把状态块、判别块和条件输出块有机地连接起来,构成完整的ASM图。电路状态的转换是在系统时钟脉冲CP的控制下进行的。当无CP脉冲到来时,系统将维持现在的状态不变。

2.ASM图应用举例

【例11-2-1】请导出图11-2-4(a)所示状态机图的ASM流程图。

解这是一个有三个状态S1、S2、S3的状态机图。可以看出,输入参数为X,输出参数为Z。现对该状态图做出分析。

在状态S1:当X=0时,状态仍维持在S1状态,且输出Z=0;当X=1时,状态由S1转移到S2,且输出Z=0。

在状态S2:当X=0时,状态由S2转移到S1,且输出Z=0;当X=1时,状态由S2转移到S3,且输出Z=0。

在状态S3:当X=1时,状态仍维持在S3,且输出Z=0;当X=0时,状态由S3转移到S1,此时输出Z=1。图11-2-4三状态机及其ASM流程图11.2.2控制器的设计

1.硬件控制器的实现方法

控制器的设计本质上就是同步时序电路的设计,两者的差别仅在于着眼点不同而已。同步时序电路的设计依据是状态转换图,而控制器的设计依据是ASM图;同步时序电路设计一般需进行状态简化,而ASM图一般不再进行状态简化。控制器设计的主要特点是:不必过分追求状态最简,也不必一味追求触发器数量最少,因为控制器的成本只占总成本的很小一部分,而它的性能却对整个系统的影响举足轻重。控制器的控制形式可以多种多样,但其基本设计方法有较强的规律性。由于常常以MSI计数器或移位寄存器为核心进行设计,所以使用计数器进行设计时,状态编码要注意按照计数器的编码规律来实现控制器的状态转换,使用移位寄存器进行设计时,状态编码要注意按照移位寄存器的规律进行编码。

计数器型控制器的设计框图如图11-2-5所示。图中计数器可以由多位触发器组成,触发器的状态就作为状态变量赋予ASM流程图中的每一个状态框,而条件输出框不予赋值。按照输入条件及状态流程图所规定的状态转移的要求,设计次态控制逻辑,使计数器的状态按流程图所规定的转移顺序进行计数转移。计数器状态经译码后输出,作为有关的控制信号。图11-2-5计数器型控制器结构框图

【例11-2-2】请按图11-2-6所示控制器算法流程图设计一个计数器型控制器。

解根据控制算法流程图可知,本例的输入信号为X,且有C1、C2两个控制命令输出。该控制器有三个有效状态00、10和11,所以需要两个触发器来实现,产生所需的三种编码。假设用D触发器A1和A0来设计。

通过分析算法流程图,可得该控制器的状态转移真值表如表11-2-1所示。编码01状态没有用到,但为了使电路具有自启动特性,避免电源刚接通时状态被锁在01状态,必须使01的次态为某一有效状态。该状态转移真值表中,设01的次态为00,这样也同时解决了该电路的初态引导问题。图11-2-6算法流程图表11-2-1状态转移真值表根据状态转移真值表,可得出Qn+11和Qn+10的表达式,不难写出两个触发器的次态激励函数表达式:同时从算法流程图可得控制信号图11-2-7例11-2-2控制器实现电路

2.采用VHDL的软件设计方法

由ASM图可以方便地用VHDL程序对数字系统进行设计描述。

自上而下的设计是从系统全局出发,逐次分层次的设计。因此,首先根据系统的设计要求,进行系统顶层方案的设计,也就是确定系统的结构框图,包括系统的输入信号与输出信号、系统划分为几个部分、各个部分由哪些模块组成,以及根据系统的功能确定各模块之间的关系等。采用VHDL的设计方法,同时需要掌握相应的EDA设计软件的使用。11.3数字系统设计实例——交通灯控制系统

11.3.1交通灯控制系统的功能概述

十字路口的交通灯指挥着行人和各种车辆的安全运行。交通灯系统一般包括信号灯、计时显示器、控制电路等。信号灯由红、黄、绿三种颜色的灯组成,分别提示所在道路上的车辆和行人停止、准备停止、通行;计时显示器显示允许或禁止通行的时间;控制电路则实现信号灯的定时自动切换和计时显示。交通灯控制系统示意图如图11-3-1所示。图11-3-1交通灯控制系统示意图设计要求:

(1)一般情况下,如果主干道和支干道均无车辆要求通行,应该保证主干道绿灯亮,支干道红灯亮。

(2)若主干道无车,支干道有车辆要求通行,则允许支干道车辆通行。此时主干道亮红灯,支干道亮绿灯。

(3)如果主干道和支干道均有车辆要求通行,则两者应交替通行,并要求主干道每次通行30s,支干道每次通行20s。

(4)各干道每次绿灯变红灯前,都应有5s的亮黄灯时间,提醒车辆和行人准备停止。

11.3.2交通灯控制系统的设计

交通灯控制系统从功能上可以划分为四个模块,分别为时钟产生模块、传感器模块、定时模块和状态转换控制模块。各功能模块的划分及相互之间的关系如图11-3-2所示。其中时钟产生模块为系统提供一个稳定的clk脉冲信号,以供计时和系统的同步控制。传感器模块的作用是通过主、支干道上的传感器,检测主、支干道上是否有车辆要求通行。主、支干道上传感器发出的信号分别用Sa和Sb表示,Sa和Sb为“1”表示有车辆要求通行,否则无车辆要求通行。定时器模块在控制器模块提供的计时控制信号CNT和清零信号CR的作用下完成定时功能,并向控制器提供5s、20s和30s的计时信号。控制器模块的设计是本系统的核心,作用是根据传感器和定时器提供的信号,判断、调整和控制整个系统的状态转换,并控制定时电路工作,提供适当的灯光控制信号。其中控制主干道上红、黄、绿灯的信号用R、Y、G表示,控制支干道上红、黄、绿灯的信号用r、y、g表示,其值为“1”表示灯亮,为“0”表示灯灭。图11-3-2交通灯控制系统的功能模块

1.状态转换控制模块

状态转换控制模块的功能是控制两个方向上的信号灯状态的转换。定义主干道的通行时间为30s,支干道的通行时间为20s,准备禁行时间为5s。根据主、支干道的通行状况可以分为四种状态S0、S1、S2、S3。

S0:主干道通行30s,支干道禁行30s(主绿、支红);

S1:主干道准备禁行5s,支干道禁行5s(主黄、支红);

S2:主干道禁行20s,支干道通行20s(主红、支绿);

S3:主干道禁行5s,支干道准备禁行5s(主红、支黄)。图11-3-3状态转移图表11-3-1状态转换模块的状态转移表图11-3-4状态转换模块电路图

2.定时模块

定时模块是交通灯控制系统的重要组成部件,它主要负责完成十字路口主、支干道四种通行状态的计时,分别如下:

S0(主绿、支红)状态30s;

S1(主黄、支红)状态5s;

S2(主红、支绿)状态20s;

S3(主红、支黄)状态5s。

表11-3-2说明了状态编码到信号灯状态的变换关系。表11-3-2状态编码到信号灯状态的变换关系

11.3.3交通灯控制器的VHDL实现

根据该系统工作过程可以得出详细的算法流程图,如图11-3-5所示。

根据设计要求,很容易设计出该系统的VHDL源文件,如下所示:

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

ENTITY

controller

IS

PORT(clk,Sa,Sb:INSTD_LOGIC;

R,Y,G,r,y,g:OUTSTD_LOGIC);

END

controller;

ARCHITECTURE

xcontrol

OF

controllerIS

TYPEstatesIS(s0,s1,s2,s3);

SIGNALstate:states;

SIGNALleda:STD_LOGIC_VECTOR(2DOWNTO

0);

SIGNALledb:STD_LOGIC_VECTOR(2DOWNTO

0);

BEGINleda<=R&Y&G;

ledb<=r&y&g;

PROCESS(clk)

VARIABLEcounter:INTEGERRANGE0TO29;

VARIABLEcr,cnt:STD_LOGIC;

BEGIN

IF(clk′ENENTANDclk=′1′)THEN

IFcr=′0′THEN

counter:=0;

ELSIFcnt=′0′THEN

counter:=counter;

ELSE

counter:=counter+1;

ENDIF;

CASEstateIS

WHENs0=>leda<=″001″;

ledb<=″100″;

IF(Sa

ANDSb)=′1′THEN

IF

counter=29THEN

state<=s1;

cr:=′0′;

cnt:=′0′;

ELSE

state<=s0;

cr:=′1′;

cnt:=′1′;

ENDIF;图11-3-5自动交通控制系统算法流程图ELSIF(Sb

AND

(NOTSa))=′1′THEN

state<=s1;

cr:=′0′;

cnt:=′0′;

ELSE

state<=s0;

cr:=′1′;

cnt:=′1′;

ENDIF;

WHENs1=>leda<=″010″;

ledb<=″100″;

IF

counter=4

THEN

state<=s2;

cr:=′0′;

cnt:=′0′;

ELSE

state<=s1;

cr:=′1′;

cnt:=′1′;

ENDIF;

WHENs2=>leda<=″100″;

ledb<=″001″;

IF(SaANDSb)=′1′THEN

IFcounter=19THEN

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论