简单CPU系统设计与实现.doc

简单CPU系统设计与实现.doc

ID:51845594

大小:2.17 MB

页数:30页

时间:2020-03-16

简单CPU系统设计与实现.doc_第1页
简单CPU系统设计与实现.doc_第2页
简单CPU系统设计与实现.doc_第3页
简单CPU系统设计与实现.doc_第4页
简单CPU系统设计与实现.doc_第5页
资源描述:

《简单CPU系统设计与实现.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、北京邮电大学数字电路与逻辑设计实验报告数字电路综合实验报告简单CPU系统设计与实现1设计课题的任务要求设计一个简单的CPU及其外部模块,能够完成机器代码的输入、存储、执行和结果显示。基本要求:指令要求至少有空指令,跳转指令,加法指令,存取数据指令。利用自己设计的指令系统编写一段机器语言,可以完成求两个小于256的数的最大公约数。北京邮电大学数字电路与逻辑设计实验报告机器语言通过拨码开关和按键逐条输入,通过程序执行开关控制程序执行,最后在数码管或LED灯上显示结果。提高要求:设计并实现其它指令。2系统设计2.1设计思路设计的简易CPU系统主要由指令存储器(可以通过拨码和按键读入指令)、

2、控制器、内部寄存器、内存以及ALU构成。设计过程重点考虑如下事项:读/写寄存器,读/写存储器以及执行指令。通过执行读入的指令以及编写好的求两个数的最大公约数的程序来测试该系统的功能。2.2总体框图2.2.1系统总体框图由设计思路,可绘制如下的简单CPU系统总体框图:最终在quartusII中连接好的CPU系统图如下所示(其中的ACC属于ALU部件):北京邮电大学数字电路与逻辑设计实验报告2.2.2系统状态转移图北京邮电大学数字电路与逻辑设计实验报告录入指令开始执行指令指令执行结束,等待再次执行或等待录入指令如上图,系统共有3个状态:S0、S1、S2。分别为S0:在这一状态,通过拨码和

3、按键录入要执行的指令。S1:在这一状态,CPU执行程序,即S0录入的指令。S2:在这一状态,CPU执行完全部程序,等待再次执行或等待录入指令。2.2.3求解最大公约数的程序框图设a,b为给定的两个整数,用辗转相减法求解他们的最大公约数:北京邮电大学数字电路与逻辑设计实验报告开始a<=a-b成立判断:a=0是否成立?不成立判断:a>b是否成立?成立不成立b为所求最大公约数。程序结束a、b交换北京邮电大学数字电路与逻辑设计实验报告2.3分块设计2.3.1DIV(分频器)DIV将电路板所提供的时钟分频,产生CPU工作所需要的时钟以及数码管扫描所需要的时钟。2.3.2MCU(控制器)MCU用

4、来产生系统内部所有寄存器、运算单元所需的控制信号,以及执行各条指令所需要的微操作。它是整个系统设计的核心所在。2.3.3ALU(算术逻辑运算单元)ALU完成数据的算术和逻辑运算。ALU有5个输入端和2个输出端,其中一个操作数固定来自累加器acc(具体编程时可用变量或信号表示),另一个操作数来自端口mbr_in(通过数据总线接到寄存器MBR)。参加运算的操作数在ALU中进行规定的操作运算,运算结束后,一方面将结果送至累加器,同时将操作结果的特征状态送标志寄存器。北京邮电大学数字电路与逻辑设计实验报告2.3.4MAR(地址寄存器)MAR存放着要被读取或写入的内存单元地址。其中,读操作时,

5、CPU从内存读。而写操作时,CPU把数据写入内存。2.3.5MBR(缓冲寄存器)MBR存放了将要存储到内存的数据或者从内存中读取的最新数据。MBR连接到系统总线中的地址总线。2.3.6RAM(随机存取存储器)北京邮电大学数字电路与逻辑设计实验报告RAM有着相对独立的输入输出管脚,在本系统设计中它作为内存使用。它不是CPU内部的寄存器,不属于CPU的一部分。但要测试所设计的CPU的性能,需要把RAM加进系统设计中。2.3.7SMG(数码管显示)SMG负责将运算结果转化为BCD码形式,然后用数码馆显示。3仿真波形及波形分析北京邮电大学数字电路与逻辑设计实验报告根据波形图可以看出状态机的运

6、行,其中一个状态占两个时钟周期。该仿真相当于CPU执行指令的时序图,反映了程序运行情况。还包括了辗转相减法的仿真,和rst的清零仿真。可以看出该CPU系统的仿真结果正确,达到下载的要求。北京邮电大学数字电路与逻辑设计实验报告4源程序(含注释)各个部件对应的源程序如下(最后的连接是用图形连接完成的):4.1DIV(分频器)libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityDIVisport(clk_in:instd_logic;clk_out1:outstd_logic;clk_out

7、2:outstd_logic);endDIV;北京邮电大学数字电路与逻辑设计实验报告architecturebehaveofDIVissignaltmp:std_logic_vector(15downto0);beginprocess(clk_in,tmp)beginif(clk_in'eventandclk_in='1')thentmp<=tmp+1;endif;clk_out1<=tmp(0);clk_out2<=tmp(1);endprocess;e

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。