基于FPGA的微处理器设计毕业设计论文 精品Word下载.docx

上传人:b****2 文档编号:1019515 上传时间:2023-04-30 格式:DOCX 页数:52 大小:186.30KB
下载 相关 举报
基于FPGA的微处理器设计毕业设计论文 精品Word下载.docx_第1页
第1页 / 共52页
基于FPGA的微处理器设计毕业设计论文 精品Word下载.docx_第2页
第2页 / 共52页
基于FPGA的微处理器设计毕业设计论文 精品Word下载.docx_第3页
第3页 / 共52页
基于FPGA的微处理器设计毕业设计论文 精品Word下载.docx_第4页
第4页 / 共52页
基于FPGA的微处理器设计毕业设计论文 精品Word下载.docx_第5页
第5页 / 共52页
基于FPGA的微处理器设计毕业设计论文 精品Word下载.docx_第6页
第6页 / 共52页
基于FPGA的微处理器设计毕业设计论文 精品Word下载.docx_第7页
第7页 / 共52页
基于FPGA的微处理器设计毕业设计论文 精品Word下载.docx_第8页
第8页 / 共52页
基于FPGA的微处理器设计毕业设计论文 精品Word下载.docx_第9页
第9页 / 共52页
基于FPGA的微处理器设计毕业设计论文 精品Word下载.docx_第10页
第10页 / 共52页
基于FPGA的微处理器设计毕业设计论文 精品Word下载.docx_第11页
第11页 / 共52页
基于FPGA的微处理器设计毕业设计论文 精品Word下载.docx_第12页
第12页 / 共52页
基于FPGA的微处理器设计毕业设计论文 精品Word下载.docx_第13页
第13页 / 共52页
基于FPGA的微处理器设计毕业设计论文 精品Word下载.docx_第14页
第14页 / 共52页
基于FPGA的微处理器设计毕业设计论文 精品Word下载.docx_第15页
第15页 / 共52页
基于FPGA的微处理器设计毕业设计论文 精品Word下载.docx_第16页
第16页 / 共52页
基于FPGA的微处理器设计毕业设计论文 精品Word下载.docx_第17页
第17页 / 共52页
基于FPGA的微处理器设计毕业设计论文 精品Word下载.docx_第18页
第18页 / 共52页
基于FPGA的微处理器设计毕业设计论文 精品Word下载.docx_第19页
第19页 / 共52页
基于FPGA的微处理器设计毕业设计论文 精品Word下载.docx_第20页
第20页 / 共52页
亲,该文档总共52页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

基于FPGA的微处理器设计毕业设计论文 精品Word下载.docx

《基于FPGA的微处理器设计毕业设计论文 精品Word下载.docx》由会员分享,可在线阅读,更多相关《基于FPGA的微处理器设计毕业设计论文 精品Word下载.docx(52页珍藏版)》请在冰点文库上搜索。

基于FPGA的微处理器设计毕业设计论文 精品Word下载.docx

现今市场上流行的典型的8位微控制器,可以在各种FPGA上实现,设计灵活方便而且易于进行功能扩展。

因此研究8位CPU内核具有广泛的现实意义,由于其具有较高的处理性能和较少的资源占用,故具有更加广泛的应用前景。

1.3课题研究方法及技术背景

1.3.1研究方法

本课题使用硬件描述语言VHDL采用自顶向下的设计方法设计一个满足要求的8位CPU内核及外部接口,使用EDA软件QUARTUSII软件完成编码、仿真验证。

自顶向下的设计方法就是设计者首先从整体上规划整个系统的功能和性能,然后利用功能分割手段对系统进行划分,分解为规模较小、功能较简单的局部模块,并确立它们之间的相互关系,将设计由上至下进行层次化和模块化,即分层次、分模块地对电子系统进行设计和仿真。

不难看出,采用自顶向下的设计方法实际上就是基于芯片的系统设计方法,这种方法有助于在设计早期发现结构设计中的错误,提高设计成功率。

1.3.2技术背景

1.硬件描述语言VHDL

如今,大多数的EDA工具都采用VHDL作为主要的硬件描述语言,这主要源于VHDL强大的自身功能和特点,下面介绍一下VHDL的优点。

(1)具有强大的描述能力

VHDL既可以描述系统级电路,也可以描述门电路;

既可以采用行为描述、寄存器描述或者结构描述,可以方便地建立电子系统模型。

(2)具有共享与复用能力

 VHDL采用基于库的设计方法,从而大大减少了工作量,缩短了开发周期。

(3)具有独立于器件和工艺设计的能力

VHDL独立于器件的特点可以使设计人员集中精力来进行电子系统的设计和性能优化,而不需要考虑其他问题。

(4)具有良好的可移植能力。

VHDL的可移植性源于它是一种标准化得硬件语言,因此同一个设计描述可以被不同的工具所支持。

(5)具有向ASIC移植的能力。

2.CISC指令集和RISC指令集

CISC是一种为了便于编程和提高内存访问效率的芯片设计体系。

早期的计算机使用汇编语言编程,由于内存速度慢且价格昂贵,使得CISC体系得到了用武之地。

它的设计目的是要用最少的机器语言指令来完成所需的计算任务。

后来功能需求越来越丰富,因此越来越多的复杂指令被加入到指令系统中,但是还必须保持着前向的兼容性。

内容的不断扩充和兼容性的考虑,导致庞大的CISC指令系统形成了。

在20世纪90年代中期之前,大多数的微处理器都采用CISC体系包括Intel的80x86和Motorola的6sK系列等[6]。

CISC体系结构几乎没有考虑流水线的因素,使得指令执行起来耗时而且寻址复杂。

1975年,IBM的设计师提出了一种新的体系结构和指令集设计方案,这就是RISC体系结构。

典型的RISC处理器具有以下特点:

(1)指令功能简单,各指令的复杂度分布均衡,有利于形成流水线;

(2)控制电路简单,多采用硬连线方式来实现。

因为不需要额外的存取微程序存储器来完成指令的执行,因此可以直接使用硬连线方式来设计;

(3)指令定长,指令格式简单,指令编码固定。

这样字段固定,使操作码得译码与操作数的存取可以同时执行,使得控制单元的设计简单化;

(4)ALU指令和访存指令分开,并且访存种类很少。

(5)以寄存器对寄存器的运算为主。

寄存器对寄存器的运算有助于减少对存储器的访问次数,提高数据的存取速度[7-8]。

1.4课题工作内容

本文一共分为七章。

各章节内容安排如下:

第一章绪论。

第二章微处理器的体系结构。

研究了CPU的整体设计,指令系统和时序分析以及流水线的实现。

第三章CPU数据通路设计。

详细介绍了通路模块中的程序计数器、指令寄存器、程序存储器等的具体设计和功能实现。

第四章CPU控制单元的设计。

详细介绍了控制单元中的控制器和状态机的设计和功能实现。

第五章CPU的仿真验证。

验证CPU的部分功能。

第六章总结和展望。

第二章微处理器体系结构

2.1CPU的功能和构成

CPU是计算机的核心组成部分。

计算机进行信息处理可分为以下两个步骤[9]。

(1)将数据和程序(即指令序列)输入到计算机的存储器中;

(2)从第一条指令的地址开始执行该程序,得到所需的结果,结束运行。

CPU的作用是协调和控制计算机的各个部件,并执行程序的指令序列,使其有条不紊的进行,因此必须具备以下基本功能:

取指令:

当程序已在存储器中时,首先根据程序入口地址取出一条程序,

为此要发出指令的地址及相关的控制信号;

分析指令:

即指令译码,既对当前所取的指令进行分析,指出它要求什么

操作,并产生相应的操作所需要的控制命令;

执行指令:

根据分析指令时产生的“操作命令”形成相应的操作控制序列,

通过运算器、存储器及输入输出的执行,实现每条指令的功能,其中包括对运算结果的处理及下条指令地址的形成。

将CPU的功能进一步细化,可以概括如下。

(1)能对指令进行译码并执行规定动作;

(2)可以进行算术和逻辑运算;

(3)能与存储器和外设交换数据;

(4)提供整个系统所需的控制。

尽管各种CPU的性能指标和结构细节各不相同,但它们所能完成的基本功能相同,简化CPU内部结构如图2-1所示。

图2-1简化CPU内部结构

2.2指令系统分析

指令系统结构是微处理器体系结构的一个重要部分,是微处理器设计的基础。

指令格式、寻址方式和指令系统是指令系统结构的重要方面。

目前主流CPU指令可以分为RISC和CISC,由上节介绍可知,RISC微处理器指令系统的指令种类少而经,寻址方式简单,指令格式固定,所以本次设计采用RISC指令系统

2.2.1RISC与总线结构

早期的计算机一般都采用冯.诺依曼(VonNeumann)结构,CISC架构的微处理器常采用这种结构。

它是在同一个存储空间取指令和数据,采用单地址总线结构,即程序存储器和数据存储器共用一条地址总线,限制了工作带宽,使得控制电路复杂,功耗较大[10-11]。

结构见图2-2所示:

图2-2冯.诺依曼结构图

这种结构有两个明显的缺点:

(1)CPU中控制器和运算器的速度必须与存储器的速度相匹配;

(2)指令和数据的流动都通过同一条总线,使指令和数据的独立性消弱;

目前,RISC架构的微处理器都采用哈佛结构,这种结构具有分离地址总线的两个存储器,其中一个放程序,另一个放数据,其指令和数据空间完全分开,可以同时访问,且一次读出,简化控制电路,提高数据的吞吐率[12]。

结构如图2-3所示。

图2-3哈佛结构图

这种结构的优点是:

(1)允许数据从程序存储器传递到SRAM,该功能也允许从程序存储器中读取数据表。

这对现代微控制器应用十分重要,因为为了使掉电后数据表不丢失,就要将它放在程序存储器中,RISC架构很好地解决了这个问题。

(2)读取指令和存储器数据交换可以在多步流水线中同时进行,这在冯.诺依曼单地址总线结构中很难实现。

基于以上两种体系结构特点的比较,本文设计的微处理器器采用了哈佛结构的体系结构。

首先,哈佛结构的指令总线和数据总线分开,可以使用不同位宽的指令和数据,还有一个最大好处就是可以预取指令,这样对流水线是很有用的。

其次,该微处理器实现了两级指令流水线,采用哈佛结构可使流水实现的难度大为降低,在采用流水线后,能够有效地提高指令的执行速度。

再次,该微处理器采用了硬布线逻辑代替微程序控制的方法,提高了指令的执行速度和效率。

2.2.2指令系统

本文设计的微控制器采用两级流水线、指令长固定、指令密度适中、控制单元简单的类似RISC指令集,本文自定义指令集,该指令集仅有20条指令,寻址方式简单。

每条指令的字长都是16位,包含足够的信息:

指令操作码,源操作数地址,目的操作数地址,立即数[13-14]。

1、指令集

表1是本文所涉及的CPU所有指令的一个集合

指令名称

指令操作

影响标志位

周期

算术与逻辑类指令

ADDR1,R2

AddTwoRegister

C

1

SUBR1,R2

SubTwoRegister

Z

ANDR1,R2

AndTwoRegister

ORR1,R2

OrTwoRegister

位操作指令

LSLR1

LogicalShiftLeft

None

LSRR1

LogicalShiftRight

数据传送类指令

MOVR1,#II

MoveBetweenRegister

LDR1

LoadImmediatefromRegister

SDR1

StoreResulttoRegister

停机指令

SLEEP

Sleep(Waitfor)

Any

2、寻址方式

本文指令系统的寻址方式为下面两种直接寻址方式:

(1)单一寄存器寻址。

操作数在目的寄存器;

(2)双寄存器寻址。

操作数分别在目的寄存器和源操作寄存器中。

3、指令格式定义

正如以前所提到的,RISC总是有固定长度以便于译码。

对设计的微处理,每个指令都是固定的16位长度,其中操作码占用16位指令字的高4位。

所有的指令码都很容易译码。

对两个寄存器的指令,d选择目的寄存器,:

r选择源寄存器,4位可以寻址16个寄存器,这种指令格式包括ADD,SUB,AND,OR。

15

14

13

12

11

10

9

8

7

6

5

4

3

2

r

d

对于仅需要一个寄存器的指令,d用来寻址目标寄存器。

这种指令格式包括LD,LSL,LSR指令。

对于立即数指令,指令中间8位是8位常数,其中H代表常数的高四位,L代表常数的低四位,d用来寻址目的寄存器。

这种指令格式包括MOV,SD。

L

H

4、指令编码

确定了指令的格式,就可以对指令进行编码,这样指令就有唯一的身份识别。

指令编码结果如表2所示。

表2指令编码

指令类型

指令机器码

ADD

0001

0000

rrrr

dddd

SUB

0010

AND

0011

OR

0100

LSL

0101

0000

LSR

0110

MOV

0111

LLLL

HHHH

ST

1000

LD

1001

1011

2.3指令时序分析

2.3.1RISC与流水线

指令的执行分成两个阶段:

取指阶段和执行阶段。

在取指阶段,指令机器码被取到指令寄存器,控制单元通过译码知道这是个什么样的指令,需要执行什

么样的操作,需要什么操作数;

在执行阶段当前指令以及取指完毕,上一条指令被执行。

这样按顺序第1条指令执行完再取第2条指令,第2条执行完在取第3条指令的顺序执行方式执行一条指令最少需要两个时钟周期,如果执行10条指令那么就得需要10个时钟周期,显然这样指令的执行效率不高。

为了解决这个问题,本次设计中引入了流水线(pipeline)操作。

8位CPU采用两级流水线技术,指令的流水线可以用图2-4来简单的示意:

图2-4流水线指令执行

由图可以看出,尽管每条指令的完成需要两个周期的时间,但是在流水线结构中,当前指令的取值周期和上一条指令的执行周期在时间上是重叠的,对于这种并行操作,从平均角度来看,相当于一个周期内完成一条指令,因此可以大大提高指令的运行速度[15]。

RISC架构的处理器,每条指令有固定的长度,指令格式只有简单的几种,指令功能不交叉,寻址方式也简单,所以更加有利于实现流水结构。

为了降低执行每条指令所需时钟数,本文也采用两级流水,其功能分别定义为:

第一级,取指;

第二级,时钟前半周期控制器译码、发出控制信号,时钟后半周期进行对寄存器堆TRAM进行读操作、ALU计算。

这样,很显然也能降低执行指令所需的时钟数,取指、执行只用了一个时钟。

在时钟上升沿PC产生进入PCRAM的地址,由于PCRAM有反应时间,经过一段很短的时间读出指令,在下一个时钟上升沿到来时,指令寄存器锁存指令,然后开始对指令进行译码,并产生操作数、目的存储器/寄存器地址、写信号及各种控制信号。

2.3.2程序计数器与流水线

程序计数器(PC)是程序中寻址取得指令的特殊单元。

正是靠PC的移动,CPU才能一条一条的执行指令。

同时,程序计数器也是和流水线密切相关的单元。

在程序开始执行前,CPU将它的起始地址送入PC,当指令执行时,CPU将自动修改PC的内容,所以PC中的内容总是下一条指令的地址。

由于指令通常是顺序执行的,所以修改的过程通常只是简单的PC加1。

表2说明了在引入流水线后PC的具体工作情况:

表3指令执行中PC值的变化情况

时钟周期

Reset

周期1

周期2

周期3

周期4

PC

0

第一条指令

读取指令0

执行指令0

第二条指令

读取指令1

执行指令1

第三条指令

读取指令2

执行指令2

表3表明,在系统复位时,PC内的值清0,第一个时钟周期,指令寄存器取PC为0的地址的指令,同时PC的值加1;

第二个时钟周期,执行0地址的指令,同时读取地址1的指令,同时PC的值加1;

第三个时钟周期,重复这样的过程。

这样可以得到结论:

如果当前CPU正在执行的是第N条指令,那么指令寄存器正在读取的是N+1条指令,此时PC的值应该是N+2。

2.4CPU整体结构即设计思想

在设计CPU之前整个结构的特性及由哪些模块组成,这些模块之间的

互连关系以及整个CPU的最后输出信号等都是要事先定义好的.。

2.4.1CPU的外部引脚规划

从CPU外部看整个输入输出如图2-5

图2-5CPU外部引脚信号

该CPU有5个输入引脚,1个结果输出端口以及一个运算溢出信号。

系统的时钟信号将直接驱动驱动整个CPU。

WR信号是系统的异步指令输入信号,高电平有效。

当WR信号有效时,整个CPU进入指令输入状态,当WR低电平时CPU进入指令读取并完成指令操作的状态,当CPU完成全部输入指令时进入停机状态,此时Start信号重新启动CPU,使其进入等待状态。

2.4.2CPU的整体框图

系统的顶层结构模块图如图2-6

图2-6系统的顶层结构模块图

该模块包含了系统的主要模块及它们之间的连接关系。

图中的一个一个的模块代表了各个功能模块,将在下面的章节中分别做详细的设计说明。

每个模块都将按照EDA设计中自下而上的设计原则分别独立设计。

有些模块是比较简单的像指令寄存器(IR),有些模块则是比较难的像ALU模块和控制单元模块。

在设计微处理器的功能模块之前,需要决定如何逻辑实现和处理器锁存数据。

微处理器中有两种不同的逻辑元件:

(1)ALU、MUX、CONCROL单元的元件都是组合逻辑电路。

它们的输出仅仅依赖于当前的输入状态,没有内部存储功能;

(2)寄存器堆、临时寄存器都是状态单元,它的输出不仅依赖于输入,还有其自身内部的状态。

时钟用来决定状态何时被写入,一个状态可以在任意时刻读取。

微处理器的时钟采用边沿触发的方式,整个系统采用单时钟电路,即提供一个系统时钟,每当时钟边沿到来的时候,向状态单元写入数据。

整个系统可以分为两个单元:

取指单元,执行单元。

取指单元负责取下条指令,执行单元负责执行当前指令。

取指单元和执行单元共同构成了CPU的微控制单元。

取指单元的第一个模块是程序计数器(PC),PC中是下条要执行的指令的地址,它是指向程序存储器单元(PROM)来寻址指令的。

控制模块是对从指令寄存器(IR)送出指令进行译码从而发出适当的控制信号执行程序的。

系统中包括了很多寄存器的设计包括指令寄存器(IR),程序计数器(PC),这些寄存器大都在我们顶层可见的模块的内部,系统的工作也可以看作就是数据在这些寄存器之间的“迁移”,也即寄存器内容的迁移。

微处理器的功能就是体现在这些这些数据是如何传递的,在传递前的处理是如何处理的,所有这一系列寄存器数据之间的迁移转换就组成了微处理器。

2.4.3CPU结构的层次划分

正确合理的划分系统是所有数字系统设计成功的关键。

子系统的划分过程就是把总体任务划分程若干分任务的过程。

本设计将CPU分解为两大子系统:

数据通路和控制通路。

这种划分将CPU的运算、执行单元与控制部件分离开,是非常合理、自然的。

数据通路和控制通路这两大部分又可以细化为更小的模块,ALU模块(算术逻辑单元)、PC_RAM模块(程序存储器)和IR(指令寄存器)、TRAM(寄存器堆)属于数据通路部分,ALU内部又包含更小的模块(加、减、与、或、移位模块);

控制模块属于控制通路部分,其中控制模块又由FSM(状态机)和CONTROL(控制器)构成。

具体的模块功能实现将在下面两章中详细介绍。

第三章CPU数据通路设计

从这一章开始将详细介绍整个CPU的细化设计模块。

通过上一章对CPU的结构划分,已经知道CPU的整个设计分为两个部分:

数据通路和控制单元。

在这一章中将细分数据通路模块,数据通路是CPU中的执行部件,数据传输、存储、处理都是在数据通路中完成的。

在整个CPU的结构框图中,除了控制单元部分,其余部分都是数据通路部分,包括程序计数器PC、程序存储器PC_RAM、指令寄存器IR、寄存器堆TRAM、数据选择器ALUMUX和算术与逻辑单元ALU。

设计数据通路,有两种不同的设计方案。

第一种是在所有需要传送数据的部件创建一条直接通路,采用多路选择器或者缓冲器为那些有多个数据源的寄存器从多个可能的输入中选择一个,这种方案适用于规模比较小的微处理器设计。

另一种方案是在微处理器内部创建一条总线,并且在各个部件之间使用总线传数据。

本设计采用的是第一种方案的设计方法。

下面将一一介绍数据通路的各个模块功能及其实现。

3.1程序计数器模块PC

程序计数器(PC)作为指向指令地址“指针”,决定着下一条要执行的指令。

正是有了PC的移动和变化,CPU才能按一定的顺序或预想的情况进行指令的执行。

程序计数器PC中存放指令存储器的地址,当一条指

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2