基于FPGA的MCS51单片机的逻辑运算模块设计毕业设计.docx
《基于FPGA的MCS51单片机的逻辑运算模块设计毕业设计.docx》由会员分享,可在线阅读,更多相关《基于FPGA的MCS51单片机的逻辑运算模块设计毕业设计.docx(29页珍藏版)》请在冰豆网上搜索。
基于FPGA的MCS51单片机的逻辑运算模块设计毕业设计
摘要
MCS-51是Intel公司生产的其中一个单片机系列的名称。
该系列单片机诞生于1980年,功能强大、应用方便,已成为单片机领域的实际标准。
MCS-51单片机小巧灵活,成本低,易于产品化,方便地组成各种智能测试设备及各种智能仪器仪表。
其指令系统有各种控制功能用指令,很容易构成各种规模的应用系统,易扩展,可以很方便地实现多机和分布式控制。
而VHDL语言则是应用广泛的一种硬件描述语言,目前越来越多的厂商、科研机构在使用VHDL语言进行系统开发。
本文将采用具有学习能力强、兼容性能好及采用并行处理优点等的FPGA/CPLD为载体,应用灵活高效的VHDL语言对MCS-51兼容单片机进行编程、以EDA开发软件QuartusII为设计平台,经过编译、调试、修改、仿真测试,实现MCS-51单片机的算术模块功能。
关键词:
MCS-51单片机,VHDL,EDA,FPGA
Abstract
MCS-51isanamongthosethattheIntelcompanyproducelistslicethenameofthemachineseries.Shouldserieslistslicethemachinewasbornin1980,thefunctionbestrong,applicationconvenience,havebecomelistslicemachinerealmofactualstandard.TheMCS-51listslicethemachinebecleverlymadeandvivid,thecostbelow,beeasytoaproducttoturnandexpedientlyconstitutevariousintelligencetomeasure,equipmentsandvariousintelligenceinstrumentappearance.Itsinstructionsystemhavevariouscontrolthefunctionuseinstruction,veryeasyconstitutevariousscaleofapplicationsystem,easyexpand,canveryexpedientlyrealizationmanymachineanddistributetypecontrol.ButVHDLlanguagethenapplicationextensiveofthedescriptionlanguageofakindofhardware,currentlymoreandmoreofmanufacturer,researchorganizationatusagetheVHDLlanguagecarryonsystemdevelopment.
Thistexthasstudyabilitytheadoptionstrong,andpermitfunctiongoodandadoptionproceedtogetherprocessingadvantageetc.ofFPGA/CPLDinordertocarryabody,applicationvividefficientlyofVHDLlanguagetoMCS-51andpermitlistslicethemachinecarryonplaitdistance,withEDAdevelopmentsoftwareQuartusIIisdesignterrace,hasbeenedittedandtranslate,adjustedtotry,modification,imitatetruetest,realizationMCS-51listslicethearithmeticmoldofthemachinepiecefunction.
Keyword:
Themachine,VHDL,EDAoftheMCS-51listslice,FPGA
第一章绪论
1.1课程设计背景知识
1.1.1单片机的概述
单片机是大规模集成电路技术发展的产物,它将中央处理器(CPU)、存储器(ROM/RAM)、输入输出接口、定时器/计数器等主要计算机部件集成在一片芯片上,因此单片机被称为单片微型计算机(SingleChipMicrocomputer)。
目前单片机是计算机家族中重要的一员。
单片机配上适当的外围设备和软件,便可构成一个单片机应用系统。
单片机具有功能强、体积小、价格低和抗干扰能力强等特点,被广泛应用于工农业生产、国防、科研及日常生活等各个领域。
1.1.2单片机的发展历程
单片机1974年,美国Fairchild公司研制出世界上第一台由两块集成电路芯片组成的单片微型计算机F8,从此单片机开始迅速发展。
从4位机和8位机到现在的16位机和32位机,单片机的功能越来越强大,应用范围也越来越广泛。
单片机的发展历程通常可以分为以下几个阶段:
(1)第一代单片机(1974—1976年)这是单片机发展的起步阶段。
在这个时期生产的单片机属4位机型,集成度低。
典型的代表产品有Intel公司的4004四位单片机,主要应用于家用电器领域中。
(2)第二代单片机(1976—1978年)这是单片机的发展阶段。
这个时代生产的单片机属低、中档8位机型,片内集成有CPU、输入输出接口、定时器和ROM等功能部件,是8位机的早期产品,存储器容量小,性能低,目前已很少应用。
典型的产品有Intel公司的MCS-48系列单片机。
(3)第三代单片机(1979—1982年)这一代单片机的存储容量和寻址范围都有扩大,而且增加了中断源、并行I/O和定时器/计数器个数,集成了全双工串行通信接口电路。
代表产品有Intel公司的MCS-51系列机。
(4)第四代单片机(1982年以后)这是16位单片机和8位高性能单片机并行发展的时代。
16位单片机的特点是工艺先进、集成度高和内部功能强,代表产品有Intel公司的MCS-96系列等。
1.1.3单片机的发展趋势
随着大规模集成电路及超大规模集成电路的发展,单片机将向着更深层次发展,主要体现在以下几个方面:
(1)高集成度一片单片机内部集成的ROM/RAM容量增大,增加了电闪存储器,具有掉电保护功能,并且集成了A/D、D/A转换器、定时器/计数器、系统故障监测和DMA电路等。
(2)引脚多功能化,随着芯片内部功能的增强和资源的丰富,一脚多用的设计方案日益显示出其重要地位。
(3)高性能这是单片机发展所追求的一个目标,更高的性能将会使单片机应用系统设计变得更加简单、可靠。
(4)低功耗这将是未来单片机发展所追求的一个目标,随着单片机集成度的不断提高,由单片机构成的系统体积越来越小,低功耗将是设计单片机产品时首先考虑的指标。
1.1.4单片机的特点及应用
1.单片机的特点:
(1)可靠性高
单片机采用三总线结构,抗干扰能力强,可靠性高。
(2)功能强
单片机具有判断和处理能力,可以直接对I/O口进行各种操作(输入输出、位操作以及算术逻辑操作等),运算速度高,实时控制功能强。
(3)体积小、功耗低
由于单片机包含了运算器等基本功能部件,具有较高的集成度,因此由单片机组成的应用系统结构简单、体积小、功能全。
电源单一,功耗低。
(4)使用方便
由于单片机内部功能强,系统扩展方便,因此应用系统的硬件设计非常简单。
(5)性能价格比较高,易于产品化
单片机具有功能强、价格便宜、体积小、插接件少、安装调试简单等特点,使单片机应用系统的性能价格比较高。
同时单片机开发工具很多,这些开发工具都具有很强的软硬件调试功能,使单片机的应用开发极为方便,大大缩短了产品研制的周期,并使单片机应用系统易于产品化。
2.单片机的应用
单片机的应用概括起来,主要有以下几方面:
(1)单片机在智能仪表中的应用
单片机广泛地应用于各种智能仪器仪表中,简化了仪器仪表的硬件结构,增强了控制功能,提高了测量速度和测量精度。
(2)单片机在机电一体化中的应用
机电一体化产品集机械技术、电子技术、自动化技术和计算机技术于一身,是机械工业发展的方向。
将单片机应用于机械行业,发挥它的体积小、可靠性高、功能强和安装方便等优点,提高了机器的自动化和智能化程度,促进了机电一体化的发展。
(3)单片机在实时控制中的应用
单片机被广泛地应用于各种实时控制系统中。
例如对工业生产过程中温度、湿度、流量和压力等参数的测量和控制等。
(4)单片机在分布式测控系统中的应用
分布式测控系统的主要特点是系统中有多个处理单元,各自完成特定的任务,可通过网络通信相互联系、协调工作,具有功能强、可靠性高的特点。
单片机可作为一个处理单元应用于分布式测控系统中。
(5)单片机在工业过程控制中的应用
单片机的I/O口线多,并具有位操作能力,特别适用于工业过程控制。
(6)单片机在日常生活中的应用
由于单片机价格低廉、体积小、逻辑判断及控制功能强,因此被广泛地应用于日常生活的各个方面,如洗衣机、电冰箱、电子玩具、立体声音响和家用防盗系统等。
1.1.5单片机面临的问题
(1)低速
由于单片机的工作方式是通过内部的cpu逐条执行的软件指令来完成各种运算和逻辑功能的,因而无论多么高的工作时钟频率和多么好的指令时序方式,在串行指令执行方式面前,其工作速度和效率必将大打折扣。
因此,单片机在实时仿真、高速工控或高速数据采样等许多领域尤显力不从心。
(2)PC“跑飞”
在强干扰或某种偶然的因素下,任何单片机的程序计数器都极可能超出正常的程序流程“跑飞”,事实证明,无论多么优秀的单片机,在强电磁干扰情况下,单片机都无法保证其仍能正常工作而不进入不可挽回的“死机”状态。
(3)开发周期长
单片机是执行软件指令的方式实现逻辑功能的,不同的单片机通常具有不同的汇编语言,使得程序的可移植性差,此外,在开发单片机的软件程序中需要随时顾及特定的单片机的应简洁共和外围设备接口。
所以这一切导致了单片机应用系统开发效率低,开发周期时间长。
1.1.6单片机与FPGA/CPLD的对比
在传统的控制系统中,人们常常采用单片机作为控制核心。
但这种方法硬件连线复杂,可靠性差,且单片机的端口数目,内部定时器和中断源的个数都有限,在实际应用中往往需要外加扩展芯片,这无疑对系统的设计带来诸多不便,现在有很多系统采用可编程逻辑器件FPGA/CPLD(现场可编程门阵列/复杂可编程逻辑器件)作为控制核心,它与传统设计相比较,不仅简化了接口和控制,提高了系统的整体性能及工作可靠性,也为系统集成创造了条件。
下面我们来看单片机和FPGA/CPLD的对比:
(1)单片机的学习效率较低。
单片机直接面对硬件,大多数都使用汇编语言不同厂家生产的单片机其汇编语言也不同,并且,单片机编程还与硬件的连接方式有关,而FPGA/CPLD可使用标准硬件描述语言VHDL(VeryhighSpeedintegratedCircuitHardwareDeseriptionLanguage)对所有型号的FPGA/CPLD编程。
同时,VHDL是一种行为描述语言,可以远离硬件编程,打破了软硬件之间的屏障,使学习和设计的效率大大提高。
(2)单片机本身的速度相对FPGA/CPLD来显得太慢。
单片机是用指令排队形式来执行指令的,影响了速度的提高。
而FPGA/CPLD在实时处理时均为并行工作,速度快。
(3)单片机各引脚的功能是确定的,而FPGA/CPLD可以根据需要用软件改变各引脚的功能。
与MCS-51单片机相比FPGA/CPLD的优势是多方面的,以下是他们的优点与优势。
(1)编程方式简便、先进。
FPGA/CPLD产品越来越多地采用了先进的在系统配置编程方式。
(2)高速。
FPGA/CPLD的时钟延迟可达纳秒级,结合其并行工作方式在超高速应用领域和实时测控方面有非常广阔的应用前景。
(3)高可靠性。
除了不存在SCM所特有的复位不可靠与PC可能跑飞等固有缺陷外,FPGA/CPLD的高可靠性还表现在几乎可将整个系统下载于同一芯片中,从而大大缩小了体积,易于管理和屏蔽。
(4)开发工具和设计语言标准化,开发周期短。
由于开发工具的通用性,设计语言的标准化以及设计过程几乎与所用的FPGA/CPLD器件的硬件结构没有关系,使得设计成功的各类逻辑功能块有很好的兼容性和可移植性,它几乎可用于任何型号的FPGA/CPLD从而使得片上系统的产品设计效率大幅度提高。
(5)功能强大,应用广阔。
目前FPGA/CPLD可供选择范围很大,可根据不同的应用选用不同容量的芯片,利用它们可实现几乎任何形式的数字电路或数字系统的设计。
(6)易学易用,开发便捷。
FPGA/CPLD应用的学习不需太多的预备知识,只要具有通常的数字电路和计算机编程基础知识,就足以在短期内掌握基本的设计方法和开发技巧。
1.1.7EDA技术设计方法系统级设计
EDA是一种高层次的电子设计方法,也即系统级设计方法。
高层次设计是一种“概念驱动式”设计,设计人员无须通过门级原理图描述电路,而是针对设计目标进行功能描述,由于摆脱了电路细节的束缚,设计人员可以把精力集中于创造性的方案与概念构思上,一旦这些概念构思以高层次描述的形式输入计算机后,EDA系统就能以规则驱动的方式自动完成整个设计。
这样,新的概念得以迅速有效的成为产品,大大缩短了产品的研制周期。
不仅如此,高层次设计只是定义系统的行为特性,可以不涉及实现工艺,在厂家综合库的支持下,利用综合优化工具可以将高层次描述转换成针对某种工艺优化的网表,工艺转化变得轻松容易。
具体的设计流程如图1-1所示。
图1-1EDA设计流程图
FPGA/CPLD是一种新兴的高密度的可编程逻辑器件,它具有门阵列的高密度和PLD器件的灵活性和易用性,目前已成为一类主要的可编程器件。
可编程器件的最大特点是可通过软件编程对其器件的结构和工作方式进行重构,能随时进行设计调整而满足产品升级。
使得硬件的设计可以如软件设计一样方便快捷,从而改变了传统数字系统及用单片机构成的数字系统的设计方法、设计过程及设计观念,使电子设计的技术操作和系统构成在整体上发生了质的飞跃。
采用FPGA/CPLD可编程器件,可利用计算机软件的方式对目标器件进行设计,而以硬件的形式实现。
既定的系统功能,在设计过程中,可根据需要随时改变器件的内部逻辑功能和管脚的信号方式,借助于大规模集成的FPGA/CPLD和高效的设计软件,用户不仅可通过直接对芯片结构的设计实行多种数字逻辑系统功能,而且由于管脚定义的灵活性,大大减轻了电路图设计和电路板设计的工作量的难度,同时,这种基于可编程芯片的设计大大减少了系统芯片的数量,缩小了系统的体积,提高了系统的可靠性。
EDA技术就是以计算机为工具,在EDA软件平台上,对以硬件描述语言HDL为系统逻辑描述手段,完成的设计文件自动完成逻辑编译、逻辑化简、逻辑综合及优化、逻辑仿真,直至对特定目标芯片的适配编译、逻辑映射和编程下载等工作。
EDA的仿真测试技术只需要通过计算机就能对所设计的电子系统从各种不同层次的系统性能特点完成一系列准确的测试与仿真操作,大大提高了大规模系统电子设计的自动化程度。
设计者的工作仅限于利用软件方式,即利用硬件描述语言(如VHDL)来完成对系统硬件功能的描述,在EDA工具的帮助下就可以得到最后的设计结果,这使得对整个硬件系统的设计和修改过程如同完成软件设计一样方便、高效。
第二章单片机的结构原理
2.1单片机的内部模块功能
MCS-51的内部结构框图如图2-1所示,其内部各部分的功能简述如下:
图2-1单片机的内部结构框图
1.运算器
运算器包括算术逻辑部件ALU、位处理器、累加器A、寄存器B、暂存器、以及程序状态寄存器PSW等。
该模块的功能是实现数据的算术运算、逻辑运算、位变量处理和数据传送等操作。
ALU的功能十分强大,它不仅可以对8位变量进行逻辑“与”、“或”、“非”、“异或”、移位和清零等基本操作,还可以进行加、减、乘、除和十进制调整等基本运算。
ALU还具有一般微机的ALU所不具备的功能,即位处理操作,它可以对位(bit)变量进行处理,如置位、清零、测试转移以及逻辑“与”、“或”、“非”等操作。
由此可见,ALU在算术运算以及控制处理方面的能力是很强的。
累加器A是一个8位的累加器。
从功能上看它与一般微机的累加器相比没有什么特别之处,但需要说明的是A的进位标志Cy是特殊的,因为它同时又是位处理器的一位累加器。
寄存器B是为执行乘法和除法操作设置的,在不执行乘、除法操作的一般情况下,可以把它当一个普通的寄存器使用。
程序状态寄存器PSW,是一个8位的可读写寄存器,它的不同位包含了程序状态的不同信息。
其中进位标志位Cy辅助进位标志位AC)和OV在执行算术和逻辑指令时,可以由硬件或者软件(Cy可以有软件置位或清零)改变,因此运算器应该有上述三位状态改变的输出信息。
本课题设计的运算器将完全以组合逻辑电路的形式出现,其内部将不包括累加器A、寄存器B、以及程序状态字寄存器PSW。
它只是根据所接收的指令,将来自累加器、程序或者数据存储器的数据进行相应的算术或者逻辑运算,然后将运算结果以及程序状态字寄存器PSW的相关位以结果的形式输出。
2.控制器
控制部件是单片机的中枢神经,以主振频率为基准,控制器控制CPU的时序,对指令进行译码,然后发出各种控制信号,将各个硬件环节组织在一起。
控制器电路包括程序计数器PC、PC加1寄存器、指令寄存器、指令译码器、数据指针DPTR、堆栈指针SP、缓冲器以及定时与控制电路等。
控制电路完成指挥控制工作,协调单片机各部分正常工作。
程序计数器PC用来存放即将要执行的指令地址,它可以完成64K的外部存储器寻址,执行指令时,PC内容的高8位经P2口输出,低8位经P0口输出。
数据指针DPTR为16位数据指针,它可以对64K的外部数据存储器和I/O口进行寻址,它的低8位为DPL(地址82H),高8位为DPH(地址为83H)。
堆栈指针SP在片内RAM(128字节)中开辟栈区,并随时跟踪栈顶地址,它按先进后出的原则存取数据,上电复位后,SP指向07H。
3.存储器
MCS-51系列单片机的存储器包括数据存储器和程序存储器,其主要特点是程序存储器和数据存储器的寻址空间是相互独立的,物理结构也不相同。
对MCS-51系列(8031除外)而言,有4个物理上相互独立的存储器空间:
即内、外程序存储器和内、外数据存储器。
对于8051其芯片中共有256个RAM单元,其中后128个单元被专用寄存器占用,只有前128个单元供用户使用。
4.定时器/计数器
MCS-51系列单片机有两个可编程定时器/计数器,即定时器/计数器0和1。
它们各具有两种工作模式(定时器模式和计数器模式)和4种工作方式(方式0,方式1、方式2、方式3)。
4种工作方式中,前三种方式对两个定时器/计数器都是一样的,方式3对两者时不同的,这一点在设计时要注意。
特殊功能寄存器TMOD(定时器/计数器方式控制寄存器)用于控制定时器/计数器的工作模式和过方式。
另一个特殊功能寄存器TCON(定时器/计数器控制寄存器)用于T0和T1的启动和停止计数,同时还包含了T0和T1的状态。
有关定时器/计数器的各个工作方式将在具体设计中详细叙述。
5.串行口
MCS-51系列单片机内部有一个功能很强的全双工的串行口,该串行口有四种工作方式,波特率可以由软件设置,由片内的定时器/计数器产生。
串行口有两个物理上独立地接收、发送缓冲器SBUF,可以同时发送、接收数据,发送缓冲器只能写入不能读出,接收缓冲器只能读出不能写入,两个缓冲器公用一个字节地址(99H)。
串行口的接收、发送数据均可触发中断系统。
同时,还有两个控制寄存器来控制MCS-51单片机地串行口,它们是特殊功能寄存器SCON和PCON。
6.并行口
MCS-51单片机共有4个8位的I/O口(P0、P1、P2和P3),每一条I/O线都能独立地用作输入或输出。
P0口为三态双向口,能带8个TTL门电路,P1、P2和P3口为准双向口,负载能力为4个TTL门电路。
7.中断控制系统
MCS-51单片机的中断功能较强,以满足控制应用的需要。
8051共有5个中断源,即外中断2个,定时/计数中断2个,串行中断1个。
所有中断分为高级和低级两个中断优先级。
8.时钟电路
MCS-51芯片内部有时钟电路,但晶体振荡器和微调电容必须外接。
时钟电路为单片机产生时钟脉冲序列,振荡器的频率范围为1.2MHz~12MHz,典型取值为6MHZ。
9.总线
以上所有组成部分都是通过总线连接起来,从而构成一个完整的单片机。
系统的地址信号、数据信号和控制信号都是通过总线传送的,总线结构减少了单片机的连线和引脚,提高了集成度和可靠性。
2.2MCS-51单片机的指令系统的实现原理
MCS-51系列单片机的指令系统采用汇编语言,它的指令系统是一种简明高效的指令系统,由42种助记符和7种寻址方式组合而成。
其基本指令共有111条,其中单字节指令49条,双字节指令45条,三字节指令17条。
如果按功能可以讲这些指令分为五类:
数据传送类(29条)、算术操作类(24条)、逻辑操作类(24条)、控制转移类(17条)以及位变量操作类(17条)。
对于反向设计而言,我们关心的不是它的各种具体指令的多少而是指令的寻址方式。
所谓的寻址方式就是寻找确定参与操作的数的真正地址。
MCS-51系列单片机的111条指令一共只采用了7种寻址方式。
它们分别为:
立即寻址、直接寻找、寄存器寻址、寄存器间接寻址、变址寻址、相对寻址、位寻址。
第三章ALU的原理分析与实现工具
3.1ALU的原理分析
8051单片机的ALU是一个性能极强的运算器,它的功能为:
(1)加、减、乘、除四则运算。
(2)与、或、非、异或等逻辑运算。
(3)数据传送、移位、判断和程序转移等功能。
8051单片机的ALU为用户提供了丰富的指令系统和极快的指令执行速度,大部分指令的执行时间为1μs,乘法指令可达4μs。
8051时钟频率可达12MHZ。
3.2用FPGA实现ALU的设计
在现代电子系统中,数字系统所占的比例越来越大。
现代电子系统发展的趋势是数字化和集成化,CPLD/FPGA作为可编程ASIC器件,在数字系统设计中发挥着重要的作用。
与传统的可编程器件相比,FPGA采用了类似门阵列的通用结构,规模可以做的较大,可实现的功能更强,设计的灵活性更大。
且FPGA的容量越来越大,它所提供的门数从几百门到上百万门,可以满足不同的需要。
因此用FPGA来实现ALU的功能不会受到FPGA门数的限制。
用FPGA实现的ALU有很多优点:
(1)编程方式简便先进。
(2)高速:
FPGA的时钟延迟可达纳秒级,结合其并行工作方式在超高速应用领域和实时测控方面有非常广阔的应用前景。
(3)高可靠性:
表现在几乎可将整个系统下载于同一芯片中从而大大缩小了体积易于管理和屏蔽。
(4)开发工具和设计语言标准化开发周期短。
(5)功能强大应用广阔的FPGA可供选择范围很大,可根据不同的应用选用不同容量的芯片。
利用它们可实现几乎任何形式的数字电路或数字系统的设计。
(6)易学易用开发便捷:
FPG