数字系统设计_第1页
数字系统设计_第2页
数字系统设计_第3页
数字系统设计_第4页
数字系统设计_第5页
已阅读5页,还剩98页未读 继续免费阅读

下载本文档

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

文档简介

第五章数字系统设计5.1数字系统设计概述一、数字系统的基本组成数字系统可划分为受控器与主控器。受控器又称为数据子系统或数据处理单元,控制器又称为控制子系统。

数字子系统主要完成数据的采集、存储、运算和传输。主要由存储器、运算器、数据选择器等。它与外界进行数据交换,而它所有的存取、运算等控制信号下进行。数字子系统是根据待完成的系统功能的算法得到的。控制子系统是执行算法的核心,它必须具有记忆能力,因此是一个时序系统。

现在主要以算法状态机为核心来设计控制子系统。它与数据子系统共享一个时钟。它的输入是外部控制信号和由数据子系统传来的条件信号,按照设计方案中既定的算法程序,按序地进行状态转换,与每个状态以及有关条件对应的输出作为控制信号去控制数据子系统的操作顺序。控制子系统是根据系统功能及数据子系统的要求而设计出来的。二、控制子系统和数据子系统的设计

数字系统设计步骤1、明确设计要求(完成系统功能示意框图);2、确定系统方案(完成系统总体方框图——将控制器与受控器分开,拟定系统的详细算法状态机(ASM)流图);3、受控器设计;4、控制器设计;5、工程实现与调试。1、数据子系统的设计所要完成的主要任务:选择适当的芯片,实现规定的逻辑功能,且同时满足预定的非逻辑约束。在选择器件时,主要考虑两方面因素:(1)易于控制:各受控电路的控制方式和控制信号要尽可能简单,从而使产生这些控制信号的逻辑也趋于简单,以便实现。(2)满足非逻辑约束的要求性能因素:运行速度—关系到能否在预定时间内实现预定的逻辑功能。可靠性—在选择器件时应注意这些芯片的工作延迟、脉冲工作特征、功耗、驱动能力以及各器件之间的电平匹配。可测试性—在设计之初就应考虑到系统的可测试性,为日后系统的自检和被检做好准备。物理因素:包括尺寸、重量、功耗、散热、安装和抗震等诸多因素。经济因素:包括设计成本、制造成本、维护成本和运行成本。2、控制子系统的设计用硬件构成电路以生成数据子系统所需的控制时序信号是控制子系统的设计要完成的主要任务。应用算法状态机设计控制器主要完成两部分设计:组合逻辑网络和状态寄存器。组合逻辑网络的作用是根据外界对系统的输入和数据子系统所产生的条件反馈信息及算法的当前状态生成要求的对数据子系统可控制信号和外界输出。状态寄存器:用以记录算法的执行过程。三、用数字方法实现电子系统的优点(1)数字系统对元、器件参数的依赖较少,系统的抗干扰性较强,一般情况下,只要设计的逻辑正确,成功的可能性较大,而模拟系统对元器件的要求较高,且影响系统性能的因素很多,设计人员如元较丰富的实践经验,很难设计出较完善的系统;

(2)目前数字电路的集成工艺已经相当成熟。(3)现代的复杂系统几乎都离不开用计算机处理,而被计算机处理的只能是数字信号,因此就必须采用数字方法去设计这类系统。它们无论在质量、精度、可靠性还是成本方面都比用模拟方法设计的系统优越。数字系统实现的方法:

硬件实现和软件实现软件实现的工作速度低硬件实现的系统工作速度高,在对系统运行速度有一定要求的情况下,有时必须采用硬件实现。5.2可编程逻辑器件的原理与应用

可编程逻辑器件综述最早的可编程逻辑器件出现在20世纪70年代,主要是可编程存储器(PROM)和可编程阵列(PLA)。70年代末出现了可编程阵列逻辑(PAL)。80年代初,美国Lattice公司推出了通用阵列逻辑GAL。在EPROM的基础上出现了高密度可编程逻辑器件EPLD或CPLD。80年代,美国Xilinx公司首先推出了现场可编程门阵列FPGA。PLD器件的选择和使用1、FPGA/CPLD的选择

对于普通规模且产量不大的产品项目,通常使用CPLD比较好。这是因为:(1)在中小规模范围,CPLD价格便宜,能直接用于系统。(2)CPLD的结构大多为EEPROM或FlashROM形式,编程后即可固定下载的逻辑功能。使用方便,电路简单,编程方式便捷,易于进行硬件修改和硬件升级。(3)CPLD有专门的布线区和许多逻辑块,无论实现什么样的逻辑功能,或采用什么样的布线方式,引脚至引脚的信号延时几乎是固定的,与逻辑设计无关。使CPLD获得比较高速的性能。但对于大规模的逻辑设计、ASIC设计或单片系统设计,则多采用FPGA。

FPGA使用的途径主要有四个方面:(1)直接使用在产品的电路系统板上。因为其具有大规模和超大规模逻辑资源、低功耗等优势,所以可以直接使用。但应选择合适的配置方式。(2)间接使用。首先利用FPGA完成系统整机的设计,然后将设计软件(VHDL代码)交付供应商制作相对封装的掩模设计。(3)硬件仿真。FPGA器件能用作各种电路系统中不同逻辑芯片功能的实用性仿真,一旦仿真通过,就能为系统配以相应的逻辑器件。(4)专用集成电路ASIC设计仿真。对产品产量特别大,需要专用集成电路时,而用FPGA进行硬件仿真测试,确定整个设计的可行性,然后生成ASIC。2、PLD的使用(1)芯片的速度芯片的选择应与所设计的系统最高工作速度相一致。使用了速度过高的器件将加大电路板的设计难度。一般情况下,对CPLD可直接按照手册上的参数选取,对FPGA因延时不可预测,还应有一定余量。(2)芯片的逻辑资源选择首先要考虑的是所选用器件的逻辑资源量是否满足本系统的要求。其次在设计过程中,可以通过选择适当的描述风格、综合器提高资源的利用率。另外,逻辑功能单元的性质和实现方法也会影响资源。一般情况下,组合电路比时序电路占用的逻辑资源大。注意:对CPLD内部资源的使用通常不得超过80%,否则布线很难通过,对其资源的利用率在50%为最佳。FPGA内部安排更加难以掌握,所以还要放宽。(3)芯片功耗的选择

CPLD的工作电压多为5V,而FPGA的工作电压的流行趋势越来越低,多为3.3V和2.5V。因此,就低功耗、高级程度方面,FPGA具有绝对的优势。(4)I/O数与器件的封装应先对所需完成的电路或系统所需要完成的引脚数进行统计,并据此选择合适的芯片型号。在选择时要留出一定余量。在封装形式上,有PLCC、TQFP、PQFP、PGA的封装形式。常用的PLCC封装引脚数有28、44、52、68、84,是插座形式的,插拔方便,适用于中小规模的开发,但是I/O有限,且已被解密。TQFP、PQFP属贴片封装,适合于一般规模的产品开发或生产,但是损坏后不易更换。(5)其他因素如有特殊需要,可采用各类具有嵌入式模块的PLD,如需加密,应使用CPLD,若希望经常更换处理电路结构,应选用FPGA。

如芯片内部必须使用三态门时,须采用特殊PLD。可编程片上系统(SOPC)

可编程片上系统(SOPC):在单片PLD上完成SOC(片上系统)的设计。SOPC是单芯片、低功耗、微封装的一种特殊的嵌入式系统,能使用软件编程方法实现系统功能。同时也是个可编程逻辑系统,既具备SOC的各种特点,还兼具PLD和FPGA的优点,可对CPU的工作环境作在系统调整,是一种设计方式灵活,可裁剪、可扩充、可升级,具备软、硬件在系统可编程功能的SOC。SOPC的组成1、至少一个或多个嵌入式处理器内核2、内置高速RAM资源3、丰富的IP内核资源(供选择)4、足够的可编程逻辑资源5、处理器接口和PLD编程接口5.3全硬件数字子系统的设计介绍一种基于算法状态机的模块化设计方法,它属于自顶向下与自底向上的混合设计,也就是说,从总的设计过程看,遵循自顶向下的原则,按“系统——子系统——模块——电路”的步骤一步一步地设计。在具体执行时,应尽量利用前人的研究成果。一、总体方案设计总体方案设计分拟定初步方案和系统划分两步骤。拟定初步方案主要包含

·系统的外部特性——有哪些输入和输出?它们各是什么物理量?有何特征?相互之间是什么关系?系统的信号源或负载是什么?对它们有何要求?

·系统的内部特性——实现系统功能的基本原理,基本框图,各模块之间的接口要求,系统的基本控制流程,关键模块、关键元器件、关键信号与关键参数;

·系统功能的检测——系统功能的检测方法和检测环境。系统划分主要完成系统向子系统的划分,一般根据具体设计采取不同的划分策略,多数按照功能划分。设计要求:哥德巴赫猜想游戏机哥德巴赫猜想:任何一个偶数都可以分解为2个素数之和,任何一个奇数都可以分解为3个素数之和。

游戏机功能:游戏开始后,即随机地显示出10~999范围内的一个数,要求游戏者将该随机数分解为2或3个素数之和。此时内部计数器电路开始计时,游戏者应在规定时间内送入2或3个素数的答案,经游戏机裁定后显示出该答案是正确还是错误的信息,如答案错误或超时则该局失败,如答案正确,该局通过。一定时间后,游戏机又将显示出下一个随机数,连续几次成功后,游戏将被升级,即将每局允许的计算时间缩短。当游戏者完成最高级别的所有游戏局后,游戏机显示胜利的信息,游戏终止。利用该游戏机,可以检验和训练游戏者的反应和速算能力。(一)系统级方案的拟定按照自顶向下的原则,首先应从系统的外部信息入手。通过对游戏机设计任务的分析,找出系统外部的输入/输出信号及其所需的外部功能部件,即可构思出该游戏机的系统级组成方框图。一、总体方案设计电源因素考虑:可采用2-3Ⅴ小电池,如只用2节电池。这就要求在电路设计所使用的器件必须是2.5Ⅴ供电的低电压器件。游戏机内部的功能及动作外观外部特性输入信号:键盘产生的编码信息(需要翻译成BCD码)和CC、QR等信号输出信号:3个数码管的显示信号和B、C、

D等3组18只LED和一个扬声器的驱动信号。

注意:在拟定系统总体方案时,还要考虑系统性能的检测问题。应用什么仪器和手段去检测,应在设计开始时予以拟定,并做好充分的准备。(二)系统划分系统划分的任务:按功能类将整个系统划分为不同性质的子系统,着重理清它们之间的要求和制约关系。整个系统分为:游戏子系统、键盘子系统、显示子系统、电源子系统和时钟子系统。电源子系统的要求是:提供2.5Ⅴ直流电压,其稳定度达104,纹波小于10mv,通常可用集成稳压块实现。时钟子系统的要求是,频率10kHz,频率稳定度10-5,可采用晶体稳频电路。键盘子系统的任务:按时钟节拍对键盘扫描并将键盘的输出翻译成BCD码和控制信号。键盘子系统编码原理:4条纵线和4条横线平时是不接触的,当某个键被按下时,该键所在位置的纵线和横线相连,控制系统轮流对矩阵中4条纵线加高电平(扫描),同时对4条横线进行检测,由输入信号与输出信号共同组成的8位码便是每个按键对应的编码;

输入信号:来自对键盘的检测信号e、f、g、h,电源线、地线和时钟信号。

输出信号:加到键盘的扫描信号a、b、c、d,送到游戏子系统与数据显示子系统的3位BCD码组成的数据信号和送到控制器的擦除信号、确认信号。键盘子系统的功能(1)产生扫描信号(2)将键盘的输出结合扫描信号翻译成BCD码和其他控制信号(3)将连续键入的一组数码转换为3位数字输出(4)可根据需要将键入的数字擦除(5)因键盘信号使机械动作产生的,不够稳定可靠,必须对输入数据进行处理。显示子系统的任务:能实时显示系统给出的随机数和键盘子系统提供的输入数,显示某个数字时还要用发光二极管指示所显示的数据的类型。在查看信号CK的作用下还可以对存储在机器中的数据扫描显示。

显示子系统

子系统包括:XSR:存放正在显示的数据的显示寄存器SJR:存放随机数的寄存器SR1、SR2、SR3:输入数据寄存器产生扫描信号的电路输入信号:游戏子系统来的随机数和键盘子系统来的输入数、查看信号CK、从控制器送人的其他控制信号。游戏子系统任务:裁定每局游戏的胜负。输入:来自键盘子系统的3位BCD码、擦除信号、确认信号和控制器发出的控制信号。输出:用来控制各个LED指示灯的亮/灭信号以及游戏通过、胜利和失败的音频驱动信号。二、子系统设计子系统通常也采用自顶向下的模块式设计方法,将系统分为控制器和受控器。控制器用算法状态机方法来实现发出一系列命令去控制数据在寄存器之间的处理和传送。整个设计过程:(1)拟定设计方案 (2)确定详细方案 (3)设计具体电路一般使用的模块可分为寄存器级和功能块级。寄存器级的基本模块是寄存器,例如实现加法运算所使用的模块可有加法器、累加器、B寄存器等,设计时主要讨论各寄存器之间的连接关系、控制器的控制流程以及控制器对各寄存器的控制命令执行方法;功能块级的基本模块是一些能执行某项功能的模块,例如加法模-块、减法模块等,设计时主要关心的是这些模块之间的连接和时序。为节约设计时间,应尽量采用开发软件的元件库所提供的模块。1、键盘子系统设计(1)初步方案输入:来自键盘的e、f、g、h输出:对键盘的扫描信号a、b、c、d3位BCD码、擦除信号CC、确认信号QR1、对输入素数进行处理时增加的CK、答案确认键QR2、游戏开始键KS、开局键KJ。功能与设计方案(1)产生扫描信号,产生高电平扫描信号(2)译码器,将键盘的输出结合扫描信号翻译成BCD码(B3B2B1B0)和控制信号(B10(SRB)B9B8B7B6B5B4)(3)将连续键入的一组数码3个BCD数码转换为12bits并行数字输出,串/并转换电路(4)能将键入的数字擦除。数码连续键入在显示器上向左移,擦除则是向右移。串/并转换电路设计为双向移位寄存器。(5)对输入数据处理:除颤功能(2)详细方案

对于扫描功能,实际上是输出如图所示的扫描电路波形。实现方法:(1)4位环形计数器(2)1个模4计数器与一个2-4译码器实现对a、b、c、d、e、f、g、h译码可通过设计译码器来实现。可用组合逻辑设计,确定按键位置,给出相应码值。消抖动和同步化处理:小键盘按键抖动的时间通常小于1ms,如果设计的扫描信号周期大于1ms,例如系统时钟采用250Hz(周期4ms,每循环采样一次,时间为16ms),则抖动将被限制在一个扫描周期以内。但扫描周期不能过大,以免一个扫描周期内有2次或以上按键动作发生,通常相邻按键动作间隔时间在0.1s。所以采用250Hz。

为了使存入寄存器的数据稳定可靠,应将信号存入寄存器的时间延迟10ms以上,可利用按动数字键后的第2个或第3个数字输入表示信号SRB的前沿作为寄存器的时钟信号实现。

CNT1:2bit计数器,对SRB信号计数,当计至3时,由子系统的控制器产生对输入数据寄存器SSR的写入信号CNT2:4bit计数器,对系统时钟计数,每个SRB出现时被清零,在按键未释放时,计数器的数据只有0-3,如果计数器出现4以上的值,说明按键已经释放,为了稳定起见,将计数器计至8作为按键释放的标志。(2)具体方案扫描电路采用移位寄存器7495经反馈形成;计数器CNT2采用4位同步计数器74161;译码模块、控制模块通过硬件描述性语言完成。2、显示子系统存放在XSR中的3位BCD码,在主控制器的控制下将随机数寄存器SJR和3个素数寄存器SR1、SR2、SR3中的数据依次送入XSR,并同时将相应的红色指示灯RS1、R1、R2和R3点亮。此外还要提供·250Hz交流电源查看功能:在CK键入后,CNT4(模4计数器)控制显示器依次显示此4个数,在显示某个数据时,相应的红色指示灯亮。每个数停留2s。计数器的时钟用秒信号分频得到。不按CK键时,应在原来的12个4选1数据选择器上各增加1级2选1数据选择器来切换。3、游戏子系统设计初步方案(1)随机数发生器模块设计功能:自动产生10~999范围内的任意随机数。具体方法:用一个3位BCD码计数器,将其计数范围设计为10~999,并用大于系统时钟频率的时钟(2KHz)驱动。当按下KJ键时,控制器发出游戏开局命令,在系统时钟的上升沿将计数器当时的状态值送往显示子系统中的随机数寄存器SJR和游戏子系统的累加器ACC.此数就是所要求的随机数。(2)游戏管理器模块设计包括:定时和级别管理。游戏定时器:用来计算和显示游戏的剩余时间。第一级:25s

第二级:20s

第三级:15s

用5个绿色LED表示。

定时器用一个可预置的递减计数器(用2只十进制递减计数器级联)实现,其时钟频率1Hz的秒信号。三个级别所置之数分别为(0010,0101)、(0010,0000)、(0001,0101),当计数器计至0时,计数器停止动作,处于保持状态,等待开局信号到达时将计数器置数后运行。计数器的输出经专门设计的译码器译码后控制5只绿色LED灯的亮灭。方案二:由一个模5计数器和一个5位移位寄存器组成。

级别管理电路:由两级模3计数器,再经译码去控制9只黄色的指示灯,当也可采用类似

温馨提示

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

评论

0/150

提交评论