开放式CPU 运算器部件实验 移位器
实验报告_运算器实验

实验报告_运算器实验一、实验目的本次运算器实验的主要目的是深入了解运算器的工作原理和功能,通过实际操作和观察,掌握其基本运算逻辑和数据处理过程,培养对计算机硬件系统的理解和实践能力。
二、实验设备本次实验所使用的设备包括计算机一台、相关的实验软件以及连接线路等。
三、实验原理运算器是计算机的核心部件之一,它负责执行各种算术和逻辑运算。
其基本组成包括算术逻辑单元(ALU)、寄存器、数据总线等。
算术逻辑单元(ALU)是运算器的核心,能够进行加法、减法、乘法、除法等算术运算,以及与、或、非等逻辑运算。
寄存器用于暂时存储参与运算的数据和运算结果。
数据总线则用于在各个部件之间传输数据。
在运算过程中,数据从寄存器通过数据总线传输到ALU 进行运算,运算结果再通过数据总线存储回寄存器或传输到其他部件。
四、实验内容与步骤(一)实验内容1、进行简单的算术运算,如加法、减法、乘法和除法。
2、执行逻辑运算,包括与、或、非操作。
3、观察运算结果在寄存器和数据总线上的传输和存储过程。
(二)实验步骤1、打开实验软件,连接好实验设备。
2、选择要进行的运算类型,如加法运算。
3、在相应的输入框中输入两个操作数。
4、点击“计算”按钮,观察运算结果在寄存器中的显示。
5、重复上述步骤,进行其他类型的运算。
五、实验结果与分析(一)实验结果1、加法运算:当输入操作数分别为 5 和 3 时,运算结果为 8,准确无误。
2、减法运算:输入 8 和 3,结果为 5,符合预期。
3、乘法运算:输入 2 和 4,得到结果 8,正确。
4、除法运算:输入 10 和 2,结果为 5,无差错。
5、逻辑运算:与运算:输入 1010 和 1100,结果为 1000。
或运算:输入 0101 和 1010,结果为 1111。
非运算:输入 1010,结果为 0101。
(二)结果分析通过对实验结果的观察和分析,可以得出以下结论:1、运算器能够准确地执行各种算术和逻辑运算,结果符合预期。
计算机组成原理 实验三 移位器

实验报告成绩课程名称计算机组成原理指导教师实验日期院(系) 计算机科学与技术学院专业班级实验地点学生姓名学号同组人实验项目名称实验三移位器一、实验目的和要求实验目的:1.掌握移位器的结构及工作原理;2.掌握层次化设计方法。
实验要求:1.使用层次化设计方法(见1.3),将移位器生成部件。
2.生成部件时,注意引脚不要锁定,直接编译,引脚命名不要重名。
3.注意保存好该实验生成的移位器部件,实验五将调用它。
4.完成详细的实验报告。
二、实验原理设计一个4位二进制数的移位电路,可以实现左移1位、右移1位和直接传送功能。
在LM(左移)的控制下可实现左移1位,空位补0。
在RM(右移)的控制下可实现右移1位,空位补0。
在DM(直送)的控制下可实现直接传送。
三、主要仪器设备1. 操作系统为WINDOWS的计算机一台;2. 数字逻辑与计算机组成原理实验系统一台;3. 两输入与门7408、三输入或门74hc32。
四、实验方法与步骤1.用图形输入法完成移位器逻辑电路输入。
2.管脚锁定:将四位二进制数a3-a0定义在K3-K0上;将4位输出q3-q0定义在LD3-LD0上;将LM定义在K8上,高电位有效;将DM定义在K9上,高电位有效;将RM定义在K10上,高电位有效,完毕后下载。
3.设置K3-K0为任意4位数,在LM、DM、RM的作用下分别观察LD3-LD0的显示,并分析其正确性。
4.生成元件符号。
五、实验结果分析六、实验心得通过本次实验,掌握了移位器的结构以及工作原理;掌握了层次化设计方法。
对后续实验打下坚实的基础。
构成cpu的主要部件是什么

“构成CPU的主要部件是运算逻辑部件、寄存器部件和控制部件。
算术逻辑单元:算术逻辑单元(arithmetic and logic unit) 是能实现多组算术运算和逻辑运算的组合逻辑电路,简称ALU。
寄存器:寄存器的功能是存储二进制代码,它是由具有存储功能的触发器组合起来构成的。
一个触发器可以存储1位二进制代码,故存放n 位二进制代码的寄存器,需用n个触发器来构成。
控制单元:控制单元(Control Unit)负责程序的流程管理。
正如工厂的物流分配部门,控制单元是整个CPU的指挥控制中心,由指令寄存器IR(Instruction Register)、指令译码器ID(Instruction Decoder)和操作控制器OC(Operation Controller)三个部件组成,对协调整个电脑有序工作极为重要。
控制单元可以作为CPU的一部分,也可以安装于CPU外部。
中央处理器:中央处理器作为计算机系统的运算和控制核心,是信息处理、程序运行的最终执行单元。
CPU 自产生以来,在逻辑结构、运行效率以及功能外延上取得了巨大发展。
中央处理器(CPU),是电子计算机的主要设备之一,电脑中的核心配件。
其功能主要是解释计算机指令以及处理计算机软件中的数据。
CPU是计算机中负责读取指令,对指令译码并执行指令的核心部件。
中央处理器主要包括两个部分,即控制器、运算器,其中还包括高速缓冲存储器及实现它们之间联系的数据、控制的总线。
电子计算机三大核心部件就是CPU、内部存储器、输入/输出设备。
中央处理器的功效主要为处理指令、执行操作、控制时间、处理数据。
在计算机体系结构中,CPU 是对计算机的所有硬件资源(如存储器、输入输出单元)进行控制调配、执行通用运算的核心硬件单元。
CPU 是计算机的运算和控制核心。
计算机系统中所有软件层的操作,最终都将通过指令集映射为CPU的操作。
结构通常来讲,CPU的结构可以大致分为运算逻辑部件、寄存器部件和控制部件等。
运算器实验原理

运算器实验原理
运算器实验是一种电子电路实验,旨在探究运算器的原理和功能。
运算器是一种电路,它可以对数字信号进行特定的算术和逻辑运算,如加法、乘法、与、或、非等。
它通常被用作数字信号处理系统中的核心组件,例如计算机和数字信号处理器。
运算器实验原理主要包括以下内容:
1. 运算器的基本结构和功能原理。
2. 运算器的内部电路,例如加法器、乘法器、逻辑电路等。
3. 运算器的运算精度,包括浮点数精度和定点数精度。
4. 运算器的时钟频率和响应速度。
5. 运算器的测试方法和性能评估。
在运算器实验中,通常会使用逻辑电路芯片(例如74LS00、
74LS08等)来实现运算器的基本逻辑功能,而使用可编程逻
辑器件(例如FPGA、CPLD等)来实现更复杂的功能,例如
浮点数运算、定点数运算等。
实验者需要熟悉逻辑电路设计和程序设计的基本原理,以便能够进行有效的实验设计和调试。
实验过程中,需要使用数字示波器、信号发生器、直流电源等测试仪器,以对运算器的输入输出波形进行监测和分析。
同时,需要进行各种性能评估,例如电路响应速度、功耗、噪声等方
面的测试,以深入理解运算器的工作原理和特点。
总之,运算器实验是一项非常有挑战性和实用价值的电子电路实验,它可以帮助实验者掌握数字信号处理系统和计算机系统中的基本概念和技能,为未来的研究和工作打下坚实的基础。
对运算器输出的移位门控制实验的理解

对运算器输出的移位门控制实验的理解移位门控制实验是一种基于运算器的实验,其目的是通过控制移位门来实现对数据的移位操作。
在这个实验中,我们可以通过改变移位门的控制信号来控制数据的移位方向和位数。
在运算器中,移位门通常是由一组逻辑门组成的电路,用于实现数据的移位操作。
移位操作可以将数据在二进制表示中向左或向右移动一定的位数。
移位操作有两种类型:逻辑移位和算术移位。
逻辑移位是通过将数据的位数进行移位,并将空出的位补零或补一来填充。
逻辑左移将数据的每一位向左移动一位,并在最低位补零;逻辑右移将数据的每一位向右移动一位,并在最高位补零。
算术移位是通过将数据的位数进行移位,并将空出的位保持原有的值。
算术左移将数据的每一位向左移动一位,并在最低位补零;算术右移将数据的每一位向右移动一位,并在最高位保持原有的值。
在移位门控制实验中,我们可以通过改变移位门的控制信号来选择逻辑移位还是算术移位,以及移位的方向和位数。
通过观察运算器的输出,我们可以验证移位门的控制是否正确,并对移位操作的结果进行理解和分析。
例如,当我们将移位门的控制信号设置为逻辑左移,移位的位数为2时,如果输入数据为1010,那么移位操作后的输出数据应为1000。
通过实验观察到的输出结果和预期结果的一致性,我们可以得出移位门的控制是正确的结论。
通过对移位门控制实验的理解,我们可以更深入地了解逻辑移位和算术移位的原理和应用。
移位操作在计算机系统中被广泛应用,例如在数据加密、图像处理和编码解码等领域。
掌握移位门的控制方法可以帮助我们更好地理解和设计这些应用。
同时,通过实验观察和分析移位操作的结果,我们还可以进一步研究和探索其他与移位相关的问题和技术。
运算器实验实验报告

运算器实验实验报告一、实验目的运算器是计算机中进行算术和逻辑运算的部件,本次实验的目的在于深入理解运算器的工作原理,掌握其基本结构和功能,并通过实际操作和测试,提高对计算机硬件系统的认识和实践能力。
二、实验设备本次实验所使用的设备包括:计算机、数字逻辑实验箱、导线若干等。
三、实验原理运算器主要由算术逻辑单元(ALU)、寄存器、数据通路和控制逻辑等组成。
ALU 是运算器的核心部件,能够执行加法、减法、乘法、除法等算术运算以及与、或、非等逻辑运算。
寄存器用于存储参与运算的数据和运算结果,数据通路负责在各部件之间传输数据,控制逻辑则根据指令控制运算器的操作。
在本次实验中,我们采用数字逻辑电路来构建运算器的基本功能单元,并通过连线和设置控制信号来实现不同的运算操作。
四、实验内容1、算术运算实验(1)加法运算首先,将两个 8 位二进制数分别输入到两个寄存器中,然后通过控制信号使 ALU 执行加法运算,将结果存储在另一个寄存器中,并通过数码管显示出来。
通过改变输入的数值,多次进行加法运算,观察结果是否正确。
(2)减法运算与加法运算类似,将两个 8 位二进制数输入到寄存器中,使 ALU 执行减法运算,观察结果的正确性。
2、逻辑运算实验(1)与运算输入两个 8 位二进制数,控制 ALU 进行与运算,查看结果。
(2)或运算同样输入两个 8 位二进制数,进行或运算并验证结果。
(3)非运算对一个 8 位二进制数进行非运算,观察输出结果。
3、移位运算实验(1)逻辑左移将一个 8 位二进制数进行逻辑左移操作,观察移位后的结果。
(2)逻辑右移执行逻辑右移操作,对比移位前后的数据。
五、实验步骤1、连接实验设备按照实验箱的说明书,将计算机与数字逻辑实验箱正确连接,并接通电源。
2、构建电路根据实验要求,使用导线将数字逻辑芯片连接起来,构建运算器的电路结构。
3、输入数据通过实验箱上的开关或按键,将待运算的数据输入到相应的寄存器中。
计算机组成原理运算器移位器控制器

计算机组成原理运算器移位器控制器1.运算器运算器是计算机中负责执行算术和逻辑运算的部件。
其主要功能是进行加法、减法、乘法、除法等运算,并且可以进行逻辑运算如与、或、非等操作。
一般来说,运算器由算术逻辑单元(ALU)和寄存器组成。
算术逻辑单元包括了算术运算电路和逻辑运算电路。
算术运算电路负责实现加法、减法、乘法等运算,而逻辑运算电路则负责实现与、或、非等逻辑运算。
2.移位器移位器是计算机中负责实现数据移位的部件。
数据移位是将二进制数的位进行移动的操作,分为逻辑移位和算术移位两种。
逻辑移位是指将二进制数按照指定方向进行移位,空出的位补0或删除多余位。
算术移位则是在逻辑移位的基础上,保留最高位的符号位。
在计算机中,移位操作可以通过位移电路来实现。
位移电路一般包括了多个触发器和逻辑门,根据控制信号来实现不同的移位操作。
3.控制器控制器是计算机中负责指挥和协调各个硬件部件工作的部件。
其主要功能是根据指令的执行流程,生成控制信号来控制各个硬件部件的工作。
一般来说,控制器由时序电路和控制存储器组成。
时序电路负责生成时序信号,即根据时钟信号的变化来确定各个操作的时机。
控制存储器则用来存储指令执行的顺序和所需的控制信号。
控制器通过读取有关指令的信息,对相应的硬件部件发出控制信号,根据指令的要求完成相应的操作。
总结起来,运算器、移位器和控制器是计算机中三个重要的功能模块。
运算器负责执行算术和逻辑运算,移位器负责数据移位操作,而控制器负责协调和控制各个硬件部件的工作。
这三个模块的协同工作使得计算机能够完成各种复杂的任务,实现计算、逻辑运算和控制等功能。
运算器组成实验

第二节运算器组成实验一、实验目的(1)掌握算术逻辑运算加、减、乘、与的工作原理。
(2)熟悉简单运算器的数据传送通路。
(3)验证实验台运算器的8位加、减、与、直通功能。
(4)验证实验台的4位乘4位功能。
(5)按给定数据,完成几种指定的算术和逻辑运算。
二、实验电路图6示出了本实验所用的运算器数据通路图。
ALU由1片ispLSI1024构成。
四片4位的二选一输入寄存器74HC298构成两个操作数寄存器DR1和DR2,保存参与运算的数据。
DR1接ALU的B 数据输入端口,DR2接ALU的A数据输入端口,ALU的输出在ispLSI1024内通过三态门发送到数据总线DBUS7—DBUS0上,进位信号C保存在ispLSI1024内的一个D寄存器中。
当实验台下部的IR/DBUS 开关拨到DBUS位置时,8个红色发光二极管指示灯接在数据总线DBUS上,可显示运算结果或输入数据。
另有一个指示灯C显示运算器进位信号状态。
由ispLSI1024构成的8位运算器的运算类型由选择端S2、S1、S0选择,功能如表3所示:进位C只在加法运算和减法运算时产生,与、乘、直通操作不影响进位C的状态,即进位C保持不变。
减法运算采用加减数的反码再加以1实现。
在加法运算中,C代表进位;在减法运算中,C 代表借位。
运算产生的进位在T4的上升沿送入ispLSI1024内的C寄存器保存。
在SW_BUS#信号为0时,参与运算的数据通过一个三态门74HC244(SW_BUS)送到DBUS总线上,进而送至DR1或DR2操作数寄存器。
输入数据可由实验台上的8个二进制数据开关SW0—SW7来设置,其中SW0是最低位,SW7是最高位。
开关向上时为1,开关向下时为0。
图中尾巴上带粗短线标记的信号都是控制信号,控制信号均为电位信号。
T3、T4是脉冲信号,印制板上已连接到实验台的时序电路产生的T3、T4信号上。
S2、S1、S0、ALU_BUS、LD_DR2、LDDR1、M1、M2、SW_BUS#各电位控制信号用电平开关K0—K15来模拟。
计算机组成原理运算器实验

实验一运算器实验计算机的一个最主要的功能就是处理各种算术和逻辑运算,这个功能要由CPU中的运算器来完成,运算器也称作算术逻辑部件ALU。
本章首先安排一个基本的运算器实验,了解运算器的基本结构,然后再设计一个加法器和一个乘法器。
一、实验目的(1) 了解运算器的组成结构。
(2) 掌握运算器的工作原理。
二、实验设备PC机一台,TD-CMA实验系统一套。
三、实验原理本实验的原理如图1-1所示。
运算器内部含有三个独立运算部件,分别为算术、逻辑和移位运算部件,要处理的数据存于暂存器A 和暂存器B,三个部件同时接受来自A和B的数据(有些处理器体系结构把移位运算器放于算术和逻辑运算部件之前,如ARM),各部件对操作数进行何种运算由控制信号S3…S0和CN来决定,任何时候,多路选择开关只选择三部件中一个部件的结果作为ALU的输出。
如果是影响进位的运算,还将置进位标志FC,在运算结果输出前,置ALU零标志。
ALU中所有模块集成在一片CPLD中。
逻辑运算部件由逻辑门构成,较为简单,而后面又有专门的算术运算部件设计实验,在此对这两个部件不再赘述。
移位运算采用的是桶形移位器,一般采用交叉开关矩阵来实现,交叉开关的原理如图1-2所示。
图中显示的是一个4×4的矩阵(系统中是一个8×8的矩阵)。
每一个输入都通过开关与一个输出相连,把沿对角线的开关导通,就可实现移位功能,即:(1) 对于逻辑左移或逻辑右移功能,将一条对角线的开关导通,这将所有的输入位与所使用的输出分别相连,而没有同任何输入相连的则输出连接0。
(2) 对于循环右移功能,右移对角线同互补的左移对角线一起激活。
例如,在4位矩阵中使用‘右1’和‘左3’对角线来实现右循环1位。
(3) 对于未连接的输出位,移位时使用符号扩展或是0填充,具体由相应的指令控制。
使用另外的逻辑进行移位总量译码和符号判别。
D[7..0]IN[7..0]图1-1 运算器原理图运算器部件由一片CPLD实现。
实验2 运算器 实验报告

实验2 运算器实验报告一、实验目的本次实验的主要目的是深入了解运算器的工作原理和功能,通过实际操作和观察,掌握运算器在计算机系统中的重要作用,提高对计算机硬件结构的理解和认识。
二、实验设备本次实验使用了以下设备:1、计算机一台,配置为_____处理器、_____内存、_____硬盘。
2、实验软件:_____。
三、实验原理运算器是计算机中执行算术和逻辑运算的部件。
它主要由算术逻辑单元(ALU)、寄存器、数据通路和控制电路等组成。
算术逻辑单元(ALU)能够进行加、减、乘、除等算术运算,以及与、或、非、异或等逻辑运算。
寄存器用于暂存操作数和运算结果,数据通路负责在各个部件之间传输数据,控制电路则根据指令控制运算器的操作。
在运算过程中,数据从寄存器或内存中读取,经过 ALU 处理后,结果再存回寄存器或内存中。
四、实验内容与步骤(一)加法运算实验1、打开实验软件,进入运算器实验界面。
2、在操作数输入框中分别输入两个整数,例如 5 和 10。
3、点击“加法”按钮,观察运算结果显示框中的数值。
4、重复上述步骤,输入不同的操作数,验证加法运算的正确性。
(二)减法运算实验1、在实验界面中,输入被减数和减数,例如 15 和 8。
2、点击“减法”按钮,查看结果是否正确。
3、尝试输入负数作为操作数,观察减法运算的处理方式。
(三)乘法运算实验1、输入两个整数作为乘数和被乘数,例如 3 和 7。
2、启动乘法运算功能,检查结果的准确性。
3、对较大的数值进行乘法运算,观察运算时间和结果。
(四)除法运算实验1、给定被除数和除数,如 20 和 4。
2、执行除法运算,查看商和余数的显示。
3、尝试除数为 0 的情况,观察系统的处理方式。
(五)逻辑运算实验1、分别进行与、或、非、异或等逻辑运算,输入相应的操作数。
2、观察逻辑运算的结果,理解不同逻辑运算的特点和用途。
五、实验结果与分析(一)加法运算结果通过多次输入不同的操作数进行加法运算,结果均准确无误。
计组

第七章 精简指令系统计算机..................................................... 91 7.1 计算机的指令系统 ....................................................... 91 7.2 基于 RISC 技术的模型计算机设计实验 .................................... 92 7.3 完整指令集的 RISC 模型计算机设计实验................................... 98
附件 1 键、指示灯说明.......................................................... 131 1 指示灯.................................................................. 131 2 按 键.................................................................. 132
第九章 流水线处理机.......................................................... 121 9.1 流水线的原理及基本思想 ................................................ 121 9.1.1 流水的基本概念 .................................................. 121 9.1.2 流水的特点..................................................... 122 9.1.3 相关处理....................................................... 122 9.2 基于流水技术的模型计算机设计实验 ..................................... 123
冯诺依曼计算机的五大部件运算器的功能

冯诺依曼型电脑的五大组成部分和各部分的功能如下:
1、运算器:计算机中执行各种算术和逻辑运算操作的部件。
运算器的基本操作包括加、减、乘、除四则运算,与、或、非、异或等逻辑操作,以及移位、比较和传送等操作,亦称算术逻辑部件(ALU);
2、控制器:由程序计数器、指令寄存器、指令译码器、时序产生器和操作控制器组成,它是发布命令的“决策机构”,即完成协调和指挥整个计算机系统的操作。
运算器和控制器统称中央处理器,也叫做CPU。
中央处理器是电脑的心脏;
3、存储器:存储器分为内存和外存。
内存是电脑的记忆部件,用于存放电脑运行中的原始数据、中间结果以及指示电脑工作的程序。
外存就像笔记本一样,用来存放一些需要长期保存的程序或数据,断电后也不会丢失,容量比较大,
但存取速度慢。
当电脑要执行外存里的程序,处理外存中的数据时,需要先把外存里的数据读入内存,然后中央处理器才能进行处理。
外存储器包括硬盘、光盘和优盘;
4、输入设备:输入设备是向计算机输入数据和信息的设备。
是计算机与用户或其他设备通信的桥梁。
输入设备是用户和计算机系统之间进行信息交换的主要装置之一。
键盘,鼠标,摄像头,扫描仪,光笔等都属于输入设备。
5、输出设备:是计算机硬件系统的终端设备,用于接收计算机数据的输出显示、打印、声音、控制外围设备操作等。
也是把各种计算结果数据或信息以数字、字符、图像、声音等形式表现出来。
常见的输出设备有显示器、打印机等。
运算器实验

计算机科学与技术系实验报告专业名称计算机科学与技术课程名称计算机组成原理项目名称运算器实验班级 15学号姓名 L同组人员无实验日期 2015/10/29 一、实验目的与要求目的:①了解运算器的组成结构。
②掌握运算器的工作原理。
要求:①实验之前,应认真准备,写出实验步骤和具体设计内容。
②应在实验前掌握所有控制信号的作用。
③实验过程中,应认真进行实验操作。
④实验之后,应认真思考总结,写出实验报告,包括实验步骤二、实验逻辑原理图与分析2.1 画实验逻辑原理图LDR0LDR1 LDR2 LDR3 R0R1 R3 R4OUT[7……0]CNPCS[3……0]FZLDB T4 LDA T4ALUD[7……0]图3-1 运算器原理图T4 T4 T4 T4图3-4 ALU 和外围电路连接原理图 2.2 逻辑原理图分析如上图3-1,运算器内部含有三个独立运算部件,分别为算术、逻辑和移位运算部件,要处理的数据存于暂存器A 和暂存器B ,三个部件同时接受来自A 和B 的数据(有些处理器运算由控制信号S3……S0和CN 来决定,任何时候,多路选择开关只选择三部件中一个部件的结果作为ALU 的输出。
如果是影响进位的运算,还将置进位标志FC ,在运算结果输出前,置ALU 零标志。
ALU 中所有模块集成在一片CPLD 中。
逻辑运算部件由逻辑门构成,较为简单,而后面又有专门的算术运算部件设计实验,B(273)显示B显示FC显示FZ三态控制(245)A(273)显示Ain(3) in(2) in(1) in(0) 右3 右2 右1 不移位左1左2左3在此对这两个部件不再赘述。
移位运算采用的是桶形移位器,一般采用交叉开关矩阵来实现,交叉开关的原理如图3-2所示。
图中显示的是一个4*4的矩阵(系统中是一个8*8的矩阵)。
每一个输入都通过开关与一个输出相连,把沿对角线的开关导通,就可实现移位功能,即:⑴对于逻辑左移或逻辑右移功能,将一条对角线的开关导通,这将所有的输入位与所使用的输出分别相连,而没有同任何输入相连的则输出连接0。
(计算机组成原理)实验一运算器实验

D
红色:运算器控制信号
BUS UNIT
蓝色:器件中信号
运算器电路图
M
S3
当为减
S2
法算术
S1
运算时
S0
输出1
ALU TO BUS
D7-D0
ALU-B
B7 B6 B5 B4 B3 B2 B1 B0 +5
A7
A6
A74LS2455
A4
A3
A2
A1
DIR E
A0
+5 +5
ZI D SET Q
1K
Q
CLR
Ci
返回
CN+4 F3 F2 F1 F0
S3
S2
ALU(74LS181)
S1 S0
M
CN
A3 A2 A1 A0 B3 B2 B1 B0
F3 F2 F1 F0
S3
S2
ALU(74LS181)
S1 S0
M
CN+4
A3 A2 A1 A0 B3 B2 B1 B0CN
S3 S2 S1 S0 M
Cn181
DA1,DA2:两片74LS273
T4 T1 B-IR
I3-I0
寄存器 译码
B-R0
MA6 -MA0
B-R1 B-R2
B-R3
R0-B
R1-B
R2-B
MA6-MA0
R3-B
D6-D0
J1
I7-I2
T1 微地址锁存器 OE CLK Q6-Q0 CLR
|
J5
FZ
指令译码器
FC
INT
T4 KA
7
KB
Q6-Q0
TEC-8计算机组成原理实验31200

实验设备
TEC-8计算机组成原理实验系统1台; TDS1001数字存储示波器1台;
一 运算器组成实验
实验目的: ⑴熟悉逻辑测试笔的使用方法。 ⑵熟悉TEC-8模型计算机的节拍脉冲T1、T2、T3; ⑶熟悉双端口通用寄存器组的读写操作; ⑷熟悉运算器的数据传送通路; ⑸验证74LS181的加、减、与、或功能; ⑹按给定的数据,完成几种指定的算术、逻辑运算
ALU由2片74LS181、1片74LS74、1片74 LS 244、1片74 LS 245和1片74LS30构成。 74LS181完成算术逻辑运算,加法和减法同时
参考连线:
数据 通路
RD0
RD1
RS0
RS1
DRW
电平 开关
K0
K1
K2
K3
K4
数据 通路
LDC
电平 开关
K5
LDZ S0 S1 S2 S3 M
四 微程序控制器组成实验
⑴掌握微程序控制器的原理 ⑵掌握TEC-8模型计算机中微程序控制器的
实现方法,尤其是微地址转移逻辑的实现 方法。 ⑶理解条件转移对计算机的重要性。
ZC
数据总线 DBUS
INS7—INS0
M S0
ABUS
S1 S2
ALU
LDC
S3
LDZ
CIN A端口
B端口
T3
MBUS MEMW
电平 开关
MBUS
K15
LAR MEMW
K10 K11
LPC
K12
ARINC PCINC PCADD
GND GND GND
实验任务
将实验电路与控制台的有关信号进行线路连接,方 法同前面的实验。
运算器移位运算实验实验报告

(2)进行四次循环右移或者四次循环左移。
五、实验小结
敢于动手,大胆尝试。
任课教师评语:
教师签字:年月日
教师签字:年月日
上面方括号中的控制电平变化要按照从上到下的顺序来进行, 其中T4的正脉冲是通过按动一次CONTROL UNIT的触动开关START来产生的。
(2)参照表1,改变S0 S1 M 299_G的状态,按动触动开关START,观察移位结果。
表1 74LS299功能表
299_G
S1
S0
M
功能
0
0
0
任意
保持
0
1
0
0
循环右移
0
101带进位循环移001
0
循环左移
0
0
1
1
带进位循环左移
任意
1
1
任意
装数
3.实验结果
循环右移或左移的时候, 每来一次脉冲, 发光二极管亮的次序也跟着依次改变, 进位标志位一直保持亮的状态, 带进位的循环则是产生进位的时候, 进位标志位的二极管熄灭。
四、回答问题
1.X=00101011, Y=10001111, 完成如下运算: (1)X加Y→X, (2)交换X高4位与低4位, 若借助实验1与实验2电路如何实现(简述操作过程)?
信息学院
实验报告
学号:
姓名:
班级:
课程名称:计算机组成原理
实验名称:实验二运算器移位运算实验
实验性质:①综合性实验②设计性实验③验证性实验:√
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
运算器部件实验 移位器一、实验目的1、理解寄存器、移位器的原理。
2、掌握5种移位器及其用途。
二、实验原理1、算术左移SAL (shift arithmetical left )、算术右移SAR(shift arithmetical right) 把操作数看成带符号数,对寄存器操作数进行移位,左移时空出的位补0,右移时空出的位补与最高位相同的1或0,如下图2、逻辑左移SLL (shift logical left )、逻辑右移SLR (shift logical right ) 把操作数看成无符号数,对寄存器操作数进行移位。
左移时空出的位补0,右移时空出的位补0,如下图3、循环左移ROF (rotation left )、循环右移ROR (rotation right )循环左右移其实是一样的,比如说8位的操作数,左移n (0≤n ≤8)位和右移n-8位结果是一样的。
左移时,移出的最高位移回到最低位;右移时,移出的最低位移回到最高位,如下图三、实验步骤循环右移循环左移算术右移‘00’逻辑左移0’1、打开QuartusⅡ,安装ByteBlaster Ⅱ。
2、将子板上的JTAG端口和PC机的并行口用下载电缆连接。
打开试验台电源。
3、执行Tools—Programmer 命令,将shifter.sof下载到FPGA中。
4、在实验台上通过模式开关选择FPGA-CPU独立调试模式010。
四、输入输出规则1、将开关CLKSEL拨到1,将短路子DZ3短接且短路子DZ4断开,使FPGA-CPU 所需要的时钟使用正单脉冲时钟。
2、输入的8位操作数D7~D0对应开关SD15~SD8。
3、移动的位数n(3位数)对应开关SD7~SD5。
4、方向dir(左移还是右移)对应开关SD4,0代表左移,1代表右移。
5、移位类型kind(2位)对应开关SD3~SD2,00代表算数移,01代表逻辑移,10代表循环移。
6、在按下实验台上的单脉冲按钮后,对操作数移位的结果在灯A7~A0上体现。
五、实验结果1.对8位数10110100进行移位操作,结果如下表1。
表1 第一组数据:101101102.对8位数01001101进行移位操作,结果如下表2。
表2 第二组数据:010011013.对8位数01010101进行移位操作,结果如下表3。
表3 第三组数据:01010101六、心得体会通过这次实验初步对实验台布局有了大致了解。
又重新使用VHDL,在很多细节但很重要的方面摔倒、爬起,比如说信号量赋值是在进程结束后完成,但编程时却忘记这一规则,在进程内就使用了未完成赋值的信号量,结果出错。
另外,移位器编写时由于分类较多,只关注了case 的各种情况,而忽略了时钟信号的使用,以至于调试时测试了很久都是在开关拨动时移位就开始了,而不等时钟信号的控制,这些都是粗心大意惹的祸,浪费了很多时间,以后倍加注意。
library ieee;use ieee.std_logic_1164.all;entity move isport(clk : in std_logic;D:in std_logic_vector(7 downto 0);N:in std_logic_vector(2 downto 0);dir:in std_logic;kind:in std_logic_vector(1 downto 0);light:out std_logic_vector(7 downto 0) );end entity;architecture rtl of move isbeginprocess (clk)beginif(clk'event and clk='1')thenif(dir='0')thenif(kind="10")thencase N iswhen "001"=>light(7 downto 1)<=D(6 downto 0);light(0)<=D(7);when "010"=>light(7 downto 2)<=D(5 downto 0);light(1)<=D(7);light(0)<=D(6);when "011"=>light(7 downto 3)<=D(4 downto 0);light(2 downto 0)<=D(7 downto 5);when "100"=>light(7 downto 4)<=D(3 downto 0);light(3 downto 0)<=D(7 downto 4);when "101"=>for i in 7 downto 5 looplight(i)<=D(i-5);end loop;light(4 downto 0)<=D(7 downto 3);when "110"=>light(7)<=D(1);light(6)<=D(0);light(5 downto 0)<=D(7 downto 2);when "111"=>light(7)<=D(0);light(6 downto 0)<=D(7 downto 1);when others=>light<=D;end case;elsif(kind="00"or kind="01")thencase N iswhen "001"=>for i in 7 downto 1 looplight(i)<=D(i-1);end loop;light(0)<='0';when "010"=>for i in 7 downto 2 looplight(i)<=D(i-2);end loop;light(1)<='0';light(0)<='0';when "011"=>for i in 7 downto 3 looplight(i)<=D(i-3);end loop;light(2 downto 0)<="000";when "100"=>for i in 7 downto 4 looplight(i)<=D(i-4);end loop;light(3 downto 0)<="0000";when "101"=>for i in 7 downto 5 looplight(i)<=D(i-5);end loop;for i in 4 downto 0 looplight(i)<='0';end loop;when "110"=>light(7)<=D(1);light(6)<=D(0);for i in 5 downto 0 loopend loop;when "111"=>light(7)<=D(0);for i in 6 downto 0 looplight(i)<='0';end loop;when others=>light<=D; end case;end if;elsif(dir='1')thenif(kind="10")thencase N iswhen "001"=>for i in 0 to 6 looplight(i)<=D(i+1);end loop;light(7)<=D(0);when "010"=>for i in 0 to 5 looplight(i)<=D(i+2);end loop;light(6)<=D(0);light(7)<=D(1);when "011"=>for i in 0 to 4 looplight(i)<=D(i+3);end loop;light(6)<=D(1);light(7)<=D(2);when "100"=>for i in 0 to 3 looplight(i)<=D(i+4);end loop;light(7 downto 4)<=D(3 downto 0);when "101"=>for i in 0 to 2 looplight(i)<=D(i+5);end loop;light(7 downto 3)<=D(4 downto 0);when "110"=>light(0)<=D(6);light(1)<=D(7);light(7 downto 2)<=D(5 downto 0);when "111"=>light(0)<=D(7);light(7 downto 1)<=D(6 downto 0);when others=>light<=D;end case;elsif(kind="00")thencase N iswhen "001"=>for i in 0 to 6 looplight(i)<=D(i+1);light(7)<=D(7); when "010"=>for i in 0 to 5 looplight(i)<=D(i+2); end loop;light(6)<=D(7); light(7)<=D(7); when "011"=>for i in 0 to 4 looplight(i)<=D(i+3); end loop;light(5)<=D(7); light(6)<=D(7); light(7)<=D(7); when "100"=>for i in 0 to 3 looplight(i)<=D(i+4); end loop;light(4)<=D(7);light(5)<=D(7);light(6)<=D(7); light(7)<=D(7); when "101"=>for i in 0 to 2 looplight(i)<=D(i+5); end loop;for i in 3 to 7 looplight(i)<=D(7); end loop;light(0)<=D(6);light(1)<=D(7);for i in 2 to 7 looplight(i)<=D(7);end loop;when "111"=>light(0)<=D(7);for i in 1 to 7 looplight(i)<=D(7);end loop;when others=>light<="XXXXXXXX"; end case;elsif(kind="01")thencase N iswhen "001"=>for i in 0 to 6 looplight(i)<=D(i+1);end loop;light(7)<='0';when "010"=>for i in 0 to 5 looplight(i)<=D(i+2);end loop;light(6)<='0';light(7)<='0';when "011"=>for i in 0 to 4 looplight(i)<=D(i+3);end loop;light(5)<='0';light(6)<='0';light(7)<='0';when "100"=>for i in 0 to 3 looplight(i)<=D(i+4);end loop;light(4)<='0';light(5)<='0';light(6)<='0';light(7)<='0';when "101"=>for i in 0 to 2 looplight(i)<=D(i+5);end loop;for i in 3 to 7 looplight(i)<='0';end loop;when "110"=>light(0)<=D(6);light(1)<=D(7);for i in 2 to 7 looplight(i)<='0';end loop;when "111"=>light(0)<=D(7);for i in 1 to 7 looplight(i)<='0';end loop;when others=>light<=D;end case;end if;end if;end if;end process;end rtl;。