ImageVerifierCode 换一换
格式:DOCX , 页数:44 ,大小:189.49KB ,
资源ID:16963844      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/16963844.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于FPGA的微处理器设计毕业设计Word格式.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于FPGA的微处理器设计毕业设计Word格式.docx

1、但是,在微控制器的发展过程中,8位机始终是嵌入式低端应用的主要机型4。詩叁撻訥烬忧毀厉鋨骜。现今市场上流行的典型的8位微控制器,可以在各种FPGA上实现,设计灵活方便而且易于进行功能扩展。因此研究8位CPU内核具有广泛的现实意义,由于其具有较高的处理性能和较少的资源占用,故具有更加广泛的应用前景。则鯤愜韋瘓賈晖园栋泷。1.3 课题研究方法及技术背景1.3.1 研究方法本课题使用硬件描述语言VHDL采用自顶向下的设计方法设计一个满足要求的8位CPU内核及外部接口,使用EDA软件QUARTUSII软件完成编码、仿真验证。自顶向下的设计方法就是设计者首先从整体上规划整个系统的功能和性能,然后利用功能

2、分割手段对系统进行划分,分解为规模较小、功能较简单的局部模块,并确立它们之间的相互关系,将设计由上至下进行层次化和模块化,即分层次、分模块地对电子系统进行设计和仿真。不难看出,采用自顶向下的设计方法实际上就是基于芯片的系统设计方法,这种方法有助于在设计早期发现结构设计中的错误,提高设计成功率。胀鏝彈奥秘孫戶孪钇賻。1.3.2 技术背景 1. 硬件描述语言VHDL 如今,大多数的EDA工具都采用VHDL作为主要的硬件描述语言,这主要源于VHDL强大的自身功能和特点,下面介绍一下VHDL的优点。鳃躋峽祷紉诵帮废掃減。(1) 具有强大的描述能力VHDL既可以描述系统级电路,也可以描述门电路;既可以采

3、用行为描述、寄存器描述或者结构描述,可以方便地建立电子系统模型。稟虛嬪赈维哜妝扩踴粜。(2) 具有共享与复用能力VHDL采用基于库的设计方法,从而大大减少了工作量,缩短了开发周期。(3) 具有独立于器件和工艺设计的能力VHDL独立于器件的特点可以使设计人员集中精力来进行电子系统的设计和性能优化,而不需要考虑其他问题。(4) 具有良好的可移植能力。VHDL的可移植性源于它是一种标准化得硬件语言,因此同一个设计描述可以被不同的工具所支持。(5) 具有向ASIC移植的能力。2. CISC指令集和RISC指令集CISC是一种为了便于编程和提高内存访问效率的芯片设计体系。早期的计算机使用汇编语言编程,由

4、于内存速度慢且价格昂贵,使得CISC体系得到了用武之地。它的设计目的是要用最少的机器语言指令来完成所需的计算任务。后来 功能需求越来越丰富,因此越来越多的复杂指令被加入到指令系统中,但是还必须保持着前向的兼容性。内容的不断扩充和兼容性的考虑,导致庞大的CISC指令系统形成了。在20世纪90年代中期之前,大多数的微处理器都采用CISC体系包括Intel的80x86和Motorola的6sK系列等6。陽簍埡鲑罷規呜旧岿錟。CISC 体系结构几乎没有考虑流水线的因素,使得指令执行起来耗时而且寻址复杂。1975年,IBM的设计师提出了一种新的体系结构和指令集设计方案,这就是RISC体系结构。典型的RI

5、SC处理器具有以下特点:沩氣嘮戇苌鑿鑿槠谔應。(1) 指令功能简单,各指令的复杂度分布均衡,有利于形成流水线;(2) 控制电路简单,多采用硬连线方式来实现。因为不需要额外的存取微程序存储器来完成指令的执行,因此可以直接使用硬连线方式来设计;钡嵐縣緱虜荣产涛團蔺。(3) 指令定长,指令格式简单,指令编码固定。这样字段固定,使操作码得译码与操作数的存取可以同时执行,使得控制单元的设计简单化;懨俠劑鈍触乐鹇烬觶騮。(4) ALU指令和访存指令分开,并且访存种类很少。(5) 以寄存器对寄存器的运算为主。寄存器对寄存器的运算有助于减少对存储器的访问次数,提高数据的存取速度7-8。謾饱兗争詣繚鮐癞别瀘。1

6、.4 课题工作内容本文一共分为七章。各章节内容安排如下:第一章 绪论。第二章 微处理器的体系结构。研究了CPU的整体设计,指令系统和时序分析以及流水线的实现。第三章 CPU数据通路设计。详细介绍了通路模块中的程序计数器、指令寄存器、程序存储器等的具体设计和功能实现。第四章 CPU控制单元的设计。详细介绍了控制单元中的控制器和状态机的设计和功能实现。第五章 CPU的仿真验证。验证CPU的部分功能。第六章 总结和展望。第二章 微处理器体系结构2.1 CPU的功能和构成CPU是计算机的核心组成部分。计算机进行信息处理可分为以下两个步骤9。(1) 将数据和程序(即指令序列)输入到计算机的存储器中;(2

7、) 从第一条指令的地址开始执行该程序,得到所需的结果,结束运行。 CPU的作用是协调和控制计算机的各个部件,并执行程序的指令序列,使其有条不紊的进行,因此必须具备以下基本功能:呙铉們欤谦鸪饺竞荡赚。取指令:当程序已在存储器中时,首先根据程序入口地址取出一条程序,为此要发出指令的地址及相关的控制信号;分析指令:即指令译码,既对当前所取的指令进行分析,指出它要求什么操作,并产生相应的操作所需要的控制命令;执行指令:根据分析指令时产生的“操作命令”形成相应的操作控制序列,通过运算器、存储器及输入输出的执行,实现每条指令的功能,其中包括对运算结果的处理及下条指令地址的形成。莹谐龌蕲賞组靄绉嚴减。将CP

8、U的功能进一步细化,可以概括如下。(1) 能对指令进行译码并执行规定动作;(2) 可以进行算术和逻辑运算;(3) 能与存储器和外设交换数据;(4) 提供整个系统所需的控制。尽管各种CPU的性能指标和结构细节各不相同,但它们所能完成的基本功能相同,简化CPU内部结构如图2-1所示。麸肃鹏镟轿騍镣缚縟糶。图2-1 简化CPU内部结构2.2 指令系统分析指令系统结构是微处理器体系结构的一个重要部分,是微处理器设计的基础。指令格式、寻址方式和指令系统是指令系统结构的重要方面。目前主流CPU指令可以分为RISC和CISC,由上节介绍可知,RISC微处理器指令系统的指令种类少而经,寻址方式简单,指令格式固

9、定,所以本次设计采用RISC指令系统納畴鳗吶鄖禎銣腻鰲锬。2.2.1 RISC 与总线结构早期的计算机一般都采用冯.诺依曼(Von Neumann)结构,CISC架构的微处理器常采用这种结构。它是在同一个存储空间取指令和数据,采用单地址总线结构,即程序存储器和数据存储器共用一条地址总线,限制了工作带宽,使得控制电路复杂,功耗较大10-11。结构见图2-2所示:風撵鲔貓铁频钙蓟纠庙。图 2-2 冯.诺依曼结构图 这种结构有两个明显的缺点:(1) CPU中控制器和运算器的速度必须与存储器的速度相匹配;(2) 指令和数据的流动都通过同一条总线,使指令和数据的独立性消弱;目前,RISC架构的微处理器都

10、采用哈佛结构,这种结构具有分离地址总线的两个存储器,其中一个放程序,另一个放数据,其指令和数据空间完全分开,可以同时访问,且一次读出,简化控制电路,提高数据的吞吐率12。结构如图2-3所示。灭嗳骇諗鋅猎輛觏馊藹。 图2-3 哈佛结构图这种结构的优点是:(1) 允许数据从程序存储器传递到SRAM,该功能也允许从程序存储器 中读取数据表。这对现代微控制器应用十分重要,因为为了使掉电 后数据表不丢失,就要将它放在程序存储器中,RISC架构很好地解 决了这个问题。铹鸝饷飾镡閌赀诨癱骝。(2) 读取指令和存储器数据交换可以在多步流水线中同时进行,这在冯. 诺依曼单地址总线结构中很难实现。攙閿频嵘陣澇諗谴

11、隴泸。基于以上两种体系结构特点的比较,本文设计的微处理器器采用了哈佛结构的体系结构。首先,哈佛结构的指令总线和数据总线分开,可以使用不同位宽的指令和数据,还有一个最大好处就是可以预取指令,这样对流水线是很有用的。其次,该微处理器实现了两级指令流水线,采用哈佛结构可使流水实现的难度大为降低,在采用流水线后,能够有效地提高指令的执行速度。再次,该微处理器采用了硬布线逻辑代替微程序控制的方法,提高了指令的执行速度和效率。趕輾雏纨颗锊讨跃满賺。2.2.2 指令系统本文设计的微控制器采用两级流水线、指令长固定、指令密度适中、控制单元简单的类似RISC指令集,本文自定义指令集,该指令集仅有20条指令,寻址

12、方式简单。每条指令的字长都是16位,包含足够的信息:指令操作码,源操作数地址,目的操作数地址,立即数13-14。夹覡闾辁駁档驀迁锬減。1、 指令集表1 是本文所涉及的CPU所有指令的一个集合指令名称指令操作影响标志位周期算术与逻辑类指令ADD R1,R2Add Two RegisterC1SUB R1,R2Sub Two RegisterZAND R1,R2And Two RegisterOR R1,R2Or Two Register位操作指令LSL R1Logical Shift LeftNoneLSR R1Logical Shift Right数据传送类指令MOV R1,#IIMove B

13、etween RegisterLD R1Load Immediate from RegisterSD R1Store Result to Register停机指令SLEEPSleep(Wait for )Any2、寻址方式本文指令系统的寻址方式为下面两种直接寻址方式:(1) 单一寄存器寻址。操作数在目的寄存器;(2) 双寄存器寻址。操作数分别在目的寄存器和源操作寄存器中。3、指令格式定义正如以前所提到的,RISC总是有固定长度以便于译码。对设计的微处理,每个指令都是固定的16位长度,其中操作码占用16 位指令字的高4 位。所有的指令码都很容易译码。对两个寄存器的指令,d选择目的寄存器,:r选择

14、源寄存器,4位可以寻址16个寄存器,这种指令格式包括ADD,SUB,AND,OR。视絀镘鸸鲚鐘脑钧欖粝。15141312111098765432rd对于仅需要一个寄存器的指令,d用来寻址目标寄存器。这种指令格式包括LD,LSL,LSR指令。对于立即数指令,指令中间8位是8位常数,其中H 代表常数的高四位,L代表常数的低四位,d用来寻址目的寄存器。这种指令格式包括MOV,SD。偽澀锟攢鴛擋緬铹鈞錠。LH4、指令编码 确定了指令的格式,就可以对指令进行编码,这样指令就有唯一的身份识别。指令编码结果如表2所示。 表2 指令编码指令类型指令机器码ADD0001 0000r r r rd d d dSU

15、B0010 AND0011 OR0100 LSL0101 0000 LSR0110MOV0111LLLLHHHHST1000LD100110112.3 指令时序分析2.3.1 RISC与流水线指令的执行分成两个阶段:取指阶段和执行阶段。在取指阶段,指令机器码被取到指令寄存器,控制单元通过译码知道这是个什么样的指令,需要执行什緦徑铫膾龋轿级镗挢廟。么样的操作,需要什么操作数;在执行阶段当前指令以及取指完毕,上一条指令被执行。这样按顺序第1条指令执行完再取第2条指令,第2条执行完在取第3条指令的顺序执行方式执行一条指令最少需要两个时钟周期,如果执行10条指令那么就得需要10个时钟周期,显然这样指令

16、的执行效率不高。为了解决这个问题,本次设计中引入了流水线(pipeline)操作。8位CPU采用两级流水线技术,指令的流水线可以用图2-4来简单的示意:騅憑钶銘侥张礫阵轸蔼。图2-4 流水线指令执行由图可以看出,尽管每条指令的完成需要两个周期的时间,但是在流水线结构中,当前指令的取值周期和上一条指令的执行周期在时间上是重叠的,对于这种并行操作,从平均角度来看,相当于一个周期内完成一条指令,因此可以大大提高指令的运行速度15。疠骐錾农剎貯狱颢幗騮。RISC架构的处理器,每条指令有固定的长度,指令格式只有简单的几种,指令功能不交叉,寻址方式也简单,所以更加有利于实现流水结构。镞锊过润启婭澗骆讕瀘。

17、为了降低执行每条指令所需时钟数,本文也采用两级流水,其功能分别定义为:第一级,取指;第二级,时钟前半周期控制器译码、发出控制信号,时钟后半周期进行对寄存器堆TRAM进行读操作、ALU计算。这样,很显然也能降低执行指令所需的时钟数,取指、执行只用了一个时钟。在时钟上升沿PC产生进入PCRAM的地址,由于PCRAM 有反应时间,经过一段很短的时间读出指令,在下一个时钟上升沿到来时,指令寄存器锁存指令,然后开始对指令进行译码,并产生操作数、目的存储器寄存器地址、写信号及各种控制信号。榿贰轲誊壟该槛鲻垲赛。2.3.2 程序计数器与流水线程序计数器(PC)是程序中寻址取得指令的特殊单元。正是靠PC的移动

18、,CPU才能一条一条的执行指令。同时,程序计数器也是和流水线密切相关的单元。在程序开始执行前,CPU将它的起始地址送入PC,当指令执行时,CPU 将自动修改PC 的内容,所以PC中的内容总是下一条指令的地址。由于指令通常是顺序执行的,所以修改的过程通常只是简单的PC加1。表2说明了在引入流水线后PC的具体工作情况:邁茑赚陉宾呗擷鹪讼凑。表3 指令执行中PC值的变化情况时钟周期Reset周期1周期2周期3周期4PC0 第一条指令读取指令0执行指令0第二条指令读取指令1执行指令1第三条指令读取指令2执行指令2表3表明,在系统复位时,PC内的值清0,第一个时钟周期,指令寄存器取PC为0的地址的指令,

19、同时PC的值加1;第二个时钟周期,执行0地址的指令,同时读取地址1的指令,同时PC的值加1;第三个时钟周期,重复这样的过程。这样可以得到结论:如果当前CPU正在执行的是第N条指令,那么指令寄存器正在读取的是N+1条指令,此时PC的值应该是N+2。嵝硖贪塒廩袞悯倉華糲。2.4 CPU整体结构即设计思想在设计CPU 之前整个结构的特性及由哪些模块组成,这些模块之间的互连关系以及整个CPU的最后输出信号等都是要事先定义好的.。2.4.1 CPU的外部引脚规划从CPU外部看整个输入输出如图2-5图2-5 CPU外部引脚信号该CPU有5个输入引脚,1个结果输出端口以及一个运算溢出信号。系统的时钟信号将直

20、接驱动驱动整个CPU。WR信号是系统的异步指令输入信号,高电平有效。当WR信号有效时,整个CPU进入指令输入状态,当WR低电平时CPU进入指令读取并完成指令操作的状态,当CPU完成全部输入指令时进入停机状态,此时Start信号重新启动CPU,使其进入等待状态。该栎谖碼戆沖巋鳧薩锭。2.4.2 CPU的整体框图系统的顶层结构模块图如图2-6图2-6 系统的顶层结构模块图该模块包含了系统的主要模块及它们之间的连接关系。图中的一个一个的模块代表了各个功能模块,将在下面的章节中分别做详细的设计说明。每个模块都将按照EDA设计中自下而上的设计原则分别独立设计。有些模块是比较简单的像指令寄存器(IR),有

21、些模块则是比较难的像ALU模块和控制单元模块。劇妆诨貰攖苹埘呂仑庙。 在设计微处理器的功能模块之前,需要决定如何逻辑实现和处理器锁存数据。微处理器中有两种不同的逻辑元件:(1) ALU、MUX、CONCROL单元的元件都是组合逻辑电路。它们的输出仅仅依赖于当前的输入状态,没有内部存储功能;臠龍讹驄桠业變墊罗蘄。(2) 寄存器堆、临时寄存器都是状态单元,它的输出不仅依赖于输入,还有其自身内部的状态。时钟用来决定状态何时被写入,一个状态可以在任意时刻读取。鰻順褛悦漚縫冁屜鸭骞。微处理器的时钟采用边沿触发的方式,整个系统采用单时钟电路,即提供一个系统时钟,每当时钟边沿到来的时候,向状态单元写入数据。

22、穑釓虚绺滟鳗絲懷紓泺。整个系统可以分为两个单元:取指单元,执行单元。取指单元负责取下条指令,执行单元负责执行当前指令。取指单元和执行单元共同构成了CPU的微控制单元。取指单元的第一个模块是程序计数器(PC),PC中是下条要执行的指令的地址,它是指向程序存储器单元(PROM)来寻址指令的。控制模块是对从指令寄存器(IR)送出指令进行译码从而发出适当的控制信号执行程序的。隶誆荧鉴獫纲鴣攣駘賽。系统中包括了很多寄存器的设计包括指令寄存器(IR),程序计数器(PC),这些寄存器大都在我们顶层可见的模块的内部,系统的工作也可以看作就是数据在这些寄存器之间的“迁移”,也即寄存器内容的迁移。微处理器的功能就

23、是体现在这些这些数据是如何传递的,在传递前的处理是如何处理的,所有这一系列寄存器数据之间的迁移转换就组成了微处理器。浹繢腻叢着駕骠構砀湊。2.4.3 CPU结构的层次划分正确合理的划分系统是所有数字系统设计成功的关键。子系统的划分过程就是把总体任务划分程若干分任务的过程。本设计将CPU分解为两大子系统:数据通路和控制通路。这种划分将CPU的运算、执行单元与控制部件分离开,是非常合理、自然的。数据通路和控制通路这两大部分又可以细化为更小的模块,ALU模块(算术逻辑单元)、PC_RAM模块(程序存储器)和IR(指令寄存器)、TRAM(寄存器堆)属于数据通路部分,ALU内部又包含更小的模块(加、减、与、或、移位模块);控制模块属于控制通路部分,其中控制模块又由FSM(状态机)和CONTROL(控制器)构成。具体的模块功能实现将在下面两章中详细介绍。鈀燭罚櫝箋礱颼畢韫粝。第三章 CPU数据通路设计从这一章开始将详细介绍整个CPU的细化设计模块。通过上一章对CPU

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1