计算机组成原理课程设计报告

合集下载

计算机组成原理实验报告

计算机组成原理实验报告

重庆理工大学《计算机组成原理》实验报告学号 __***********____姓名 __张致远_________专业 __软件工程_______学院 _计算机科学与工程二0一六年四月二十三实验一基本运算器实验报告一、实验名称基本运算器实验二、完成学生:张致远班级115030801 学号11503080109三、实验目的1.了解运算器的组成结构。

2.掌握运算器的工作原理。

四、实验原理:两片74LS181 芯片以并/串形式构成的8位字长的运算器。

右方为低4位运算芯片,左方为高4位运算芯片。

低位芯片的进位输出端Cn+4与高位芯片的进位输入端Cn相连,使低4位运算产生的进位送进高4位。

低位芯片的进位输入端Cn可与外来进位相连,高位芯片的进位输出到外部。

两个芯片的控制端S0~S3 和M 各自相连,其控制电平按表2.6-1。

为进行双操作数运算,运算器的两个数据输入端分别由两个数据暂存器DR1、DR2(用锁存器74LS273 实现)来锁存数据。

要将内总线上的数据锁存到DR1 或DR2 中,则锁存器74LS273 的控制端LDDR1 或LDDR2 须为高电平。

当T4 脉冲来到的时候,总线上的数据就被锁存进DR1 或DR2 中了。

为控制运算器向内总线上输出运算结果,在其输出端连接了一个三态门(用74LS245 实现)。

若要将运算结果输出到总线上,则要将三态门74LS245 的控制端ALU-B 置低电平。

否则输出高阻态。

数据输入单元(实验板上印有INPUT DEVICE)用以给出参与运算的数据。

其中,输入开关经过一个三态门(74LS245)和内总线相连,该三态门的控制信号为SW-B,取低电平时,开关上的数据则通过三态门而送入内总线中。

总线数据显示灯(在BUS UNIT 单元中)已与内总线相连,用来显示内总线上的数据。

控制信号中除T4 为脉冲信号,其它均为电平信号。

由于实验电路中的时序信号均已连至“W/R UNIT”单元中的相应时序信号引出端,因此,需要将“W/R UNIT”单元中的T4 接至“STATE UNIT”单元中的微动开关KK2 的输出端。

计算机组成原理数据通路实验报告

计算机组成原理数据通路实验报告

计算机组成原理数据通路实验报告计算机组成原理实验报告计算机组成原理实验报告实验一基本运算器实验一、实验目的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为低有效,其余为高有效。

计算机组成原理课程设计

计算机组成原理课程设计

课程设计报告课程设计名称:计算机组成原理系:学生姓名:班级:学号:成绩:指导教师:开课时间:2011-2012学年2 学期一、设计题目计算机组成原理课程设计——简单模型机的微程序设计二、主要内容通过课程设计更清楚地理解下列基本概念:1.计算机的硬件基本组成;2.计算机中机器指令的设计;3.计算机中机器指令的执行过程;4.微程序控制器的工作原理。

5.微指令的格式设计原则;在此基础上设计可以运行一些基本机器指令的微程序的设计三.具体要求1.通过使用作者开发的微程序分析和设计仿真软件,熟悉介绍的为基本模型机而设计的微程序的执行过程。

必须充分理解并正确解释下些问题:(1)微程序中的微指令的各个字段的作用。

哪些字段是不译码的,哪些字段是直接译码的,哪些字段又可以看成是字段间接编码的。

(2)微程序中的微指令是否是顺序执行的,如果不是,那么次地址是如何产生的。

什么情况下,次地址字段才是将要执行的微指令的地址。

(3)在微程序中如何根据机器指令中的相关位实现分支,据此,在设计机器指令时应如何避免和解决与其它指令的微指令的微地址冲突。

(4)哪些微指令是执行所有指令都要用到的。

(5)解释一条机器指令的微程序的各条微指令的微地址是否连续?这些微指令的微地址的安排的严重原则是什么?(6)为什么读写一次内存总要用两条微指令完成?(7)机器程序中用到的寄存器是R0,是由机器指令中哪些位决定的?如果要用R1或R2,是否要改写微程序或改写机器指令?如果要,应如何改写?2.在原有5条机器指令的基础上增加实现下述各功能的机器指令,试设计相应的机器指令的格式并改写原来的微程序使其可以运行所有的机器指令。

新增加的机器指令的功能是:求反指令NOT RS,RD :/(RS) →(RD)与指令AND RD,(addr):(RD)与(addr)→(RD)异或指令XOR RD,(addr):(addr)异或(RD)→(RD)或指令OR RD,(addr):(RD)或(addr)→(RD)减法指令SUB RD,RS :(RS)减(RD)→(RD)其中的RS、RD可以是R0、R1、R2中的任何一个。

计算机组成原理实验报告

计算机组成原理实验报告

计算机组成原理实验报告实验报告运算器实验⼀、实验⽬的掌握⼋位运算器的数据传输格式,验证运算功能发⽣器及进位控制的组合功能。

⼆、实验要求完成算术、逻辑、移位运算实验,熟悉ALU运算控制位的运⽤。

三、实验原理实验中所⽤的运算器数据通路如图2-3-1所⽰。

ALU运算器由CPLD描述。

运算器的输出FUN经过74LS245三态门与数据总线相连,运算源寄存器A和暂存器B的数据输⼊端分别由2个74LS574锁存器锁存,锁存器的输⼊端与数据总线相连,准双向I/O 输⼊输出端⼝⽤来给出参与运算的数据,经2⽚74LS245三态门与数据总线相连。

图2-3-1运算器数据通路图中A WR、BWR在“搭接态”由实验连接对应的⼆进制开关控制,“0”有效,通过【单拍】按钮产⽣的脉冲把总线上的数据打⼊,实现运算源寄存器A、暂存器B的写⼊操作。

四、运算器功能编码算术运算逻辑运算K23~K0置“1”,灭M23~M0控位显⽰灯。

然后按下表要求“搭接”部件控制路。

表2.3.2 运算实验电路搭接表算术运算1.运算源寄存器写流程通过I/O单元“S7~S0”开关向累加器A和暂存器B置数,具体操作步骤如下:2.运算源寄存器读流程关闭A、B写使能,令K18=K17=“1”,按下流程分别读A、B。

3.加法与减法运算令M S2 S1 S0(K15 K13~K11=0100),为算术加,FUN及总线单元显⽰A+B的结果令M S2 S1 S0(K15 K13~K11=0101),为算术减,FUN及总线单元显⽰A-B的结果。

逻辑运算1.运算源寄存器写流程通过“I/O输⼊输出单元”开关向寄存器A和B置数,具体操作步骤如下:2.运算源寄存器读流程关闭A、B写使能,令K17= K18=1,按下流程分别读A、B。

①若运算控制位设为(M S2 S1 S0=1111)则F=A,即A内容送到数据总线。

②若运算控制位设为(M S2 S1 S0=1000)则F=B,即B内容送到数据总线。

《计算机组成原理》学生实验报告

《计算机组成原理》学生实验报告

《计算机组成原理》学生实验报告(2011~2012学年第二学期)专业:信息管理与信息系统班级: A0922学号:10914030230姓名:李斌目录实验准备------------------------------------------------------------------------3 实验一运算器实验-----------------------------------------------------------7 实验二数据通路实验-------------------------------------------------------13 实验三微控制器实验--------------------------------------------------------18 实验四基本模型机的设计与实现------------------------------------------22实验准备一、DVCC实验机系统硬件设备1、运算器模块运算器由两片74LS181构成8位字长的ALU。

它是运算器的核心。

可以实现两个8位的二进制数进行多种算术或逻辑运算,具体由74181的功能控制条件M、CN、S3、S2、S1、S0来决定,见下表。

两个参与运算的数分别来自于暂存器U29和U30(采用8位锁存器),运算结果直接输出到输出缓冲器U33(采用74LS245,由ALUB信号控制,ALUB=0,表示U33开通,ALUB=1,表示U33不通,其输出呈高阻),由输出缓冲器发送到系统的数据总线上,以便进行移位操作或参加下一次运算。

进位输入信号来自于两个方面:其一对运算器74LS181的进位输出/CN+4进位倒相所得CN4;其二由移位寄存器74LS299的选择参数S0、S1、AQ0、AQ7决定所得。

触发器的输出QCY就是ALU结果的进位标志位。

QCY为“0”,表示ALU结果没有进位,相应的指示灯CY灭;QCY为“1”,表示ALU结果有进位,相应的指示灯CY点亮。

《计算机组成原理》教案

《计算机组成原理》教案

《计算机组成原理》教案一、课程简介1.1 课程背景计算机组成原理是计算机科学与技术专业的一门核心课程,旨在帮助学生了解和掌握计算机的基本组成、工作原理和性能优化方法。

通过本课程的学习,学生将能够理解计算机硬件系统的整体结构,掌握各种计算机组件的功能和工作原理,为后续学习操作系统、计算机网络等课程打下基础。

1.2 课程目标(1)了解计算机系统的基本组成和各部分功能;(2)掌握计算机指令系统、中央处理器(CPU)的工作原理;(3)熟悉存储器层次结构、输入输出系统及总线系统;(4)学会分析计算机系统的性能和优化方法。

二、教学内容2.1 计算机系统概述(1)计算机的发展历程;(2)计算机系统的层次结构;(3)计算机系统的硬件和软件组成。

2.2 计算机指令系统(1)指令的分类和格式;(2)寻址方式;(3)指令的执行过程。

2.3 中央处理器(CPU)(1)CPU的结构和功能;(2)流水线技术;(3)多核处理器。

2.4 存储器层次结构(1)存储器概述;(2)随机存取存储器(RAM);(3)只读存储器(ROM);(4)缓存(Cache)和虚拟存储器。

2.5 输入输出系统(1)输入输出设备;(2)中断和DMA方式;(3)总线系统。

三、教学方法3.1 讲授法通过讲解、举例、分析等方式,使学生掌握计算机组成原理的基本概念、原理和应用。

3.2 实验法安排实验课程,使学生在实践中了解和验证计算机组成原理的相关知识。

3.3 案例分析法分析实际案例,使学生了解计算机组成原理在实际应用中的作用和意义。

四、教学评价4.1 平时成绩包括课堂表现、作业完成情况、实验报告等。

4.2 期末考试采用闭卷考试方式,测试学生对计算机组成原理知识的掌握程度。

五、教学资源5.1 教材《计算机组成原理》(唐朔飞著,高等教育出版社)。

5.2 辅助资料包括课件、实验指导书、案例分析资料等。

5.3 网络资源推荐学生访问相关学术网站、论坛,了解计算机组成原理的最新研究动态和应用成果。

计算机组成原理-简单模型机设计课设

目录摘要 (2)前言 (3)正文 (4)一、设计目的和设计原理 (4)1.1设计目的 (4)1.2设计原理 (4)二、总体设计 (7)三、详细设计 (8)3.1运算器的物理结构 (8)3.2存储器系统的组成与说明 (11)3.3指令系统的设计与指令分析 (12)3.4微程序控制器的逻辑结构及功能 (14)3.5微程序的设计与实现 (18)四、系统调试 (27)总结 (29)参考文献 (30)致谢 (31)摘要根据设计任务书要求,本设计要实现完成一个简单计算机的设计,主要设计部分有运算器,存储器,控制器以及微指令的设计。

其中运算器由运算芯片和寄存器来完成,存储器由总线和寄存器构成,使用硬布线的方式实现控制器,从而完成设计要求。

:关键词:基本模型机的设计;运算器;存储器;控制器;前言计算机组成原理是计算机科学技术学科的一门核心专业基础课程。

从课程的地位来说,它在先导课程和后续课程之间起着承上启下的作用。

计算机组成原理讲授单处理机系统的组成和工作原理,课程教学具有知识面广,内容多,难度大,更新快等特点。

此次课程设计目的就是为了加深对计算机的时间和空间概念的理解, 增强对计算机硬件和计算机指令系统的更进一步了解。

计算机组成原理课程设计目的是为加深对计算机工作原理的理解以及计算机软硬件之间的交互关系。

不仅能加深对计算机的时间和空间的关系的理解,更能增加如何实现计算机软件对硬件操作,让计算机有条不紊的工作。

正文一、设计目的和设计原理1.1设计目的融会贯通计算机组成原理课程中各章的内容,通过知识的综合运用,加深对计算机系统各模块的工作原理及相互联系的认识,特别是对硬连线控制器的认识,建立清晰的整机概念。

对计算机的基本组成、部件的设计、部件间的连接、微程序控制器的设计、微指令和微程序的编制与调试等过程有更深的了解,加深对理论课程的理解。

在掌握部件单元电路实验的基础上,进一步将其组成系统地构造一台基本模型计算机。

计组课程设计报告--谢育武

计组课程设计报告--谢育武计算机组成原理课程设计--------- 微程序控制及CPU指令执行姓名:谢育武学号:20211003789 指导老师:刘超班号:192103--271第五节微程序控制器组成实验一、实验目的(1)掌握时序产生器的组成原理。

(2)掌握微程序控制器的组成原理。

(3)掌握微指令格式的化简和归并。

二、实验电路1.时序发生器TIMER1GAL22V101GND2晶振43VCCMF1CLR#2QD3DP4DZ5TJI6P17INTS8INTC9DB1011GND12CLKININININININININININGNDVC CIOIOIOIOIOIOIOIOIOIOIN242322212021181716151413VCCCLK1INTECLK11INTR2INTE34CLR# 5SKIP67891011GND12TIMER2GAL22V10CLKININININININININININGNDVCCIOIOIOIOIOIOIOIOI OIOIN1242322212021181716151413VCCINTQW4W3W2W1GNDT4T3T2T1W4图9 时序信号发生器图TEC―4计算机组成原理实验系统的时序电路如图9所示。

电路采用2片GAL22V10(U6、U7),可产生两级等间隔时序信号T1-T4和W1-W4,其中一个W由一轮T1-T4循环组成,它相当于一个微指令周期或硬布线控制器的一拍,而一轮W1―W4循环可供硬布线控制器执行一条机器指令。

本次实验不涉及硬布线控制器,因此时序发生器中的相关内容也可根据需要放到硬布线控制器实验中进行。

微程序控制器只使用时序信号T1-T4,产生T信号的功能集成在GAL22V10芯片TIMER1(U6)中,另外它还产生节拍信号W1、W2、W3、W4的控制时钟CLK1。

该芯片的逻辑功能用ABEL语言实现,其源程序如下: MODULE TIMER1TITLE 'CLOCK GGENERATOR T1,T2,T3,T4' \\MF,CLR,QD,DP,DZ,TJ,P1,INTS,INTC,DB PIN 1..10; W4 PIN 13;\T1,T2,T3,T4,QD1,QD2,ACT,INTE,QDR PIN 14..22; CLK1 PIN 23;T1,T2,T3,T4,QD1,QD2,INTE,QDR ISTYPE 'REG'; ACT,CLK1 ISTYPE 'COM'; CLK = .C.;S =[T1,T2,T3,T4,QD1,QD2,INTE,QDR];EQUATIONSQD1 := QD; QD2 := QD1;QDR := CLR & QD # CLR & QDR; ACT = QD1 & !QD2;T1 := CLR & T4 & ACT # CLR & T4 & !(DP # TJ # DZ & P1 # DB & W4) & QDR;T2 := CLR & T1; T3 := CLR & T2;T4 := !CLR # T3 # T4 & !ACT & (DP # TJ # DZ & P1 # DB & W4) # !QDR;INTE := CLR & INTS # CLR & INTE & !INTC; CLK1 = T1 # !CLR & MF;S.CLK = MF; ENDMFQDQD1QD2ACTQDR硬布线控制器只使用时序信号W1-W4,产生W信号的功能集成在GAL22V10芯片TIMER2(U7)中,该芯片的逻辑功能用ABEL语言实现,其源程序如下: MODULE TIMER2TITLE 'CLOCK GGENERATOR W1 W2 W3 W4' \\CLK1,INTR,IE PIN 1..3;CLR,SKIP PIN 5..6;\W1,W2,W3,W4,INTR1 PIN 14..18 ISTYPE 'REG'; INTQ PIN 20 ISTYPE'COM'; CLK = .C.;EQUATIONSW1 := CLR & W4 ;W2 := CLR & W1 & !SKIP; W3 := CLR & W2 & !SKIP;W4 := !CLR # W3 # SKIP & W1 # SKIP & W2 ; INTR1 := INTR; INTQ = IE & INTR1;[W1,W2,W3,W4,INTR1].CLK = CLK1; ENDTIMER1和TIMER2中还集成了中断逻辑,中断逻辑的介绍见第八节。

计算机组成原理实验报告

湖南师范大学工程与设计学院计算机组成原理实验报告姓名:年级:2014级专业:计算机科学与技术学号:**********任课教师:***开课时间:2015~2016学年第二学期湖南师范大学工程与设计学院实验数据报告单实验课程:计算机组成原理实验题目:基本运算器实验实验日期:2016年 6月13日专业:计算机年级:2014级班级:五班姓名:一.实验目的:1.了解运算器的组成结构2.掌握运算器的工作原理二..实验内容:主要内容:该试验旨在了解运算器内部运算过程及组成结构,并能进行一些简单的数据运算。

该实验通过一片CPLD来实现运算器部件的功能,在接好的实验电路上,用CMA软件将数据加载加入内存,最终实现通过设置CON单元的S3、S2、S1、S0以及时序T1、T2、T3、T4的不同值来实现不同的功能。

表现在:用S3、S2、S1、S0的不同值并配合CN的值来实现将寄存器A、寄存器B中的两个数进行逻辑运算、移位运算、算术运算,并且加上时间脉冲的加入,并且能够准确的实现值的输出。

结果体现在:用FC灯亮表示有进位,FZ灯亮表示零标志,D7…D0灯显示通过运算后得出来的值。

三.实验原理图:图一(运算器原理图)四.实验数据与分析:0000:功能是F=A(直通),因为A=65,所以F=65,且没有进位,标志位也没有变化,所以FC=0,FZ=0. 0001: 功能是F=B (直通),因为A=A7,所以F=A7,且没有进位,标志位也没有变化,所以FC=0,FZ=0. 0010: 功能是F=AB,也就是A与B的逻辑与,所以F=25, 且没有进位,标志位也没有变化,所以FC=0,FZ=0. 0011:功能是F=A+B,也就是A与B的逻辑或,所以F=E7, 且没有进位,标志位也没有变化,所以FC=0,FZ=0. 0100: 功能是F=/A,0101:功能是F=A不带进位循环右移B(取低三位)位。

0110:功能是当CN=0时,F=A逻辑右移一位;当CN=1时,F=A带进位逻辑右移一位。

计算机组成原理八位原码加减法器电路课程设计

计算机组成原理八位原码加减法器电路课程设计是一个重要的课题,它涉及到计算机内部数字运算的实现方式。

在加减法器电路的设计中,我们需要考虑到输入数据的编码方式以及运算的性质。

在这个设计中,我们将使用八位原码进行加减法运算。

首先,我们需要明确输入的数据格式。

原码表示法是一种最直观的数值表示方法,它直接反映了数值的正负和绝对大小。

对于八位二进制原码,它的取值范围是-256到255。

在这个范围内,数值的大小和其对应的二进制表示之间的关系是简单的线性关系。

接下来,我们来看一下加减法器的电路设计。

由于我们需要进行的是加法和减法运算,我们需要使用两个不同的电路模块:加法器和减法器。

对于加法器,我们可以使用异或门和与门组合的方式来实现。

八位二进制数的异或运算具有"无进位"的性质,因此在需要加法运算时,我们可以通过异或门来实现逐位相加。

由于输入的数据是以原码形式给出的,因此在输出端需要进行一次模2取反操作,将加法结果转化为实际的数值大小。

这个过程可以用一个简单的逻辑表达式描述如下:C[7:0] = A[7:0] XOR B[7:0]D[7:0] = 255 - C[7:0]其中,C[7:0]是异或运算的结果,D[7:0]是实际数值大小。

对于减法器,我们同样可以使用异或门和与门来实现。

由于减法运算涉及到负数的情况,我们需要引入进位信号来处理负数减法的溢出问题。

具体的实现方式可以参考加法器的设计,只是在输出端需要进行一次模2加操作,将减法结果转化为实际的数值大小。

在进行电路设计时,我们还需要考虑到一些细节问题,比如输入输出端的延迟问题、电路的稳定性和抗干扰能力等。

这些因素都可能影响到电路的性能和精度。

因此,在进行电路设计时,我们需要充分考虑这些因素,并通过实验和测试来验证我们的设计是否满足要求。

总的来说,八位原码加减法器电路的设计是一个复杂而又重要的任务。

通过这个设计,我们可以更好地理解计算机内部数字运算的实现方式,也可以为更高级的计算机组成原理课程设计打下基础。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

计算机组成原理课程设计报告专业名称:软件工程班级学号: 3090608001学生姓名:萧靖腾指导教师:杨旭东设计时间: 2011年6月21日—— 2011年6月29日第一天 取操作数微程序的设计和调试一、设计目标设计并调试取操作数的微程序二、取操作数微流程立即直接间接相对寄存器寻址寄存器间接寻址变址寻址立即/直接/间接/相对寻址取源操作数入口0040085:M →m AR 1,0ARoe ′, RD, DRce ′, PCinc00F0106:M′→m AR 2,1GRSoe, TRce0080060:NA →m ARDRoe, TRce0160060:NA →m AR进入取目标操作数PCoe, ARce 00APCoe, ARce00BARoe ′, RD,DRce ′, PCinc 00C DRoe, ARce012DRoe, Ace 010DRoe, Ace 00D ARoe ′, RD,DRce ′015ARoe ′, RD, DRce ′013PCoe ADD, SV 011GRSoe ADD, SV00EDRoe, ARce014Soe ,ARce 017GRSoe, ARce 009直接间接相对寄存器寻址寄存器间接寻址变址寻址直接/间接/相对寻址取目的数入口0060185:M →m AR 1,0ARoe ′, RD, DRce ′, PCinc01F0206:M′→m AR 2,1GRSoe, Ace0180070:NA →m ARDRoe, Ace0260070:NA →m AREXECPCoe, ARce 01APCoe, ARce01BARoe ′, RD,DRce ′, PCinc 01C DRoe, ARce022DRoe, Ace 020DRoe, Ace 01D ARoe ′, RD,DRce ′025ARoe ′, RD, DRce ′023PCoe ADD, SV 021GRSoe ADD, SV01EDRoe, ARce024Soe ,ARce 027GRSoe, ARce 019三、测试程序、数据及运行结果格式如下:1、测试内容:立即数寻址、直接寻址测试指令(或程序):MOV #5678H,0010H机器码:内存地址(H) 机器码(H) 汇编指令0000 077A 5678 0010MOV #5678H,0010H 运行结果及分析:2、测试内容:寄存器寻址、间接寻址测试指令(或程序):MOV R1,(0010H)机器码:内存地址(H) 机器码(H) 汇编指令0000 0439 0010MOV R1,(0010H)运行结果及分析:3、测试内容:寄存器间接寻址、相对寻址测试指令(或程序):MOV (R1),+0010H机器码:内存地址(H) 机器码(H) 汇编指令0000 0558 0010MOV (R1),+0010H运行结果及分析:4、测试内容:寄存器寻址、间接寻址测试指令(或程序):MOV #5678,disp(R3)机器码:内存地址(H) 机器码(H) 汇编指令0000 0773 0010MOV #5678,disp(R3)运行结果及分析:四、设计中遇到的问题及解决办法虽然以前上机实验的时候软件UniDebugger也用过,但是对UniDebugger的操作还是不太熟悉,导致微程序入口地址以及微程序输入的时候花了较多的时间。

在把程序语言翻译成机器语言的时候,请教了同学很多次,也占用了他很多时间。

第二天运算指令的微程序设计与调试一、设计目标设计并调试运算指令的微程序二、运算指令微程序入口地址指令助记符指令编码入口地址(H)F E D C B A 9 8 7 6 5 4 3 2 1 0MOV src, dst 0 0 0 0 0 1 源地址码目的地址码044ADD src, dst 0 0 0 0 1 0 源地址码目的地址码048ADDC src, dst 0 0 0 0 1 1 源地址码目的地址码04CSUB src, dst 0 0 0 1 0 0 源地址码目的地址码050SUBB src, dst 0 0 0 1 0 1 源地址码目的地址码054CMP src, dst 0 0 0 1 1 0 源地址码目的地址码058AND src, dst 0 0 0 1 1 1 源地址码目的地址码05COR src, dst 0 0 1 0 0 0 源地址码目的地址码060XOR src, dst 0 0 1 0 0 1 源地址码目的地址码064TEST src, dst 0 0 1 0 1 0 源地址码目的地址码068INC dst 0 0 0 0 0 0 1 0 0 0 1 目的地址码0A4DEC dst 0 0 0 0 0 0 1 0 0 1 0 目的地址码0A8NOT dst 0 0 0 0 0 0 1 0 0 1 1 目的地址码0AC三、运算类指令微程序微地址(H) 微指令(H) 微命令BM NA 注释007 0000 0800 4 指令执行入口048 9870 006F TRoe, ADD, Sce, PSWce 0 06F ADD0A4 1A70 006F INC,Sv,PSWce 0 06F ADDC068 9940 0000 TRoe,AND,PSWce 0 00006F 0000 0E70 7 070 存结果070 6800 0000 Soe,GRsce 0 000071 6003 0072 Soe,Drce 0 072072 0005 2400 Droe',Aroe',WR 0 000四、测试程序、数据及运行结果1、测试内容:1、将存储器中内容与寄存器中内容相加;2、将内存中内容与寄存器中内容相加;3、将存储单元中内容减一;4、将寄存器做为变址寄存器,将其与1111进行逻辑与运算;运行数据:MOV #0001 R0; 0760 0001 ADD (0011) (R1); 0939 0011 DEC 0010 ; 025A 0010 AND #1111 DISP(R2); 1F72 1111 运行结果及分析:五、设计中遇到的问题及解决办法刚开始不懂怎么翻译各种指令,后来经过同班长的指导,终于理清了头绪。

每一种指令的入口地址是固定的,而我刚开始以为是可以改变的,也试图按micro地址顺序去输入,发现实验不能继续。

第三天CPU硬件的初级设计与验证一、设计目标在运算器实验的基础上对硬件进行扩充,建立初级CPU的数据通路,构造一个只支持运算指令的初级CPU。

二、硬件设计1、PC模块设计(加上适当注释)/*程序计数器PC与R模块一样采用异步复位,当n_reset有效时,PC清0,否则在时钟信号clk的上升沿如果数据装入使能ce有效则d→q,如果自加信号PCinc有效则q+1→q。

PC通过三态门与IB相连。

*/`timescale 1ns / 1psmodule PC(d,q,n_reset,clk,ce,PCinc);input [15:0] d;input n_reset,clk,ce;input PCinc;output [15:0] q;reg [15:0] data;always @(posedge clk or negedge n_reset)beginif(!n_reset) //当n_reset有效时,PC清0data = 0;else if(ce) //ce有效则d→qdata = d;else if( PCinc ) //PCinc有效则q+1→qdata = data+1;endassign q = data;endmodule2、IR模块设计`timescale 1ns / 1ps/* DR连接内部总线IB和系统总线的DB ;DR有两路数据输入data_IB、data_DB,分别来自IB、DB,相应的有两个装入使能信号DRce_IB、DRce_DB,输出端q分别通过两个三态门连到IB、DB。

DR采用异步复位,复位时DR清0,否则在时钟信号的上升沿,当DRce_IB有效时则data_IB→q,当DRce_DB有效时则data_DB→q。

*/module DR #(parameter DATAWIDTH=16)(input wire [DATAWIDTH-1:0] data_IB,input wire [DA TAWIDTH-1:0] data_DB,input wire clk,input wire DRce_IB,input wire DRce_DB,input n_reset,output reg [DA TAWIDTH-1:0] q);always@(posedge clk or negedge n_reset)beginif(!n_reset) // DR采用异步复位,复位时DR清0q = 0;else if(DRce_IB) //DRce_IB有效时则data_IB→qq = data_IB;else if(DRce_DB) //DRce_DB有效时则data_DB→qq = data_DB;endendmodule3、顶层模块设计(自己增加的设计部分)//TR寄存器的实例化R #(DA TAWIDTH) TR(.q(TR_out), .d(IB), .clk(clock), .ce(TRce), .n_reset(n_reset)); //AR寄存器的实例化R #(DA TAWIDTH) AR(.q(AR_out), .d(IB), .clk(clock), .ce(ARce), .n_reset(n_reset)); //IR寄存器的实例化R #(DA TAWIDTH) IR(.q(IR_out), .d(IB), .clk(clock), .ce(IRce), .n_reset(n_reset));三、验证测试内容:1、将存储器中内容与寄存器中内容相加;2、将内存中内容与寄存器中内容相加;3、将存储单元中内容减一;4、将寄存器做为变址寄存器,将其与1111进行逻辑与运算;运行数据:MOV #0001 R0; 0760 0001ADD (0011) (R1); 0939 0011DEC 0010 ; 025A 0010AND #1111 DISP(R2); 1F72 1111运行结果及分析:四、设计中遇到的问题及解决办法第四天 为CPU 扩充转移指令一、设计要求在初级CPU 的基础上进行功能扩充,使其支持转移类指令 二、硬件uAG 模块设计(自己修改的设计部分,加上适当注释) 3’d3: uAGout={NA[8:1],BM3_uAR0};case(IR[7:6]) // 条件转移类指令 * 2'b00: Flag_MUX<=1'b0; 2'b01:Flag_MUX<=1'b0; //第四天的代码,参照指导书图2-10 2'b10: Flag_MUX<=1'b0; // 根据标志位正确生成BM3_uAR0 2'b11: Flag_MUX<=1'b0; default:Flag_MUX<=1'b0; endcase三、转移指令微程序的设计ARoe,PCceEXEC1àFIC转移条件满足YN转移指令入口0763:0760000:固定转移0770000:固定转移NOP000条件不满足条件满足(a )(b)四、测试程序、数据及运行结果1、测试内容(1):通过比较指令,将PSW 标志位设置为0101,然后测试转移指令是否能正确执行。

相关文档
最新文档