版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、8051单片机的FPGA设计(shj)与实现第一章前 言20世纪末在计算机技术逐渐发展(fzhn)的情况写,电子(dinz)技术得到了飞速的发展,现代电子产品已经渗透到了社会的各个领域,有力的推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品的性能进一步提高,产品更新换代的节奏也越来越快。电子技术发展的根基是微电子技术的进步,它表现在大规模集成电路加工技术,即半导体工艺技术的发展上,表征半导体工艺水平的线宽已经达到60nm以下,并还在不断缩小;在硅片单位面积上集成了更多的晶体管,集成电路设计在不断地向超大规模,极低功耗和超高速的方向发展;专用集成电路ASIC(Applicati
2、on Specific Integrated Circuit)的设计成本不断降低,在功能上,现代的集成电路已能够实现单片电子系统SOC(System on a chip)的功能。另外集成电路(IC)技术在微电子领域中占有重要的地位。且伴随着IC技术的发展,电子设计自动(Electronic Design Automation,EDA)已经逐渐成为重要的设计手段,其广泛应用于模拟与数字电路系统等许多领域。单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、
3、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域的广泛应用。从上世纪80年代,由当时的4位、8位单片机,发展到现在的32位300M的高速单片机。单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,广泛应用于仪器仪表中,结合不同类型的传感器,可实现诸如电压、电流、功率、频率、湿度、温度、流量、速度、厚度、角度、长度、硬度、元素、压力等物理量的测量。采用单片机控制使得仪器仪表数字化、智能化、微型化,且功能比起采用电子或数字电路更加强大。FPGA是英文FieldProgrammable Gate Array的缩写
4、,即现场可编程门阵列,它是在PAL、GAL、EPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决(jiju)了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个新概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输出输入模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。CPLD与FPGA的内部结构稍有不同(b tn),但用法一样,所以多数情况下,不加以区分。FPG
5、A/CPLD芯片都是特殊的ASIC芯片,它们除了具有ASIC的特点之外,还具有以下几个优点:随着VLSI(Very Large Scale IC,超大规模集成电路)工艺(gngy)的不断提高单一芯片内部可以容纳上百万个晶体管, FPGA/CPLD芯片的规模也越来越大,其单片逻辑门数已达到上百万门,它所能实现的功能也越来越强,同时也可以实现系统集成。FPGA/CPLD的资金投入小,节省了许多潜在的花费。用户可以反复地编程、擦除、使用或者在外围电路不动的情况下用不同软件就可实现不同的功能。所以,用FPGA/PLD 试制样片,能以最快的速度占领市场。 FPGA/CPLD软件包中有各种输入工具和仿真工
6、具,及版图设计工具和编程器等全线产品,电路设计人员在很短的时间内就可完成电路的输入、编译、优化、仿真,直至最后芯片的制作。 当电路有少量改动时,更能显示出FPGA/CPLD的优势。现有的电子系统设计多数采用微控制器为核心,辅以必要的外围器件如ADC、DAC和存储器等,这样的系统做出来的线路板较大,且调试复杂;而且如果系统内有高速器件,则微控制器的选择将会是个困难;虽然可通过程序升级增加或改进功能,但硬件一旦设计完成,是无法更改的。FPGA(现场可编程门阵列)与 CPLD(复杂可编程逻辑器件)都是可编程逻辑器件,它们(t men)是在PAL,GAL等逻辑器件的基础之上发展起来的。同以往的PAL、
7、GAL等相比较(bjio),FPGA/CPLD的规模比较(bjio)大,它可以替代几十甚至几千块通用IC芯片。这样的FPGA/CPLD实际上就是一个系统部件。由于其应用的灵活性,这种芯片受到世界范围内电子工程设计人员的广泛关注和普遍欢迎。第二章 FPGA系统的简介在数字化、信息化的时代,数字集成电路应用得非常广泛。随着微电子技术与工艺的发展,数字集成电路从电子管、晶体管、中小规模集成电路、超大规模集成电路(VLSI)逐步发展到今天的专用集成电路(ASIC)。ASIC的出现降低了产品的生产成本,提高了系统的可靠性,减小了产品的物理尺寸,推动了社会的数字化进程。但是ASIC因其设计周期长,改版投资
8、大,灵活性差等缺陷制约着它的应用范围。可编程逻辑器件随着微电子制造工艺的发展取得了长足的进步。从早期的只能存储少量数据,完成简单逻辑功能的可编程只读存储器(PROM)、紫外线可擦除只读存储器(EPROM)i1oJ和电可擦除只读存储器(EEROM),发展到能完成中大规模的数字逻辑功能的可编程阵列逻辑(PAL)和通用阵列逻辑(GAL)11ii,今天已经发展成为可以完成超大规模的复杂组合逻辑与时序逻辑的现场可编程逻辑器件(FPGA)和复杂可编程逻辑器件(CPLD)。第一节 FPGA的特点(tdin)FPGA既继承了ASIC的大规模、高集成度、高可靠性的优点,又克服了普通(ptng)ASIC设计周期长
9、、投资大、灵活性差的缺点,逐步成为复杂数字硬件电路设计的理想首选。当代FPGA有以下特点:规模(gum)越来越大。开发过程投资小。FPGA一般可以反复地编程、擦除。保密性能好。FPGA开发工具智能化,功能强大。新型FPGA内嵌CPU或DSP内核,支持软硬件协同设计,可以作为片上可编程系统(SOPC)的硬件平台。第二节FPGA的设计流程一个完整的FPGA设计流程包括电路设计与输入、功能仿真、综合、综合后仿真、实现、布线后仿真和下板调试等主要步骤。常用的设计输入方法有硬件描述语言(HDL)和原理图设计输入方法。原理图设计输入法早期应用得比较广泛,它根据设计要求,选用器件、绘制原理图、完成输入过程。
10、这种方法的优点是直观、便于理解、元件库资源丰富。但是在大型设计中,这种方法的可维护性较差,不利于模块建设与重用。更重要的缺点是:当所选用芯片升级换代后,所有原理图都要作相应的改动。目前进行大型工程设计时,最常用的设计方法是HDL设计输入法。其中影响最为广泛的HDL语言是VHDL和Verilog HDL。它们的共同特点是利于自顶向下设计,利于模块的划分与复用,可移植性好,通用性好,设计不因芯片的工艺与结构的变化而变化,更利于向ASIC的移植。电路设计完成后,要用专用的仿真工具对设计进行功能仿真,验证电路功能是否符合设计要求。功能仿真有时也被称为前仿真。通过仿真能及时发现设计中的错误,加快设计进度
11、,提高设计的可靠性。综合(zngh)优化(Synthesize)是指将HDL语言、原理图等设计输入翻译成由与、或、非门,RAM,寄存器等基本逻辑单元组成的逻辑连接(网表),并根据目标与要求(约束条件)优化所生成的逻辑连接,输出edf和edn等文件,供FPGA 厂家(chn ji)的布局御线器进行(jnxng)实现。综合完成后需要检查综合结果是否与原设计一致,需要做综合后仿真。在仿真时,把综合生成的延时文件反标到综合仿真模型中去,可估计门的延时带来的影响。综合后仿真虽然比功能仿真精确一些,但是只能估计门的延时,而不能估计线的延时,仿真结果与布线后的实际情况还有一定的差距,并不十分准确。这种仿真的
12、主要目的在于检查综合器的综合结果是否与设计输入一致。综合结果的本质是一些由与、或、非门,触发器,RAM等基本逻辑单元组成的逻辑网表,它与芯片实际的配置情况还有较大差距。此时应该使用FPGA厂商提供的工具软件,根据所选芯片的型号,将综合输出的逻辑网表,适配到具体FPGA器件上,这个过程就叫做实现(Implementation)过程。Xilinx的实现过程分为:翻译(Translate)、映射(Map)、布局布线(Place & Route)等3个步骤。布局布线之后应该做时序仿真,时序仿真中应该将布局布线的时延文件反标到设计中,使仿真既包含门的延时,又包含线的延时信息。与前面各种仿真相比,这种后仿
13、真包含的延时信息最为全面、准确,能较好地反映芯片的实际工作情况。设计开发的最后步骤就是在线调试或者将生成的配置文件写入芯片中进行测试。在ISE中对应的工具是iMPACT。第三节 FPGA的开发工具FPGA的开发工具有很多,各个公司都有自己专用工具。本次毕业设计我所采用的开发工具为ALTERA:QUARTUS。一、 ALTERA : QUARTUSQuartus II design 是最高级和复杂的,用于system-on-a-programmable-chip (SOPC)的设计环境。 QuartusII design 提供完善的 timing closure 和 LogicLock 基于块的
14、设计流程。QuartusII design是唯一一个包括以timing closure 和 基于块的设计流为基本特征的programmable logic device (PLD)的软件。 Quartus II 设计软件改进了性能、提升了功能性、解决了潜在的设计延迟等,在工业领域率先提供FPGA与mask-programmed devices开发的统一工作流程。Altera Quartus II 作为(zuwi)一种可编程逻辑(lu j)的设计环境, 由于其强大(qingd)的设计能力和直观易用的接口,越来越受到数字系统设计者的欢迎。Altera Quartus II设计软件是业界唯一提供FP
15、GA和固定功能HardCopy器件统一设计流程的设计工具。工程师使用同样的低价位工具对 Stratix FPGA进行功能验证和原型设计,又可以设计HardCopy Stratix器件用于批量成品。系统设计者现在能够用Quartus II评估HardCopy Stratix器件的性能和功耗,相应地进行最大吞吐量设计。Altera的Quartus II可编程逻辑软件属于第四代PLD开发平台。该平台支持一个工作组环境下的设计要求,其中包括支持基于Internet的协作设计。Quartus平台与Cadence、ExemplarLogic、 MentorGraphics、Synopsys和Synplic
16、ity等EDA供应商的开发工具相兼容。改进了软件的LogicLock模块设计功能,增添 了FastFit编译选项,推进了网络编辑性能,而且提升了调试能力。二、 Quartus II的特点1、支持MAX7000/MAX3000等乘积项器件2、软件体积缩小,运行速度加快3、LogicLock设计流程把性能提升15%4、采用快速适配选项缩短编译时间5、新的功能减小了系统级验证 第二章8051单片机的FPGA设计(shj)与实现单片微型计算机简称(jinchng)为单片机,又称为微型控制器,是微型计算机的一个(y )重要分支。单片机是70年代中期发展起来的一种大规模集成电路芯片,是CPU、RAM、RO
17、M、I/O接口和中断系统于同一硅片的器件。80年代以来,单片机发展迅速,各类新产品不断涌现,出现了许多高性能新型机种,现已逐渐成为工厂自动化和各控制领域的支柱产业之一。8051单片机是早最典型的产品,该系列具它单片机都是在8051的基础上进行功能的增、减、改变而来的,所以人们习惯于用8051来称呼MCS51系列单片机。8051单片机是早最典型的产品,该系列具它单片机都是在8051的基础上进行功能的增、减、改变而来的,所以人们习惯于用8051来称呼MCS51系列单片机。第一节 51单片机的引脚功能(gngnng)MCS-51是标准(biozhn)的40引脚双列直插式 HYPERLINK /vie
18、w/2417695.htm t _blank 集成电路(jchng-dinl)芯片,引脚分布请参照图 1:图1、8051芯片管脚图1电源引脚 Vee和 VssVcc(40脚):电源端,+5伏。Vss(20脚):接地端。 2时钟电路引脚又面和叉丽XTAL2(1 8脚):接外部晶体和微调电容的一端。在805l单片机内它是振荡电路反相放大器的输出端,振荡电路的频率就是晶体固有频率。若需采用外部时钟电路时,该引脚输入外部时钟脉冲信号。XTALl(19脚):接外部晶体和微凋电容的另一端。在片内它是振荡电路反相放大器的输入端。在采用外部时钟时,该引脚必须接地。3控制信号引脚RST、ALE、丽和豆iRST/
19、V(9脚):RST是复位信号输入端,高电平有效。当此输入端保持两个机器周期(24个时钟振荡周期)的高电平时,就可以完成复位操作。RST引脚的第二功能是VpD,即备用电源的输入端。当主电源Vcc发生故障,降低到低电平规定值时,将+5V电压自动接入RST端,为RAM提供备用电源,以保证存储在RAM中的信息不丢失,以使复电后能继续正常运行。 ALE/PROG(ADDRESS LATCH ENABLE/PRoGRAMMING,30脚):地址锁存允许(ynx)信号端。当8051上电正常(zhngchng)工作后,ALE引脚不断向外输出(shch)正脉冲信号,此频率为振荡器频率而sc的1/6。CPU访问片
20、外存储器时,ALE输出信号作为锁存低8位地址的控制信号。该引脚的第二功能PROG是对片内带有4KEPROM的8751编程写入(固化程序)时,作为编程脉冲输入端。PSEN(PROGRAM STORE ENABLE,29脚):程序存储允许输出信号端。在访问片外程序存储器时,此端口定时输出负脉冲,作为片外存储器读的选通信号。EA/Vpp(ENABLE ADDREss/voulAGE PULSE OF PROGRAMMING3 1脚):外部程序存储器地址允许输入端/固化编程电压输入端。当酉引脚连接高电平时,CPU只访问片内EPROM/ROM并执行内部程序存储器中的指令,但在PC(程序计数器)的值超过O
21、FFFFH(对8051为4K)时,将自动转向执行片外程序存储器内的程序。当输入信号EA连接低电平(接地)时,CPU只访问外部EPROM/ROM并执行外部程序存储器中的指令,而不管是否有片内程序存储器。此引脚的第二功能VPP,是对8751片内EPROM固化编程时,作为施加较高编程电压(一般2l伏)输入端。4I/O(输入/输出)端口P0、P1、P2和P3PO口(POOPO7,3932脚):P0口是一个漏极开路261的8位准双向I/O端口。作为漏极开路的输出端口,每位能驱动8个LS型TTL273负载。当P0口作为输入口使用时,应先向P0口锁存器(地址80H)写入全1,此时P0 El的全部引脚悬空,可
22、作为高阻抗输入。作为输入口使用时要先写l,这就是标准双向的含义。在CPU访问(fngwn)片外存储器时,PO口是分时提供(tgng)低8位地址(dzh)和8位数据的复用总线。在此期间,PO口内部上拉电阻有效。P1口(PIOP17,18脚):P1口是一个带内部上拉电阻的8位准双向I/O端口。P1口的每一位能驱动(吸收或输出电流)4个Ls型TTL负载。在P1口作为输入口使用时,应先向P1口锁存器(地址90H)写入全1,此时P1口的引脚输入由内部上拉电阻拉成高电平。P2口(P2OP27,2128脚):P2口是一个带内部上拉电阻的8位准双向I/O端口。Pl口的每一位能驱动(吸收/输出电流)4个Ls型T
23、TL负载。访问片外EPROM/RAM时,它输出高8位地址。P3口有两个功能,除了作为I/O使用外(其内部有上拉电阻),还有一些特殊功能,由特殊寄存器来设置。有内部EPROM的 HYPERLINK /view/1012.htm t _blank 单片机芯片即:编程脉冲:30脚(ALE/PROG)编程电压(25V):31脚(EA/VPP)第二节 51系列单片机的结构和原理一、 51系列单片机的结构 图2所示为MCS-51系列单片机中的8051单片机的基本功能结构方框图。图2 8051单片机功能(gngnng)方框图在一块(y kui)芯片上,集成了一个(y )微型计算机的各个组成部分,每一片单片机
24、包括:1一个8位的微处理器CPU。2片内数据存储器RAM(128B/256B),用以存放可以读/写的数据,如运算3片内程序存储器ROM/EPROM(4KB/8KB),用以存放程序、一些原是数据和表格。4四个8位并行I/O(输入/输出)接口P0P3,每个口可以用作输入,也可以用作输出。5两个或三个定时/计数器,每个定时/计数器都可以设置成计数方式,用以对外部事件进行计数,也可以设置成定时方式,并可以根据计数或定时的结果实现计算机控制。6五个中断源的中断控制系统。7一个双全工UART(通用异步接收发送器)的串行I/O口,可实现单片机与单片机或其它微机之间串行通信。8片内振荡器和时钟产生电路,但石英
25、晶体和微调电容需要外接,最高允许振荡频率为12MHz。以上各部分通过(tnggu)内部数据总线相连接。二、 51单片机内部结构8051单片机内部结构如图3所示 图3 8051单片机内部(nib)结构图完整(wnzhng)的计算机应该由运算器、控制器、存储器(ROM及RAM)和I/O接口组成。一般微处理器(如Z80)只包括运算器和控制器两部分。和一般微处理器相比,8051增加了四个8位I/O接口、一个串行口、4KBROM、128BRAM和很多工作寄存器及特殊功能寄存器(SFR)。其各部分的功能简述如下:1运算器包括一个可进行8位算术运算和逻辑运算的ALU单元,8位的暂存器1、暂存器2、8位的累加
26、器ACC,寄存器B和程序状态字寄存器PSWI231等。ALU:可对4位(半字节)、8位(一字节)和16位(双字节)数据进行操作。如可进行加、减、乘、除、加1、减1、BCD数十进制调整及比较等算术运算和逻辑与、或、异或、取反和循环移位等逻辑操作。ACC:累加器ACC,经常作为一个运算数经暂存器2进入ALU的一个输入端,与另一个进入暂存器1的运算数进行运算,运算结果又送回ACC。除此之外,ACC在8051内部经常作为数据传送的中转站,同一般微处理器一样,它是最繁忙的一个寄存器。PSW:程序(chngx)状态字寄存器,8位,用于标志指令执行后的信息状态(zhungti),相当于一般微处理器的标志寄存
27、器。PSW中各位状态供程序(chngx)查询和判别用。寄存器B:8位寄存器,在乘、除运算时,B寄存器用来存放一个操作数:也用来存放运算后的一部分结果;若不进行乘、除运算时,则可作为通用寄存器使用。另外,8051片内还有一个布尔处理器,它以PSW中的进位标志位C为其累加器,专门用于处理位操作:可以执行置位、位清零、位取反、位等于1转移、位等于0转移、位等于1转移并清零以及进位标志位C与其它可以位寻址的空间之间进行信息传送等位操作,也能使C与其他可寻找位之间进行逻辑与、或操作,结果存放在进位标志位C中。2控制器控制器包括程序计数器PC、指令寄存器IR、指令译码器ID、振荡器及定时电路等。程序计数器
28、PC:它由两个8位的计数器PCH及PCL组成,共16位。PC实际上是程的字节地址计数器,PC中的内容是将要执行的下一条指令的地址。改变PC中的内就可以改变程序执行的流向。PC可对64K的ROM(程序存储器)直接寻址,也可对8051片外RAM(数据存储器)寻址。指令寄存器IR及指令译码器ID:由PC中的内容指定ROM地址,取出来的指令经指令寄存器IR送至指令译码器ID,由ID对指令译码并送PLA产生一定序列的控制信号,以执行指令所规定的操作。振荡器及定时电路:8051单片机片内有振荡电路,只需外接石英晶体和频率微调电容(2个30pF左右),其频率范围为1212MHz,该脉冲信号就作为8051工作
29、的最基本节拍,即时间的最小单位。3存储器8051片内有ROM(程序存储器,只能读)和RAM(数据存储器,可读、可写)两类,它们有各自独立的存储地址空间,与一般微机的存储器配置方式很不相同。(1)程序存储器(ROM)8051的片内程序(chngx)存储器容量为4K字节(z ji),地址从0000H开始,用于存放程序和表格(biog)常数。(2)数据存储器(RAM)805l片内数据存储器为128字节,地址为00H7FH,用于存放运算的中问结果、数据暂存以及数据缓冲等。在这128字节的RAM中,有32个字节单元可指定为工作寄存器,这同一般微处理器不同。8051的片内RAM和工作寄存器排在一个队列里统
30、一编址。由图3可见,8051单片机内部还有SP、DPTR、PCON、IE、IP等特殊功能寄存器,它们也同128字节RAM在一个队列里编址,地址为80HFFH。在这128字节RAM单元中有21个特殊功能寄存器(SFR),这些特殊功能寄存器还包括POP3口锁存器。4I/O接口8051有四个8位并行接口即P0P3,它们都是双向端口,每个端口各有8条I/O线,均可输入/输出。P0P3 13四个锁存器同RAM统一编址,可以把U/O口当作一般特殊功能寄存器来寻址。第三节 51单片机存储器配置51系列单片机与一般微机的存储器配置方式很不相同。一般微机通常只有一个地址空间,ROM和RAM可以随意安排在这一地址
31、范围内不同的空问,即ROM和RAM的地址同在一个队列里分配不同的空间。CPU访问存储器时,一个地址对应唯一的存储器单元,可以是ROM也可以是RAM,并用同类访问指令。此种存储器结构称普林斯顿结构。8051的存储器在物理结构上分程序存储器空间和数据存储器空问,有四个存储空间:片内程序存储器和片外程序存储器空间以及片内数据存储器和片外数据存储器空间,这种程序存储器和数据存储器分开的结构形式,称为哈佛结构。从用户使用的角度,8051存储器地址空间分为三类:1片内、片外空间地址统一编址0000HFFFFH的64K字节的程序存储器地址空问(用16位地址);264K字节(z ji)片外数据存储器地址空间,
32、地址也从0000HFFFFH(用16位地址(dzh)。3256字节数据存储器地址(dzh)空间(用8位地址)。上述三个存储空间地址是重叠的,为了区分三个不同的逻辑空间,805l的指令系统设计了不同的数据传送指令符号;CPU访问片内、片外ROM指令用MOVC,访问片外RAM指令用MOVX,访问片内RAM指令用MOV。4.程序存储器地址空间8051存储器地址空间分程序存储器(64KB ROM)和数据存储器(64KBRAM)。程序存储器用于存放编好的程序和表格常数。程序存储器通过16位程序计数器(PC)寻址,寻址能力为64KB字节。这使得能在64KB地址空问内任意寻址,但没有指令使程序能控制从程序存
33、储器空间转移到数据存储器空间。5.数据存储器地址空间数据存储器RAM用于存放运算的中间结果、数据暂存和缓冲、标志位等。数据存储器空间也分为片内和片外两大部分,片内RAM和片外RAM。8051片外数据存储器空间为64K,从0000HFFFFH:片内存储器空间为256字节,地址从0000H00FFH。(一)片外RAM片外数据存储器与片内数据存储器空间低地址0000HFFFFH是重叠的,805 l有MOV和MOVX两种指令,用以区分片内、片外RAM空间。片内RAM使用MOV指令,片外64K RAM空间专门为MOVX指令所用。(二)片内RAM片内数据存储器最大可寻址256个单元,它们又分为两个部分,低
34、128字二肯(00H7FH)是真正的RAM区,高128字节(80HFFH)为特殊功能寄存器(SFR)区。6低128字节RAM8051的32个工作(gngzu)寄存器与RAM安排(npi)在同一个队列空间里,统一编址并使用同样的寻址方式(直接(zhji)寻址和间接寻址)。00HlFH地址安排为四组工作寄存器区,每组有8个工作寄存器(ROAR7),共占32个单元(见表1)。通过对程序状态字PSW中RS1、RS0的设置,每组寄存器均可选作CPU的当前工作寄存器组。若程序中并不需要四组,那么其余可用作一般RAM单元。CPU复位后,选中第0组工作寄存器。组RS1RS0R0R1R2R3R4R5R6R700
35、000H01H02H03H04H05H06H07H10108090AH0BH0CH0DH0EH0FH21010H11H12H13H14H15H16H17H31118H19H1AH1BH1CH1DH1EH1FH表 1 :作寄存器地址表低128字节RAM单元地址范围也是00H7FH,8051采用不同寻址方式来加以区分,即访问128个位地址,使用位寻址方式,访问低128字节单元用直接寻址和间接寻址,这样就可以区分开00H7FH是位地址还是字节地址。高128字节RAM特殊功能寄存器(SFR)8051片内高128字节RAM中,除程序计数器PC外,有21个专用寄存器(SFR),也称特殊功能寄存器,它们离散
36、地分布在80HFFH的RAM间中。访问特殊功能仅允许使用直接寻址方式(详情见表2)。(1)累加器ACC累加器ACC是8051最常用、最繁忙的8位特殊功能寄存器,许多指令的操作数取自于ACC,并许多运算结果也存放于ACC中。在指令系统中采用A作为累加器ACC的助记符。OV(PSW2)溢出标志位。当进行补码运算时,如有溢出,即当运算结果超出-128+127的范围时,OV位由硬件自动置OV=1;无溢出时,OV=0。PSW1为保留位,8051未用。P(PSW.O)奇偶检验标志位。每条指令执行完后,该位始终跟踪指示累加器A中1的个数。如结果A中有奇数个“1”,则置P=1,否则P=0。常用于校验串行通讯中
37、的数据传送是否出错。(2)寄存器B(FOH)在乘除(chngch)指令中,用到了8位B寄存器。乘法指令的两个(lin )操作数分别取自A和B,乘积(chngj)存于B、A两个8位寄存器中。除法指令中,A中存放被除数,B中存放除数,商存放于A中,B中存放余数。在其它指令中,B可作为一般通用寄存器或一个RAM单元使用。(3)程序状态寄存器PSW(DOH)PSW是一个8位特殊功能寄存器,它的各位包含了程序执行后的状态信息,供程序查询或判别之用。各位的含义及其格式如下: CYACFORS1RSOOV-PCY(PSW7)进位标志位。在执行加法(或减法)运算指令时,如果运算结果最高位(位7)向前有进位(或
38、借位),CY位由硬件自动置“1”:如运算结果最高位(位7)无进位(或借位),则CY清0。CY也是8051在进行位操作(布尔操作)时的位累加器。AC(Psw6)半进位标志位,也称辅助进位标志。当执行加法(或减法)操作时,其运算结果(和或差)产生由低半个字节(位3)向高半个字节有半进位(或借位)时,AC位将被硬件自动置“1”,否则AC被自动清“0”。F0(PSW5)用户标志位。用户可以根据自己的需要对FO位赋予定的含义由用户执行置位、复位操作,作为软件标志。RS0和RS 1(PSW4和PSW5)工作寄存器组选择控制位。这两位的值决定选择哪一组工作寄存器为当前工作寄存器组。由用户用软件改变RS1和R
39、S 0值的组合,以切换当前选用的工作寄存器组,其组合关系详见表2。8051上电复位后,(RS1)=(RS0)=O,CPU自然选择第0作为当前工作寄存器组。根据需要,可利用传送指令对PSW整字节操作,或使用位操作指令改变RS1和RS0的状态,以切换当前工作寄存器组。RS1RS0寄存器组片内RAM地址00第0组00H07H01第1组08H0FH10第2组10H17H11第3组18H1FH表 3 RS0、RS1的组合关系(4)栈指针SP(81H)堆栈(duzhn)指针SP为8位特殊(tsh)功能寄存器,SP的内容即堆栈(duzhn)指针,可指向8051片内00H7FH的RAM的任何单元。系统复位后,
40、SP初始化为07H,即指向07H的RAM单元。8051的堆栈指针SP是一个双向计数器。在压栈时SP内容自动增值,出栈时自动减值,存取信息必需按着“先进后出”或“后进先出”的原则。(5)数据指针DPTR(83H,82H)DPTR是一个16位的特殊功能寄存器,其高位字节寄存器用DPH表示(地址83H),低位字节寄存器用DPL表示(82H)。DPRT既可以作为一个16位寄存器来处理,也可以作为二个独立的8位寄存器DPH和DPL使用。DPTR主要用以存放16位地址,以便对64K片外RAM作间接寻址。(6)I/O端口P0P3(80H,90H,AOH,BOH)P0P3为四个8位特殊功能寄存器,分别是四个并
41、行I/O端的锁存器。它们都有字节地址,每一个口锁存器还有位地址,所以每一条I/O线独立地用作输入或输出时,数据可以锁存;作输入时,数据可以缓冲。当I/O端口某一位用于输入信号时,对应的锁存器位须先置“1”。符号名称地址ACC累加器E0HBB寄存器F0HPSW程序状态字D0HSP栈指针81HDPH数据指针高位83HDPL数据指针地位82HP0P0锁存寄存器80HP1P1锁存寄存器90HP2P2锁存寄存器A0HP3P3锁存寄存器B0HIP中断优先级控制寄存器B8HIE中断允许控制寄存器A8HTMOD定时/计数器工作方式、状态寄存器89HTCON定时/计数器控制寄存器88HTH0定时/计数器0(高字
42、节)8CHTL0定时/计数器0(低字节)8AHTH1定时/计数器1(高字节)8DHTL1定时/计数器1(低字节)8BHSCON串行口控制寄存器98HSBUF串行数据缓冲器99HPCON电源控制寄存器97H表 2 51系列单片机的特殊(tsh)功能寄存器表第四节 8051单片机的FPGA设计(shj)与实现本设计采用现在(xinzi)流行的模块化设计方式,将8051单片机按照其内部的结构设计成为3个大的模块,即运算器、存储器和控制器模块。一、运算器模块的设计运算器模块包括一个可进行8位算术运算和逻辑运算的ALU单元,8位的暂存器1、暂存器2、8位的累加器ACC,寄存器B和程序状态寄存器PSW。(
43、1)ALU(算术逻辑运算单元)模块的信号该模块的信号如图4所示,负责进行算术逻辑运算,它能完成加、减、乘、除算术运算以及与、或、非等逻辑运算。其中:rst为复位标志,高有效。op-code是4位代码,用来定义ALU所要进行的操作,它的内容已经在8051 1沁文件中定义完毕。例如,要进行加法操作,则op code为0001。src-1为送入ALU的第一源操作数,8位输入,当做加法运算时它是被加数,做减法运算时它是被减数,做除法运算时它是被除数。src_2为送入的第二源操作数,8位输入,当做减法运算时,它是减数;做除法运算时,它是除数。src_3为送入ALU的第三源操作数,8位输入。src_cy为
44、第一源操作数的第7位。src_ac为第一源操作数的第4位。des_1为第一目标操作数,8位输出,用来存放ALU计算后的数据。des_2为第二目标操作数,8位输出,用来存放ALU计算后的剩余数据,如除法没有整除的小数等。des_cy为ALU运算完数据的第7位。des_ac为ALU运算完数据的第4位。des_ov位溢出标志位。图4 ALU模块(m kui)信号图二、ALU(算术(sunsh)逻辑运算单元)模块(m kui)的层次化设计(详见图5)图5 ALU(算术逻辑运算单元)模块的层次化设计三、ALU模块的VHDL语言描述ALU模块中实现乘法操作的VHDL语言描述Procedure DO_MUL
45、 (a: in unsigned( 7 down to 0 ); b: in unsigned( 7 down to 0 ); r: in unsigned( 15 down to 0 ); ov: out std_logic) is variable v1:unsigned(15 down to 0);begin v1:=a*b; r:=v1; if(v1(15 down to 8)/=C0_8)then ov:=1; else ov:=0; end if:end DO_MUL;其中(qzhng),a为被乘数,8位输入(shr)信号,b为乘数(chn sh),8位输人信号,r为a、b相乘后的
46、结果,16位输出信号,OV为溢出标志,当计算所得的结果的高8位的值不等于0时,ov=1,表示计算结果溢出。ALU模块中实现BCD码调整操作的VHDL语言描述procedure DO_DA(a: in unsigned(7 down to 0) ; c1:In std_logic; c2:In std_logic; r: out unsigned(7 down to 0);cy: out std_logic) isvariable v:tmsigIl6d(8 down to U);begin v:=”0”&a; fi(c2=1)or(v(3 down to 0)C9_4)thenv:=v+“O0
47、0000110”;end if;v(8):=v(8)or c1;if(v(8)=1)thenv:=v+“O01100000”;end if;r: v(7 down to0);cy:=v(8);end DO_DA;其中,当输入的信号低4位大于9(1001B)时,进行加6(110B)操作;当输入信号最高位为1时,进行加96(00110000B)操作。ALU模块的主程序的部分如下:begin process(rst,op_code,scr_1, scr_2, scr_3 scr_cy, scr_ac) variable v16: unsigned(15 down to 0); variable v8
48、: unsigned(7 down to 0); variable v_cy, v_ac, v_ov: std_logic;begin if(rst=1)thendes_1=CD_8; des_2=CD_8; des_cy=-; des_ac=-; des_ov DO_ADD(src_T, src_2, src_cy,v8,v_cy,v_ac,v_ov); des_1=v8;des_2=CD_8;des_cy=v_cy;des_ac=v_ac;des_ovDO_SUB(src_T, src_2, src_cy,v8,v_cy,v_ac,v_ov); des_1=v8;des_2=CD_8;de
49、s_cy=v_cy;des_ac=v_ac;des_ov=v_ov;当RST=1时,ALU复位(f wi);,当RST=0时,ALU根据(gnj)OPCODE的值进行相应(xingyng)的操作。四、ALU模块功能仿真运算代码代码内容对应操作ALU_OPC_NONE0000ALU_OPC_ADD0001加法ALU_OPC_SUB0010减法ALU_OPC_MUL0011乘法ALU_OPC_DIV0100除法ALU_OPC_DA0101BCD码调整表 4 运算代码所对应的操作表4表示的是各个预算代码的对应的操作。本次设计我主要解决算术运算,不尝试逻辑运算。假设scr_1=10(00001010B
50、),scr_2=5(00000101B),由仿真图形可以看出,当op code=0001时,即做加法运算,得des 1=15(00001111B):当op code=0010时,即做减法运算,得des_1=5(00000101B);当op-code=0011时,即做乘法运算,得des_l=50(00110010B);当op_code=0100时,即做除法运算,得des_l=2(00000010B)。图 6 加法及减法的仿真波形图 7乘法及除法(chf)的仿真波形图8减法及除法(chf)运算的仿真波形五、存储器模块(m kui)设计本设计共为8051单片机设计了3种存储器,片内ROM、RAM和片
51、外XRM。本设计中的片内ROM用来存储已经编写好的程序控制代码,只能读出数据不能写入数据。片内ROM片内ROM的信号一片内ROM的信号如图9所示。其中:RST:复位标志,低有效,输入信号;CLK:时钟信号,输入信号;ADDRoADDRII:地址总线,11位,输入信号;RD:读控制位,高有效,输入信号;Do-D7:数据总线,8位,输入输出信号。图 9 片内ROM的信号图片内ROM主要VHDL语言描述:beginif(rst=1)thendata=CD_8;elsif(clkevent and clk=1、thenif(rd=1)thendata=PROGRAM(conv_integer(addr);elsedata2
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度文化展览馆租赁合同·含策展服务及观众导览3篇
- 二零二五年度房屋租赁合同:安全责任与租户培训2篇
- 2025年度物联网通信平台建设与运营合同3篇
- 2025年度绿色节能施工合同终止及效益协议3篇
- 二零二五年度智慧城市建设服务合同标的规划与实施3篇
- 二零二五年度文化产业发展股权让渡与债务抵消合同3篇
- 二零二五年度智慧城市基础设施建设项目合同6篇
- 二零二五年度建筑设计创意版权转让协议2篇
- 海南职业技术学院《钢结构设计课程设计》2023-2024学年第一学期期末试卷
- 2025版黄金抵押担保供应链融资合同3篇
- 2024年财政部会计法律法规答题活动题目及答案一
- 2025年八省联考新高考语文试题解读及备考启示
- 2025年江西江铜集团招聘笔试参考题库含答案解析
- 教育技术研究员合同模板
- 【MOOC期末】《电子技术实习SPOC》(北京科技大学)期末慕课答案
- 联席会议制度及职责(3篇)
- 新媒体技术基础知识单选题100道及答案解析
- 2025蛇年带横批春联对联200副带横批
- 羊肉购销合同书样本
- 实验仪器维修保养服务采购招标文件
- 福建省福州市2023-2024学年高一1月期末生物试题(解析版)
评论
0/150
提交评论