非常简单CPU数据通路设计实验报告
计算机组成原理实验-数据通路实验
计算机组成原理课程实验报告9.5 数据通路实验姓名:曾国江学号:系别:计算机工程学院班级:网络工程1班指导老师:完成时间:评语:得分:一、实验类型本实验类型为验证型+分析型+设计型二、实验目的1.进一步熟悉计算机的数据通路2.将双端口通用寄存器堆和双端口存储器模块连接,构成新的数据通路.3.掌握数字逻辑电路中的一般规律,以及排除故障的一般原则和方法.4.锻炼分析问题和解决问题的能力,在出现故障的情况下,独立分析故障现象,并排除故障.三、实验设备1、TEC-5实验系统一台2、双踪示波器一台3、逻辑测试笔一支四、实验电路数据通路实验电路图如图9.7所示。
它是将双端口存储器模块和双端口通用寄存器堆模块连接在一起形成的。
存储器的指令端口(右端口)不参与本次实验。
通用寄存器堆连接运算器模块,本次实验涉及其中的DRl。
由于双端口存储器是三态输出,因而可以直接连接到DBUS上。
此外,DBUS还连接着通用寄存器堆。
这样,写入存储器的数据由通用寄存器提供,从RAM中读出的数据也可以放到通用寄存器堆中保存。
本实验的各模块在以前的实验中都已介绍,请参阅前面相关章节。
注意实验中的控制信号与模拟它们的开关K0~K15的连接。
五、实验任务1、将实验电路与控制台的有关信号进行连接。
2、用8位数据开关SW7-SW0向RF中的四个通用寄存器分别置入以下数据:RO=0FH,R1=0F0H,R2=55H,R3=0AAH。
3、用8位数据开关向AR送入地址0FH,然后将R0中的数据0FH写入双端口存储器中.用同样的方法,依次将R1,R2,R3中的数据分别置入RAM的0F0H,55H,0AAH单元.4、分别将RAM的0AAH单元数据写入R0,55H单元数据写入R1,0F0H单元数据写入R2,0FH单元数据写入R3.然后将R0-R3中的数据读出,验证数据的正确性,并记录数据.六、实验要求1、做好实验预习,掌握实验电路的数据通路特点和通用寄存器堆的功能特性和使用方法。
数据通路实验报告
数据通路实验报告一.实验概述。
1.数据通路的设计原则。
数据通路的设计直接影响到控制器的设计,同时也影响到数字系统的速度指标和成本。
一般来说,处理速度快的数字系统,其中独立传递信息的通路较多。
当然,独立数据传送通路的数量增加势必提高控制器设计复杂度。
因此,在满足速度指标的前提下,为使数字系统结构尽量简单,一般小型系统中多采用单一总线结构。
在较大系统中可采用双总线结构或者三线结构。
2.数据通路的结构。
①算术逻辑单元ALU:有S3,S2,S1,S0,M,CN等6个控制端,用于选择运算类型。
②暂存器A和B:保存通用寄存器组读出的数据或BUS上来的数据。
③通用寄存器组R:暂时保存运算器单元ALU算出的结果。
④寄存器C:保存ALU运算产生的进位信号。
⑤RAM随机读写存储器:受读/写操作以及时钟信号等控制。
⑥MAR:RAM的专用地址寄存器,寄存器的长度决定RAM的容量。
⑦IR:专用寄存器,可存放由RAM读出的一个特殊数据。
⑧控制器:用来产生数据通路中的所有控制信号,它们与各个子系统上的使能控制信号一一对应。
⑨BUS:单一数据总线,通过三态门与有关子系统进行连接。
二.实验设计及其仿真检测。
一,运算器。
8位运算器VHDL波形仿真二,存储器。
顶层设计:其中sw_pc_ar的VHDL语言描述:波形仿真三,原仿真实验电路。
仿真结果:四,修改电路。
因为此次实验结果需要下载到FPGA板中进行操作及观察,而原始电路中,需要输入的变量数量过多,导致电板中的输入按键不够用,所以需要对电路进行修改。
此时我们引入一个计数器PC来代替需要手动输入的指令alu_sel[5..0]以及数据d[7...0]。
同时还需要引入数码管的位选信号译码器choose和段选信号译码器xianshi。
计数器PC的VHDL语言描述位选信号译码器choose的VHDL语言描述段选信号译码器的VHDL语言描述经过修改和完善以后的电路图为完善后的电路的引脚分配情况三.实验过程。
计算机组成CPU数据通路verilog实验报告.doc
计算机组成与系统结构实验报告院(系):计算机科学与技术学院专业班级:学号:姓名:同组者:指导教师:实验时间: 2012 年 5 月 23 日实验目的:完成处理器的单周期cpu的设计。
实验仪器:PC机(安装Altebra 公司的开发软件 QuartusII)一台实验原理:控制器分为主控制器和局部ALU控制器两部分。
主控制器的输入为指令操作码op,输出各种控制信号,并根据指令所涉及的ALU运算类型产生ALUop,同时,生成一个R-型指令的控制信号R-type,用它来控制选择将ALUop输出作为ALUctr信号,还是根据R-型指令中的func字段来产生ALUctr信号。
实验过程及实验记录:1.设计过程:第一步:分析每条指令的功能,并用RTL来表示。
第二步:根据指令的功能给出所需的元件,并考虑如何将它们互连。
第三步:确定每个元件所需控制信号的取值。
第四步:汇总各指令涉及的控制信号,生成所反映指令与控制信号之间的关系图。
第五步:根据关系表,得到每个控制信号的逻辑表达式,据此设计控制电路。
2.完成代码的编写,并调试运行。
1)controlmoduleControl(op,func,Branch,Jump,RegDst,ALUSrc,ALUctr,MemtoReg, RegWr,MemWr,ExtOp);input [5:0] op,func;output regBranch,Jump,RegDst,ALUSrc,MemtoReg,RegWr,MemWr,ExtOp; output reg [2:0] ALUctr;always @(op)case(op)6'b000000:beginBranch=0;Jump=0;RegDst=1;ALUSrc=0;MemtoReg=0;RegWr=1;MemWr =0;case(func)6'b100000:ALUctr=3'b001;6'b100010:ALUctr=3'b101;6'b100011:ALUctr=3'b100;6'b101010:ALUctr=3'b111;6'b101011:ALUctr=3'b110;endcaseend6'b001101:beginBranch=0;Jump=0;RegDst=0;ALUSrc=1;MemtoReg=0;RegWr=1;MemWr =0;ExtOp=0;ALUctr=3'b010;end6'b001001:beginBranch=0;Jump=0;RegDst=0;ALUSrc=1;MemtoReg=0;RegWr=1;MemWr =0;ExtOp=1;ALUctr=3'b000;end6'b100011:beginBranch=0;Jump=0;RegDst=0;ALUSrc=1;MemtoReg=1;RegWr=1;MemWr =0;ExtOp=1;ALUctr=3'b000;end6'b101011:beginBranch=0;Jump=0;ALUSrc=1;RegWr=0;MemWr=1;ExtOp=1;ALUctr=3' b000;end6'b000100:beginBranch=1;Jump=0;ALUSrc=0;RegWr=0;MemWr=0;ALUctr=3'b100; end6'b000010:beginBranch=0;Jump=1;RegWr=0;MemWr=0;endendcaseendmodule2)数据通路DataRoadmoduleDataRoad(Run,Clk,RegWr,MemWr,MemtoReg,RegDst,Branch,Jump,E xtOp,ALUctr,ALUSrc,busA,busB,busW,Instruction,Reg0,Reg1,Re g2,Reg3,Reg4,Mem1,Mem2,Mem3,Result,Im);inputRun,Clk,RegWr,MemWr,MemtoReg,RegDst,Branch,Jump,ExtOp,ALUS rc;input [2:0] ALUctr;output [31:0]Instruction,busA,busB,busW,Reg0,Reg1,Reg2,Reg3,Reg4,Mem1,M em2,Mem3,Result,Im;wire [31:0] busC,DataOut;wire [15:0] im;wire [4:0] Rs,Rd,Rt;wire Overflow,Zero;QZL qzl(Clk,Branch,Jump,Zero,Instruction,Run);assign Rs=Instruction[25:21];assign Rt=Instruction[20:16];assign Rd=Instruction[15:11];assign im=Instruction[15:0];Registerregister(Run,RegWr,Overflow,RegDst,Rd,Rs,Rt,busW,busA,busB ,Clk,Reg0,Reg1,Reg2,Reg3,Reg4);ALU alu(busA,busC,ALUctr,Zero,Overflow,Result);DataMem(Run,MemWr,Clk,busB,DataOut,Result,Mem1,Mem2,Mem3); MUX mux1(ALUSrc,busB,Im,busC);MUX mux2(MemtoReg,Result,DataOut,busW);Extender ext(im,Im,ExtOp);endmodule3)取指令module QZL(Clk,Branch,Jump,Zero,Instruction,Run);input Clk,Branch,Jump,Zero,Run;output [31:0] Instruction;wire [4:0] addmem;reg [29:0] PC;wire [29:0] Newpc,pc_1,pc_2,pc_3,pc_12,imm30;wire Branch_Zero;assign addmem={PC[2:0],2'b00};InsMem GetIns(addmem,Instruction);always @(negedge Clk)if(Run==1)beginPC<=Newpc;endelsebeginPC<=0;endassign pc_1=PC+1;assign imm30={{14{Instruction[15]}},Instruction[15:0]}; assign pc_2=pc_1+imm30;assign pc_3={PC[29:26],Instruction[25:0]};assign Branch_Zero=Branch&Zero;MUX m1(Branch_Zero,pc_1,pc_2,pc_12);MUX m2(Jump,pc_12,pc_3,Newpc);endmodulemodule InsMem(addmem,Instruction);input [4:0] addmem;output reg[31:0] Instruction;reg [31:0] Mem[31:0];always @(*)beginMem[0]<={6'b100011,5'b00000,5'b00001,5'b00000,5'b00000,6'b 000001};Mem[4]<={6'b100011,5'b00000,5'b00010,5'b00000,5'b00000,6'b 000010};Mem[8]<={6'b000000,5'b00001,5'b00010,5'b00011,5'b00000,6'b 100000};Mem[12]<={6'b101011,5'b00000,5'b00011,5'b00000,5'b00000,6' b000010};Mem[16]<={6'b001101,5'b00100,5'b00100,5'b11111,5'b11111,6' b111111};Mem[20]<={6'b000000,5'b00011,5'b00010,5'b00010,5'b00000,6' b100010};Mem[24]<={6'b000100,5'b00010,5'b00001,5'b00000,5'b00000,6' b001000};Mem[28]<={6'b000010,5'b00000,5'b00000,5'b00000,5'b00000,6' b000000};endalways @(*)。
计算机组成原理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与简单模型机设计实验
掌握一个简单CPU 的组成原理。
在掌握部件单元电路的基础上,进一步将其构造一台基本模型计算机。
为其定义五条机器指令,编写相应的微程序,并上机调试掌握整机概念。
PC 机一台,TD-CMA 实验系统一套本实验要实现一个简单的 CPU,并且在此CPU 的基础上,继续构建一个简单的模型计算机。
CPU由运算器(ALU 、微程序控制器(MC 、通用寄存器(R0),指令寄存器(IR )、程序计数器(PC 和地址寄存器(AR )组成,如图5-1-1所示。
这个CPU 在写入相应的微指令后, 就具备了执行机器 指令的功能,但是机器指令一般存放在主存当中,CPU 必须和主存挂接后,才有实际的意义,所以还需要在该CPU 的基础上增加一个主存和基本的输入输出部件,以构成一个简单的模型计算机。
图5-1-1基本CPU 构成原理图除了程序计数器(PC ,其余部件在前面的实验中都已用到,在此不再讨论。
系统的程序计 数器(PC 和地址寄存器(AR 集成在一片CPLD 芯片中。
CLR 连接至CON 单元的总清端CLR 按 下CLR 按钮,将使PC 清零,LDPC 和T3相与后作为计数器的计数时钟,当LOA 场低时,计数时钟到来后将CPU 内总线上的数据打入 PG 如图5-1-2所示。
图5-1-2程序计数器(PC )原理图本模型机和前面微程序控制器实验相比, 新增加一条跳转指令JMP,共有五条指令:IN (输入)、ADD (二进制加法)、OUT (输出)、JMP (无条件转移),HLT (停机),其指令格式如下(高4位为操作码):其中JMP 为双字节指令,其余均为单字节指令,******** 为addr 对应的二进制地址码。
微程 序控制器实验的指令是通过手动给出的,现在要求CPU 自动从存储器读取指令并执行。
根据以上要求,设计数据通路图,如图 5-1-3所示。
本实验在前一个实验的基础上增加了三个部件,一是 PC (程序计数器),另一个是 AR (地址寄存器),还有就是 MEM (主存)。
计算机组成原理数据通路实验报告
计算机组成原理数据通路实验报告计算机组成原理实验报告计算机组成原理实验报告实验一基本运算器实验一、实验目的1. 了解运算器的组成结构2. 掌握运算器的工作原理3. 深刻理解运算器的控制信号二、实验设备PC机一台、TD-CMA实验系统一套三、实验原理1. (思考题)运算器的组成包括算数逻辑运算单元ALU(Arithmetic and Logic Unit)、浮点运算单元FPU(Floating Point Unit)、通用寄存器组、专用寄存器组。
①算术逻辑运算单元ALU (Arithmetic and Logic Unit)ALU主要完成对二进制数据的定点算术运算(加减乘除)、逻辑运算(与或非异或)以及移位操作。
在某些CPU中还有专门用于处理移位操作的移位器。
通常ALU由两个输入端和一个输出端。
整数单元有时也称为IEU(IntegerExecution Unit)。
我们通常所说的“CPU 是XX位的”就是指ALU所能处理的数据的位数。
②浮点运算单元FPU(Floating Point Unit)FPU主要负责浮点运算和高精度整数运算。
有些FPU还具有向量运算的功能,另外一些则有专门的向量处理单元。
③通用寄存器组通用寄存器组是一组最快的存储器,用来保存参加运算的操作数和中间结果。
④专用寄存器专用寄存器通常是一些状态寄存器,不能通过程序改变,由CPU自己控制,表明某种状态。
而运算器内部有三个独立运算部件,分别为算术、逻辑和移位运算部件,逻辑运算部件由逻辑门构成,而后面又有专门的算术运算部件设计实验。
下图为运算器内部原理构造图2. 运算器的控制信号实验箱中所有单元的T1、T2、T3、T4都连接至控制总线单元的T1、T2、T3、T4,CLR都连接至CON单元的CLR按钮。
T4由时序单元的TS4提供(脉冲信号),其余控制信号均由CON单元的二进制数据开关模拟给出。
控制信号中除T4为脉冲信号外,其余均为电平信号,其中ALU_B为低有效,其余为高有效。
cpu实训报告的总结
cpu实训报告的总结
CPU实训报告的总结应包括以下内容:
1. 实验目的:说明实训的目标和意义,即要实现的功能或解决的问题。
2. 实验原理:介绍CPU的基本结构和工作原理,包括数据通路和控制器的组成,以及指令的执行过程。
3. 实验过程:详细描述实际操作过程和所使用的软件或硬件工具,包括实验环境的搭建、所需的材料和设备的准备等。
4. 实验结果:列出实验中的相关数据、图表和实际运行效果,展示实验的完成情况和达到的目标。
5. 实验分析:对实验结果进行分析和解释,并提供相应的性能评估,比较实验结果与预期目标的差异或实验改进的空间。
6. 实验总结:总结实验的收获和体会,说明实训过程中遇到的困难和解决方法,以及自身对CPU工作原理的理解和提升。
7. 实验展望:展望未来可能的进一步工作和改进方向,指出本实训的不足之处和值得改进的地方,提出对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系统设计与实现
数字电路综合实验报告简单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处理器实验设计实验报告
“计算机设计与实践”处理器实验设计报告目录一:实验目的 (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。
运算器数据通路实验报告
运算器数据通路实验报告第一篇:运算器数据通路实验报告运算器数据通路实验设计报告学号:姓名:成绩:学号:姓名:成绩:一、实验名称:总线、半导体静态存储器实验二、实验目的.1.熟悉函数功能发生器的功能、使用方法。
2.熟悉运算器的数据传送通路。
3.完成几种算逻运算操作,加深对运算器工作原理的理解。
三、实验原理运算器是计算机中对数据进行运算操作的重要部件,它的核心是ALU 函数功能发生器(由EPM7064S 构成),其次还要有存放操作数和运算的中间结果之寄存器以及传送数据的总线等部分。
选用不同的控制信号,运算器可以完成不同的运算功能。
1.函数功能发生器(ALU)的功能。
该函数功能发生器(ALU),当输入为Aj、Bj,对应输出为Fj(j=0,1,2,3,4,5,6,7),它可实现8 种不同的算术运算和逻辑算,而且通过对控制参数SEL2~SEL0S0 来选择。
2.数据传送通路实验电路方案实验方案框图见图2—5 所示。
图中SA、SB 为存放两个现行操作的缓冲寄存器,其中SA 兼作存放中间结果的累加器,并且可以通过SA 所连接的八个数据灯显示。
SA、SB 接收来自总线的数据信息送入ALU 进行算术或逻辑操作。
通过移位门将运算操作结果送到总线。
并且ALU 和总线之间需用三态门隔离(采用74LS245)。
四、实验内容1.按照实验电路方案框图,设计一个能完成下列八种补码运算指令的八位运算器。
该运算器实现的八种功能如表2—1 所示。
表2—1:2.根据运算器设计,选择所需元器件,画出实验电路的详细逻辑图,对开关,单脉冲等定义。
因为和上次实验类似,也是绝大多数的器件在“数据通路”中已安排好,只要控制各个控制点即可,除了开关组通过三态传输门(74LS245)的接法和实验一一样外,设置一个指令寄存器(IR),用74LS573 担当IR。
通过八根连接线和“数据通路”中的八位总线连接起来。
存放ALU 的控制信息SEL2~SEL0。
MIPS单周期CPU实验报告
《计算机组成原理实验》实验报告(实验二)学院名称:专业(班级):学生姓名:学号:时间:2017 年11 月25 日成绩: 实验二:单周期CPU设计与实现一.实验目的(1) 掌握单周期CPU数据通路图的构成、原理及其设计方法;(2) 掌握单周期CPU的实现方法,代码实现方法;(3) 认识和掌握指令与CPU的关系;(4) 掌握测试单周期CPU的方法;(5) 掌握单周期CPU的实现方法。
二.实验内容设计一个单周期的MIPSCPU,使其能实现下列指令:==> 算术运算指令==> 逻辑运算指令功能:rd←rs | rt;逻辑或运算。
==>移位指令==>比较指令==> 存储器读/写指令将rt寄存器的内容保存到rs寄存器内容和立即数符号扩展后的数相加作为地址的内存单元中。
即读取rs寄存器内容和立即数符号扩展后的数相加作为地址的内存单元中的数,然后保存到rt寄存器中。
==> 分支指令功能:if(rs=rt) pc←pc + 4 + (sign-extend)immediate <<2 else pc ←pc + 4特别说明:immediate是从PC+4地址开始和转移到的指令之间指令条数。
immediate 符号扩展之后左移2位再相加。
为什么要左移2位?由于跳转到的指令地址肯定是4的倍数(每条指令占4个字节),最低两位是“00”,因此将immediate放进指令码中的时候,是右移了2位的,也就是以上说的“指令之间指令条数”。
12特别说明:与beq不同点是,不等时转移,相等时顺序执行。
功能:if(rs>0) pc←pc + 4 + (sign-extend)immediate <<2 else pc ←pc + 4==>跳转指令==> 停机指令三.实验原理1.时间周期:单周期CPU指的是一条指令的执行在一个时钟周期内完成,然后开始下一条指令的执行,即一条指令用一个时钟周期完成。
实验五处理器数据通路实验
实验五数据通路的设计和验证一、实验目的1、通过数据通路的的设计和验证,掌握CPU数据通路的基本原理和控制信号的顺序。
2、了解QUARTUS II硬件描述语言和原理图混合输入设计的过程。
3、掌握Simplest CPU的数据通路的控制方法,为控制器实验奠定基础。
二、实验原理如图1所示是本次实验所设计的Simplest CPU的数据通路和存储器部分的原理框图,该处理器支持的指令集如表1所示,只有4条指令。
该CPU的寄存器如表2所示,数据通路的控制信号如表2所示。
表1 SimplestCPU的指令集该处理器的存储器为64单元,编址0~63,通过地址总线Addr[5..0]进行选择;每个单元数据宽度8位,分别通过Dout[7..0]和Din[7..0]进行数据的读写,存储器的读、写控制信号分别为MRD和MWR。
表2 寄存器介绍表3 数据通路控制信号实验内容本实验由多个设计文件构成,并且顶层设计采用原理图输入方式,如图2所示是本次实验的顶层设计原理图。
图中的各个模块采用verilog硬件描述语言设计,对应的模块分别是时钟分频器ClockInput、数据通路datapath、存储器mem、显示输出display和与PC机的输入输出调试接口PC_InOut,对应的设计文件分别是ClockInput.v、datapath.v、mem.v、display.v和PC_InOut.v,如表4所示。
表4 本实验所用的设计文件图2 本次实验的顶层设计原理图四、实验步骤(请参考实验演示文档)1、打开QUARTUSII软件,新建一个工程。
2、建完工程之后,新建一个原理图文件,并保存为EXP5.bdf。
3、再新建一个Verilog File,打开编辑器。
4、按照实验原理和自己的想法,在编辑窗口编写Verilog代码,请参考实验所提供的实验代码文件。
5、编写完Verilog代码后,保存起来。
6、对自己编写的Verilog代码生成符号文件“Create Symbol File from current file”,对程序的错误进行修改。
CPU 与简单模型机设计实验实验报告
实验报告实验名称:CPU 与简单模型机设计实验日期:2015.11 班级:学号:姓名:一、实验目的:(1) 掌握一个简单CPU 的组成原理。
(2) 在掌握部件单元电路的基础上,进一步将其构造一台基本模型计算机。
(3) 为其定义五条机器指令,编写相应的微程序,并上机调试掌握整机概念。
二、实验内容:本实验要实现一个简单的CPU,并且在此CPU 的基础上,继续构建一个简单的模型计算机。
CPU 由运算器(ALU)、微程序控制器(MC)、通用寄存器(R0),指令寄存器(IR)、程序计数器(PC)和地址寄存器(AR)组成,如图2-1-1 所示。
这个CPU 在写入相应的微指令后,就具备了执行机器指令的功能,但是机器指令一般存放在主存当中,CPU 必须和主存挂接后,才有实际的意义,所以还需要在该CPU 的基础上增加一个主存和基本的输入输出部件,以构成一个简单的模型计算机。
图1-4-1 基本CPU 构成原理图除了程序计数器(PC),其余部件在前面的实验中都已用到,在此不再讨论。
系统的程序计数器(PC)由两片74LS161 和一片74LS245 构成,其原理如图1-4-2 所示。
PC_B 为三态门的输出使能端,CLR 连接至CON 单元的总清端CLR,按下CLR 按钮,将使PC 清零,LDPC 和T2 相与后作为计数器的计数时钟,当LOAD 为低时,计数时钟到来后将CPU 内总线上的数据打入PC。
图1-4-2 程序计数器(PC)原理图本模型机和前面微程序控制器实验相比,新增加一条跳转指令JMP,共有五条指令:IN (输入)、ADD(二进制加法)、OUT(输出)、JMP(无条件转移),HLT(停机),其指令格式如下(高4位为操作码):助记符机器指令码说明IN 0010 0000 IN→R0ADD 0000 0000 R0 + R0→R0OUT 0011 0000 R0→OUTJMP addr 1100 0000 ******** addr→ PCHLT 0101 0000 停机其中JMP 为双字节指令,其余均为单字节指令,********为addr 对应的二进制地址码。
单周期CPU设计实验报告
《计算机组成原理与接口技术实验》实验报告学院名称:学生姓名:学号:专业(班级):合作者:时间:2016年4月25日成绩:实验二:一.实验目的1.掌握单周期CPU数据通路图的构成、原理及其设计方法;2.掌握单周期CPU的实现方法,代码实现方法;3.认识和掌握指令与CPU的关系;4.掌握测试单周期CPU的方法。
二.实验内容设计一个单周期CPU,该CPU至少能实现以下指令功能操作。
需设计的指令与格式如下:==> 算术运算指令说明:以助记符表示,是汇编指令;以代码表示,是机器指令功能:rd←rs + rt。
reserved为预留部分,即未用,一般填“0”。
功能:rt←rs + (sign-extend)immediate;immediate符号扩展再参加“加”运算。
完成功能:rd←rs - rt==> 逻辑运算指令做“0”扩展再参加“或”运算。
(5)and rd , rs , rt功能:rd←rs & rt;逻辑与运算。
==> 传送指令(7)move rd , rs功能:rd←rs + $0 ;$0=$zero=0。
==> 存储器读/写指令(8)sw rt ,immediate(rs) 写存储器功能:memory[rs+ (sign-extend)immediate]←rt;immediate符号扩展再相加。
(9) lw rt , immediate (rs) 读存储器功能:rt ← memory[rs + (sign-extend)immediate ];immediate 符号扩展再相加。
==> 分支指令(10)beq rs,rt,immediate功能:if(rs=rt) pc ←pc + 4 + (sign-extend)immediate <<2;特别说明:immediate 是从PC+4地址开始和转移到的指令之间指令条数。
immediate 符号扩展之后左移2位再相加。
实验三 数据通路
计算机组成原理实验报告实验三数据通路实验学院:计算机学院班级:2010211306学号:10211309号姓名:朱璇一实验目的1.进一步熟悉计算机的数据通路2.将双端口通用寄存器堆和双端口存储器模块连接,构成新的数据通路3.掌握数字逻辑电路中的一般规律,以及排除故障的一般原则和方法4.锻炼分析问题和解决问题的能力,在出线故障的情况下,独立分析故障现象,并排除故障.二实验电路三实验任务1.将实验电路与控制台的有关信号进行连接2.用8位数据开关SW7-SW0向RF中的四个通用寄存器分别置入以下数据:R0=OFH,R1=0F0H,R2=55H,R3=0AAH.3.用8位数据开关向AR送入地址0FH,然后将R0中的数据0FH写入双端口存储器中.用同样的方法,依次将R1,R2,R3中的数据分别置入RAM的0F0H,55H,0AAH单元.4.分别将RAM的0AAH单元数据写入R0,55H单元数据写入R1,0F0H单元数据写入R2,0FH单元数据写入R3.然后将R0-R3中的数据读出,验证数据的正确性,并记录数据.5.校验结果四.实验步骤(一)实验连线数据通路RS0 RS1 RD0 RD1 WR0 WR1 LDRi LDDR1 模拟开关K0 K1 K2 K3 K4 K5 K6 K7数据通路RS_BUS# SW_BUS# ALU_BUS# RAM_BUS# LR/W# CEL# LDAR# 模拟开关K8 K9 K10 K11 K12 K13 K14数据通路AR+1 CER# Cn# M S0 S1 S2 S3模拟开关地VCC VCC 地地地地地(二)向双端口寄存器RF中写入数据1.令K4(WR0)=0, K5(WR1)=0, K6(LDRi)=1, K8(RS_BUS#)=1, K9(SW_BUS#)=0,K10(ALU_BUS#)=1, K11(RAM_BUS#)=1, K13(CEL#)=1.置SW7-SW0=0FH, 按QD按钮,将0FH写入R0.2.改变K4(WR0)=1, K5(WR1)=0,置SW7-SW0=FOH, 按QD按钮,将FOH写入R1.3.改变K4(WR0)=0, K5(WR1)=1,置SW7-SW0=55H, 按QD按钮,将55H写入R2.4.改变K4(WR0)=1, K5(WR1)=1,置SW7-SW0=AAH, 按QD按钮,将AAH写入R2.(三)用8位数据开关向AR送入地址0FH,然后将R0中的数据0FH写入双端口存储器中.1.令K6(LDRi)=0, K8(RS_BUS#)=1, K9(SW_BUS#)=0, K10(ALU_BUS#)=1, K11(RAM_BUS#)=1,K13(CEL#)=1,K12(LDAR#)=0.置SW7-SW0=0FH, 按QD按钮, 将0FH写入地址寄存器AR.K2(RD0)=0, K3(RD1)=0, K6(LDRi)=0, K7(LDDR1)=1, K8(RS_BUS#)=1, K9(SW_BUS#)=1, K10(ALU_BUS#)=0,K11(RAM_BUS#)=1, K14(LDAR#)=1, K13(CEL#)=1. 按QD按钮,将R0的数据送入DR1,DR1中的数据通路通过运算器和ALU_BUS三态门送入数据总线DBUS, DBUS应显示0FH.令K6(LDRi)=0, K7(LDDR1)=0, K8(RS_BUS#)=1, K9(SW_BUS#)=1, K10(ALU_BUS#)=0,K11(RAM_BUS#)=1,K12(LR/W#)=0, K14(LDAR#)=1, K13(CEL#)=0. 按QD按钮,将DBUS上的数据0FH写入AR指定的存储单元0FH.2用同样的方法操作R1,R2,R3(四):分别将RAM的0AAH单元数据写入R0, 55H单元数据写入R1,0F0H单元数据写入R2, 0FH单元数据写入R3.1.令K6(LDRi)=0, K8(RS_BUS#)=1, K9(SW_BUS#)=0, K10(ALU_BUS#)=1, K11(RAM_BUS#)=1, K13(CEL#)=1,K14(LDAR#)=0.置SW7-SW0=0AAH, 按QD按钮, 将0AAH写入地址寄存器AR.令K4(WR0)=0, K5(WR1)=0,K6(LDRi)=1,K8(RS_BUS#)=1,K9(SW_BUS#)=1,K10(ALU_BUS#)=1, K11(RAM_BUS#)=0,K12(LR/W#)=1, K13(CEL#)=0, K14(LDAR#)=1. 按QD按钮, 将AR指定的存储器地址0AAH单元的内容0AAH读出,然后写入寄存器R0.2.用同样的方法来操作R1,R2,R3五.实验结论这个实验结合了实验一和实验二,同时也将数据通路的运作过程告诉了我们。
计算机组成原理CPU设计实验报告
T0: PCBUSMAR, PCBUSA, 1READ
T1: M(MAR)MDRBUSIR, ALU(A+2)Y
T2: YBUSPC, IRID
数据通路如下:(再配合流程图来说明工作流程,说明每一个部件的功能;以下同)
2.算逻指令执行周期数据通路构建
算逻指令执行周期微操作安排如下:
T0: $RBUSMDR
T1: Ad(IR)扩位BUSMAR, 1WRITE
T2:
4.访寄存器组指令执行周期数据通路构建
访寄存器指令执行周期微操作安排如下:
T0: $R2BUS$R1
T1:
跳转指令执行周期的微操作安排如下:
T0: Im(IR)扩位和移位BUSA
T0: $R2BUSA
T1: $R3BUSB
T2: ALU(A,B)YBUS$R1
数据通路如下:
3访存指令执行周期数据通路构建
LDRR指令执行周期的微操作安排如下:
T0: Ad(IR)扩位BUSMAR, 1READ
T1: M(MAR)MDR
T2: MDRBUS$R
STRR指令执行周期的微操作安排如下:
T1: PCBUSB
T2: ALU(A+B)YBUSPC
2.1.5
由于没有中断操作,本机指令的执行步骤可概括如下:(画图描述)
读取指令:地址寄存器<-指令地址,修改PC内容使其指向下一条将要执行的指令;
读内存,指令寄存器<-读出的内容。
分析指令:指令译码。
执行指令:通用寄存器之间的运算或传送,可1步完成;
T2:GENERATE CFLAG RESULT←ADDR+PC
T3:if(CFLAG==0) PC←RESULT else PC←PC_NEXT
机组实验报告四—非常简单CPU数据通路设计
非常简单CPU数据通路设计实验目的:1.掌握CPU的设计步骤2.学会芯片的运用及其功能即是本次实验的主要内容是利用Quarters2仿真平台设计非常简单的CPU的数据通路,加深对CPU的分析和理解。
实验方法:在Quarter2环境下实现非常简单CPU数据通路的设计实验内容:绘制非常简单CPU的寄存器:一个8位累加器AC,一个6位的地址寄存器AR,一个6位的程序计数器PC,一个8位的数据寄存器DR,一个2位的指令寄存器IR。
其数据通路详见教材P。
注:6位寄存器、6位计数器两个元件的设计文件:reg6.gdf和cou6.gdf已经给出。
1、零件制作6位寄存器reg6.gdf(自行设计)6位计数器cou6.gdf(自行设计)8位寄存器(可选择74系列宏函数74273)8位计数器(由两个74161构成)2位寄存器(由D触发器构成,自行设计)6三态缓冲器(自行设计,可由74244内部逻辑修改而成)8三态缓冲器(选择74系列宏函数74244,或作修改)alu模块(自行设计,限于时间,其内部逻辑不作要求)2、选择器件,加入数据通路顶层图8位累加器AC:选择8位计数器6位地址寄存器AR:reg66位的程序计数器PC:cou68位的数据寄存器DR:选择8位寄存器2位的指令寄存器IR:选择2位寄存器3、为PC、DR加入三态缓冲器。
4、调整版面大小,器件位置。
5、设计地址引脚、数据引脚、8位内部总线,加入数据引脚到内部总线的缓冲器。
6、连接各器件之间以及到内部总线的线路,设计并标注各控制信号。
7、(选做)编译之后,给出微操作AR<-PC 的测试方法及仿真结果。
8、实验报告中应给出各元部件的实现方法、内部逻辑贴图、打包符号说明及顶层的“非常简单CPU”数据通路图。
实验步骤与具体过程分析基于前面非常简单CPU的讲解,我掌握了非常简单CPU的指令集结构及非常简单CPU的指令读取过程和执行过程,本次实验是在上次实验的基础之上完成非常简单CPU数据通路的设计,其步骤如下:(1)、AC累加器原理图如下:打包框图如下:分析: 8位累加器AC是由8位计数器(cou8)组成。
计算机组成原理实验-数据通路实验
计算机组成原理课程实验报告9.5 数据通路实验姓名:曾国江学号:系别:计算机工程学院班级:网络工程1班指导老师:完成时间:评语:得分:一、实验类型本实验类型为验证型+分析型+设计型二、实验目的1.进一步熟悉计算机的数据通路2.将双端口通用寄存器堆和双端口存储器模块连接,构成新的数据通路.3.掌握数字逻辑电路中的一般规律,以及排除故障的一般原则和方法.4.锻炼分析问题和解决问题的能力,在出现故障的情况下,独立分析故障现象,并排除故障.三、实验设备1、TEC-5实验系统一台2、双踪示波器一台3、逻辑测试笔一支四、实验电路数据通路实验电路图如图9.7所示。
它是将双端口存储器模块和双端口通用寄存器堆模块连接在一起形成的。
存储器的指令端口(右端口)不参与本次实验。
通用寄存器堆连接运算器模块,本次实验涉及其中的DRl。
由于双端口存储器是三态输出,因而可以直接连接到DBUS上。
此外,DBUS还连接着通用寄存器堆。
这样,写入存储器的数据由通用寄存器提供,从RAM中读出的数据也可以放到通用寄存器堆中保存。
本实验的各模块在以前的实验中都已介绍,请参阅前面相关章节。
注意实验中的控制信号与模拟它们的开关K0~K15的连接。
五、实验任务1、将实验电路与控制台的有关信号进行连接。
2、用8位数据开关SW7-SW0向RF中的四个通用寄存器分别置入以下数据:RO=0FH,R1=0F0H,R2=55H,R3=0AAH。
3、用8位数据开关向AR送入地址0FH,然后将R0中的数据0FH写入双端口存储器中.用同样的方法,依次将R1,R2,R3中的数据分别置入RAM的0F0H,55H,0AAH单元.4、分别将RAM的0AAH单元数据写入R0,55H单元数据写入R1,0F0H单元数据写入R2,0FH单元数据写入R3.然后将R0-R3中的数据读出,验证数据的正确性,并记录数据.六、实验要求1、做好实验预习,掌握实验电路的数据通路特点和通用寄存器堆的功能特性和使用方法。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
非常简单CPU数据通路设计
【实验目的】
1.掌握CPU的设计步骤
2.学会芯片的运用及其功能
【实验环境】
Maxplus2环境下实现非常简单CPU数据通路的设计
【实验内容】
绘制非常简单CPU的寄存器:一个8位累加器AC,一个6位的地址寄存器AR,一个6位的程序计数器PC,一个8位的数据寄存器DR,一个2位的指令寄存器IR。
其数据通路详见教材P。
1、零件制作
6位寄存器(自行设计)
6位计数器(自行设计)
8位寄存器(可选择74系列宏函数74273)
8位计数器(由两个74161构成)
2位寄存器(由D触发器构成,自行设计)
6三态缓冲器(自行设计,可由74244内部逻辑修改而成)
8三态缓冲器(选择74系列宏函数74244,或作修改)
alu模块(自行设计,限于时间,其内部逻辑不作要求)
2、选择器件,加入数据通路顶层图
8位累加器AC:选择8位计数器
6位地址寄存器AR:reg6
6位的程序计数器PC:cou6
8位的数据寄存器DR:选择8位寄存器
2位的指令寄存器IR:选择2位寄存器
3、为PC、DR加入三态缓冲器。
4、调整版面大小,器件位置。
5、设计地址引脚、数据引脚、8位内部总线,加入数据引脚到内部总线的
缓冲器。
6、连接各器件之间以及到内部总线的线路,设计并标注各控制信号。
7、(选做)编译之后,给出微操作AR<-PC 的测试方法及仿真结果。
8、实验报告中应给出各元部件的实现方法、内部逻辑贴图、打包符号说
明及顶层的“非常简单CPU”数据通路图。
实验报告
一、实验步骤
基于前面非常简单CPU的讲解,我掌握了非常简单CPU的指令集结构及非常简单CPU的指令读取过程和执行过程,本次实验是在上次实验的基础之上完成非常简单CPU数据通路的设计,其步骤如下:
(1)、AC累加器原理图如下:
打包后得到如下:
(2)、两位高地址寄存器IR的设计如下:
打包后得电路图如下:
(3)、6位地址寄存器AR设计如下:
打包后AR如下:
(4)、八位地址寄存器DR如下:
打包后如下:
(5)、程序计数器PC如下:(老师已给出)
打包后得:
(6)、控制8位地址总线的三态缓冲器电路如下:
打包图如下:
同理有控制6位地址总线的三态缓冲器:
打包图如下:
最重要的部分ALU设计如下:
由一个八与门电路和并行加法器连入一个16位输入的数据选择器,在受到SEL
和GN控制时分别选择and8或者并行加法器得到的结果并送到AC的输入端
打包如下:
其中八输入与门为下图:
并行加法器为下图:
十六位数据选择器为下图:
最后得到简单CPU设计数据通路如下:
仿真波形为下图:
说明:从图中可以看出当PC输入为100011时AR的输出也为10011,即该CPU 实现了PC到AR的功能。
CPU功能验证完毕!
实验结论:
整体来看,简单CPU的设计基本完工,但是有些地方不够完善,所以还没能够实现所有的功能。
实验感想:
本次实验是在对基本CPU的设计的理解上完成的,其中运用到了很多数电方面的知识。
所以这对知识的融会贯通很有好处。
设计该简单CPU时比较难的地方就是ALU部分,这里用到了并行加法器,数据选择器和门电路的等,由于在EDA实验时有了比较好的基础,所以在设计这个部分时不时非常难,但是我也明白了以前知识的用处是很大的,做好复习很重要!。