基于EDA技术的MCS-51 IP核设计及其研究扩展.doc_第1页
基于EDA技术的MCS-51 IP核设计及其研究扩展.doc_第2页
基于EDA技术的MCS-51 IP核设计及其研究扩展.doc_第3页
基于EDA技术的MCS-51 IP核设计及其研究扩展.doc_第4页
基于EDA技术的MCS-51 IP核设计及其研究扩展.doc_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

河北经贸大学经济管理学院毕业论文河北经贸大学经济管理学院毕业论文基于EDA技术的MCS-51 IP核设计及其研究扩展专业名称: 电子信息工程班 级: C电子08-1班学生姓名: 窦建杰 指导教师: 王琳丽 完成时间: 2012年5月22摘要伴随着微电子技术的进步,集成电路设计正在不断地向超大规模、极低功耗和超高速的方向发展,电子设计自动化(EDA)技术逐渐成为重要的电子设计方法,己广泛应用于模拟与数字电路系统设计等许多领域。本论文主要进行了基于EDA技术的MCS一51IP核设计及其扩展研究,应用EDA技术设计实现基于MCS一51的单片机IP核,在此基础之上,提出了一种基于MCS-51的可扩展多功能单片机IP核。主要包含下列内容:首先介绍了EDA技术的概念、特点、应用形式及其设计方法,对设计所用的语言、实现载体、设计工具进行了展开。其次,采用VHDL语言,设计实现了MCS一51单片机IP软核。同时,以Altera公司FPGA为载体,验证了各部分功能。在设计中,对MCS-51做了部分功能的改进和优化。最后,本文针对FPGA的可重构性及IP软核的可修改性,提出对MCS-51单片机IP核迸行扩展,实现可扩展多功能单片机IP核的设想,即根据系统功能与需求增减MCS一51软核指令集和外围设备,以实现硬件结构与系统功能最佳匹配、硬件结构与工程应用要求最佳匹配的可编程片上系统。关键词 EDA;IP核;MCS一51;可扩展AbstractWith the development of microelectronics technology ,the design of IC is ceaselessly developing in the direction of extra-large,ultralow power consumpfion and super-high speed. Electronic Design a Automation(EDA) technology has become all important electronic design methodAnd it has been widely used in analog circuits design,digital circuits design and many other fieldsIn this dissertationa MCS51 IP core has been designed based on EDA technology,furthermorea research of the extension of the MCS-51 IP has been madeSpecifically, four computer interface controller IP cores and one SCM IP core are designed based on EDA technology,on this basis,an expansible,multifunctional SCM IP core is presentedThis paper mainly includes following content.Firstly,the paper introduces the concept,characteristics,applications and design techniques of EDADesign languageFPGA and IDE which ale used in this paper are respectively introducedSecondly,in Quartus II 6.0 IDE four interface controller coresWhich are designed using VHDLFurther,a MCS-51 IP core is designedAt the same time,some functions have been validated on the FPGASome improvement and optimization are made in the design of interface controller IP core and MCS-51 IP coreFinally,according to reconfigurable nature of FPGA and modifiable nature of IP,this dissertation presents a thought of making a multiple MCS-5 1 IP corein which instructions and peripherals can be added easily to this core through standard interfacesKeyWords EDA;IP core;MCS-51;expansible目 录1 绪论11.1 研究背景与意义11.2 本文主要研究内容22 EDA技术概述32.1 EDA技术简介32.1.1 EDA技术的概念及其特点32.1.2 基于EDA技术的设计方法42.2 硬件描述语言52.3 FPGA/CPLD62.4 IP核62.5 设计工具一Quartus II72.6 小结83MCS-51 IP核的设计与实现93.1 MCS-51系列单片机的内部结构93.2 CPU时序的概念及8051的指令系统103.2.1 CPU时序103.2.2 指令系统113.3 8051IP核的设计123.3.1 算术逻辑模块ALU的设计与实现133.3.2控制单元143.3.3 定时计数器单元153.3.4串行通信单元163.4 MCS-51 IP核的扩展174 结论19致谢21参考文献22基于EDA技术的MCS-51 IP核设计及其研究扩展1 绪论1.1 研究背景与意义现代电子产品正在以前所未有的革新速度向着功能多样化、体积最小化、功耗最低化迅速发展。它与传统电子产品设计的显著区别之一就是大量使用大规模可编程逻辑器件,以提高产品性能、缩小产品体积、降低产品消耗;区别之二就是广泛运用现代计算机技术,提高电子设计自动化程度,缩短开发周期,提高产品的竞争力。EDA技术正是为了适应现代电子产品设计的要求,吸收多学科最新成果而形成的一门新技术。所谓EDA技术, 实际上是以EDA软件为开发环境,以硬件描述语言为设计语言,以可编程器件为实验载体,以ASIC、SOC芯片为目标器件,以电子系统设计为应用方向的电子产品自动化设计过程。IP核也就是知识产权核在EDA技术开发中具有十分重要的地位。IP技术是针对可复用的设计而言的,其本质特征是功能模块的可复用性。通常把IP核分为软IP(软核,Soft Core)、硬IP(硬核,Hard Core)和固IP(固核,Firm Core)。在具体实现手段和工艺技术尚未确定的逻辑设计阶段,软核具有最大的灵活性,它可方便地借助EDA综合工具与其它外部逻辑结合成为一体。 单片机自20世纪70年代出现以来,被广泛地应用于科研、生产、生活及其他各个领域。MCS-51单片机易于学习、掌握,性能价格比高以及以MCS-51单片机基本内核为核心的各种扩展型、增强型的单片机不断推出。因此对MCS-51单片机的IP核的设计,无论是对于一家微电子设计公司和设计人员的技术积累,掌握真实的设计经验,还是列于一个国家知识产权模块库的储备都具有重要意义。1.2 本文主要研究内容先设计实现了MCS-51单片机IP核,最后提出对单片机IP核进行扩展的设想。由于MCS-51单片机本身具有较强的接口能力,有时为了构成功能更强、规模更大的应用系统,就需要进行IO口线接口电路的扩展设计。Intel公司的8085系列接1:3电路都可直接与MCS-51接1:1。扩展后的的系统实际上就是以MCS-51为内核,可连接多种功能模块的处理器系统。全文的组织结构如下:在第一章中,介绍了本文的研究背景、意义和主要完成的工作。在第二章对EDA技术进行了概述,包括EDA技术的概念和特点、设计方法,设计语言、实现载体、IP核的概念以及设计工具等。在第三章介绍了MCS-51 IP核的设计与实现。这一部分中,在深入研究MCS-51体系结构、指令系统及IP核设计方法的基础上,按照EDA技术自顶向下的设计方法,首先将MCS-51 IP核的系统结构划分为算术逻辑单元ALU、控制单元、定时计数器单元和串行通信单元四个功能模块,然后采用硬件描述语言与EDA工具软件分别对它们进行设计与实现,最后将它们组合起来,形成完整的MCS一51 IP核,达到设计实现基于MCS-51的单片机IP核的目标。最后提出扩展此IP核的设想。在第四章中对本文所做工作进行了总结与展望。2 EDA技术概述20世纪末,电子设计技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透到社会的各个领域,有力的推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也变得越来越快。集成电路设计正在不断地向超大规模、极低功耗和超高速的方向发展,专用集成电路ASIC的设计成本不断降低,在功能上,现代的集成电路已能够实现单片电子系统,即SOC。因此,设计与制造集成电路的任务变得越来越繁杂,工作量极其巨大,已不可能完全使用传统的电子设计方法来完成。而且从电子工程师的开发需求出发,他们更愿意自己设计专用集成电路ASIC芯片,同时也希望ASIC的设计周期尽可能短,最好是在实验室里就能设计出合适的ASIC芯片,并且能立即投入实际应用之中,因而出现了现场可编程逻辑器件。同时,计算机技术的普及与发展也加速了电子设计自动化技术EDA的发展。这样,在现代电子系统设计领域中引入了具有划时代意义的EDA技术。现代电子设计技术的核心已日趋转向基于计算机的电子设计自动化技术,即EDA技术。下面先简单介绍一下EDA技术。2.1 EDA技术简介2.1.1 EDA技术的概念及其特点EDA技术就是依赖功能强大的计算机,在EDA工具软件平台上,对以硬件描述语言HDL为系统逻辑描述手段完成的设计文件,自动地完成逻辑编译、化简、分割、综合、布局布线以及逻辑优化和仿真测试,直至实现既定的电子线路系统功能。EDA技术使得设计者的工作仅限于利用软件的方式,即利用硬件描述语言和EDA软件来完成对系统硬件功能的实现,这是电子设计技术的一个巨大进步。EDA技术在硬件实现方面融合了大规模集成电路制造技术、IC版图设计、ASIC测试和封装、FPGACPLD编程下载和自动测试等技术;在计算机辅助工程方面融合了计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)、计算机辅助工程(CAE)技术以及多种计算机语言的设计概念:而在现代电子学方面则容纳了更多的内容,如电子线路设计理论、数字信号处理技术、数字系统建模和优化技术及长线技术理论等。EDA技术的特点有:1用软件的方式设计硬件:2软件方式设计的系统到硬件系统的转换是由有关的开发软件自动完成的;3采用自顶向下的设计方法;4设计过程中可用有关软件进行各种仿真;5系统可现场编程,在线升级;6整个系统可集成在一块芯片上,体积小、功耗低、可靠性高。这就为EDA技术表达与实现现代电子理论和设计提供了可能性。2.1.2 基于EDA技术的设计方法基于EDA技术的设计方法属于现代电子设计的范畴,与传统的设计方法不同。SOC代表了当今电子设计技术的发展方向,它的基本特征是:设计人员按照“自顶向下”的设计方法,对整个系统进行方案设计和功能划分,系统的关键电路用一片或几片专用集成电路(ASIC)实现,然后采用硬件描述语言(HDL)完成系统行为级设计,最后通过综合器和适配器生成最终的目标器件。这样的设计方法被称为高层次的电子设计方法,也称为系统级的设计。它提供了一种“自顶向下”(Top-Down)的全新的“概念驱动式”设计方法,该方法首先从系统设计入手,在顶层进行功能方框图的划分和结构设计,无需通过门级原理图描述电路。在方框图一级进行仿真、纠错,并用硬件描述语言对高层次的系统行为进行描述,在系统一级进行验证。然后用综合优化工具生成具体门电路的网表,其对应的物理实现级可以是印刷电路板或专用集成电路。详细步骤如下:1按照“自顶向下”的设计方法进行系统划分。2设计输入。其中,可以采用I-IDL代码输入。这是高层次设计中最为普遍的输入方式;此外,还可以采用图形输入方式,如原理图、波形图等,这种输入方式具有直观、容易理解的优点。3将以上的设计输入编译成标准的HDL文件。对于大型设计,还要进行代码级的功能仿真,主要是检查系统功能设计的正确性。因为对于大型设计,综合、适配要花费数小时。4利用综合器对HDL源代码进行综合优化处理,生成门级描述的网表文件,这是将高层次描述转化为硬件电路的关键步骤。5利用适配器将综合后的网表文件针对某一具体的目标器件进行逻辑映射操作,包括底层器件配置、逻辑分割、逻辑优化和布局布线。适配完成后,产生多项设计结果:适配报告,包括芯片内部资源利用情况,设计的布尔方程描述情况等。适配后的仿真模型。器件编程下载文件。根据适配后的仿真模型,可以进行适配后的时序仿真,因为已经得到器件的实际硬件特性(如延时特性),所以仿真结果能比较精确地预测未来芯片的实际性能。如果仿真结果达不到设计要求,就需要修改HDL源代码或选择不同速度品质的器件,直至满足设计要求。6将适配器产生的器件编程下载文件通过编程器或下载电缆载入到目标芯片FPGA或CPLD中。 由于在本文的设计中,使用的是VHDL语言进行电路设计,使用FPGACPLD作为设计的实现载体,因而在下面的小节中分别加以介绍。2.2 硬件描述语言硬件描述语言是用文本形式来描述数字电路的内部结构和信号连接关系的一类语言,类似于一般的计算机高级语言的语言形式和结构形式。设计者可以利用HDL描述设计的电路,然后利用EDA工具进行综合和仿真,最后形成目标文件,再用ASIC或PLD等器件实现。当前使用最广泛的是VHDL语言和Verilog HDL语言。VHDL语言具有很强的电路描述和建模能力,能从多个层次对数字系统进行建模和描述,从而大大简化了硬件设计任务,提高了设计效率和可靠性。同时,VHDL具有与具体硬件电路无关和与设计平台无关的特性,并且具有良好的电路行为描述和系统描述的能力,并在语言易读性和层次化、结构化设计方面,表现了强大的生命力和应用潜力。因此,VHDL在支持各种模式的设计方法,如自顶向下与自底向上或混合方法方面,以及在面对当今许多电子产品生命周期的缩短,需要多次重新设计以融入最新技术、改变工艺等方面都表现出了良好的适应性。用VHDL进行电子系统设计的一个很大的优点是设计者可以专心致力于其功能的实现,而不需要对不影响功能的与工艺有关的因素花费过多的时间和精力。2.3 FPGA/CPLDFPGA现场可编程门阵列与CPLD复杂可编程逻辑器件都是可编程逻辑器件,它们是在PAL,GAL等逻辑器件的基础之上发展起来的。同以往的PAL,GAL等相比较,FPGACPLD的规模比较大,它可以替代几十甚至几千块通用IC芯片。这样的FPGACPLD实际上就是一个子系统部件。这种芯片受到世界范围内电子工程设计人员的广泛关注和普遍欢迎。经过了十几年的发展,许多公司都开发出了多种可编程逻辑器件。当代FPGACPLD有以下特点;1规模越来越大。随着VLSI工艺的不断提高,单一芯片内部可以容纳上百万个晶体管,FPGACPLD芯片的规模也越来越大。2开发过程投资小。FPGACPLD设计灵活,发现错误时可直接更改设计,减少了投入风险,节省了许多潜在的花费。3FPGACPLD一般可以反复地编程、擦除。在不改变外围电路的情况下,设计不同片内逻辑就能实现不同的电路功能。4。保密性能好。在某些场合下,根据要求选用防止反向技术CFPG/CPLD,能很好地保护系统的安全性和设计者的知识产权。5FPGACPLD开发工具智能化,功能强大。现在,FPGACPLD开发工具种类繁多,智能化高、功能强大。应用各种工具可以完成从输入、综合、实现到配置芯片等一系列功能。2.4 IP核IP就是知识产权核或知识产权模块的意思,在EDA技术和开发中具有十分重要的地位。IP设计技术是一种集成电路设计技术,是一种以电路模块知识产权使用为核心的电子系统设计。IP技术中把不同功能的电路模块叫做IP,这些口都是经过实际制作并证明是正确的。在EDA设计工具中把这些口组织在一个IP元件库中,供用户使用。设计电子系统时,用户需要知道IP模块的功能和技术性能,通过把不同的IP模块镶嵌在一个硅片上,形成完整的应用系统。美国著名的Dataquest咨询公司将半导体产业的IP定义为用于ASIC或FPGACPLD中的预先设计好的电路功能模块。IP可以分为软IP、固IP和硬IP三大类。软IP,是用VHDL等硬件描述语言描述的功能块,但是并不涉及用什么具体电路元件实现这些功能。软IP通常是以硬件描述语言HDL源文件的形式出现,应用开发过程与普通的HDL设计也十分相似,只是所需的开发软硬件环境比较昂贵。软IP的设计周期短,设计投入少。软IP的弱点是在一定程度上使后续工序无法适应整体设计,从而需要一定程度的软口修正,在性能上也不可能获得全面的优化。固IP,是完成了综合的功能块。电子设计领域的4综合”即:将用行为和功能层次表达的电子系统转换为低层次的便于具体实现的模块组合装配而成的过程。固IP有较大的设计深度,以网表文件的形式提交客户使用。如果客户与固IP使用同一个IC生产线的单元库,IP应用的成功率会高得多。硬IP提供设计的最终阶段产品是掩模。随着设计深度的提高,后续工序所需要做的事情就越少,当然,灵活性也就越小。由于通信系统越来越复杂,CPLD的设计也更加庞大,这增加了市场对IP核的需求。各大FPGACPLD厂家继续开发新的商品讲,并且开始提供“硬件”印,即将一些功能在出厂时就固化在芯片中。由此可见,三种IP核各有优缺点,具体设计什么样的IP核,要根据IP核应用的范围和实现的功能等方面来决定。从国外的IP核设计和使用情况看,IP核在ASIC和现场可编程门阵列(FPGA)中使用较多。2.5 设计工具一Quartus IIQuartus II是Altera提供的FPGACPLD开发集成环境,Altera是世界最大的可编程逻辑器件供应商之一。Quartus II在21世纪初推出,是Altera前一代FPGACPLD集成开发环境MAX+plus II的更新换代产品,其界面友好,使用便捷。在Quartus II上可以完成基于EDA技术的整个开发流程,它提供了一种与结构无关的设计环境,使设计者能方便地进行设计输入、快速处理和器件编程。Altera的Quartus II提供了完整的多平台设计环境,能满足各种特定设计的需要,也是单芯片可编程系统(SOPC)设计的综合性环境和SOPC开发的基本设计工具,并为Altera DSP开发包进行系统模型设计提供了集成综合环境。Quartus II包括模块化的编译器。编译器包括的功能模块有分析综合器)、适配器、装配器、时序分析器、设计辅助模块、EDA网表文件生成器、编辑数据接口等。可以通过选择Start Compilation来运行所有的编译器模块,也可以通过选择Start单独运行各个模块。还可以通过选择Compiler Tool(Tools菜单),在Compiler Tool窗口中运行该模块来启动编译器模块。在Compiler Tool窗口中,可以打开该模块的设置文件或报告文件,或打开其他相关窗口。Quartus II编译器支持的硬件描述语言有VHDL(支持VHDL87 VHDL97标准)、Verilog HDL及AHDL(Altera HDL)。Quartus II支持层次化设计,可以在一个新的编辑输入环境中对使用不同输入设计方式完成的模块(元件)进行调用,从而解决了原理图与HDL混合输入设计的问题。在设计输入之后,Quartus II的编译器将给出设计输入的错误报告。2.6 小结本章首先介绍了有关EDA技术的知识,包括EDA技术的概念、特点、应用形式、设计方法等。然后对于本文所用到的设计语言、工具以及实现载体也分别做了介绍。为在后续章节中,进行应用层面的讨论与研究打下基础。3 MCS-51 IP核的设计与实现MCS一51系列单片机是继MCS-48系列之后推出的8位高档单片机。与MCS-48单片机相比,它的结构更先进,功能更强,在原来的基础上增加了更多的电路单元和指令。MCS-51单片机可以算是相当成功的产品,一直到现在,MCS-51系列及其兼容的单片机仍是应用的主流产品,也是我国日前应用最广的一种单片机系列。8051是MCS-51系列单片机的最初产品,也是MCS-51系列器件的核心。本章就是以8051为器件原型,具体分析它的结构与工作原理,然后利用VHDL语言设计以8051为内核的IP软核,并在Quartus II 6.0环境下对其进行仿真与实现。3.1 MCS-51系列单片机的内部结构8051单片机的内部功能图如图3.1,其各功能部件主要包括中央处理器、存储器、IO电路、全双工串行口、定时肘数器和中断系统6个单元,它们都由内部总线紧密连在一起。下面我们分别加以说明:CPUROMRAM并行I/O口串 行I/0口定时器中断系统图3.1 单片机的内部功能图1中央处理器(CPU)中央处理器是整个单片机的核心部件,由算术逻辑单元、控制逻辑、专用寄存器组三部分组成,数据宽度是8位,能处理8位二进制数据或代码。CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。2存储器程序存储器(ROM):用于存放用户程序,原始数据或表格。数据存储器(RAM):8051有数据存储单元和专用寄存器单元,专用寄存器只存控制指令数据,不存用户数据,用户只能访问。故用户可用RAM存读写数据、运算中间结果,用户定义的字型表。3并行输入输(IO)口8051共有4组8位I0口(PO、P1、P2或P3),用于对外部数据的传输。所有4个端口都是双向口,每个端口都包含一个锁存嚣,一个输出驱动器和输入缓冲器。4全双工串行口8051内置一个全双工串行通信口,用于与其它设备间的串行数据传送,该串行口既可作异步通信收发器,亦可作同步移位器。通过设置串行口控制寄存器SCON决定串口的4种工作模式。5定时计数器8051有两个16位的可编程定时崩傲器,以实现定时或计数,产生中断用于控制程序转向。通过设置控制寄存器TMOD来决定定时计数器如何工作。定时计数器可以计算输入端发生的逻辑变化,也可以作为16位计数器在每一机器周期计数。6中断系统8051具备较完善的中断功能,有两个外中断、两个定时计数器中断和一个串行中断,可满足不同的控制要求,并具有2级优先级别选择。3.2 CPU时序的概念及8051的指令系统3.2.1 CPU时序CPU执行一条指令的时间称为指令周期。指令周期是以机器周期为单位的。MCS一51典型的指令周期为一个机器周期。MCS-51单片机规定:一个机器周期包括6个状态S1-S6,每个状态又分两部分:相位l(PI)、相位2(P2),即每个状态包括2个振荡周期。因此,有下式成立;1个机器周期=6个状态=12个振荡周期这样,一个机器周期包括编号为SIPI(状态l,相位1)到S6P2(状态6,相位2)共12个振荡周期。在每个机器周期,ALE信号两次有效,一次发生在S1P2到S2PI期间,一次发生在S4P2到S6PI期间。8051的指令有单字节,双字节和三字节的,所以它们所需指令周期不尽相同,可能包括一到四个不等的机器周期。但是在本文所设计的8051 IP核中,并没有采用机器周期的概念,而是使用时钟周期来代替机器周期,将各条指令均设计在l到4个时钟周期内完成,以使所设计的IP0核在一个时钟周期内所要完成的任务和原有8051单片机中一个机器周期所要完成的任务基本一致。采用这种设计方法,缩短了指令的执行时间,加快了单片机的运行速度,实现了对原8051性能的优化与提高。3.2.2 指令系统MCS-51指令系统是一种筒明、易掌握、功能强的指令系统,共有111条指令,其中单字节指令49条,双字节指令45条,三字节指令17条。按照指令实现的功能可以划分为五类,分别是:数据传送类指令(29):实现各特殊寄存器、RAM存储单元之间的数据传送。这类指令主要涉及寄存器、RAM读写,数据总线和地址总线的控制。另外由于8051提供位操作指令,因此在硬件上需要设计特殊的硬件逻辑以支持这类操作。算术运算类指令(24)与逻辑运算类指令(24),实现加、减、乘、除、与、或、取反、异或、二到十进制数据转换的操作。这类指令主要在ALU部分实现。控制转移类指令(17):实现程序的跳转、调用、(中断)返回。操作主要涉及程序计数器的调整,给ROM提供正确的指令地址。返回和中断返回指令RET,RETl指令涉及堆栈指针SP的操作。布尔处理(位处理)类指令(17):实现位的逻辑运算、传送以及判位跳转基于这l11条指令,MCS-51单片机有7种寻址方式,分别是立即寻址、直接寻址,寄存器寻址、寄存器间接寻址、基址寄存器加变址寄存器的间接寻址、相对寻址和位寻址。表3.1是对MCS-51单片机的寻址方法以及相应寻址空间的简单概括。表3.1 寻址方式与相应的寻址空间方式利用的变量使用的空间寄存器R0R7,A,B,CY,DPTR片内直接寻址direct片内RAM低128字节特殊功能寄存器寄存器间址R0,R1,SP片内RAMR0,R1,DPTR片外RAM与IO口立即数#data程序存储器基址加变址A+PC A+DPTR程序存储器相对寻址PC+rel程序存储器位寻址bit片内RAM的20H2FH部分SFR3.3 8051IP核的设计参照以上对8051的内部结构、外部特性以及工作原理的介绍与分析,运用EDA的自顶向下的设计方法,设计一个基于8051的IP软核。本文所设计的8051IP核的功能及指令都与传统的MCS-51单片机兼容,并且对8051的部分功能和技术指标进行了改进与优化,以下是本文所设计8051 IP核的9大主要特性:1全同步设计。整个系统都是在单一工作时钟的协调下工作的。2指令系统与工业标准的8051微控制器兼容。3优化的CPU时序使得完成一条指令最多只需4个时钟周期。在指令时序上,设计中尽量减少指令执行所需的时钟周期,提高微处理器的运行效率。4,通过附加特殊功能寄存器,使定时计数器和串行接口单元可选。由于采用模块化的设计方法,因此,有些功能模块是可选的。只需改变VHDL设计中的某些参数即可完成对可选单元的增减。5可选择执行乘法指令(MUL)和除法指令(DIV)。6.可选择执行十迸制调整指令(DA)。在一些情况下,不实现那些并不需要而且会占用更多的芯片资源的指令是有意义的。这样的指令有8位乘法指令、8位除法指令、8位十进制调整指令。7没有复用的I/O端口。考虑到设计的复杂性,本设计中没有复用的I/O端口。8通过调整或者修改VHDL源代码可以容易的对其进行扩展。9通过VHDL中的常量实现了参数化。设计中的数据宽度、定时计数器和串行口的个数都采用了参数化设计,因此,很容易扩展设计。原始的微控制器设计只提供2个定时,计数单元,1个串行接口和两个外部中断源而本设计会提供更多的这些资源,它可以产生256个这种单元,只需稍微修改一下VHDL中的常量值。 按照自顶向下的设计方法,首先,我们把要设计的8051IP核划分成几个功能模块,然后分别对几个功能模块进行设计。我们将整个系统划分成算术逻辑模块ALU、控制模块、定时,计数模块、串行通信模块四个功能模块,而RAM和ROM在Quartus II 6.0中都有参数化的宏功能模块,因此在使用时,根据需要进行定制即可。下面将分别介绍它们的功能和实现。3.3.1 算术逻辑模块ALU的设计与实现算术逻辑运算模块的主要功能就是对数据进行处理与加工,即对数据进行数值运算或非数值运算,主要包括加、减、乘、除等算术运算及与、或、非、异或、移位、比较等逻辑运算。在进行设计对,我们对算术逻辑运算模块进一步细分成几个功能相对独立的功能模块,然后分别对它们进行VHDL描述,最后再将它们组合起来,从而完成一个完整的ALU单元。我们将ALU内部分成加减法运算单元,乘法运算单元、除法运算单元、十进制调整单元、逻辑运算单元以及多路选择器单元。在ALU的结构上。我们将乘、除法单元各自独立出来来完成算术逻辑指令中的乘、除法运算。这样可以回避传统典型微处理器基于累加器的ALU结构及算术逻辑指令,从而提高逻辑指令的执行效率。设计思路是多路选择器外部连接不同的数据来源以及操作命令,根据操作命令来决定要把数据传送给哪一个运算单元进行处理,最后将处理后的数据再送出。组成ALU的各个功能单元设计并验证无误后,我们把它们作为元件, 运用元件例化语句就可以将它们组合起来形成一个算术逻辑运算器累加器acc_i数据为12H,rom数据为FFH,ram数据为34H,进位输入为10,即CY=1,AC=0,操作命令自左向右依次为进位加命令ADDC_ACC_RAM、自加l命令INC_ACC、逻辑与AND_RAM_ROM、减法命令SUB_ACC_RAM。可以看到,仿真的结果准确无误,因此,证明了我们所设计的ALU是完全符合要求的。 3.3.2 控制单元这里的控制单元与经典CPU内部结构中的控制器相类似,它的作用有:解题程序和原始数据的输入、对指令的译码与执行、CPU内部的信息处理、处理结果的输出、外部设备与单片机之间的信息交换等都是在控制单元的指挥、协调与控制下完成的,因此,它是整个系统发布操作命令的“决策机构”。本设计中控制单元主要完成的功能为指令译码、中断判优及处理、时序控制和微操作控制等。将控制单元分成两个功能模块来进行设计,即:control_fsm模块和control_mem模块。其中,control_fsm模块主要实现中断的响应及指令的译码并产生各指令的微操作码,主要设计方法是通过有限状态机的设计来实现相应的功能;而control_mem模块主要完成由control_fsm模块产生的微操作信号的具体操作过程控制RAM存储器的读写地址及数据传输、PC寄存器的赋值、串口与定时器的中断信号处理,中断的查询、SFR的读写等功能。同时,这两个模块也构成了我们在设计控制单元时所用的状态机,图3.2显示了状态机的内部结构。主控时序模块(control_mem)主控组合模块(control_fsm)current_statenext_stateFSM:t_stateresetclkcomb_outputs图3.2 状态机的内部结构图1control_fsm模块control_fsm模块的主要作用是对指令译码并执行,从而实现指令系统。在设计时,我们采用的是有限状态机的纯组合逻辑的描述方法,主要是根据具体的状态来完成在各个状态下的指令译码与执行。需要说明的是,这个状态机在接收到来自control_fsm模块的有关中断源有变化的信号时,它会优先发出控制指令,指示control_fsm模块改变指令指针的值,进入中断。没有中断发生的时候,它就会根据程序存储器的指令来运作。2control_mem模块control_mem模块的内部含有各种寄存器,包括程序寄存器、指令寄存器、地址寄存器、特殊功能寄存器SFR等,它的主要任务是根据状态机的相应指令,实现对存储器的相应操作。这些操作主要包括:监测各个中断源的变化;根据状态机的指令写一些用户没有直接地址的芯片内部辅助寄存器;写内部RAM和SFR,包括写“字节”和写“位”;根据检测中断源的变化的结果,在必要时向状态机发送中断请求类别指示信号;读内部RAM和SFR,包括读“字节”和读“位”;据状态机发出的各种多路选择器的值,输出相应的地址和数据的值。 因为control_mem模块是状态机的主控时序模块,所以,此模块是同时采用时序逻辑描述和组合逻辑插述来实现的。最后,将control_fsm模块和control_mem模块组合装配后,就实现了控制单元的设计。3.3.3 定时计数器单元MCS一51系列单片机内部有2个16位定时,计数器:TO和T1。从内部结构上看,它们分别由8位计数器TH0、TL0和THI、TLI构成,它们都是以加“l”的方式完成计数。特殊功能寄存器TMOD控制定时,计数器的工作模式,TCON控制定时/计数器的启动运行并记录TO、T1的溢出标志。对TH0、TL0和THl、TLl的初始化编程预置TO、T1的计数初值。对TMOD和TCON的初始化编程分别置入方式字和控制字,以指定其工作模式并控制T0、T1按规定的工作方式计数。单片机中的2个定时计数器有两种工作模式,每个定时阱数器有4种工作方式。其中方式O-2对TO和T1都是一样的,而方式3对两者是不同的。选择定时器工作模式时,计数输入信号是内部时钟脉冲,每个机器周期内定时器的计数器做一次“+l”运算。每个机器周期等于12个振荡周期,故计数速率为振荡频率的112。本设计虽然不采用51系列单片机中的机器周期的概念(所有的指令均在l到4个时钟周期内完成),但仍然保证计数速率为振荡器频率的112。选择计数器工作模式时,计数脉冲来自相应的外部输入引脚T0或Tl。当输入信号由l到0负跳变时,计数寄存器(TH0,TL0或THl,TLI)的值增1。每个机器周期的S5P2期间,对外部输入进行采样。如果在第一个周期中采得的值为1,而在下一个周期采得的值为0,则在紧跟着的下一个周期的S3P1期间,计数值就增1。由于确认一次下跳沿要花2个机器周期,即24个振荡周期,因此外部输入的计数脉冲的最高频率为振荡频率的124。对外部输入信号的占空比并没有什么限制,但为了确保某一给定的电平在变化之前至少被采样一次,则这一电乎至少要保持一个机器周期。虽然本设计不采用机器周期的概念,但是这里仍将采用112倍时钟频率来对外部输入进行采样,以便能和原芯片功能兼容。表3.2列出了它的四种工作方式。通过定时/计数器单元的仿真,可以看出,设计准确无误表3.2 定时计数器的工作方式工作方式功能方式013位计数器方式116位计数器方式2可自动重新装载的8位计数器方式3T0分为两个独立的8位计数器,T1停止计数3.3.4 串行通信单元串行通信是CPU与外界进行信息交换的一种方式。MCS-51单片机内部有一个全双工串行接口。其内部有两个数据缓冲器(SBUF),一个用作发送,另一个用作接收。这两个数据缓冲器物理上各自独立,通用一个地址99H,发送缓冲器只写不读,接收缓冲器只读不写。其中接收缓冲器是双缓冲的,以避免在接收下一帧数据之前,CPU未能及时响应接收器中断,没有把上帧数据读走而产生两帧数据重叠问题。串口的控制是通过控制寄存器SCON和PCON来实现的。串行口有四种工作方式,方式0的波特率是固定的(为112倍的输入时钟频率);方式l和方式3的波特率是定时器,计数器l的溢出率的116或132倍;而方式2的波特率则是输入时钟频率的132或164倍。表3.3是四种工作方式的功能。表3.3 串行口工作方式工作方式功能方式0移位寄存器方式(用于I/O扩展)方式18位UART,波特率可变(T1溢出率/n)方式29位UART,波特率位fosc/64或fosc/32)方式39位UART,波特率可变(T1溢出率/n)输入信号启动信号(高电平有效)它使内部用于发送的状态机启动,同时使内部计数器复位,使每位的发送过程与计数器同步。计数器满刻度偏转一次,状态机的状态加1。当状态0向状态1转换时,将要发送的8位数据的最低位输出到rxd _0,这一数据的电平一直维持到状态l向状态2转换,这时开始输出第二位数据。依此类推,在状态8的末尾,8位数据完全输出完毕后,指示是否有数据输出的信号rxdwr_O变为低电平,表示数据已经发送完毕。 以上介绍了ALU、控制单元、定时计数器单元和串行通信单元的设计与实现,将它们通过内部信号连接就构成了8051核。3.4 MCS-51 IP核的扩展以ALU、控制单元、定时计数器单元和串行通信单元的设计与实现为理论和技术为基础,设计实现了MCS-51单片机的IP核。针对FPGA的可重构性及软核的可修改性特点,这里提出对MCS-51单片机IP核进行扩展的设想。根据系统功能与需求增减MCS-51软核指令集和外围设备,以实现硬件结构与系统功能最佳匹配、硬件结构与工程应用要求最佳匹配的可编程片上系统。比如:实际系统中不需要乘除法运算,因此我们可以将MCS-51 IP核中的乘除法模块及其乘除法指令去掉,以精简系统结构;原始设计中不具备信号处理功能,可根据需要添加信号处理器IP核,以扩展系统功能。对于上述设想虽然已经做了一些研究和尝试,但尚未形成完整成熟的实现规则,这还有待于今后更深入地研究。4 结论EDA技术作为现代电子设计技术的核心,近年来有了飞速的发展。利用EDA技术进行电子系统设计具有开发周期短、灵活度高等特点,特别是作为EDA技术要素的EDA工具、可编程器件以及IP技术的进步与发展,使得现代电子系统的开发变得更容易、更快速、更高效。MCS-51系列单片机有着良好的通用性和广泛的使用性。本文主要进行了基于EDA技术的MCS-5l IP核设计及其扩展研究,应用EDA技术设计实现了基于MCS-51的单片机IP核,在此基础之上,提出了一种基于MCS-5l的可扩展多功能单片机IP核。本文的主要研究内容可总结为以下几个方面:1对EDA技术进行了系统的学习、研究与总结,特别是对其构成要素、设计方法进行了较深入的学习,在此基础上,广泛了解其

温馨提示

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

评论

0/150

提交评论