计算机设计与实践CPU设计报告(内含详细说明及各模块源码)
北邮程序设计实践报告(计算器)附源代码
程序设计实践设计报告课题名称:计算器设计学生姓名:班级:班内序号:学号:日期:2014年5月10日星期六1.课题概述1.1课题目标和主要内容本案例以编写基于MFC的简易计算器软件为例,通过学习MFC事件驱动机制、MFC界面设计、MFC控件使用,并掌握MFC应用程序的设计方法,独立完成一个MFC的一个MFC的应用程序。
本案例的重点是学习如何使用MFC基本控件和事件驱动机制完成一个Windows下交互式应用软件。
本次实验所用的开发平台为Visual Studio 2008。
1.2系统的主要功能基本功能单击数字键,显示当前数值单击“+”、“-”、“*”、“/”建进行运算单击“=”,显示运算结果单击“C”,清楚已有结果进行连续四则运算扩展功能进行浮点运算进行平方、绝对值、倒数运算进行三角函数运算2. 系统设计2.1 系统总体框架2.2 系统详细设计[1] 模块划分图及描述(1)对话框:此模块实现的是与用户的交互,本案例使用了两类控件:编辑框和按钮。
(2)事件驱动函数:例如:void CcalculatorDlg::OnBnClickedBtn1(){// TODO: 在此添加控件通知处理程序代码ClickNum("1");}此模块处理的是程序如何响应鼠标的单击,主要由消息映射和消息处理函数两部组成。
(3)运算函数:例如:void CcalculatorDlg::Compute(char chOper){UpdateData(TRUE);m_nTemp2=(float)atof(m_strResult);switch(chOper){case'+':m_nTemp2=m_nTemp1+m_nTemp2; break;case'-':m_nTemp2=m_nTemp1-m_nTemp2; break;case'*':m_nTemp2=m_nTemp1*m_nTemp2; break;case'/':m_nTemp2=m_nTemp1/m_nTemp2; break;case'%':{int n1=(int)m_nTemp1;int n2=(int)m_nTemp2;m_nTemp2=(float)(n1%n2); break;}case'=':m_nTemp2=m_nTemp1; break;}m_nTemp1=m_nTemp2;m_strResult.Format("%f",m_nTemp2);m_IsFirstNum=TRUE;UpdateData(FALSE);}此模块是本实验的核心内容,它控制着整个程序的逻辑功能,它所实现的主要是逻辑运算以及数据交换。
计算机硬件课程设计报告(cpu设计)
计算机硬件课程设计设计报告学号: 姓名:成绩:学号: 姓名:成绩:东南大学计算机科学与工程系二0 10 年11 月一、设计名称:My CPU的设计二、本设计的主要特色:1、熟悉挂总线的逻辑器件的特性和总线传送的逻辑实现方法。
2、掌握半导体静态存储器的存取方法。
三、设计方案:1. 数据格式——8位二进制定点表示2. 指令系统——CPU的指令格式尽量简单规整,这样在硬件上更加容易实现。
7条基本指令:输入/输出,数据传送,运算,程序控制。
指令格式:Array7 6 5 4 3 2 1 0两种寻址方式:寄存器寻址Array7 6 5 4 3 2 1 0直接地址寻址,由于地址要占用一个字节,所以为双字节指令。
7条机器指令:IN R目:从开关输入数据到指定的寄存器R目。
OUT R源:从指定的寄存器R源中读取数据送入到输出缓冲寄存器,显示灯亮。
ADD R目,R源:将两个寄存器的数据相加,结果送到R目。
JMP address : 无条件转移指令。
HALT : 停机指令。
LD R目,address : 从内存指定单元中取出数据,送到指定寄存器R 目。
ST address , R 源: 从指定的寄存器R源中取出数据,存入内存指定单元。
Address(内存地址)3. CPU内部结构4.数据通路设计根据指令系统,分析出数据通路中应包括寄存器组、存储器、运算器、多路转换器等,采用单总线结构。
通用寄存器组:运算器:存储器:多路转换器:输出缓冲器:5.控制器设计控制通路负责整个CPU的运行控制,主要由控制单元和多路选择器MUX 完成。
在每一个时钟周期的上升沿指令寄存器IR 从内存中读取指令字后,控制单元必须能够根据操作码,为每个功能单元产生相应主控制信号,以及对ALU 提供控制信号。
对于不同的指令,同一个功能单元的输入不同,需要多路选择器MUX 来对数据通路中功能单元的输入进行选择。
程序计数器PC:指令寄存器IR:指令译码电路:脉冲源及起停控制线路:时序信号产生部件:Sequence1内部电路:四、完成的任务1、补充了译码电路;2、修改了时序电路,满足教材要求;3、编写指令的微程序;指令的微程序lodpc (1000 0000):C00100 310080送数(1100 0000):30C000 C00400 010080取值公操作(0000 0000):30C000 002000IN (0001 0000):C00200 111080OUT (0010 0000):110880LD (0011 0000):30C000 008000 001200 111080 ST (0100 0000):30C000 008000 110C080ADD (0101 0000):181000 160800 400200 111080 JMP (0110 0000): 30C000 000100 310080HALT (0111 0000):0000404、建立RAM.mif中的内容;RAM中内容简要介绍:地址指令E0 IN R0//向R0里放入数据20E1 LD //从指定存储单元30取出数据03放到R1中E3 OUT //将R1中的数据输出出来E4 ADD R0,R1//将R0和R1相加结果放入到R0中E5 OUT //把相加结果23输出E6 JMP //跳转到F0F0 ST //将R0里的数据存入指定单元20中F2 LD //将20中的数据取出放入R3中F4 OUT //将R3中的数据取出F5 HALT //停机指令5、测试结果与性能分析。
cpu报告
计算机设计与实践CPU设计报告班级:1203103学号:1120310312姓名:孙艳铎一.实验目的1、掌握Xilinx ISE集成开发环境和ModelSim仿真工具的使用方法。
2、掌握VHDL语言。
3、掌握FPGA编程方法及硬件调试手段。
4、深刻理解处理器结构和计算机系统的整体工作原理。
二.实验环境1、Xilinx ISE 9.1i集成开发环境2、MOdelSim XE II v5.6a仿真工具3、COP2000系统实验平台三.实验内容及要求根据计算机组成原理课程所学的知识和本课程所讲的设计思想,设计并实现一个给定指令系统的处理器,包括VHDL语言的实现和FPGA芯片的编程实现,为以后应用和设计处理器系统打下基础。
本实验的任务是设计一个简单的RISC处理器,该处理器是在给定的指令集下构建的,支持十条指令。
假定主存可以在一个时钟周期内完成一次存取操作,而且可以和CPU同步工作。
系统使用一个主存单元:指令读取和数据访问都使用同一组存储器。
处理器的指令字长和指令寄存器IR长度自定,CPU包含8个8位通用寄存器R0~R7,和1个16位的程序计数器PC。
取指令时,可以直接从主存中提取16位的指令信息,而进行数据访问时,与主存进行8位的数据交换。
处理器的地址总线宽度是16位,数据总线宽度也是16位,无论是取指还是数据访问,都使用同一组数据总线,只是数据信息的宽度不同。
处理器所支持的指令包括LDA,STA,MOV,MVI,ADD,SUB,JZ,JMP,IN,OUT。
其中仅有LDA和STA是访存指令,所有的存储器访问都通过这两条指令完成;ADD 和SUB是运算指令,MOV和MVI是传数指令,他们都在处理器内部完成;JZ 是跳转指令,根据寄存器的内容进行绝对跳转;JMP是无条件转移指令;IN和OUT是输入输出指令,所有I/O端口与CPU之间的通信都由IN和OUT指令完成。
要求根据给定的指令系统设计处理器,包括指令格式设计、微操作的定义、节拍的划分、VHDL语言的实现及FPGA编程实现。
CPU设计报告
32位CPU本CPU是32位CPU,具有32个通用寄存器,指令包括算术加减,与或非,逻辑比较,无条件跳转以及条件跳转,内存加载与存储,体系结构属于RISC体系结构。
内部结构如下,具有两条5级的并行流水线A和B,在A中内嵌有一个执行16周期的串行乘法器,能够执行两个16位无符号数乘法运算,能够响应外部中断并执行相应中断服务程序和中断返回。
软件指令方面,扩展了指令集,所有算术指令和逻辑指令都支持第二个操作数为立即数。
跳转指令除了能够跳到一个立即数表示的偏移地址外,还能够跳转到某个寄存器里面的地址。
硬件整体结构如下:下面将仔细说明各个模块的功能:数据通路整体说明:取数:指令预取于发送部件将指令发送到取数部件,取数部件根据译码结果以及前向数据通道给出的信号决定是取立即数,寄存器堆输出或者前向数据通道给出的数据。
执行:取数完成后,在下一个周期流到执行部件,算术和逻辑运算指令通过ALU 得到结果,访存指令读或写内存,跳转指令算出新的PC 地址,乘法指令将被乘数和乘数打入到乘法器的两个输入寄存器。
写回:执行完成后,在下一个时钟上升沿将结果以及本级IR 和ID 送往写回部件,写回部件将要写的寄存器号和写使能信号送往寄存器堆,在下一个时钟上升沿将数据写入寄存器堆。
A流水线 B流水线指令的预取与发送:(”IRLoader.v”):输入数据与控制信号:输出数据:功能:自动加载程序PC,LdPc有效时,给出的是两条空指令。
若Read1或Read2无效,则送往A或B的是空指令。
同时自动将乘法指令送往A流水线,将访存和跳转指令送往B 流水线。
内部核心部件:8个寄存器的指令队列,同时在某个3位的数据InsAdr标志最后一条指令在队列中地址。
另外一个Flag[7:0]标志当前要写的寄存器,高电平有效。
每次根据发送指令的条数和从内存中读取得条数(2)来决定InsAdr的改变(可以改变-2,-1,0,1,2)。
在加载新PC的同时将队列清空,另外,只有当队列中指令数目〉=2才能读取地址是否加8【译码器】-“INS_DECODER.v”输入为6位指令操作码INS_OP[5:0],输出有指令译码ID[15:0]、ALU操作码ALU_OP[3:0]、寄存器或立即数标志RI。
cpu设计实验报告
cpu设计实验报告CPU设计实验报告1. 引言计算机是现代社会不可或缺的工具,而中央处理器(CPU)则是计算机的核心组件之一。
本实验旨在设计和实现一个简单的CPU,以加深对计算机组成原理的理解,并通过实践掌握CPU的基本工作原理。
2. CPU设计概述我们的CPU设计基于冯·诺依曼结构,包括指令寄存器(IR)、程序计数器(PC)、算术逻辑单元(ALU)和寄存器文件等关键组件。
CPU的指令集采用RISC(精简指令集计算机)风格,指令长度为32位。
3. 指令集设计我们设计了一套简单的指令集,包括算术运算指令(加法、减法、乘法、除法)、逻辑运算指令(与、或、非)以及数据传输指令(加载、存储)。
指令的格式包括操作码、源操作数和目标操作数。
4. 寄存器文件设计寄存器文件是CPU中用于存储数据的重要组件。
我们设计了一个包含8个通用寄存器的寄存器文件,每个寄存器的宽度为32位。
通过寄存器文件,CPU能够高效地进行数据的读取和存储。
5. 控制单元设计控制单元是CPU中的重要模块,负责解析指令并控制各个组件的操作。
我们设计了一个简单的控制单元,使用有限状态机(FSM)来实现指令的解析和控制信号的生成。
控制单元根据指令的操作码,决定对应的操作,并将操作所需的控制信号发送给其他组件。
6. 数据通路设计数据通路是CPU中各个组件之间的数据传输路径。
我们设计了一个简单的数据通路,包括指令寄存器、程序计数器、寄存器文件、算术逻辑单元等。
数据通路能够将指令中的操作数从寄存器文件中读取出来,并将运算结果写回到寄存器文件。
7. CPU实现与验证我们使用硬件描述语言(HDL)对CPU进行实现,并通过仿真和测试验证其正确性。
通过编写测试程序,我们能够对CPU的各个指令进行测试,并检查其运行结果是否符合预期。
8. 结果与分析经过测试,我们的CPU能够正确执行设计的指令集,并产生正确的运算结果。
通过性能测试,我们还评估了CPU的运行速度和效率,并与其他现有的CPU进行了比较。
CPU实验报告范文
CPU实验报告范文一、实验目的本次实验的目的是设计和实现一个简单的中央处理器(CPU),通过实践掌握CPU的基本工作原理和实现方法。
二、实验原理1.CPU的基本概念中央处理器(CPU)是计算机的核心部件,负责执行计算机指令和控制计算机的操作。
它由运算器、控制器和寄存器组成。
运算器负责执行算术和逻辑运算,包括加法、减法、乘法、除法等。
控制器负责指挥CPU的工作,通过控制总线实现对内存和其他外部设备的访问。
寄存器是CPU内部的存储器,用于暂时存放指令、数据和中间结果。
2.CPU的实现方法CPU的实现采用组合逻辑电路和时序逻辑电路相结合的方法。
组合逻辑电路是由逻辑门构成的电路,它的输入只依赖于当前时刻的输入信号,输出也只与当前时刻的输入信号有关。
而时序逻辑电路则包含存储元件,其输出不仅与当前时刻的输入信号有关,还与之前的输入信号有关。
CPU的实现过程主要包括以下步骤:(1)设计指令集:确定CPU支持的指令集,包括指令的格式和操作码。
(2)设计控制器:根据指令集设计控制器,确定各个指令的执行过程和控制信号。
(3)设计运算器:根据指令集设计运算器,确定支持的算术和逻辑运算。
(4)设计寄存器:确定需要的寄存器数量和位数,设计寄存器的输入输出和工作方式。
3.实验环境和工具本次实验使用的环境和工具如下:(1)硬件环境:计算机、开发板、示波器等。
(2)软件环境:Win10操作系统、Vivado开发工具等。
三、实验步骤1.设计指令集根据实验要求,我们设计了一个简单的指令集,包括加法、减法、逻辑与、逻辑或和移位指令。
每个指令有特定的操作码和操作数。
2.设计控制器根据指令集设计了一个控制器。
控制器根据指令的操作码产生相应的控制信号,控制CPU内部寄存器、运算器和总线的操作。
3.设计运算器根据指令集设计了一个运算器。
运算器包括加法器、减法器、与门和或门等。
它通过输入的操作数和控制信号完成相应的运算操作。
4.设计寄存器根据实验需求确定了所需的寄存器数量和位数。
计算机组成原理CPU设计实验报告
计算机组成原理CPU设计实验报告课程设计题目:16位CPU设计学院: 信息学院班级:电子A班学号:1115102015姓名:方茹1目录1 实验方法 ..................................................................... . (4)2 总体说明 ..................................................................... ................................................. 5 2.1指令系统: .................................................................... .......................... 5 2.1.1指令格式分类(按指令字长和操作数不同): ...................................................... 5 2.1.2具体指令汇总表: .................................................................... .......................... 6 2.1.3相关指令流程图: .................................................................... .......................... 6 2.1.4指令数据通路的构建: .................................................................... ................... 8 2.1.5指令的分组及节拍: .................................................................... ..................... 12 2.1.6指令执行状态图:(见下页)..................................................................... ........... 13 2.1.7具体微指令: .................................................................... ............................... 13 2.2 系统整体介绍 ..................................................................... .................. 16 2.2.1系统基本模块划分 ..................................................................... ....................... 16 2.2.2总体结构图:(见下页)..................................................................... (17)3 CPU的控制逻辑与具体数据通道设计 ..................................................................... ......18 3.1取指令逻辑的设计 ..................................................................... .. (19)3.1.1指令地址的保存 ..................................................................... (19)3.1.2指令存储器 ..................................................................... .................................. 20 3.1.3下一条指令地址的计算 ..................................................................... ................ 20 3.2指令译码逻辑的设计...................................................................... ...................... 21 3.3指令执行逻辑的设计...................................................................... ...................... 22 3.4存储器访问逻辑的设计 ..................................................................... ................... 23 3.5结果写回逻辑的设计...................................................................... ...................... 24 3.6单周期CPU的总成...................................................................... (25)4各部分说明 ..................................................................... .............................................26 4.1ALU .................................................................................................................... 26 4.2数据选择器BUS_MUX ................................................................ ........................ 28 4.3器件T1 ..................................................................... .......................................... 30 4.4标志寄存器FLAG_REG ............................................................... ........................ 31 4.5T2: .................................................................... ................................................ 33 4.6程序计数器PC ..................................................................... ............................... 33 4.7地址寄存器AR和指令寄存器IR: .................................................................... .. 34 4.8寄存器、寄存器组和寄存器的选择.......................................................................36 4.9一位控制信号/WR .................................................................... ........................... 37 4.10 节拍发生器 ..................................................................... .................................. 37 4.11控制逻辑 ..................................................................... ...................................... 39 4.12T3...................................................................... ................................................ 42 4.13REG_OUT ......................................................................................................... 43 4.14存储器 ..................................................................... .......................................... 44 4.15总线选择器 ..................................................................... .. (45)24.16REG_TEST ............................................................... .. (46)5附录: .................................................................... .. (47)附录A:组员分工: .................................................................... .. (47)附录B:组员设计总结: .................................................................... . (47)31 实验方法实验要完成的工作主要包括:指令系统的设计,FPGA-CPU的整体结构设计及其细化,逻辑设计的具体实现(VHDL语言程序的编写),软件模拟,以及硬件调试。
cpu设计报告
Z0
以下是带符号数乘法器的代码,其中前半部分用与非门实现,后半部分经过逻辑综合后得到结果。
modulemul_signed(a,b,z);
input[15:0]a,b;
output[31:0] z;
reg[15:0]a_bi[15:0];
integeri,j;
always@ * begin
for(i=0;i<15;i=i+1)
+p[i]p[i-1]g[i-2]
+……
+p[i]p[i-1]……p[1]c[0]
+ p[i]p[i-1]……p[1]p[0]c[0]
从理论上来讲,由c[i+1]的表达式可以并行产生所有位的进位输入,但是这样的电路太复杂,难以实现。所以采用了树形结构来分层次产生进位。
首先是一位加法器的代码,除了产生一位加法结果s外,还生成进位产生的函数g和进位传递函数p。一位加法器和GP生成器代码如下:
modulecla_2 (a,b,c_in,g_out,p_out,s);
input[1:0]a,b;
inputc_in;
outputg_out,p_out;
output[1:0] s;
wire[1:0]g,p;
wirec_out;
add add0 (a[0],b[0],c_in, g[0],p[0],s[0]);
endmodule
六、指令系统
本CPU部分指令如下(有一些是我自己用来调试的指令,在此就不列举了):
000000
Rs
rt
rd
00000
100000
寄存器加
000000
Rs
Rt
Rd
(完整word版)计算机组成原理实验报告-单周期CPU的设计与实现
电子科技大学计算机科学与工程学院标准实验报告(实验)课程名称:计算机组成原理实验电子科技大学教务处制表1个时钟周期Clock电 子 科 技 大 学实 验 报 告学生姓名: 郫县尼克杨 学 号: 2014666666666 指导教师:陈虹 实验地点: 主楼A2—411 实验时间:12周—15周一、 实验室名称:主楼A2—411二、 实验项目名称:单周期CPU 的设计与实现。
三、 实验学时:8学时四、 实验原理:(一) 概述单周期(Single Cycle )CPU 是指CPU 从取出1条指令到执行完该指令只需1个时钟周期.一条指令的执行过程包括:取指令→分析指令→取操作数→执行指令→保存结果。
对于单周期CPU 来说,这些执行步骤均在一个时钟周期内完成.(二) 单周期cpu 总体电路本实验所设计的单周期CPU 的总体电路结构如下。
(三) MIPS 指令格式化MIPS 指令系统结构有MIPS —32和MIPS-64两种.本实验的MIPS 指令选用MIPS-32。
以下所说的MIPS 指令均指MIPS-32.MIPS 的指令格式为32位。
下图给出MIPS 指令的3种格式。
本实验只选取了9条典型的MIPS 指令来描述CPU 逻辑电路的设计方法.下图列出了本实验的所涉及到的9条MIPS 指令。
26 312521 2016 1511 106 5oprsrtrd sa funcR 型指令26 312521 2016 15oprs rt immediateI 型指令26 3125op addressJ 型指令五、实验目的1、掌握单周期CPU的工作原理、实现方法及其组成部件的原理和设计方法,如控制器、运算器等。
2、认识和掌握指令与CPU的关系、指令的执行过程。
3、熟练使用硬件描述语言Verilog、EDA工具软件进行软件设计与仿真,以培养学生的分析和设计CPU的能力。
六、实验内容(一)拟定本实验的指令系统,指令应包含R型指令、I型指令和J型指令,指令数为9条.(二)CPU各功能模块的设计与实现.(三)对设计的各个模块的仿真测试。
计算机组成原理CPU设计实验报告
计算机组成原理专题实验报告——CPU设计指导教师姜欣宁小组成员列表成员姓名学院班级学号教师评分组长冯福力电信计算机75班07055111组员王智电信计算机75班07055123组员杜建营电信计算机75班07055110组员沈培均电信计算机75班07055121组员刘大方电信计算机75班06055118完成时间:2010年4月23日目录1 实验方法 (4)2 总体说明 (5)2.1指令系统: (5)2.1.1指令格式分类(按指令字长和操作数不同): (5)2.1.2具体指令汇总表: (6)2.1.3相关指令流程图: (7)2.1.4指令数据通路的构建: (8)2.1.5指令的分组及节拍: (11)2.1.6指令执行状态图:(见下页) (12)2.1.7具体微指令: (12)2.2 系统整体介绍 (15)2.2.1系统基本模块划分 (15)2.2.2总体结构图:(见下页) (16)3 CPU的控制逻辑与具体数据通道设计 (17)3.1取指令逻辑的设计 (18)3.1.1指令地址的保存 (18)3.1.2指令存储器 (19)3.1.3下一条指令地址的计算 (19)3.2指令译码逻辑的设计 (20)3.3指令执行逻辑的设计 (21)3.4存储器访问逻辑的设计 (22)3.5结果写回逻辑的设计 (23)3.6单周期CPU的总成 (24)4各部分说明 (25)4.1 ALU (25)4.2数据选择器BUS_MUX (27)4.3器件T1 (29)4.4标志寄存器FLAG_REG (30)4.5 T2: (32)4.6程序计数器PC (33)4.7地址寄存器AR和指令寄存器IR: (33)4.8寄存器、寄存器组和寄存器的选择 (35)4.9一位控制信号/WR (37)4.10 节拍发生器 (37)4.11控制逻辑 (39)4.12 T3 (41)4.13 REG_OUT (43)4.14存储器 (43)4.15总线选择器 (45)4.16 REG_TEST (45)5附录: (46)附录A:组员分工: (46)附录B:组员设计总结: (46)1 实验方法实验要完成的工作主要包括:指令系统的设计,FPGA-CPU的整体结构设计及其细化,逻辑设计的具体实现(VHDL语言程序的编写),软件模拟,以及硬件调试。
cpu设计实验报告
cpu设计实验报告CPU设计实验报告摘要:本实验旨在设计一个基本的中央处理器(CPU),并通过实验验证其性能和功能。
在设计过程中,我们使用了Verilog硬件描述语言和ModelSim仿真工具。
通过对CPU的设计和仿真实验,我们验证了CPU的正确性和性能,并对其进行了性能分析和优化。
1. 引言CPU是计算机系统中最核心的部件之一,它负责执行计算机指令和控制数据流动。
因此,设计一个高效、稳定的CPU对于计算机系统的性能至关重要。
本实验旨在通过Verilog硬件描述语言和ModelSim仿真工具,设计一个基本的CPU,并验证其性能和功能。
2. 设计过程我们首先对CPU的功能和性能进行了分析和规划,确定了CPU的基本架构和指令集。
然后,我们使用Verilog语言编写了CPU的硬件描述,并通过ModelSim进行了仿真验证。
在设计过程中,我们重点关注了CPU的时序逻辑、数据通路和控制逻辑,确保CPU能够正确地执行指令并保持稳定的性能。
3. 实验结果通过对CPU的设计和仿真实验,我们验证了CPU的正确性和性能。
我们使用了一系列的测试用例对CPU进行了功能和性能测试,并对其进行了性能分析和优化。
实验结果表明,我们设计的CPU能够正确地执行各种指令,并在性能上达到了预期的目标。
4. 总结和展望本实验通过Verilog硬件描述语言和ModelSim仿真工具,设计并验证了一个基本的CPU。
通过实验,我们对CPU的设计和性能有了更深入的了解,并对其进行了性能分析和优化。
未来,我们将进一步完善CPU的设计,提高其性能和功能,以满足计算机系统的需求。
综上所述,本实验为我们提供了一个宝贵的机会,通过实际设计和验证,深入了解了CPU的工作原理和性能特点,为我们今后的学习和研究打下了坚实的基础。
希望通过不懈的努力,我们能够设计出更加高效、稳定的CPU,为计算机系统的发展做出更大的贡献。
CPU设计实验报告
数字逻辑与处理器基础实验32位mips cpu设计综述:我们的最后验收结果时钟频率是84.9mhz。
本实验报告主要分为实验设计说明与实验收获总结两个部分。
附件中有cpu工程文档与模块代码。
第一部分实验设计一、 alu设计1、设计思路实现基本的算术、逻辑、关系、位与移位运算,尽量优化以达到最小的面积延时积。
结构图如下:主要设计思想:a. 加法运算实现可以采用逐次进位、超前进位等结构,减法可以通过加法实现(参见见面理论课讲义或者前面实验);同时输出z(结果为零)、v(结果溢出)、n (结果为负)等标志位,注意有符号数和无符号数标志产生的不同。
b. 比较运算根据减法运算的结果(z/v/n)产生,自行分析比较操作与算术运算之间的关系。
c. 移位运算可以考虑将移位操作拆分为16 位移位、8 位移位、4 位移位、2 位移位、1位移位等几个子运算的组合,然后级联形成最后的运算结果。
d. 逻辑运算可以根据要求直接产生。
功能表接口说明2、主要模块a) 32bit加法器采用8个4bit超前进位加法器极连的方式,构成32bit加法器。
对于逸出位v的处理如下:由有符号数的性质可知,对最高位32和次高位31位取抑或,输出信号则为是否逸出。
对32位运算结果取反后,再对相邻两位反复取与,最终得到结果是否为零的输出z.如果是有符号数,则符号位=n。
由于这一方法部分程度上减弱了高位计算对低位计算的依赖程度,因此可以实现延时的降低。
同时,由于其超前进位网络的大量逻辑运算,较大程度上提升了电路的面积,造成最终的面积延时积特性恶化。
关键代码见附录1 b) 32bit减法器对加法器按位取反,再加一。
关键代码见附录1 c) 32bit 右移 32bit 左移 32bit 算术右移将移位操作拆分为16 位移位、8 位移位、4 位移位、2 位移位、1位移位等几个子运算的组合,然后级联得到最后的运算结果。
关键代码见附录1 d) 32bit 逻辑比较单元采用行为级语句直实现逻辑比较功能。
CPU处理器实验设计实验报告
“计算机设计与实践”处理器实验设计报告目录一:实验目的 (2)二:实验环境 (2)三:设计思想 (2)1、CPU接口信号定义 (2)2、CPU设计方案 (3)四:实验设计及测试 (15)1、各模块设计及测试 (15)波形仿真 (15)2、整体的设计及测试 (19)波形仿真 (19)五:下载 (21)六:遇到的问题及解决方法 (25)七:实验体会 (25)一:实验目的1.掌握Xilinx ISE集成开发环境使用方法2.掌握VHDL语言3.掌握FPGA编程方法及硬件调试手段4.深刻理解处理器结构和计算机系统的整体工作原理二:实验环境Xilinx ISE集成开发环境,ModelSim或ISim仿真工具、COP2000实验平台或SD2100数字逻辑设计实验平台或Diligent Nexys3开发板。
三:设计思想1、C PU接口信号定义2、 C PU 设计方案① 指令格式设计1.2. 其他指令15 11 10 28 7 031511 10 8 7 0②微操作定义③节拍划分④各模块设计a)时钟模块模块示意图:模块功能:产生4个节拍,其中,当rst=1时,节拍跳转到T3,并将pc置0.接口说明:信号名位数方向来源/去向备注Clk1I处理器板系统时钟Rst1I处理器板高电平复位T4O取址,运算,4个节拍存储,回写模块b)取指模块模块示意图:模块功能:从内存取出指令。
Rst=1时,pc置0.取出的IR传送给运算,存储,回写模块提供数据,当IRreq=1时,开始从内存取出指令。
当pcupdate=1时,pc接收pcnew的数据,更新pc。
信号名位数方向来源/去向备注T01I时钟模块第一节拍T11I时钟模块第二节拍Rst1I处理器板高有效复位信号PCupdate1I回写模块PC更新信号PCnew16I回写模块PC更新值IRnew16I存储控制模块IR更新值IRreq1O取址模块IR允许信号IR16O存储控制模块导出IR到其他模块PC16O取址模块PC到运算模块c)运算模块模块示意图:模块功能:进行各种运算,并产生进位信号cy和零信号z。
简单CPU系统设计与实现
数字电路综合实验报告简单CPU系统设计与实现1设计课题的任务要求设计一个简单的CPU及其外部模块,能够完成机器代码的输入、存储、执行和结果显示。
基本要求:指令要求至少有空指令,跳转指令,加法指令,存取数据指令。
利用自己设计的指令系统编写一段机器语言,可以完成求两个小于256的数的最大公约数.机器语言通过拨码开关和按键逐条输入,通过程序执行开关控制程序执行,最后在数码管或LED灯上显示结果。
提高要求:设计并实现其它指令。
2系统设计2.1 设计思路设计的简易CPU系统主要由指令存储器(可以通过拨码和按键读入指令)、控制器、内部寄存器、内存以及ALU构成。
设计过程重点考虑如下事项:读/写寄存器,读/写存储器以及执行指令。
通过执行读入的指令以及编写好的求两个数的最大公约数的程序来测试该系统的功能。
2。
2总体框图2。
2.1系统总体框图由设计思路,可绘制如下的简单CPU系统总体框图:最终在quartusII中连接好的CPU系统图如下所示(其中的AC C属于ALU部件):2.2。
2 系统状态转移图如上图,系统共有3个状态:S0、S1、S2.分别为S0:在这一状态,通过拨码和按键录入要执行的指令.S1:在这一状态,CPU执行程序,即S0录入的指令.S2:在这一状态,CPU执行完全部程序,等待再次执行或等待录入指令.2。
2。
3 求解最大公约数的程序框图设a,b为给定的两个整数,用辗转相减法求解他们的最大公约数:2。
3 分块设计2.3。
1 DIV(分频器)DIV将电路板所提供的时钟分频,产生CPU工作所需要的时钟以及数码管扫描所需要的时钟.2.3。
2MCU (控制器)MCU用来产生系统内部所有寄存器、运算单元所需的控制信号,以及执行各条指令所需要的微操作。
它是整个系统设计的核心所在。
2。
3.3 ALU(算术逻辑运算单元)ALU完成数据的算术和逻辑运算.ALU有5个输入端和2个输出端,其中一个操作数固定来自累加器acc(具体编程时可用变量或信号表示),另一个操作数来自端口mbr_in(通过数据总线接到寄存器MBR)。
计算机设计与实践 CPU 实验报告(内含详细代码)
CPU实验报告一.设计概况本次试验要完成的工作主要包括:指令系统的设计,CPU的整体结构设计及其细化,逻辑设计的具体实现,软件模拟,硬件调试。
试验的主要流程如下图所示:二.指令设计1.指令格式设计①单操作数指令OPCODE 000 X包括:JMP,JZ,JC②寄存器-寄存器指令OPCODE REG1 00000 REG2 包括:MOV,ADC,SBB,OR,AND③寄存器-立即数(地址)指令OPCODE REG DA TA包括:LDA,STA,MOV, ADC,SBB,OR,AND④其他类型指令OPCODE 00000000000包括:CLC,STC2.指令编码三.CPU逻辑设计1.CPU整体框图2.节拍设计一个周期采用四个节拍。
一个节拍完成取指。
第二个节拍完成运算。
第三个节拍访存。
第四个节拍回写。
3.数据流说明第一个节拍内,取指模块向访存控制发出访存信号,得到指令后,将指令保存在指令寄存器IR中,并将指令送往后面的运算模块,存储管理模块,回写模块。
同时将PC送入运算模块和回写模块。
第二个节拍内,运算管理模块将指令译码。
如果是存数指令,则将地址存入ADDR寄存器,数据存入DATA存储器,等待下一个节拍访存。
如果是取数指令,则将地址存入ADDR寄存器,等待下一个节拍访存。
如果是其他非访存指令,则将计算结果存入ALUOUT寄存器,送往存储管理模块的Rtemp寄存器。
第三个节拍内,存储管理模块将指令译码。
如果是存数指令,则向访存控制模块发出访存信号,则将第二个节拍内存好的ADDR寄存器的内容作为地址,把DATA寄存器里面的数据存入存储器对应的位置。
如果是取数指令,则将第二个节拍内存好的ADDR寄存器的内容作为地址,从存储器对应的位置取出数据,存入Rtemp存储器,并送往回写模块。
如果是其他非访存指令,则将Rtemp寄存器里的内容直接送往回写模块。
第四个节拍内,回写模块先将指令译码。
根据指令将需要回写的数据回写近响应的寄存器,并将PC+1后回写至取指模块的PC寄存器。
CPU设计实验报告
实验中央处理器的设计与实现一、实验目的1、理解中央处理器的原理图设计方法..2、能够设计实现典型MIPS的11条指令..二、实验要求1、使用Logisim完成数据通路、控制器的设计与实现..2、完成整个处理器的集成与验证..3、撰写实验报告;并提交电路源文件..三、实验环境VMware Workstations Pro + Windows XP + Logisim-win-2.7.1四、操作方法与实验步骤1、数据通路的设计与实现数据通路主要由NPC、指令存储器、32位寄存器文件、立即数扩展部件、ALU、数据存储器构成..其中指令存储器和数据存储器可直接调用软件库中的ROM和RAM元件直接完成;其余部件的设计如图所示:图1.1 NPC图1.2 32位寄存器图1.3 立即数扩展部件图1.4 ALU2、控制器的设计与实现控制器的主要设计思想如图所示图2.1 控制器设计思想输入000000 001101 100011 101011 000100 000010输出R-type ORI LW SW BEQ JUMP RegDst 1 0 0 x x x ALUSrc 0 1 1 1 0 x MemtoReg0 0 1 x x x RegWrite 1 1 1 0 0 0 MemWrite0 0 0 1 0 0 Branch 0 0 0 0 1 0 Jump 0 0 0 0 0 1 Extop x 0 1 1 1 x ALUop2 1 0 0 0 0 x ALUop1 x 1 0 0 x x ALUop0 x 0 0 0 1 x ALUop2:0 Funct3:0 指令ALUctr2:0 111 0000 add 010111 0010 sub 110111 0100 and 000111 0101 or 001111 1010 slt 111010 xxxx ori 001000 xxxx Lw/sw 010011 xxxx beq 110表2.1 控制器设计真值表图2.2 控制器3、处理器的集成与验证集成:将各个部件按要求链接;具体方式如图所示:图3.1 CPU验证:将指令的16进制表示输入指令存储器;运行后记录寄存器中的数据与标准值进行对照:图3.2 寄存器对照值图3.3 寄存器实际运行值由上两图对照可得CPU的功能实现成功..。
cpu实验报告
cpu实验报告CPU实验报告引言计算机是现代社会不可或缺的工具,而中央处理器(CPU)则是计算机的核心。
CPU的性能直接影响着计算机的运行速度和效率。
为了深入了解CPU的工作原理和性能评估方法,我们进行了一系列的CPU实验。
本报告将详细介绍我们的实验过程、结果和分析。
实验一:CPU的组成与工作原理在第一个实验中,我们学习了CPU的基本组成和工作原理。
CPU由控制单元(CU)和算术逻辑单元(ALU)组成。
CU负责指令的解码和执行,而ALU则处理算术和逻辑运算。
我们通过拆解一台计算机,观察和研究了CPU的内部结构和连接方式。
我们还学习了指令集架构(ISA)和微指令的概念。
这个实验使我们对CPU的组成和工作原理有了更深入的理解。
实验二:CPU性能评估在第二个实验中,我们重点关注CPU的性能评估。
我们使用了一款性能评估工具,通过运行一系列的测试程序来测量CPU的性能。
我们评估了CPU的时钟频率、缓存大小和指令级并行性对性能的影响。
实验结果表明,时钟频率越高,CPU的运行速度越快。
增加缓存大小可以提高CPU的数据访问效率。
指令级并行性的优化也可以显著提升CPU的性能。
这个实验让我们了解了如何评估和优化CPU的性能。
实验三:CPU的架构设计在第三个实验中,我们设计了一款简单的CPU架构。
我们选择了精简指令集计算机(RISC)架构,因为RISC架构具有指令集简单、执行效率高的特点。
我们设计了CPU的指令集、寄存器组和数据通路,并使用硬件描述语言进行了模拟和验证。
通过这个实验,我们深入了解了CPU的架构设计原理和方法。
实验四:CPU的能耗优化在第四个实验中,我们研究了CPU的能耗优化方法。
我们使用了一款能耗监测工具,测量了CPU在不同负载下的能耗情况。
我们还尝试了一些能耗优化技术,如动态电压频率调整(DVFS)和低功耗模式。
实验结果显示,通过调整电压和频率,可以显著降低CPU的能耗。
低功耗模式也能有效减少CPU的能耗。
计算机设计与实践给定指令系统的 处理器设计实验报告
Reset 测试 ................................................................. 15 SUB 测试 ................................................................... 15 ADD 测试 ................................................................... 15 STA 和 LDA 测试 ............................................................. 16 MVI 测试 ................................................................... 16 MOV 测试 ................................................................... 17 IN 和 OUT 测试 .............................................................. 17 JMP 测试 ................................................................... 18 JZ 测试 .................................................................... 18 管脚定义与测试程序 ............................................................ 18 实验感悟与思考 ................................................................ 24 关于 PC 更新的问题 ............................................................ 24 关于数据总线与传输数据长度不匹配的问题 ....................................... 24 实验感悟 ..................................................................... 24
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Sbb Ri,Rj
10010
Reg(Ad1(IR))-Reg(Ad2(IR))-Reg(cy)->Reg(Ad1(IR))
9
And Ri,X
11000
Reg(Ad1(IR)) and Reg(Ad(IR))->Reg(Ad1(IR))
10
And Ri,Rj
10011
Reg(Ad1(IR)) and Reg(Ad2(IR))->Reg(Ad1(IR))
Reg(R0)//1->Reg(cy)
15
Jmp add
00000
Reg(R7)//Ad(IR)->PC
16
Jz sign
00001
Zero(Reg(Ad1(IR)))·Reg(R7)//Ad(IR)+NZero(Reg(Ad1(IR)))·PC->PC
17
Jc sign
00010
C=1:PC+1+sign->PC
5 访存控制模块
5.1结构框图:
pc_r ir_out
pc_in nMREQ
mem_signal nRD
mem_rw nWR
addr_in data_out
nBHE
data_in nBLE
DBUS
ABUS
5.2功能描述:当取址模块发出取址请求时,根据PC取出指令送给取址模块;根据存储管理模块给的读写请求对存储器进行读写操作。
计算机设计与实践
CPU设计报告
学号:1110310506
姓名:刘秋如
一、指令格式设计
■指令是由操作码和地址码两部分组成的.
■指令系统中指定所有的指令都是二地址指令.
■通用寄存器的数量为8,需3位地址与之对应
■访存的形式地址为8位
■指令的高5位表示操作码
因此,设计如下两种指令格式,分别对应寄存器-寄存器型指令和其他指令。
reg_in : in STD_LOGIC_VECTOR (7 downto 0);
addr_in : in STD_LOGIC_VECTOR (15 downto 0);
signaltoctrl : out STD_LOGIC;
w_r : out STD_LOGIC;
data_in : in STD_LOGIC_VECTOR (15 downto 0);
5
Adc Ri,X
10110
Reg(Ad1(IR))+Reg(Ad(IR))+Reg(cy)->Reg(Ad1(IR))
6
Adc Ri,Rj
10001
Reg(Ad1(IR))+Reg(Ad2(IR))+Reg(cy)->Reg(Ad1(IR))
7
Sbb Ri,X
10111
Reg(Ad1(IR))-Reg(Ad(IR))-Reg(cy)->Reg(Ad1(IR))
访存地址
data_out
8
Out
存储管理模块/回写模块
回写数据的输出
4.4接口说明:
entity cpu_memory is
Port ( cs : in STD_LOGIC;
clk : in STD_LOGIC;
reset : in STD_LOGIC;
c0 : in STD_LOGIC;
c1 : in STD_LOGIC;
t4 : out STD_LOGIC);
end cpu_clock;
2 取址模块
2.1结构框图:
cs
reset
pc_updata
clk pc_out
pc_new
ir_new ir_out
pc_toctrl
2.2功能描述:取指模块主要负责取指操作,当复位信号为1时,pc置零;若pc更新标志(pc_updata)为1,则更新当前的pc值;在第一个节拍,将当前pc给到访存控制模块,在将当前的指令从主存读出送到取指模块;同时将取得的指令送往运算模块、回写模块,pc送往回写模块。之后PC+1;
reg_out : out STD_LOGIC_VECTOR (7 downto 0);
pc_out : out STD_LOGIC_VECTOR (15 downto 0);
addr_out : out STD_LOGIC_VECTOR (15 downto 0));
end cpu_alu;
4存储管理模块
cs
1
In
时钟管理模块/存储管理模块
进行节拍控制
reset
1
In
进行复位
c0
1
In
运算模块/存储管理模块
(c0=1、c1=1)写请求输入
c1
1
In
运算模块/存储管理模块
(c0=1、c1=0)读请求输入
reg_in
8
In
运算模块/存储管理模块
来自运算模块数据的输入
addr_in
16
In
运算模块/存储管理模块
reset : in STD_LOGIC;
pc_update : in STD_LOGIC;
clk : in STD_LOGIC;
r : out STD_LOGIC;
pc_out : out STD_LOGIC_VECTOR (15 downto 0);
ir_out : out STD_LOGIC_VECTOR (15 downto 0);
4.1结构框图:
cs w_r
clk addr_out
reset data_toctrl
c0 signaltoctrl
c1 data_out
reg_in
addr_in
data_in
4.2功能描述:
此模块主要完成从存储管理模块进行不同指令的存数与取数的请求。
4.3数据流关系:
信号名
位数
方向
来源/去向
意义
1 时钟管理模块
1.1结构框图:
clk t1
t2
rest t3
t4
1.2功能描述:时钟模块为一节拍发生器,以输入时钟信号作为触发,四个节拍循环往复,当“rest”为1时节拍复位。
1.3数据流关系:
信号名
位数
方向
来源/去向
意义
clk
1
In
/时钟管理模块
时钟信号输入
rst
1
In
/时钟管理模块
进行复位
t1~t4
addr_out : out STD_LOGIC_VECTOR (15 downto 0);
data_toctrl : out STD_LOGIC_VECTOR (15 downto 0);
data_out : out STD_LOGIC_VECTOR (7 downto 0));
end cpu_memory;
pc_new : in STD_LOGIC_VECTOR (15 downto 0);
ir_new : in STD_LOGIC_VECTOR (15 downto 0);
pc_toctrl : out STD_LOGIC_VECTOR (15 downto 0));
end cpu_getir;
3 运算模块
取指模块/运算模块、回写模块
送IR
ir_new
16
In
访存控制模块/取指模块
接收当前指令
r
1
Out
取指模块/访存控制模块
设置取指阶段读信号有效
pc_toctl
16
Out
取指模块/访存控制模块
向访存控制模块送PC
2.4接口说明:
entity cpu_getir is
Port ( cs : in STD_LOGIC;
2.3数据流关系:
信号名
位数
方向
来源/去向
意义
cs
1
In
时钟管理模块/取指模块
进行节拍控制
reset
1
In
进行复位
pc_updata
1
In
回写模块/取指模块
回写标志位
pc_new
16
In
回写模块/取指模块
得到回写的PC
clk
1
In
时钟
pc_out
16
Out
取指模块/回写模块
送PC
ir_out
16
Out
15 11 10 8 7 2 0
op
AD1
AD2
15 11 10 8 7 0
op
AD1
AD2
二、微操作的定义
注:Ri代表3位该寄存器号的二进制表示,X,sign为8位立即数,add为8为地址
序号
伪指令
二进制
微操作
1
Mov Ri,X
10101
X->Reg(Ad1(IR))
2
Mov Ri,[add]
11010
Reg(Ri)//Ad1(IR)->MAR,1->Rj,M(MAR)->MDR,MDR->Reg(Ad(IR))
3
Mov[add],Ri
11011
Reg(Ri)//Ad1(IR)->MAR,1->w,Reg(Ad1(IR))->MDR,MDR->M(MAR)
4
Mov Ri,Rj
10000
Reg(Ad2(IR))->Reg(Ad1(IR))
(一)整体框图
T0 T1 T2 T3
Pcnew
Pcnew reg_in
Raddr Pcupdata
Pcupdata Reg_out