[硕士论文精品]基于fpga的cpu核及其虚拟平台的设计与实现_第1页
[硕士论文精品]基于fpga的cpu核及其虚拟平台的设计与实现_第2页
[硕士论文精品]基于fpga的cpu核及其虚拟平台的设计与实现_第3页
[硕士论文精品]基于fpga的cpu核及其虚拟平台的设计与实现_第4页
[硕士论文精品]基于fpga的cpu核及其虚拟平台的设计与实现_第5页
已阅读5页,还剩72页未读 继续免费阅读

[硕士论文精品]基于fpga的cpu核及其虚拟平台的设计与实现.pdf 免费下载

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

文档简介

摘要本课题受东南大学雨顺电子技术有限公司委托研发。科学技术的高度发展,导致了计算机的诞生及其迅速发展。在现代社会里,计算机的应用范围几乎涉及到人类社会的所有领域,使得对计算机的研制与学习方兴未艾,不断深入。基于此,本课题在现有计算机内部结构基础上,通过对系统三大模块的软硬件设计,研制出了一台计算机学习实验平台。该平台为用户提供一种更直观的方法学习计算机内部结构,并且用户可以根据需求设计自己的计算机模型,具有很好的实用性。论文详细地给出了一种采用FPGA技术的计算机模型机的设计方案以及仿真和实现过程。系统设计主要包含三大模块1、计算机中央处理器模块采用了ALTERA公司的FPGA芯片及其MAXPLUSII集成软件设计了具有完整功能的CPU核;2、数据存储与传输模块一方面按照设计逻辑与CPU核建立数据通路,另一方面封装RAM和ROI模块,与上位机PC建立数据通路3、虚拟平台模块采用VB技术按照CPTJ结构设计了一个模型机操作平台,实现软件数据库数据与硬件FPGA芯片实时的数据扫描、传输和显示。系统中所有的电路设计均下载到FPGA芯片得到验证,与计算机的实时显示软件连接并调试成功。关键词计算机体系结构,FPGA,CPU,VHDL,数据通信ABSTRACT11LERESEARCHTOPICISCONSIGNEDTONSBYYUSHUNELECTRONICSTECHNOLOGYLIMITEDCOMPANYFROMSOUTHEASTUMVERSITY11LEHIGHJYDEVELOPMEMOFSCIENCEANDTECHNOLOGYBRINGSABOUTTHENAISSANCEANDFASTDEVELOPMENTOFCOMPUTERINMODEMSOCIETY,THEAPPLICATIONAREASOFTHECOMPUTERALMOSTCOMEDOWNTOALLFIELDSOFHUMANSOCIETY,WHICHMAKESTHERESEARCHANDDEVELOPMENTOFTHECOMPUTERNEVERBCINTERRUPTEDFORTHISREASON,ONTHEBASISOFEXISTINGINNERSTRUCTUREOFTHECOMPUTER,孤EXPERIMENTPLATFORMFORCOMPUTERLEARNINGISDEVELOPEDVIATHESOFTWAREANDHARDWAREDESIGNOFTHREEBIGMODULESOFTHESYSTEMNLISPLATFORMOFFERAINTUITIONISTICWAYTOLEARNTHEINNERCONSTRUCTIONOFTHECOMPUTERFORUSERSANDTHEUSETSDESIGNTHEIROWNCOMPUTERMODELINTERMSOFTHEUSERSDEMANDSITHASEXCELLENTPRACTICABILITY11LISDISSERTATIONGIVESADESIGNSCHEMEANDSIMULATIONASWELL嬲REALIZATIONCOURSEOFCOMPUTERMODULEINDETAILBYADOPTINGFPGATECHNIQUETHESYSTEMDESIGNINTHEDISSERTATIONINCLUDESTHREEBIGMODULESASFOLLOWING1THECENTREPROCESSINGMODULEOFCOMPUTERITADOPTSTHEFPGACHIPOFALTERACOMPANYANDITSINTEGRATESOITWAREMAXPLUSIITODESIGNTHECPUNUCLEUSWITHFULLFUNCTION;211把MEMORYANDDATATRANSMISSIONMODULEONTHEONEHANDITSETSUPTHEGATEWAYWITHTHECPUNUCLEUSACCORDINGTODESIGNEDLOGIC,ANDONTHEOTHERHAND,ITENCAPSULATESRAMANDROMMODULESANDSETSUPTHEGATEWAYWITLLTHEEPIGYNONSPC3NLEVIRTUALPLATFORMMODULEITDESIGNSAMODELMACHINEPLATFORMBYUSINGVBSOFTWARETECHNIQUEACCORDINGTOTHECPUSTRUCTUREANDREALIZESTHESOTH,AREDATABASESREALTIMEDATASCANTRANSMISSIONANDDISPLAY、VITLLHARDWAREPFGACHIPALLTHECIRCUITDESIGNSAREDOWNLOADEDTOTHEFPGACHIPTOBETESTIFIEDANDTHEYSUCCESSFULLYCONNECTTHEDISPLAYSOFTWAREOFTHECOMPUTER,ANDGOODTESTRESULTSAREOBTAINEDKEYWORDCOMPUTERSTRUCTURE,FPGA,CPU,VHDL,DATACOMMUNICATION学位论文独创性声明本人所呈交的学位论文是我个人在导师指导下进行的研究工作及取得的自究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含喜他人已经发表或撰写过的研究成果。与我一同工作的同事对本研究所做的任帝贡献均己在论文中作了明确的说明并表示了谢意。如不实,本人负全部责任。论文作者签名1年2旯冶B学位论文使用授权说明河海大学、中国科学技术信息研究所、国家图书馆、中国学术期刊光盔版电子杂志社有权保留本人所送交学位论文的复印件或电子文档,可以采斥影印、缩印或其他复制手段保存论文。本人电子文档的内容和纸质论文的内名相一致。除在保密期内的保密论文外,允许论文被查阅和借阅。论文全部或词分内容的公布包括刊登授权河海大学研究生院办理。论文作者签名銎垒些1年。旯魑日IIL海人学下学颂L论文第一章绪论11引言第一章绪论科学技术的高度发展,导致了计算机的诞生及其迅速发展,在现代社会罩,计算机的应用范围几乎涉及到人类社会的所有领域从国民经济各部门到个人家庭生活,从军事领域到民用部门,从科学教育到文化艺术,从生产领域到消费娱乐,无一不是计算机应用的天下。计算机的发明和发展为人类生活带来了无可比拟的应用价值,因此,计算机被看作20世纪人类最伟大的科学技术成就之一,也是科学技术水平发展的主要标志【L】。也因为如此,人类对计算机的研究、学习与应用从来没有间断过,从1946年第一台电子数字计算机ENIAC的诞生到第四代大规模集成电路计算机的应用,计算机技术发生了天翻地覆的变化,就是现在,如何研制出高性能、高应用的计算机仍然是21世纪计算机技术所面临的新的挑战。可编程逻辑器件PLDPROGRAMMABLELOGICDEVICE是一种可由用户对其进行编程的大规模通用集成电路,现场可编程门阵列FPGAFIELDPROGRAMMABLEGATEARRAY是其发展的阶段性技术。它给数字系统的设计带来了革命性的变化,可以毫不夸张的讲,FPGA能完成任何数字器件的功能。使用FPGA进行电子设计,可以大大缩短设计时间,减少PCB面积,提高系统的可靠性,还可以增加设计的灵活性和可维护性。FPGA的这些优点使得PLD技术在90年代以后得到飞速的发展,成为电子设计领域中最具活力和发展前途的一项技术【21。由于可编程技术的快速发展,传统的电子电路硬件设计已经转换了设计思路,那就是借用可编程器件强大的可在线编程功能改用设计软件的方法来设计硬件。特别是计算机等其它的一些大规模电路与芯片设计时,采用这种先软件设计与测试后硬件制作的设计流程,极大地提高了开发效率。设计人员只需在自己的实验室里就可以更改大规模数字逻辑来完成电路或芯片的最终功能设计,即节约时问,又可节省成本。本课题就是采用FPGA技术,利用其可在线编程功能,研制出一台计算机学习平台,一方面帮助计算机学习者了解计算机的内部特性和工作流程;另一方面辅助学习者进行其他的电子系统设计。如何将计算机设计技术、电子电路设计技术和EDA技术有机的结合起是本课题所要解决的一个重点和难点。12课题应用背景课题根据企业的任务要求,开发一个能集计算机学习和电子设计于一体的一个EDA实验系统,系统应包含计算机的全部功能部件并且可以与PC进行通信;硬河海人学T学硕I。论文基JFPGA的CPU核度JE虚拟平台的设计J实现件与软件的协同工作应具有实时性;模型机的工作过程应符合实际的计算机运行标准;系统兼备电子设计功能;软件能实时模拟硬件的运行过程。经过大量的资料调查,目前的市场上已有类似的产品出现,但并不完全相同,其中很有影响力的同类产品是清华大学王诚教授研制的TEC一2000教学计算机系统,但是由于该产品研发较早,基本上是用纯硬件设计完成的,仅用了少量的小规模现场可编程逻辑器件一通用阵列逻辑GALGENERALARRAYLOGIC,TEC2000用户在线修改不够灵活,升级也存在很大的局限性。另外也有许多电子公司专门面向教学这一市场开发出许多EDA实验系统,但是既可以完成计算机设计和原理显示,又可以进行一般的数字电路设计的产品却很少,因此,该产品就是在看中目前EDA实验系统的开发盲点推出新的实验产品。该产品的优点主要有1一个真J下的软开放性架构,两种功能结合采用ALTERA公司的第三代集成电路开发软件MAXLPLUSII,用户可以根据自己的设计调用成百上千的芯片来真正搭建自己的计算机模型或其他数字电路。对于电路中的每一个模块,可以采用传统的纯硬件芯片设计,也可以采用最底层的逻辑门设计,还可以采用ABEL、VHDL、VERILOG等硬件描述语言编程实现。多种选择可以充分发挥用户的创造力和动手能力,不像以往全丌放实验仪用户自己连线,费时费力还束缚了用户的创造性。系统采用的FPGA芯片资源丰富,具有10万门的资源,可设计复杂电路,包括16位的CPU核。在这种软环境中设计硬件,不仅可以验证并纠正逻辑功能上的错误,还可以进行时序上的仿真,从而消除硬件和逻辑上正确但存在逻辑冒险的问题。2软、硬件结合国内外众多的EDA实验仪几乎都是单硬件工作方式,接线在实验板上,结果只能看板上的LED或数码管,外部设备选择也只能跳线或插片。本系统采用软硬结合的方式,实验仪的结果可以在实验板上观察,更多的信息是通过PC软件选择不同的数据线或寄存器状态观察的,且在软件中提供汇编与反汇编功能,用户进行实验时不必查表写机器码,只要按照系统的机器指令写程序,PC软件会自动的进行反汇编编译。3在线修改和升级灵活方便如果用户对自己的设计不满意,可以反复的修改而不耗费材料与资金,只要把设计的电路重新编译与下载,直到满意为止。特别是对CPU核设计这一块,指令系统可能会为了满足不同的目标要求作不同的定义,这样用户在自己设计的硬件电路不变的情况下,只要重写微指令的微命令码便可。最重要的是当对系统升级时,也不必修改实验仪的硬件,只要修改对应用户的CPU模块和对应通信模块所观察的数据端口便可,大大节约了成本。I11海人学丁学顾F论文第一章绪论13课题的主要工作在充分调研并翻阅大量资料的基础上,首先对课题进行总体构思与模块划分,然后采用分模块设计的方法,完成课题任务。131系统的总体结构根据课题功能要求,建立系统工作流程模块,如图11所示。并口下载电缆墓墨;秘一删删黼_越J实验仪下载接口J、PC与模型机通讯接口模块图11系统工作流程图系统工作时,首先应打开PC,安装所需的软件,在软件环境下连接实验仪,把用户自己设计的电路下载到实验仪,并且通过实验仪上的显示设备和PC上的监控软件查看设计结果。按照系统的工作流程要求,该系统设计可划分为软件设计和硬件设计两个部分。其中软件设计包括软环境GIAXPLUSII和对硬件运行时的PC显示软件VB。硬件设计包括CPU模块和通信模块【孤。如图12所示图12系统整体设计结构图凰陀圈J海大学丁学硕I论文堆十FPGA的CPU核及J虚拟R台的设计J实现132系统总体设计方法和技术路线该系统总体设计方法和技术路线如下1查阅资料,确定CPU设计的方法及其内部结构,如数据运算、数据寄存,数据传输、总线结构以及控制方式、指令系统和寻址等。2对CPU进行传统的功能划分运算器与控制器。分别对运算器和控制器进行FPGA硬件设计,利用MAXPLUSII软件进行仿真与验证,这是系统设计的关键。对于指令要确定指令功能和指令编码,对于微指令要设计入口程序微址和微指令的流程与编码,这也是CPU核设计的一个重点内容。3对CPU核进行各数据出入的锁定,与存储与数据传输模块建立数据通路。将CPU中的所有需要查看的数据组全部引接到存储与数据传输模块,并且将RAM和ROM模块也封装在此块里,以便于在PC中的修改。4软件监控界面的设计,将CPU核的主体结构图、数据流向以及数据组的数据状态寄存全部显示在PC的界面窗口中,实现软件数据库数据与硬件FPGA芯片实时的数据扫描、传输和显示。5硬件部分实验板的布局布线,包括各种电路设计时所涉及到的开关,按键、显示灯、显示电路以及各种端口如输入输出端口,AD与DA转换端口,实验板自检测端口等。4ILJI海人学T学硕I。论文第一章CPU整体设计第二章CPU整体设计描述21CPU设计的一般步骤CPU是计算机的核心部件,是机器指令的解释和执徭机构,进行CPU设计时,一般采取如下步骤【411确定指令系统指令系统是计算机所能执行的全部指令集合,是计算机性能的主要表征之一,它如同组合电路中的真值表、时序电路中的状态图一样,为CPU硬件设计提供最完整最确切的设计依据。2确定CPU内部总体结构根据指令系统要求,初步确定系统中应该提供那些功能部件以及它们之问的连接方式。3确定指令执行过程以指令系统为背景,掌握机器指令的执行过程并确定各寄存器功能。4确定控制器的实现方式对控制器的设计时要确定采用纯硬件设计还是采用微程序控制器编制微代码。22指令系统221指令格式的确定在计算机中,一条指令通常由两部分组成操作码和操作数,其格式为广厂I操作码I操作数III_J操作码用于指明本条指令的操作功能。操作数用于直接给出操作数或者操作数的地址,包括参加运算的一个或多个操作数所在存储器、寄存器的地址或程序的转移地址等。1操作码的组织与编码操作码的组织与编码方案有三种【5】定长操作码的组织方案,定长操作码是指操作码的位数固定,一般用于字长与指令长度较长的计算机,例如16位机或32位机,甚至更长的计算机。取字河海人学T学硕I论文基十FPGA的CPU核及JE虚拟F台的敬汁实现长的最高8位作为操作码,这样,它就有256个编码状态,最多可表示256条指令。这种组织方案的优点是利于简化计算机硬件设计,提高指令译码和识辨的速度。变长操作码的组织方案,变长操作码是指操作码的位数不固定,一般用于字长与指令长度较短的计算机,例如8位机,如果为操作码划分出固定的若干位后,留给表示操作数的位数就会严重不足。为此,在一些指令中,一些位用作操作码,而在另外一些指令中,这些位却用作操作数。编码时,尽量为那些最常用、操作数地址的位数要求又较多的指令适当少分配几位操作码能表示的指令条数就少;而对那些操作数地址的位数要求较少的指令适当多分配几位操作码能表示的指令条数就多,力争在比较短的一个指令字中,既能表示出比较多的指令条数,又能尽量满足给出相应的操作数地址的要求。这种组织方案的特点是用于字长较短的计算机,每条指令的操作码安排在指令字的最高部分,长度不固定,不会与操作数的字段相互交叉。操作码与操作数有交叉的组织方案,这种方案中,操作码所用到的一些二进制位不再集中在指令字的最高部分,而是与表示操作数的一些字段有所交叉,操作码的长度依然不固定,而且还被区分为主操作码和辅助操作码两大部分,这种方案比较复杂,不很常用。由以上对操作码的编码方案分析,一方面所设计的系统为16位机,字长较长,另一方面为了简化计算机硬件,因此采用第一种方案定长操作码的组织方案。2操作数的设计与安排不同的指令使用不同数目、不同来源和不同用法的操作数,必须进行统一并安排在指令字的适当位置。操作数按个数区分有4种情况无操作数指令。有的指令不涉及操作数,仅有操作码部分。如停机指令、空操作指令等。单操作数指令。有的指令只用一个操作数,须在指令中指明其地址。如寄存器的内容加1或减L。双操作数指令。对于常用的算数和逻辑运算指令,要求使用两个操作数,分别给出源操作数和目的操作数的地址,其中目的操作数还用于保存本次的运算结果。多操作数指令。具有三个以上操作数的指令,其中两个分别给出源操作数和目的操作数的地址,第三个操作数用于指出保存本次运算结果的去处。在有些性能更高的计算机中,还有使用更多操作数的指令,用于完成对一批数据的处理过程,如字符串复制指令和矩阵运算指令等。6町海人学T学硕I论文第一章CPU整体砹计上述4种情况中的静3种,由于其指令字长可以相对较短,执行速度较高,计算机硬件结构可以相对简单等优点,在各种不同的计算机中被广泛应用;相对而言,多操作数指令用在字长较长的大中型计算机中。从简化硬件与系统本身的功能考虑,系统安排IJ3种情况的指令系统。3指令的功能分类常用的指令分类是按照功能进行的,大致有以下几种算术与逻辑运算指令。是每台计算机都必须具有的指令,用于运算器部件完成对一或两个数据的算数运算和逻辑运算。移位指令。包括算术移位、逻辑移位和循环移位3种,用于对指定的操作数左移或右移。从实用的角度,数据传送指令。用于实现寄存器之间、寄存器与内存储器存储单元之间、寄存器与外围设备、内存储器不同存储单元之间的数据传送。从内存储器和外围设备接口操作性质的不同,又区分为读和写两种操作,指明数据传送的方向。转移指令、子程序调用于返回指令。用于解决变动程序中指令执行次序的需求。转移指令分为条件转移和五条件转移两种,在改变执行次序之后不设计再次转回的问题,而子程序调用于返回指令在子程序运行结束后转移到子程序调用指令之后的那条指令后继续执行。其他指令。如中断指令,堆栈指令、端口出入指令等等。注意不同的人对指令的功能划分的标准并不完全相同,其分类结果也有所差异。这里从系统的需要出发,基本上就设置了以上功能的指令。222指令寻址方式的确定寻址方式解决的是如何在指令中表示一个操作数地址的问题。指令的操作数地址通常被称为形式地址,用这些形式地址并结合某些规则,可以计算出操作数在存储器中存储单元的地址,这种地址被称之为物理地址或有效地址。计算机中的寻址方式有以下几种1立即数寻址。参与运算操作数包含在指令字节中。操作数以指令字节的形式存放于内存中。如MOVA,8122寄存器寻址。以寄存器的内容作为操作数,如MOVA,RO,这种寻址包括累加器寻址,又如INA。3寄存器间接寻址。以寄存器的内容作为操作数所在的存储器地址。如MOVA,RO,把RO的内容所指的内存地址作为操作数。4直接寻址。指令中含有操作数的直接地址,与该地址对应存储器单元的内容为操作数。如LDA34。将地址为34H的内存单元值送到累加器中。7LL海人学T学硕I论文草十FPGA的CPU核及J虚拟R台的改才J实现这四种寻址方式是一般计算机系统常用的寻址方式,当然不同的机型可能还用到其它的寻址方式,如51系统用到基寄存器加变址寄存器间接寻址。本系统由于采用16位字长,以上四种寻址方式简单够用。223指令系统的确定合理地确定一台计算机的指令系统关系到计算机设计与实现的复杂程度和生产成本以及使用的难易程度和运行效率,因此,评价一台计算机的指令系统的优劣应综合考虑,主要有以下几方面1611尽可能小的指令集。指令数目要适当减少,较短的指令格式,简化的寻址方式,单字指令为主,每条指令的功能要尽可能地简单,给出的指令集合,只要能够支撑所设计的计算机按目标运行便可。2较好的完备性和典型性。指令集应有一定的完备性和较好的典型性,常用指令应齐全,指令格式应规范,分类应合理。指令执行步骤容易理解,符合人们通常的编程使用习惯。3更高的可扩充性。为添加各种新的指令留下较为充足的余地,包括每类指令都保有几条可扩充。事实上,同时满足上述原则是困难的,但是参考这些原则可以设计出更加合理的指令系统。设计指令系统的核心问题是选定指令的格式和功能。指令的格式与计算机的字长、期望的存储器容量和读写方式、计算机硬件结构的复杂程度和追求的运算性能有关。根据指令系统的综合指标。对系统作出如下的指令划分1从指令操作码的组织与编码分析,操作码选定长的8位。这样,指令首先比较规整其次利于简化计算机硬件设计,提高指令译码和识辨的速度2从操作数的个数分析,只设计无操作数、单操作数和双操作数指令。这3种指令字长可以相对较短,执行速度较高,计算机硬件结构可以相对简单。3从指令寻址方式分析,只考虑上述的4种寻址方式。越简单的寻址方式越有可能得到更高的运行效率,不一定把寻址方式设计的很复杂。4从指令功能分析,包括算术、逻辑运算指令,移位指令,数据传送指令,转移指令,子程序调用指令,输出、输入端口指令,中断指令和堆栈指令。5从指令执行步骤分析,按照取指之后一步完成和多步完成划分A、B两组指令。A组指令取指之后一步完成,B组指令取指之后两步及以上完成。将所有的系统指令编码并汇总,指令类型参考MIPS的指令集设计原则【7】【引。如表21所示。河海人学下学顾I论史第一二章CPU整体设计表21指令汇总表操作数指令个数功能说明ADDA,RI2寄存器的值加入累加器中SUBA,RI2从累加器中的值减去寄存器的值ADDCA。RI2寄存器的值加入累加器中,带进位SUBBA,RI2从累加器中的值减去寄存器的值,带借位ANDA,RI2累加器的值“与”寄存器的值ORA,RI2累加器的值“或”寄存器的值XORA,RI2累加器的值“异或”寄存器的值ANOTA1累加器的值取反组SLAL累加器的值左移指RLAL累加器的值循环左移令RLCAL累加器的值循环左移,带进位SRAL累加器的值右移RRA1累加器的值循环右移RRCA1累加器的值循环右移,带进位INAL从输入端口读入数据送到累加器OUTA1将累加器的值送到输出端口MOVA,DATE2将立即数送到累加器中MOVA,RI2将寄存器的值送到累加器MOVRI,DATE2将立即数送到寄存器中MOVRI,A2将累加器的值送到寄存器MOVARI2将寄存器所指RAM单元的值送到累加器STAA,DATELCI,跳转到ADR地址LDA,DATE1CO,跳转到ADR地址PUSHA1ZI,跳转到ADR地址POPA1ZO,跳转到ADR地址BJCADR2无条件跳转到ADR地址组JNCADRL将累加器的值送到DATE所指的RAM单元指JZADR1将DATE所指的RAM单元的值送到累加器令JNZADR1将累加器的值压栈JUMPADR1从栈中弹出累加器的值ITRO外部中断IRET0中断返回CALLADRL调用起始地址为ADR的子程序RETO子程序返回9河海人学T学碳L论文幕于FPGA的CPU核及其虚拟F台的设计0实现23CPU总体结构231CPU的功能CPUCENTERPRESSERUNIT是中央处理器的简称,是机器指令的解释和执行机构,是计算机的核心部件。一般来说,它具有如下四方面的基本功能1指令控制程序的顺序控制,称为指令控制。由于程序是一个指令序列,这些指令的顺序不能任意颠倒,必须严格按程序规定的顺序进行,因此,保证机器按顺序执行程序是CPU的首要任务。2操作控制一条指令的功能往往是由若干个操作信号的组合来实现的,因此,CPU管理并产生由内存取出的每条指令的操作信号,把各种操作信号送往相应的部件,从而控制这些部件按指令的要求进行动作。3时自J控制对各种操作实施时间上的定时,称为时间控制。因为在CPU内部,各种指令的操作信号均受到时间的严格定时。另一方面,一条指令的整个执行过程也受到时间的严格定时。只有这样,计算机才可以有条不紊地自动工作。4数据加工所谓数据加工,就是对数据进行算术运算和逻辑运算处理。完成数据的加工处理,是CPU的首要任务。因为,原始信息只有经过加工处理后才能对人们有用。232CPU的基本组成传统的CPU由运算器与控制器两大部分组成。但是随着高密度集成电路技术的发展,早期放在CPU外部的一些逻辑功能部件,如浮点运算器、高速缓冲存储器CACHE等纷纷移入CPU内部,因而使CPU内部越来越复杂,从而使CPU的基本部分变成运算器、控制器和CACHE三大部分。这里介于课题的性质与要求,浮点运算和CACHE不考虑在内,仍然按两大部分来分。1控制器运算器是CPU发布命令的“决策机构”,完成协调和指挥整个计算机系统的操作,主要由程序计数器、指令寄存器、地址寄存器和微程序控制器组成。2运算器相对于控制器而言,运算器是接受控制器命令的“执行机构”,根据控制器的控制信号而进行操作。主要由算术逻辑单元ALUARITHMETICLOGICUNIT、10洲海大学T学硕I论文第一章CPU整体改计累加器、数据寄存器组和状态条件寄存器组成。24运算器241运算器的基本功能运算器是计算机的数据加工部件。其功能主要有以下几种1完成对数值数据的算术运算和逻辑运算。由其内部的ALU承担,它在给出运算结果的同时还给出结果的某些特征,如溢出否,有无进位,结果是否为零、为负等等。2暂存参加运算的数据和中间结果。由其内部的一组寄存器承担。3作为处理机内部数据传输的通路。运算器要与计算机其他几个功能部件协同运行,须有接收外部数据输入和内部运算结果输出的逻辑电路。242运算器的基本组成与结构了解了运算器的功能之后,对其组成模块进行初步的划分1ALU实现基本的算术、逻辑运算。2寄存器组提供操作数与暂存结果的。3标志寄存器存储有关的判别逻辑与控制信号。将这些功能模块连接成一个整体,便构成一个运算器。对于这样的一个运算器,最主要的问题就是如何向ALU提供操作数。这里有两种方案011ALU输入端多路选择器如图21所示,各寄存器可以独立、多路地将数据送至ALU的多路选择器,使ALU有选择地同时获得两路输入数据。运算器的内部总线是一组单向传输的数据线,他将运算结果送往各寄存器,由寄存器的同步打入脉冲将内部总线上的数据送入寄存器R。如果同时发几个打入脉冲,则可将总线上的同一数据同时送入几个相关的寄存器。河海人学T学硕I论史皋十FPGA的CPU核及JE虚拟、R弁的设计J实现R0LK选择器RN选择器、Z气,JI移位器RO一K一二主2二一二一U卜L。“。1。1。一。1。“。“”。1H图21ALU输入端多路选择器2ALU输入端一级锁存器图22ALU输入端一级锁存器如图22所示,运算器的内部总线是一组双向传输的数据线,为了进行双操作数之间的运算操作,ALU输入端前设置了一级锁存器,可暂存操作数。如,可通过内部总线先将R。中的数据送入锁存器1,再通过内部总线将RJ中的数据送入锁存器2,然后相加实现RRI并将结果经总线送入RI。这里要注意一点运算器的内部总线是CPU的内部数据通路,因此只有数据线。图22所示的移位器实质上是一个多路开关,它利用输出逻辑对ALU的结果进行功能选择,如移位或直接传送,有时候根据总线模式也可以不用。根据以上两种方案比较,一般来说,采取双向总线结构比较方便,选择方案2的方式向ALU提供操作数。河海人学T学坝I论文第一二章CPU整体设计243运算器的内部总线确定运算器的内部总线是CPU的内部数据通路,因此只有数据线,但是按照数据传输的通路大体上又可划分为三种结构1单总线结构运算器这种结构的运算器实现一次双操作数的运算要分成三步,他的主要缺点是操作速度慢。如上图22。2双总线结构运算器这种结构的运算器,两个操作数可以分别通过两条总线同时送到ALU去进行运算,并且立即可以得到运算的结果。但是ALU的输出不能直接送到总线上去,这是因为此时两条总线都被操作数所占据着,所以必须在ALU的输出端设置一个缓冲器,先将结果送入缓冲器,第二步再把结果送至目的寄存器。显然,他的执行速度比单总线要快,每次操作比单总线少一步,但是由于增加了硬件,控制也变得复杂。3三总线结构运算器这种结构的运算器,ALU的两个输入端分别由两条总线供给,输出与第三条总线相连,这样算数与逻辑运算操作可以在一步之内完成。如果某一个数不需要运算和修改,而需要直接的总线传送,可通过总线旁路器把数据送出,而不必借助于ALU。三总线结构的特点是操作速度快,但结构与控制更为复杂。根据以上的分析与比较,并结合课题的要求,由于系统对速度的要求并不高,而结构与控制又须简单明了,综合起来运算器采用带输入锁存器的单总线结构。25控制器251控制器的基本功能控制器是CPU的两大部件之一,是计算机的管理机构和指挥中心,其作用就是向计算机的每个部件包括控制器部件本身提供协同运行所需要的控制信号。计算机的最本质的功能是连续执行指令,而每一条指令往往又要分成几个步骤才能完成一般执行一条指令要经过读取指令、分析指令和执行指令三个阶段。Q海人学T学顾J论义基于FPGA的CPU核及其虚拟F台的设计J实现可以说,控制器的基本功能是依据当前正在执行的指令和它所处的执行步骤,形成并提供出在这一时刻整机各部件要用到的控制信号。I耿指令当程序已在存储器中时首先根据程序入口取出第一条指令,为此要发出指令地址和控制信号。2分析指令也叫解释指令、指令译码。对当I;取得的指令进行分析,给出操作并产生相应的操作控制命令。3执行指令根据分析指令时产生的“操作指令”和“操作数地址”形成相应的操作控制信号序列,通过CPU及输入输出设备的执行,实现每条指令的功能。4控制程序与数据的输入和结果输出计算机不断重复执行上述三种基本操作取指、分析、执行如此循环,直至执行完指令或有外部干扰,这时,根据指令或人的干预,在适当的时候向输入输出设备发出相应命令以完成IO功能。252控制器的基本组成确定了控制器的功能后,对其组成模块进行初步划分1程序计数器在指令的读取过程中,须有一个能提供指令在内存中地址的部件并接受下一条要执行的指令地址,这个部件通称程序计数器。2地址寄存器将程序计数器中的指令地址送到地址寄存器方可读主存,读出指令内容3指令寄存器被读来的当前指令内容需要保存,保存到指令寄存器。4微操作序列形成部件是全部时序控制信号的产生部件,它依据指令内容、指令执行时刻等等形成并提供出当前各部件本时刻所用到的控制信号。5堆栈用来控制中断处理的逻辑。6脉冲源与起停控制逻辑脉冲源产生一定频率的脉冲信号作为整个计算机的时钟脉冲,是机器周期和工作脉冲的基准信号。在计算机刚刚加电时,这并不意味着计算机已经开始工作。只有通过起停控制逻辑才能根据计算机的需要正确启动或停止。14州海人学T学顾I论文第一章CPU整体设汁253控制器的硬件实现方法控制器的输入是机器指令代码,输出是微操作控制信号,因此微操作序列形成部件是其核心部件。根据产生微操作信号的方式不同,控制器结构可分为以下两种类型1组合逻辑型组合逻辑型控制器也称为常规控制器或硬布线控制器,是采用组合逻辑计数来实现的,其微操作序列形成部件是由门电路组成的复杂树形网络。这种方法是以使用最少的器件数和最高操作速度为设计目标。2存储逻辑型存储逻辑型控制器也称为微程序控制器,是采用存储逻辑来实现的,也是把微操作信号代码化,使每条机器指令转化为一段微程序并存入一个专门的存储器控制存储器中,位操作控制信号由位指令产生。3组合逻辑与存储逻辑结合型这种控制器称为可编程逻辑阵列PALPROGRABLEARRAYLOGIC控制器,是吸收前两种方法的设计思想来实现的。PAL控制器实际上也是一种组合逻辑控制器,但它又与常规的组合逻辑控制器的硬联结构不同。它是可编程序的,某一微操作控制信号由PAL的某一输出函数产生。对三种类型的控制器进行比较,相对而言,PAL控制器是前两种结合的产物,克服了两者的缺点,但是,首先PAL属低密度的可编程逻辑器件,对大规模电路资源显然太少。使用时需要好几片PAL集成芯片,增加PCB版面,因此PAL控制器适合于纯硬件电路加可编程控制,一般需要专门的烧写器和描述语言。故舍弃PAL方案。只对前两种方案在高密度可编程逻辑器件FPGA中进行比较,比较结果如下1微程序控制器的电路比硬布线控制器的规整微程序控制器的控制功能是在存放微程序的控制存储器和存放当前正在执行的微指令的寄存器直接控制下实现的,各条指令控制信号的差别反映在控制存储器的内容上,在增加指令或修改指令包括纠正设计中的错误时,只须增加或修改控制存储器内容即可,甚至在系统结构不变的情况下,改写整个指令系统。硬布线控制器的控制信号先用逻辑式列出,经化简后用电路实现,因而显得零乱复杂,当需修改指令时须修改电路,很麻烦,甚至不可能修改。2硬布线控制器的速度比微程序控制器的快。硬布线控制器的速度主要取决于电路延迟,而一般的门级延时是很短的,微程序控制器的速度取决于指令读取速度,而一般情况下,访问存储器的速度要比访问寄存器的速度慢得多。3微程序控制器的起始成本比硬布线控制器的高。由于微程序控制器的河海大学T学硕J论史基十FPGA的CPU核成JC虚拟R台的设计,实现实现方式而要外加相应的硬件,如存储器等,因而起始成本较高,但是控存的外围电路等可以共用,所以由于控制的复杂化所引起的增加成本较少。而在硬联逻辑方式中,成本随控制的复杂性按比例地上升【9】。如图23所示通过以上的分析,系统选用微程序控制器方式作CPU的控制器,主要是因为本系统是一个实验系统,对速度的要求不是图23控制方式的成本比首位的,而且随着内容的更新,系统存在一个升级和修改的问题,这样,在不影响大的电路结构的前提下,完全可以进行局部的更新与改进,另外。程序控制是一个较先进的控制方式,在进行计算机的学习与设计中,应该实践并强化这种方法。综合本章基本知识,首先以计算机的基本结构为模板,作出一个简化的计算机模型机的数据通路结构图【4】【。O1LL】,如图24所示。其中内部虚线部分即为CPU部分,合理地安排运算器和控制器的布局与部件,就可以设计出合用的CPU核。图24计算机模型机数据通路结构图16河海人学T学帧I论文第二二章CPU整体设计26课题开发环境261FPGA芯片特点随着微电子设计技术与工艺的发展,数字集成电路从电子管、晶体管、中小规模集成电路、超大规模集成电路VLSIC逐步发展到今天的专用集成电路ASIC。ASIC的出现降低了产品的生产成本,提高了系统的可靠性,缩小了设计的物理尺寸,推动了社会的数字化进程。但是ASIC设计周期长,改版投资大,灵活性差等缺陷制约着它的应用范围。硬件工程师希望有一种更灵活的设计方法,根据需要在实验室就能设计、更改大规模数字逻辑,研制自己的ASIC并马上投入使用,这时提出了可编程逻辑器件的基本思想【12L【13L。FPGAFILEDPROGRANMABLEGATEARRAY即现场可编程逻辑门阵列,是在CPLD的基础上发展起来的新型高性能可编程逻辑器件,它一般采用SRAM工艺,也有一些专用器件采用FLASH工艺或反熔丝ANTIFUSE工艺等。FPGA的集成度很高,其器件密度从数万系统1“3N数千万系统门不等,可以完成极其复杂的时序与组合逻辑电路功能,适用于高速、高密度的高端数字逻辑电路设计领域。新型的FPGACPLD规模越来越大,成本越来越低。高性价比使可编程逻辑器件在硬件设计领域扮演着日益重要的角色。可编程逻辑器件将朝着下面四个方向高速发展最先进的ASIC生产工艺将广泛的应用在以FPGA为代表的可编程逻辑器件中;越来越多的高端FPGA产品将包含DSP或CPU等处理器内核,从而FPGA将由传统的硬件设计手段逐步过渡为系统级设计平台;FPGA与传统ASIC进一步融合,将包含功能越来越丰富的硬核HARDIPCORE并通过结构化技术加快占领部分ASIC市场低成本FPGA的密度越来越高,价格越来越合理。可以预见FPGA将逐步成为复杂数字电路设计的理想首选器件。FP6A器件与低密度PALGAL和高密度CPLD相比,在性能上主要有以下特点【14】1FPGA器件多采用SRAM编程技术,规模大,逻辑复杂度高,是高速度、高可靠性和低功耗的逻辑可编程器件。2FPGA器件提供丰富的10端口数,触发器数量多,适宜进行复杂时序功能的设计。3FPGA器件具有丰富的分布式布线资源,布线灵活。经过编程可以实现复杂的组合逻辑和时序逻辑,满足各种各样数字电路系统设计的要求。4众多FPGA器件还提供了片内高速的嵌入式块RAM,可以配置为单端口RAM、双端口RAM及FIFO电路,大大的拓展了FPGA的应用范围和使用灵活性。5使用FPGA器件时,需对其进行数据配置。配置完成后,FPGA器件才可17河海人学T学坝I论文罐于FPGA的CPU核发JE虚拟P台的设计J实现完成设计要求的逻辑功能。FPGA掉电后一般将丢失原有逻辑配置。6FPGA内部的延迟不可预测,一般要通过时序约束、静态时序分析和仿真等手段提高并验证时序性能。FPGA的出现是超大规模集成电路VLSI技术和计算机辅助设计CAD技术发展的结果。它允许电路设计者利用基于计算机的开发平台,经过设计输入、仿真、测试和校验来到达到预期的效果。FPGA开发流程与ASIC相差不大,其最大不同在于FPGA设计中没有用户专门的定制生产过程,而是通过以二进制比特流形式下载到芯片中来进行配置。262FPGA的开发软件与设计流程一般PLD的开发软件是指CPLDFPGA的开发软件,这类软件都是由CPLDFPGA芯片厂家提供,基本都可以完成所有的设计输入原理图输入和HDL、ABEL语言输入,仿真,综合,稚线,下载等工作,属集成环境一类。世界上最大的三家可编程逻辑器件供应商分别是ALTERA、XILINX和LATTICE公司,每家公司都有自己的开发软件。ALTERA公司的_丌发软件有MAXPLUSII,普遍认为是最优秀的可编程逻辑器件开发平台之一,适合早期开发的中小规模CPLDFPGA芯片,使用者众多。目|;,A1TERA公司已转向开发QUARTUSII软件平台,以适合新产品、新器件和大规模FPGA的开发。X订INX公司开发软件有FOUNDATION,应用不是很广,目前XILINX已经停止开发,而转向ISE软件平台。LATTICE公司的开发软件有ISPDESIGNEXPERT,经过升级之后改名为ISPLEVER。为了提高设计效率,优化设计结果,很多厂家又提供了各种专业软件,用以配合PLDFPGA芯片厂家提供工具进行更高效率的设计,最常见的组合是同时使用专业HDL逻辑综合软件和PLDFPGA芯片厂家提供的软件。主要有以下几种1HDL前端输入与系统管理软件。这类软件主要是帮助用户完成HDL文本的编辑和输入工作,提高输入效率,并不是必须的,更多人更习惯使用集成开发软件或者综合仿真工具中自带的文本编辑器,甚至可以直接使用普通文本编辑器。2HDL逻辑综合软件这类软件将把HDL语言翻译成最基本的与或非门的连接关系网表,输出EDF文件,导给PLDFPGA厂家的软件进行试配和布线。为了优化结果,在进行复杂HDL设计时,基本上都会使用这些专业的逻辑综合软件,而不使用PLDFPGA厂家的集成开发软件中自带的逻辑综合功能。3HDL仿真软件LI海人学丁学顾I。论史第一二章CPU整体设计对设计进行校验仿真,包括布线以IJI的功能仿真II仿真和布线以后包含延时的时序仿真后仿真,对于一些复杂的HDL设计可能需要这些软件专业的仿真功能。专业软件是配合专业设计而言的,本系统考虑到软件的可用性和芯片的可选性采用了ALTERA公司的MAXPLUSII软件平台和市面上比较流行的、性价比较高的APEX1K家族的EPIKL00。对于芯片应用的普及性也是据市场而来,一般日本和亚太地区用HLTERA公司的芯片多一些;欧洲地区用XILINX公司的芯片多一些;美国则平分秋色【15L。选定软件平台和FPGA芯片之后,只要考虑设计的程序,便可借助集成环境完成我们想要的设计。一般来说,一个完整的FPGA设计流程分为电路设计与输入、功能仿真、综合、综合后仿真、实现、布局布线后仿真、配置下载与调试等主要步骤,设计流程如图25所示图31完整的FP;A设计流程整个FPGA设计按照上述的流程进行开发时,任何仿真或验证步骤出现问题,都需要根据错误定位返回到相应的步骤进行更改或者重新设计。19LLI海大学T学硕卜论文基于FPGA的CPU核及JE虚拟R台的垃汁J实现第三章运算器的FPGA设计31ALU模块的FPFLA设计上一章已经介绍过ALU部件的基本功能是实现基本的算术、逻辑运算。但是如何选择合适的集成芯片来组成这一模块昵传统的、国际流行的ALU芯片是74181型四位中规模集成芯片,当然还有其他的一些供选择的芯片,比如说AM2901型四位中规模集成芯片等,而且随着集成电路技术的发展,8位和16位的ALU芯片也已相继问世,但是考虑到CPU的开发工具,选用74系列的集成芯片要方便实用一些,因为在MAXPLUSLI应用软件的元器件库里包含几乎所有的74系列的芯片,并且库立的元器件都有对应的VHDL语言的描述。另外在与硬件语言设计电路或单个逻辑门组合设计两种情况下作比较,直接选用库罩的集成芯片对用户来说更直观。31174181的功能74181可以执行16种逻辑运算和16种算术运算,有正逻辑和负逻辑两种工作选择,图31是正逻辑的74181。图中各引脚功能如下砌IS3S2SISO是运算选择控制端,决定电路执行何种算术运算或何种逻辑运算。M状态控制端,当MI,执行逻辑运算;当MO,执行算术运算。CN最低位进位输入。CN4向高位的进位输出。AEQBAB输出端PN片进位传递函数输出端。GN片进位产生函数输出端。F3F2FIFO运算结果输出端。C114EQBF3NF2NF1NFON刚ON74181A3A2ALAO、B38281BO操作数输入端。图3174181引脚图当S3S2SLSO与CN的不同组合可以实现不同的运算操作具体如表31所示翳铂甜M洲洲删喇删洲删删删IL海人学T学顾J论文第二章运算器的设计表3174181的算术逻辑运算功能表运算选择J下逻辑3S2SIS0逻辑运算算术运算M0M1CNL无进位CNO有进位0000AAAL0001ABABAB加1OOLOABABA百加1001LO减10OLOOABA加A百A加A百加1一AB加A百AB加A百加10101B0“OAOBA减B减LA减B0111ABAG减1AB1000ABA加ABA加AB加11001AOBA加BA加B加ILOLOBAB加A吾AB加A加百加1LOLLABAB减1AB1100LA加AA加A加L1101ABA加A加BA加A加B加1LLL0ABA加A加百A加A加I加11111AA减1A注;“”表示逻辑加“加”表示算术加312ALU设计原理与编程仿真74181只有4位,要想设计一个16位的ALU,则须对7

温馨提示

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

评论

0/150

提交评论