计算机设计与实践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语言程序的编写),软件模拟,以及硬件调试。
- 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