EDA技术与VHDL设计第9章-数字电子系统设计及典型实例

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1第9章数字电子系统设计及典型实例第9章数字电子系统设计及典型实例9.1数字电子系统的构成9.2数字电子系统设计基本流程9.3数字电子系统设计实例2第9章数字电子系统设计及典型实例9.1数字电子系统的构成数字电子系统通过数字电路逻辑器件,以数字方式对信息进行处理、传送或存储,来实现其特定的、复杂的功能。从功能上,数字电子系统通常可以分为系统接口、数据处理器和控制器三个部分,如图9-1所示。3第9章数字电子系统设计及典型实例图9-1数字电子系统的构成4第9章数字电子系统设计及典型实例其中,系统接口是完成将物理量转化为数字量或将数字量转化为物理量的功能部件,例如键盘、打印机、音响系统、显示系统等;数据处理器的主要功能是实现对数字信息的处理,在接受控制命令,执行相应动作的同时,还将自身的状态反馈给控制部分,其逻辑功能常常可分解为若干个子处理单元来完成,例如译码器、运算器等;控制器的功能则是接收外部输入信号,以及数据处理器反馈的信号,管理各个子系统的局部及整个系统按规定顺序工作。5第9章数字电子系统设计及典型实例一般情况下,系统接口、数据处理器可通过组合电路或时序电路构成;控制器由同步时序电路构成。而这些数字逻辑电路都可以通过可编程逻辑器件(CPLD/FPGA)来实现。随着可编程逻辑器件的集成度和功能的日益提高,一个可编程逻辑器件芯片除了有丰富的数字逻辑资源外,还含有一个或多个主要功能模块(如CPU、数字信号处理器核和其他的专门处理功能模块)、嵌入式存储器功能块以及通用或专用I/O功能块等。这样,一个芯片就可以构成一个完整的数字电子系统(片上可编程系统SOPC,SystemonProgrammableChip)。6第9章数字电子系统设计及典型实例9.2数字电子系统设计基本流程在现代电子系统设计领域,EDA技术已经成为电子系统设计的重要手段。基于EDA技术及VHDL的数字电子系统是采用自顶向下和层次化结构建模的方法来进行设计的,其基本的设计流程如下:7第9章数字电子系统设计及典型实例1.分析设计要求进行数字电子系统设计,首先要正确理解项目的任务、要求和指标。例如:设计一个数字电子钟系统,需要理解数字电子钟的基本功能,工作原理,输入、输出端口,显示方式,测试精度等相关知识,这些基本概念是提出设计方案的前提和依据,也是完成整个设计任务的关键。相关设计项目的技术资料可以通过搜寻相关网站或查阅参考文献完成。8第9章数字电子系统设计及典型实例2.确定方案根据设计任务的总体框架、技术指标,找出可以实现设计任务的不同方案,然后从可行性、性能价格比、复杂度、可靠性、通用性、扩展性、工作速度、所需器件的资源、成本等多方面进行分析、计算和比较,选择出合适、高效、稳定的设计方案。在方案确定中,需要考虑的一个关键因素是系统实现的最终硬件环境,也就是CPLD/FPGA器件的选型。选型一般采取两步走的方式:首先采用CPLD/FPGA适配板或开发板来实现既定功能,在设计项目确保验证无误后,再转化成实际的电子系统。9第9章数字电子系统设计及典型实例在选择硬件开发环境时需要考虑三个方面:一是适用目标芯片的型号以及开发系统的类别和型号;二是确认开发系统提供的输入端外围硬件资源(如独立或矩阵按键、键盘、晶振、A/D转化器等)是否需要扩展,稳定性如何;三是确认开发系统提供的输出端外围硬件资源,如数码管、液晶显示器、受控器、驱动器、D/A转换器、扬声器、各种接插件等,判断是否需要扩展外围电路,同时这些硬件资源也是目标芯片锁定引脚的依据。10第9章数字电子系统设计及典型实例3.细化设计方案确定设计方案后,需要把设计项目分解成若干个功能清晰、易于设计的模块,构成层次化设计方案的结构框图,再将结构框图从粗至细,步步细化,直到每个模块易于实现为止。要明确每一个模块的基本功能(任务)、输入/输出端口以及各模块间的接口信号、控制关系,使之合情合理,满足设计要求。11第9章数字电子系统设计及典型实例4.设计模块电路设计模块电路时,首先需明确各模块的工作原理、设计思路。根据实际需要,可选取原理图或HDL语言描述方式来实现。一个好的设计构思,应简单明了、结构清晰、易于扩充,这不仅能提高设计效率,而且能有好的设计方案。每完成一个模块设计,都要进行仿真测试,检验每一个模块能否实现预定的技术指标,及时发现问题并予以修正,确保设计工作顺利进行。12第9章数字电子系统设计及典型实例5.设计顶层模块顶层模块设计实际是将底层模块电路级联起来,形成整体电路。对顶层模块进行仿真测试时,如果顶层电路出现异常,问题大多来源于底层电路或总体设计方案,应及时排除故障,反复测试推敲。6.适配下载根据选定的目标芯片的编程接口、编程模式、配置器件等,锁定管脚适配下载。13第9章数字电子系统设计及典型实例7.硬件验证进行硬件验证的目的,一方面是实际检验目标芯片的逻辑功能,另一方面是检验系统电路的响应速度、带载能力、抗干扰能力、电能损耗等多项性能指标。只有对目标芯片编程下载成功并通过了硬件验证的设计项目才会是合格的项目。当然,对于不同的设计项目,进行硬件验证的方式、方法、手段都可能有所不同。8.文件归档和撰写设计总结报告当硬件测试结果符合设计要求后,最后的工作即是文件归档和撰写设计总结报告。文件归档指将所有设计文件归纳整理,删除不必要的中间文件,保留最终版本的设计文件。14第9章数字电子系统设计及典型实例设计总结报告是设计者对整个设计进程的工作业绩、收获体会的全面总结。在撰写设计总结报告时,其内容次序应尽量与设计过程一致。设计报告一般包括设计思路、电路结构选择依据、实现关键技术指标的理论依据和计算公式、核心模块的工作原理等,并辅以必要的整体/局部原理电路、仿真分析、HDL语言注释、各模块的端口名称定义、各图表的编号说明等。设计报告中对设计成果的检测方法和结果必须真实可靠,同时,对设计成果的不足之处以及改进措施也可以写进报告之中。设计总结报告的撰写,不仅可使设计者自身在理论分析、应用技术、实践能力上有所提高,也可为他人使用或者修改系统设计项目提供完整的第一手资料。15第9章数字电子系统设计及典型实例9.3数字电子系统设计实例本节以数字跑表的设计、交通信号灯控制系统的设计以及离线误码检测仪的设计共三个实例来进一步说明数字电子系统的设计。9.3.1数字跑表的设计1.设计要求数字跑表是体育比赛中常用的计时仪器。它使用简单、携带方便,通过按键控制计时的起点和终点,其主要技术指标是计时精度和计时范围。16第9章数字电子系统设计及典型实例本例设计的数字跑表计时精度为10毫秒,计时范围为0分00秒00毫秒~59分59秒99毫秒,具有复位、开始计时、停止计时及显示等功能。2.确定方案通过对设计要求的分析可以看出,数字跑表的核心功能就是控制、计时和显示。计时功能可以通过计数器来实现,显示功能可以通过对8位数码管扫描控制来实现;而复位、开始计时、停止计时功能实际上是对计数器进行控制,可通过按键输入信号控制计数器是否清零、是否开始或停止计数来实现。由此可得出数字跑表的系统总体设计框图,如图9-2所示。17第9章数字电子系统设计及典型实例图9-2数字跑表总体设计框图18第9章数字电子系统设计及典型实例数字跑表的硬件验证环境可以先采用FPGA/CPLD适配板或开发板,当设计无误后,再选用最合适的芯片,设计PCB板来最终实现。下面将EDA综合实验箱作为开发平台进行设计。(1)核心部分:由FPGA器件CycloneⅢ系列EP3C10E144C8实现所有的逻辑功能。(2)输入部分:以EDA综合实验箱提供的40MHz的晶振时钟作为输入时钟信号,按需要进行不同的分频;使用EDA核心板上的按键SW0和SW1分别作为复位和开始计时/停止计时信号。(3)输出部分:采用8位七段数码管分别对分、秒、百分之一秒进行显示,其格式如图9-3所示。19第9章数字电子系统设计及典型实例图9-3数字跑表输出格式20第9章数字电子系统设计及典型实例3.细化设计方案根据数字跑表的计时、控制、显示这三个功能,可以把FPGA设计方案进一步细化,按照功能来分割模块。(1)计时功能:由稳定、准确的输入计数时钟和计数模块来实现。考虑到设计指标要求跑表精度为0.01秒,那么计数器的时钟输入就应该是频率为100Hz的脉冲,但EDA综合实验箱提供的时钟晶振是40MHz,不能直接使用。所以要先设计一个分频系数是400000的分频器,该分频器的输出才能作为计数器的最低位的计数时钟信号。其次,计数模块设计应考虑跑表的计时范围(0分0秒00毫秒~59分59秒99毫秒)。可以看出,需要6位计数输出,其中有两位是六进制形式(分和秒的十位),其余四位是十进制形式,即可通过4个模10计数器和2个模6计数器来实现,其中低一级的进位输出就是高一级的计数时钟信号。计数器模块构成如图9-4所示。21第9章数字电子系统设计及典型实例图9-4计数器模块构成图22第9章数字电子系统设计及典型实例(2)按键控制功能:通过开始计时/停止计时、复位两个按键来控制计数器的工作状态。复位按键端口直接接到计数器的清零端rst即可实现复位。开始计时/停止计时按键可通过控制计数器的使能端en来实现对计数器的控制,当en取值为“0”时,计数器开始计数;反之,则停止计数。但是此按键输入需要先经过消抖处理,否则容易误判按键键值;然后再进行信号转化。23第9章数字电子系统设计及典型实例(3)显示功能:使用8位数码管来显示计时结果。根据EDA综合实验箱的硬件结构,数码管采用动态扫描显示的方式,使用一个频率是1 kHz的扫描信号扫描数码管,实现对6位已经锁存的计数结果以及分割符“—”和小数点“.”的扫描输出。根据上述分析,将具体功能整合后数字跑表的原理框图如图9-5所示。可以看出,数字跑表主要包含:时钟分频模块、使能控制模块、计数模块、显示控制模块四个模块。24第9章数字电子系统设计及典型实例图9-5数字跑表的原理框图25第9章数字电子系统设计及典型实例4.模块设计1)时钟分频模块时钟分频模块的功能是将实验箱提供的40 MHz的晶振信号进行分频,产生用于数码管扫描的1 kHz的扫描时钟clk_s,以及用于计数器模块进行计数的100 Hz的计数时钟clk_c。时钟分频模块的VHDL源代码见例9-1,仿真结果见图9-6。26第9章数字电子系统设计及典型实例【例9-1】L1-------------------------------------------------------------------------------------------------------------------------L2LIBRARYieee;L3USEieee.std_logic_1164.all;L4USEieee.std_logic_unsigned.all;L5-------------------------------------------------------------------------------------------------------------------------L6ENTITYfdivISL7PORT(clk:INSTD_LOGIC;--EDA综合实验箱提供40MHz时钟L8clk_s:OUTSTD_LOGIC;--扫描信号,1kHzL9clk_c:OUTSTD_LOGIC);--计数信号,100HzL10END;L11-------------------------------------------------------------------------------------------------------------------------L12ARCHITECTUREbhvOFfdivISL13SIGNALcnt1:INTEGERRANGE0TO20000;--计数信号,用于分频产生clk_sL14SIGNALcnt2:INTEGERRANGE0TO7;--计数信号,用于分频产生clk_cL15

1 / 140
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功