基于fpga的mcs-51单片机的定时模块设计毕业设计(编辑修改稿)内容摘要:

30 基于 FPGA 的 MCS51 单片机的定时模块设计 1 第一章 绪 论 课程设计背景知识 单片机的特点 单片机属于计算机的一个种类,是指一个集成在 一 块芯片上的完整计算机系统。 尽管他的大部分功能集成在一块小芯片上,但是它具有一个完整计算机所需要的大部分部件: CPU、内存、内部和外部总线系统,目前大部分还会具有外存。 同时集成诸如通讯接口、定时器,实时时钟等外围设备。 而现在最强大的单片机系统甚至可以将声音、图像、网络、复杂的输入输出系统集成在一块芯片上。 单片机也被称为微控制器( Microcontroler),是因为它最早被用在工业控制领域。 单片机由芯片内仅有 CPU 的专用处理器发展而来。 最早的设计理念是通过将大量外围设备和 CPU 集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对提及要求严格的控制设备当中。 单片机小巧灵活,成本低,易于产品化,因此单片机比专用处理器最适合应用于嵌入式系统,它得到了最多的应用。 事实上单片机是世界上数量最多的计算机。 现代人类生活中所用的几乎每件电子和机械产品中都会集成有单片机。 单片机芯片本身是按工业测控环境要求设计的,能适应各种恶劣环境,可靠性好,温度适应范围宽。 这是其他几种无 法比拟的,单片锯的逻辑控制功能很强,指令系统有各种控制功能用指令,很容易构成各种规模的应用系统,以扩展,可以很方便的实现多级和分布式控制。 单片机已对人类社会产生了巨大的影响,尤其是美国 Intel 公司生产的 MCS51单片机,由于其具有集成度高、处理功能强、可靠性高、系统机构简单、价格低廉等优点,客观的发展表明, MCS51 可能最终形成事实上的 MCU芯片 单片机面临的问题 ( 1)低速 由于单片机的工作方式是通过内部的 CPU 逐条执行的软件指令来完成各种运算和逻辑功能的,因而 无论 多少高的可能的工作的工 作时钟频率和多么好的指令时序方式,在串行指令执行方式面前,其工作速度和效率必将大打折扣。 因此,单片机在实时仿真、高速工控或高速数据采样等许多基于 FPGA 的 MCS51 单片机的定时模块设计 2 领域尤显力不从心。 ( 2) PC“跑飞” 在强干扰或某种偶然的因素下,任何单片机的程序计数器都极可能超出正常的程序流程“跑飞”,事实证明,无论多么优秀的单片机,在手强电磁干扰情况下,单片机都无法保证其仍能正常工作而不进入不可挽回的“死机”状态。 ( 3)开发周期长 单片机是执行软件指令的方式实现逻辑功能的,不同的单片机通常具有不同的汇编语言,使得程序的可移植性差,此外,在开 发单片机的软件程序中需要随时顾及特定的单片机的应简洁共和外围设备接口。 所以这一切导致了单片机应用系统开发效率低,开发周期时间长。 单片机与 FPGA/CPLD 的对比 在传统的控制系统中,人们常常采用单片机作为控制核心。 但这种方法硬件连线复杂,可靠性差,且单片机的端口数目,内部定时器和中断源的个数都有限,在实际应用中往往需要外加扩展芯片,这无疑对系统的设计带来诸多不便,现在有很多系统采用可编程逻辑器件 FPGA/CPLD,现场可编程门阵列,复杂可编程逻辑器件 )作为控制核心,它与传统设计相比较,不仅简化 了接口和控制,提高了系统的整体性能及工作可靠性,也为系统集成创造了条件。 下面我们来看单片机和 FPGA/CPLD 的对比: (1)单片机的学习效率较低。 单片机直接面对硬件,大多数都使用汇编语言不同厂家生产的单片机其汇编语言也不同,并且,单片机编程还与硬件的连接方式有关,而 FPGA/CPLD 可使用标准硬件描述语言 VHDL(Very high Speed integrated Circuit Hardware Deseription Language)对所有型号的FPGA/CPLD 编程。 同时, VHDL 是一种行为描 述语言,可以远离硬件编程,打破了软硬件之间的屏障,使学习和设计的效率大大提高。 (2)单片机本身的速度相对 FPGA/CPLD 来显得太慢。 单片机是用指令排队形式来执行指令的,影响了速度的提高。 而 FPGA/CPLD 在实时处理时均为并行工作,速度快。 (3)单片机各引脚的功能是确定的,而 FPGA/CPLD 可以根据需要用软件改变各引脚的功能。 与 MCS51 单片机相比 FPGA/CPLD 的优势是多方面的,以下是他们基于 FPGA 的 MCS51 单片机的定时模块设计 3 的优点与优势。 (1)编程方式简便、先进。 FPGA/CPLD 产品越来越多地采用了先进的在系统配置编程方式。 (2)高速。 FPGA/CPLD 的时钟延迟可达纳秒级,结合其并行工作方式在超高速应用领域和实时测控方面有非常广阔的应用前景。 (3)高可靠性。 除了不存在 SCM 所特有的复位不可靠与 PC 可能跑飞等固有缺陷外 , FPGA/CPLD 的高可靠性还表现在几乎可将整个系统下载于同一芯片中,从而大大缩小了体积,易于管理和屏蔽。 (4)开发工具和设计屠言标准化,开发周期短。 由于开发工具的通用性,设计语言的标准化以及设计过程几乎与所用的 FPGA/CPLD 器件的硬件结构没有关系,使得设计成功的各类逻辑功能块有很好的兼容性和可移植 性,它几乎可用于任何型号的 FPGA/CPLD 从而使得片上系统的产品设计效率大幅度提高。 (5)功能强大,应用广阔。 目前 FPGA/CPLD 可供选择范围很大,可根据不同的应用选用不同容量的芯片,利用它们可实现几乎任何形式的数字电路或数字系统的设计。 (6)易学易用,开发便捷。 FPGA/CPLD 应用的学习不需太多的预备知识,只要具有通常的数字电路和计算机编程基础知识,就足以在短期内掌握基本的设计方法和开发技巧。 课程研究的目的以及要完成的任务 本课题的目的:该课程是为了能运用新的先进的技术来实现单片机的功 能,来减少单片机本身的缺点,更好的发挥单片机本身的优点,使单片机更加快速、小型化、高可靠性。 本课题的任务是:以硬件描述语言 (VHDL)完成整个系统逻辑的描述,采用 EDA 设计中 TOPDOWN 和模块化设计思想进行系统设计,灵活运用 VHDL 描述语言对设计对象进行编程实现。 最后以 EDA 开发软件 Quartus II 为设计平台,经过编译、调试、修改、仿真测试,完成了对 MCS51 单片机的定时控制模块的设计与实现。 基于 FPGA 的 MCS51 单片机的定时模块设计 4 第二章 相关技术介绍 EDA 技术简介 EDA 技术的含义 EDA是电子设计自动化( Electronic Design Automation)的缩写,在 20世纪 90年代初从计算机辅助设计( CAD)、计算机辅助制造( CAM)、计算机辅助测试( CAT)和计算机辅助工程( CAE)的概念发展而来的。 20 世纪 90年代,国际上电子和计算机技术较先进的国家,一直在积极探索新的电子电路设计方法,并在设计方法、工具等方面进行了彻底的变革,取得了巨大成功。 在电子技术设计领域,可编程逻辑器件(如 CPLD、FPGA)的应用,已得到广泛的普及,这些器件为数字系统 的设计带来了极大的灵活性。 这些器件可以通过软件编程而对其硬件结构和工作方式进行重构,从而使得硬件的设计可以如同软件设计那样方便快捷。 这一切极大地改变了传统的数字系统设计方法、设计过程和设计观念,促进了 EDA 技术的迅速发展。 EDA 技术就是以计算机为工具,设计者在 EDA 软件平台上,用硬件描述语言 HDL 完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。 EDA 技术的出现,极大地提高了电路设计的效率和可操作性,减轻了 设计者的劳动强度。 利用 EDA 工具,电子设计师可以从概念、算法、协议等开始设计电子系统,大量工作可以通过计算机完成,并可以将电子产品从电路设计、性能分析到设计出 IC 版图或 PCB 版图的整个过程的计算机上自动处理完成。 EDA 设计的主要流程 主要流程包括:行为级描述,行为级优化与 RTL 级描述的转化选定工艺库,确定约束条件,完成逻辑综合与逻辑优化,门级仿真,测试生成,布局布线 (Pamp。 R: Place and Routing),参数提取,后仿真,制版、流片。 基于 FPGA 的 MCS51 单片机的定时模块设计 5 图 2- 1 EDA 设计流程图 行为级描述 行为级优化与 RTL 级描述的转化 选定工艺库,确定约束条件,完成逻辑综合与逻辑优化 门级仿真 测试生成 参数提取 后仿真 制版、流片 布局布线 (Pamp。 R: Place and Routing) 基于 FPGA 的 MCS51 单片机的定时模块设计 6 EDA 与传统的设计方法的比较 传统的数字电子系统或 IC 设计中,手工设计占了较大的比例。 一般先按电 子系统的具体功能要求进行功能划分,然后对每个子模块画出真值表,用卡诺图 进行手工逻辑简化,写出布尔表达式,画出相应的逻辑线路图,再据此选择元器 件,设计电路板,最后进行实测与调试。 手工设计方法的缺点是 : (l)复杂电路的设计、调试十分困难。 (2)如果某一过程存在错误,查找和修改十分不便。 (3)设计过程中产生大量文档,不易 管理。 (4)对于集成电路设计而言,设计实现过程与具体生产工艺直接相关,因此可移植性差。 (5)只有在设计出样机或生产出芯片后才能进行实测。 相比之下, EDA 技术有很大不同 : (l)采用硬件描述语言 (HDL)作为设计输入。 (2)库 (Library)的引入。 (3)设计文档的管理。 (4)强大的系统建模、电路仿真功能。 (5)开发技术的标准化、规范化以及 IP 核的可利用性。 (6)适用于高效率大规模系统设计的自顶向下设计方案。 (7)全方位地利用计算机自动设计、仿真和测试技术。 (8)对设计者的硬件知识和硬 件经验要求低。 (9)高速性能好。 这是与以 CPU 为主的电子系统相比。 (10)纯硬件系统的高可靠性。 山东大学工程硕士论文 自顶向下 (TopDown)设计的基本概念 现代集成电路制造工艺技术的改进,使得在一个芯片上集成数乃至数百万个器件成为可能,但我们很难设想仅由一个设计师独立设计如此大规模的电路而不出现错误。 利用层次化、结构化的设计方法,一个完整的硬件设计任务首先由总设计师划分为若干个可操作的模块,编制出相应的模型(行为的或结构的),通过仿真加以验证后,再把这些模块分配给下一层的设计师,这就允 许多个设计者同时设计一个硬件系统中的不同模块,其中每个设计者负责自己所承担的部分;而由上一层设计师对其下层设计者完成的设计用行为级上层模块对其所做的设计进行验证。 自顶向下的设计(即 TOP_DOWN设计)是从系统级开始,把系统划分为数基于 FPGA 的 MCS51 单片机的定时模块设计 7 个基本单元,然后再把每个基本单元划分为下一层次的基本单元,一直这样做下去,直到可以直接用 EDA元件库中的元件来实现为止。 对于设计开发整机电子产品的单位和个人来说,新产品的开发总是从系统设计入手,先进行方案的总体论证、功能描述、任务和指标的分配。 随着系统变得复杂和庞大,特别需要 在样机问世之前,对产品的全貌有一定的预见性。 目前,EDA技术的发展使得设计师有可能实现真正的自顶向下的设计。 FPGA/CPLD 简介 FPGA 和 CPLD 都是高密度现场可编程逻辑芯片,都能够将大量的逻辑功能集成于 个单片集成电路中,其集成度己发展到现在的几百万门。 复杂可编程逻辑器件 (CPLD) 、 PAL(ProgranunableArrayLogic , 可 编 程 阵 列 逻 辑 ) 或GAL(GenericArrayLogic,通用阵列逻辑 )发展而来的。 它采用全局金属互连导 线,因而具有较大的延时可预测性,易于控制时序 逻辑,但功耗比较大。 现场可编程门阵列 (FPGA)是由掩膜可编程门阵列 (MPGA)和可编程逻辑器件二者演变而来的,并将它们的特性结合在一起。 因此 FPGA 既有门阵列的高逻辑密度和通用性,又有可编程器件的用户可编程特性。 FPGA 通常由布线资源分隔的可编程逻辑单元 (或宏单元 )构成阵列,又由可编程 I/O 单元围绕阵列构成整个芯片。 其内部资源是分段互连的,因而延时不可预测,只有编程完毕才可以实际测量CPLD 和 FPGA 建立内部可编程逻辑连接关系的编程技术有三种 : Fuse/Antifuse(熔丝 /反熔丝 )技术的器件 只允许对器件编程一次,编程后不能修改,所以又被称为 OTP 器件,即一次性可编程 (oneTimeProgralluning)器件。 其优点是集成度、工作频率和可靠性都很高,适用于电磁辐射千扰较强的恶劣环境。 EPROM/EEPROM(紫外线擦除电可编程 /电可擦写可编程 )存储器技术的可编程逻辑芯片能够重复编程 100 次以上,系统掉电后编程信息也不会丢失。 SRAM(静态随机存取存储器 )技术的器件编程数据存储于器件的RAM 区中,使之具有用户设计的功能。 在系统不加电时,编程数据存储在EPROM, EEPROM 硬盘、或软盘中。 系统加电时将这些编程数据即时写入可编程器件,从而实现板级或系统级的动态配置。 基于 FPGA 的 MCS51 单片机的定时模块设计 8 硬件描述语言 硬件描述语言 (HDLHardware Description Language)是 一 种用于设计硬件电子系统的计算机语言,它用软件编程的方式来描述电子系统的逻辑功能、电路结构和连接形式,与传统的门级描述方式相比,它更适合大规模系统的设计。 例如 一 个 32 位的加法器,利用图形输入软件需要输入 500至 1000 个门,而利用 VHDL 语言只需要书写 一行 A=B+C 即可,而且 VHDL 语言可读性强,易于修改和 发现错误。 早期的硬件描述语言,如 ABEL–HDL、 AHDL, 由不同的 EDA 厂商开发,互不兼容,而且不支持多层次设计,层次间翻译工作要由人工完 成。 为 了 克 服 以 上 不 足 , 1985 年 美 国 国 防 部 正 式 推 出 了VHDL( Language) 语言,1987 年 IEEE 采纳 VHDL 为硬件描述语言标准 ()。 VHDL 是 一 种全方位的硬件描述语言,包括系统行为级、寄存器传输级和逻辑门级多个设计层次 ,支持结构、数据流、行为三种描述形式的 混合描述,因此 VHDL 几乎覆盖了以往各种硬件描述语言的功能,整个自顶向下或自底向上的电路设计过程都可以用 VHDL 来完成。 VHDL 还具有以下优点: (1)VHDL 的宽范围描述能力使它成为高层次设计的核心,将设计人员的工作重心提高到了系统功能的实现与调试,而化较少的精力于物理实现。 (2)VHDL 可以用简洁明确的代码描述来进行复杂控制逻辑的设计,灵活且方便,而且也便于设计结果的交流、保存和重用。 (3)VHDL 的设计不依赖于特定的器件,方便了工艺的转换。 (4)VHDL 是 一 个标准语言,为众多的 EDA 厂商支持,因 此移植性好。 VHDL 主要用于描述数字系统的结构,行为,功能和接口。 除了含有许多具有硬件特征的语句外, VHDL 的语言形式和描述风格与句法是十分类似于 般的计算机高级语言。 VHDL 的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可是部分 ,及端口 )和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。 在对一个设计实体定义了外部界面后,一旦其内部开发完基于 FPGA 的 MCS51 单片机的定时模块设计 9 成后,其他的设计就可以直接调用这个实体。 这种将设计实体分成内外部分的概念是 VHDL 系统设计的基本点。 Quartus II 简介 由于我此次设计使用 Verilog 和 Altera 公司推出的开发工具 Quartus II, 所以对此款工具详细介绍。 Quartus II 是 Altera 公司 20xx 年 推出的 CPLD/FPGA 开发工具, Quartus II提供了完全集成且与电路结构无关的开发包环境,具有数字逻辑设计的全部特性,包括: 可利用原理图、结构框图、 VerilogHDL、 AHDL 和 VHDL 完成电路描述,并将其保存为设计实体文件; 芯片(电路)平面布局连线编辑; LogicLock 增量设计方法,用户可建立并优化 系统,然后添加对原始系统的性能影响较小或无影响的后续模块; 功能强大的逻辑综合工具; 完备的电路功能仿真与时序逻辑仿真工具; 定时 /时序分析与关键路径延时分析; 可使用 SignalTap II 逻辑分析工具进行嵌入式的逻辑分析; 支持软件源文件的添加和创建,并将它们链接起来生成编程文件; 使用组合编译方式可 次完成整体设计流程。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。