计算机组成原理实验三运算器
计算机组成原理实验三数据输出移位门
1
R-OE 右
(1) 按照下表 0 1 移门
连接线。
1
L-OE 左
1 0 移门
1
没有输
11 出
连信 接 接 号孔 入孔
作用
状态说明
J
J
将 K23-K26 接
实验模式:手
1
1 座 3 座 入 DBUS[7:0]
动
X
K
寄存器输出选
2
0
5
择
X
K
寄存器输出选
3
1
6
择
X
K
寄存器输出选
4
2
7
择
A
K
5
EN 3
分析 首先设置手动模式:按[TV/ME]键三次,进入"Hand......"手动状态。 系统清零 K23-K16 开关置零,按[RST]钮。将 55H 写入 A 寄存器,二进 制开关 K23-K16 依次置为:01010101,控制信号 K3,K2,K1,KO 依次为:0111。按住 STEP 脉冲键,CK 由高变低,这时寄存器 A 的黄色选择指示灯亮,表明选择 A 寄 存器。放开 STEP 键,CK 由低变高,产生一个上升沿,数据 55H 被写入 A
据总线 DBUS 上;观察移位门输出结果。
2、实验电路
CPTH 中有 7 个寄存器可以向数据总线输出数据,但在某一特定时刻
只能有一个寄存器输出数据,由 X2,X1,X0 决定那一个寄存器输出数据 ,
下表是 X2,X1,X0 与各个寄存器的关系表。图 8 是总线上的 7 个寄存器的
控制端原理图。
X
输出寄
寄存器。S2S1S0=111 时运算器结果为寄存器 A 内容。
计算机组成原理运算器实验
实验一运算器实验计算机的一个最主要的功能就是处理各种算术和逻辑运算,这个功能要由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实现。
计算机组成原理实验报告
计算机组成原理实验报告实验报告运算器实验⼀、实验⽬的掌握⼋位运算器的数据传输格式,验证运算功能发⽣器及进位控制的组合功能。
⼆、实验要求完成算术、逻辑、移位运算实验,熟悉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内容送到数据总线。
计算机组成原理实验三运算器
实验三:八位运算器组成实验一:实验目的:1:掌握运算器的组成原理、工作原理;2:了解总线数据传输结构;3:熟悉简单的运算器的数据通路与控制信号的关系;4:完成给定数据的算术操作、逻辑操作;二:实验条件:1:PC机一台;2:MAX+PLUSⅡ软件;三:实验内容(一)1:所用到的芯片74181:四位算术逻辑运算单元;74244:收发器(双向的三态缓冲器)74273:八位D触发器;74374:八位D锁存器;74163:八进制计数器;7449:七段译码器2:实验电路图(1)运算器电路图(A)数据输入电路由两个十六进制计数器连接成16*16=256进制的计数器,可以实现八位的输入。
(B)运算功能选择电路由一个十六进制计数器组成,可以实现16种不同运算的选择。
再加上逻辑运算器上的M位和Cn位的选择,一共可以实现16*3=48种运算功能。
内部由一个74163构成。
内部结构:(C)数码管扫描显示电路由一个扫描电路scan和一个七段译码器7449组成,scan 内部是一个二选一的多路复用器。
scan内部结构:(D)运算器电路图(2)波形仿真图(A)输入两个数A=05H,B=0AH,O5H DR1,0AH DR2,并通过经由74181在总线上显示。
(B )对两个数进行各种数学运算和逻辑运算。
加法运算:输出控制:s4s3s2s1=0001,M=0,CN=0 输出使能:ALU_BUS=0 计算结果:05H+0AH=10H四:实验内容(二)给定A,B两个数,设A=05H,B=0AH,完成几种常见的算术运算和逻辑运算画出运算的波形和仿真图(1)逻辑运算:A and B,A or B,取反/A,A⊙B,A⊕B;(2)算术运算:A加B,A加B(带进位),A减B;(3)复合运算:A加B 减((/A)〃B)加B;(/(A⊙B)减(A⊕B)))加1计算(A加B)减((/A)〃B)后需要重新送入数据B,存入R5并且装载到LDDR2中。
实验三运算器功能选择及其实现实验
实验三运算器功能选择及其实现实验【实验要求】利用CP226 实验箱上的K16…K23 开关做为DBUS 数据的输入端,其它开关做为控制信号的输入端,将K16…K23 开关设定的数据写入锁存器A和W,通过控制信号开关选择控制ALU的运算功能并加以实现。
【实验目的】掌握模型机中算术逻辑运算单元功能选择及其实现的工作原理与控制方法。
【主要集成电路芯片及其逻辑功能】在CP226 实验箱中,运算器的算术逻辑运算单元(ALU)是由集成电路芯片CPLD实现的,CPLD有8 种运算功能,通过S2、S1、S0 来选择,运算输入数据由锁存器A和W 给出,运算结果输出到直通门D,其逻辑功能如下表所示。
S2 S1 S0 功能0 0 0 A+W 加0 0 1 A-W 减0 1 0 A|W 或0 1 1 A&W 与1 0 0 A+W+C 带进位加1 0 1 A-W-C 带进位减1 1 0 ~A A取反1 1 1 A 输出A【实验内容及步骤】(1)实验连接线实验具体接线如下表所示,其中S2、S1、S0为ALU的功能选择控制信号,AEW、WEW分别为锁存器A和W的选通控制信号,Cy IN为ALU的进位输入信号,CK为脉冲信号。
数据读写实验接线连接信号孔接入孔作用状态说明1 J1座J3 将K23-K16接入DBUS[7:0] 实验模式:手动2 S0 K0 ALU功能选择3 S1 K1 ALU功能选择4 S2 K2 ALU功能选择5 AEN K3 选通A 低电平有效6 WEN K4 选通W 低电平有效7 CyIN K5 ALU进位输入8 CK 已连ALU工作脉冲上升沿打入(2)将55H写入A寄存器二进制开关K23-K16用于DBUS[7:0]的数据输入,置数据55H。
K23 K22 K21 K20 K19 K18 K17 K16二进制开关K5、K4、K3、K2、K1、K0分别用于置控制信号CyIN、WEN、AEN、S2、S1、S0。
《计算机组成原理》学生实验报告
《计算机组成原理》学生实验报告(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 Quartus Ⅱ的使用(一)实验目的(二)实验任务(三)实验要求(四)实验步骤(五)74138、74244、74273的原理图与仿真图二、实验2 运算器组成实验(一)实验目的(二)实验任务(三)实验要求(四)实验原理图与仿真图三、实验3 半导体存储器原理实验(一)实验目的(二)实验要求(三)实验原理图与仿真图四、实验4 数据通路的组成与故障分析实验(一)实验目的(二)实验电路(三)实验原理图与仿真图五、本次实验总结及体会:一、实验 1 Quartus Ⅱ的使用(一)实验目的1.掌握Quartus Ⅱ的基本使用方法。
2.了解74138(3:8)译码器、74244、74273的功能。
3.利用Quartus Ⅱ验证74138(3:8)译码器、74244、74273的功能。
(二)实验任务1、熟悉Quartus Ⅱ中的管理项目、输入原理图以及仿真的设计方法与流程。
2、新建项目,利用原理编辑方式输入74138、74244、74273的功能特性,依照其功能表分别进行仿真,验证这三种期间的功能。
(三)实验要求1.做好实验预习,掌握74138、74244、74273的功能特性。
2.写出实验报告,内容如下:(1)实验目的;(2)写出完整的实验步骤;(3)画出74138、74244和74273的仿真波形,有关输入输出信号要标注清楚。
(四)实验步骤1.新建项目:首先一个项目管理索要新建的各种文件,在Quartus Ⅱ环境下,打开File,选择New Project Wizard后,打开New Project Wizard:Introduction窗口,按照提示创建新项目,点击“Next”按钮,再打开的窗口中输入有关的路径名和项目名称后,按“Finish”按钮,完成新建项目工作。
2.原理图设计与编译:原理图的设计与编译在Compile Mode(编译模式)下进行。
2.1.新建原理图文件打开File菜单,选择New,打开“新建”窗口。
计算机组成原理实验指导书-CPTH
DJ-CPTH计算机组成原理实验系统实验指导阜阳师范学院计算机与信息学院2008年3月目录目录 (1)实验一认识实验装置 (2)实验二寄存器实验 (10)实验三运算器实验 (18)实验四数据输出和移位实验 (22)实验五存储器实验 (26)实验六uPC和PC 实验 (32)实验七微程序存储器uM实验 (37)实验八模型机综合实验一 (39)实验九模型机综合实验二 (46)实验十微程序设计实验 (55)实验十一扩展实验 (60)附录1:CPTH 集成开发环境使用 (63)附录2:指令/微指令表(insfile1.mic) (68)附录3:实验用芯片介绍 (79)实验一认识实验装置实验目的:了解实验仪的特点及组成;掌握实验仪键盘的使用。
实验器材:DJ-CPTH实验仪实验要求:1、认真填写预习报告,包括对实验仪器组成的理解、实验操作步骤等。
2、实验之后写出实验报告,包括实验过程中遇到的问题,解决方法,实验后的心得体会及对该次实验的建议与意见。
实验原理及步骤:一、DJ-CPTH特点1、采用总线结构总线结构的计算机具有结构清晰,扩展方便等优点。
DJ-CPTH实验系统使用三组总线即地址总线ABUS、数据总线DBUS、指令总线IBUS和控制信号,CPU、主存、外设和管理单片机等部件之间通过外部数据总线传输,CPU内部则通过内部数据总线传输信息。
各部件之间,通过三态缓冲器作接口连接,这样一方面增强总线驱动能力,另一方面在模型机停机时,三态门输出浮空,能保证不管模型机的CPU工作是否正常,管理单片机总能读/写主存或控存。
2、计算机功能模块化设计DJ-CPTH为实验者提供运算器模块ALU,众多寄存器模块(A,W,IA ,ST,MAR,R0…R3等),程序计数器模块PC,指令部件模块IR,主存模块EM,微程序控制模块〈控存〉uM,微地址计数器模块UPC,组合逻辑控制模块及I/O等控制模块。
各模块间的电源线、地线、地址总线和数据总线等已分别连通,模块内各芯片间数据通路也已连好,各模块的控制信号及必要的输出信号已被引出到主板插孔,供实验者按自己的设计进行连接。
计算机组成原理全部实验
(2)LDDR1:控制把总线上的数据打入运算暂存器DR1,高电平有效。
(3)LDDR2:控制把总线上的数据打入运算暂存器DR2,高电平有效。
(4)S3,S2,S1,S0:确定执行哪一种算术运算或逻辑运算(运算功能表见附录1或者课本第49页)。
(5)M:M=0执行算术操作;M=1执行逻辑操作。
X
X
1
0
0
1
AAH
AAH
↑
向DR1送数
X X X X
X
X
0
1
0
1
55H
55H
↑
向DR2送数
0 0 0 0
0
1
0
0
1
0
XXH
AAH
算术运算
0 0 0 0
0
0
0
0
1
0
XXH
ABH
算术运算
0 0 0 0
1
X
0
0
1
0
XXH
55H
逻辑运算
0 0 0 1
0
1
0
0
1
0
XXH
FFH
算术运算
0 0 0 1
0
0
0
0
1
0
5.不管是手动方式还是系统方式,31个按钮开关初始状态应为“1”即对应的指示灯处于发光的状态。
6.位于UPC UNIT区的J1跳线开关应在右侧状态。
说明:开关AL-BUS;SW-BUS标识符应为“/AL-BUS;/SW-BUS”
注意事项:
AL-BUS;SW-BUS不能同时按下;因为同时按下会发生总线冲突,损坏器件。
1
计算机组成原理加法器实验
实验三带进位的算术运算实验
一、实验目的内容
1、掌握简单运算器的组成以及数据传送通路。
2、验证运算功能发生器(74HC181)的组合功能。
3、掌握用4位ALU芯片74HC181设计8位ALU方法(负逻辑)
二、实验原理
三、实验步骤
l、按图画出实验电路
2、根据74HC181的功能见S3 S2 S1 S0=1001,M=0,表中“A”和“B”分别表示参与运算的两个8位二进制数,
3、验证2片74HC181进行8位算术运算,观察运算器的输出,填入表1-2中,并和理论值进行比较、验证74HC181的功能。
(负逻辑)
四、实验结果
完成实验步骤,完成实表1-2,在显示结果后将指示灯显示的值与输入的数据进行比较;比较理论分析值与实验结果值;并对结果进行分析。
五、实验过程中出现的问题
六、实验收获和体会
七、实验思考题
1、实验电路中,如果将低4位的ALU芯片的输出脚CN+4与高4位ALU芯片的输入脚CN之间的连线去掉,将高4位ALU芯片的输入脚CN接地,表2-1中的输出F有变化吗?为什么?
2、如何用4位ALU芯片74LS181设计16位ALU?。
计算机组成原理的实验报告
计算机组成原理的实验报告一、实验目的本次实验的主要目的是深入理解计算机组成原理中的关键概念和组件,通过实际操作和观察,增强对计算机硬件系统的认识和掌握能力。
具体包括:1、了解计算机内部各部件的工作原理和相互关系。
2、熟悉计算机指令的执行流程和数据的传输方式。
3、掌握计算机存储系统的组织和管理方法。
4、培养分析和解决计算机硬件相关问题的能力。
二、实验设备本次实验使用的设备包括计算机、逻辑分析仪、示波器以及相关的实验软件和工具。
三、实验内容1、运算器实验进行了简单的算术运算和逻辑运算,如加法、减法、与、或等操作。
观察运算结果在寄存器中的存储和变化情况。
2、控制器实验模拟了指令的取指、译码和执行过程。
分析不同指令对计算机状态的影响。
3、存储系统实验研究了内存的读写操作和地址映射方式。
考察了缓存的工作原理和命中率的计算。
4、总线实验观察数据在总线上的传输过程和时序。
分析总线竞争和仲裁的机制。
四、实验步骤1、运算器实验步骤连接实验设备,将运算器模块与计算机主机相连。
打开实验软件,设置运算类型和操作数。
启动运算,通过逻辑分析仪观察运算过程中的信号变化。
记录运算结果,并与预期结果进行比较。
2、控制器实验步骤连接控制器模块到计算机。
输入指令序列,使用示波器监测控制信号的产生和变化。
分析指令执行过程中各个阶段的状态转换。
3、存储系统实验步骤搭建存储系统实验电路。
进行内存读写操作,改变地址和数据,观察存储单元的内容变化。
分析缓存的替换策略和命中率的影响因素。
4、总线实验步骤连接总线模块,配置总线参数。
多个设备同时发送数据,观察总线的仲裁过程。
测量数据传输的时序和带宽。
五、实验结果与分析1、运算器实验结果加法、减法等运算结果准确,符合预期。
逻辑运算的结果也正确无误。
观察到在运算过程中,寄存器的值按照预定的规则进行更新。
分析:运算器的功能正常,能够准确执行各种运算操作,其内部的电路和逻辑设计合理。
2、控制器实验结果指令能够正确取指、译码和执行,控制信号的产生和时序符合指令的要求。
计算机组成原理实验报告
1. 寄存器五、实验总结按照实验要求进行连接和操作,对通用寄存器组进行了数据的写入和读出,两组数据完全对照,得到了预期效果,说明了存入数据的正确性,在整个过程中也对寄存器组的构成和硬件电路有了更深层次的理解。
2. 运算器五、实验总结基本熟悉了整个实验系统的基本结构,了解了该实验装置按功能分成几大区,学会何时操作各种开关、按键。
最重要的是通过实验掌握了运算器工作原理,熟悉了算术/逻辑运算的运算过程以及控制这种运算的方法,了解了进位对算术与逻辑运算结果的影响,对时序是如何起作用的没太弄清楚,相信随着后续实验的进行一定会搞清楚的3。
存储器五、实验总结按照实验要求连接器材设备元件,按照给定步骤进行实验操作.通过向静态RAM中写入数据并读出数据,在INPUT单元输入数并存入地址寄存器,再向相应的地址单元存入数,验证读出数据时,只需再INPUT单元输入想要读出单元的地址,再通过片选端CE读出存储单元内的数据,其中We=0是控制写端,WE=1控制读,CE低电平有效。
实验过程遇到一些问题,对实验内容不是很熟,有待提高。
4. CPU与简单模型机设计实验一、实验目的(1) 掌握一个简单CPU的组成原理.(2)在掌握部件单元电路的基础上,进一步将其构造一台基本模型计算机。
(3)为其定义五条机器指令,编写相应的微程序,并上机调试掌握整机概念.二、实验设备PC机一台,TD—CMA实验系统一套。
三、实验原理本实验要实现一个简单的CPU,并且在此CPU的基础上,继续构建一个简单的模型计算机。
CPU 由运算器(ALU)、微程序控制器(MC)、通用寄存器(R0),指令寄存器(IR)、程序计数器(PC)和地址寄存器(AR)组成,如图5-1—1 所示。
这个CPU 在写入相应的微指令后,就具备了执行机器指令的功能,但是机器指令一般存放在主存当中,CPU 必须和主存挂接后,才有实际的意义,所以还需要在该CPU的基础上增加一个主存和基本的输入输出部件,以构成一个简单的模型计算机。
实验三:脱机运算器实验报告
Y 的输出 通用寄存 器接收 运算功
能选择 Q 寄存器 接收
数据组合 寄存器 A 端口 选择状态 接收 地址
B 端口 地址
最低 位进
移位 控制
功能
按 START 之前
按 START 之后
Y15-Y C Z
V
S
Y15-Y0 C
Z
VS
0
R0←1234 1234
随机
1234
0
000R9←89F 789F 0 0预期功能
控制信号 I8-6 I5-3 I2-0 SST A 地址 B 地址 SCI SSH
R0←1234
011 000 111 001 不用 0000 00 00
R9←789F
011 000 111 001 不用 1001 00 00
R9←R9-R0 011 001 001 001 0000 1001 01 00
0
0
789F
0
0
0
0
R9←R9-R0 666B 0 0
0
0
5437
0
0
0
0
R0←R0+1 1235 0 0
0
0
1236
0
0
0
0
R10←R0 1235 0 0
0
0
1235
0
0
0
0
R9←R9^R0 0221 0 0
0
0
0221
1
0
1
0
Q←R9
0442 1 0
1
0
0882
0
0
0
0
4. 体会、意见、建议 实验体会,除写个人实验课程理解之外,还应对实验课时数实
计算机组成原理实验报告3-数据输出实验移位门实验
2.3 数据输出实验/移位门实验一.实验要求:利用CPTH 实验仪的开关做为控制信号,实验仪的开关做为控制信号,将指定寄存器的内容读到数据总线将指定寄存器的内容读到数据总线DBUS 上。
上。
二.实验目的:1、了解模型机中多寄存器接数据总线的实现原理。
、了解模型机中多寄存器接数据总线的实现原理。
2、 了解运算器中移位功能的实现方法。
了解运算器中移位功能的实现方法。
三.实验电路:CPTH 中有7 个寄存器可以向数据总线输出数据,个寄存器可以向数据总线输出数据,但在某一特定时刻只能有但在某一特定时刻只能有一个寄存器输出数据,由X2,X1,X0决定那一个寄存器输出数据。
决定那一个寄存器输出数据。
数据输出选择器原理图数据输出选择器原理图连接线表连接线表四.实验数据及步骤:实验1:数据输出实验置下表的控制信号,检验输出结果置下表的控制信号,检验输出结果实验2:移位实验ALU 直接输出和零标志位产生原理图直接输出和零标志位产生原理图ALU 左移输出原理图左移输出原理图ALU 右移输出原理图右移输出原理图直通门将运算器的结果不移位送总线。
当X2X1X0=100 时运算器结果通过直通门送到数据总线。
同时,直通门上还有判0 电路,当运算器的结果为全0 时,Z=1,右移门将运算器的结果右移一位送总线。
当X2X1X0=101 时运算器结果通过右通门送到数据总线。
时运算器结果通过右通门送到数据总线。
具体内部连接具体内部连接是:是: Cy 与 CN →DBUS7ALU7→DBUS6ALU6→DBUS5ALU5→DBUS4ALU4 → DBUS3ALU3 →DBUS2 ALU2 →DBUS1 ALU1 →DBUS0 Cy 与 CN → DBUS7当不带进位移位时(CN=0):0 →DBUS7 当带进位移位时(CN=1):Cy →DBUS7左移门将运算器的结果左移一位送总线。
当X2X1X0=110 时运算器结果通过左通门送到数据总线。
计算机组成原理实验-运算器实验报告
当A=10000000,B=00110010时
F=01111111
(5)S3S2S1S0=1101时,F=A加1。例如:
当A=00110101,B=00110101时,F=00 Nhomakorabea10110
当A=11100011,B=00100010时
F=11100100
F=00100000,FC灯亮,表示有进位
(3)S3S2S1S0=1011时,F=A减B。例如:
当A=00110101,B=00110101时,
F=00000000
当A=01011011,B=00111010时
F=00100001
(4)S3S2S1S0=1100时,F=A减1。例如:
当A=00110101,B=00110101时,
计算机组成原理实验运算器实验报告基本运算器实验报告运算器的组成部分运算器实验报告运算器及移位实验计算机组成原理实验运算器运算器的主要功能是运算器的主要功能运算器的功能
1.逻辑运算
(1)S3S2S1S0=0000时,F=A,例如:
当A=00010101,B=01101001时
F=00010101;
当A=01011000时,B=01011110时
当A=11000011,B=00111100时
F=00000000
(4)S3S2S1S0=0011时,F=A+B。例如:
当A=00110101,B=11001010时,
F=11111111
当A=01011011,B=11000101时
F=11011111
(5)S3S2S1S0=0100时,F=/A。例如:
F=00011101
当A=01000111,B=00000101时
《计算机组成原理》实验报告——运算器
南通大学信息科学技术学院《计算机组成实验》实验报告实验运算器的设计与实现一、实验目的1.熟悉Vivado软件的使用方法。
2.熟悉运算器的功能。
3.掌握自顶而下的硬件模块设计方法。
4.掌握电路仿真测试方法,掌握仿真激励文件的编写,掌握仿真输出的分析方法。
二、实验任务设计一个运算器,具有基本的加、减、与、非、异或等功能。
三、设计步骤(1)实验电路原理及信号说明运算器的逻辑结构如图所示:其中Aluc操作码对应功能如下:具体设计如下:本实验采用运算部件并行多路选择实现,运用了32位加/减法器,32位移位器,32位6选1选择器。
(2)实验电路设计顶层文件:module ALU(X,Y,Aluc,R,Z);input[31:0]X,Y;input[3:0]Aluc;output[31:0]R;output Z;wire[31:0]d_as,d_and,d_or,d_xor,d_lui,d_sh,d;ADDSUB_32 as32(X,Y,Aluc[0],d_as);assign d_and=X&Y;assign d_or=X|Y;assign d_xor=X^Y;assign d_lui={Y[15:0],16'h0};SHIFTER shift(Y,X[10:6],Aluc[3],Aluc[1],d_sh);MUX6X32 select(d_and,d_or,d_xor,d_lui,d_sh,d_as,Aluc[3:0],R);assign Z=~|R;endmodule32位加法/减法计算器:module ADDSUB_32(X,Y,Sub,S);input [31:0]X,Y;wire Cout;input Sub;output [31:0]S;CLA_32 adder0(X,Y^{32{Sub}},Sub,S,Cout);endmodule32位CLA运算器8x4位:module CLA_32(X,Y,Cin,S,Cout);input[31:0]X,Y;input Cin;output[31:0]S;output Cout;wire Cout0,Cout1,Cout2,Cout3,Cout4,Cout5,Cout6;CLA_4 add0(X[3:0],Y[3:0],Cin,S[3:0],Cout0);CLA_4 add1(X[7:4],Y[7:4],Cout0,S[7:4],Cout1);CLA_4 add2(X[11:8],Y[11:8],Cout1,S[11:8],Cout2);CLA_4 add3(X[15:12],Y[15:12],Cout2,S[15:12],Cout3);CLA_4 add4(X[19:16],Y[19:16],Cout3,S[19:16],Cout4);CLA_4 add5(X[23:20],Y[23:20],Cout4,S[23:20],Cout5);CLA_4 add6(X[27:24],Y[27:24],Cout5,S[27:24],Cout6);CLA_4 add7(X[31:28],Y[31:28],Cout6,S[31:28],Cout);Endmodule4位CLA运算器:module CLA_4(X,Y,Cin,S,Cout);input [3:0]X,Y;output Cout;input Cin;output [3:0]S;and i0(Y_3,X[3],Y[3]);or i1(X_3,X[3],Y[3]);and i2(Y_2,X[2],Y[2]);or i3(X_2,X[2],Y[2]);and i4(Y_1,X[1],Y[1]);or i5(X_1,X[1],Y[1]);and i6(Y_0,X[0],Y[0]);or i7(X_0,X[0],Y[0]);not i01(Y_31,Y_3);nand i02(Y_32,X_3,Y_2);nand i03(Y_33,X_3,X_2,Y_1);nand i04(Y_34,X_3,X_2,X_1,Y_0);nand i05(Y_35,X_3,X_2,X_1,X_0,Cin);nand i00(Cout,Y_31,Y_32,Y_33,Y_34,Y_35);//Cout的输出门级电路实现not i_2(Y__3,Y_3);and i21(Y_21,Y__3,X_3);not i22(Y_22,Y_2);nand i23(Y_23,X_2,Y_1);nand i24(Y_24,X_2,X_1,Y_0);nand i25(Y_25,X_2,X_1,X_0,Cin);nand i26(Y_26,Y_22,Y_23,Y_24,Y_25);xor i20(S[3],Y_21,Y_26);//S3的输出门级电路实现not i_1(Y__2,Y_2);and i11(Y_11,Y__2,X_2);not i12(Y_12,Y_1);nand i13(Y_13,X_1,Y_0);nand i14(Y_14,X_1,X_0,Cin);nand i15(Y_15,Y_12,Y_13,Y_14);xor i10(S[2],Y_11,Y_15);//S2的输出门级电路实现not i_0(Y__1,Y_1);and i51(Y_51,Y__1,X_1);not i52(Y_52,Y_0);nand i53(Y_53,X_0,Cin);nand i54(Y_54,Y_52,Y_53);xor i50(S[1],Y_51,Y_54);//S1的输出门级电路not i41(Y__0,Y_0);and i42(Y_4,Y__0,X_0);xor i40(S[0],Y_4,Cin);//S0的输出门级电路endmodule32位移位器:module SHIFTER(X,Sa,Arith,Right,Sh);input [31:0]X;//操作数input [4:0]Sa;//移位长度input Arith,Right;//right表示判断左移还是右移,arith判断逻辑还是算术移位output [31:0]Sh;//输出结果wire [31:0]T4,T3,T2,T1,T0,S4,S3,S2,S1;wire a=X[31]&Arith;wire [15:0]e={16{a}};parameter z=16'b0000000000000000;wire [31:0]L1u,L1d,L2u,L2d,L3u,L3d,L4u,L4d,L5u,L5d;assign L1u={X[15:0],z[15:0]};assign L1d={e,X[31:16]};MUX2X32 M1l(L1u,L1d,Right,T4);MUX2X32 M1r(X,T4,Sa[4],S4);//1assign L2u={S4[23:0],z[7:0]};assign L2d={e[7:0],S4[31:8]};MUX2X32 M2l(L2u,L2d,Right,T3);MUX2X32 M2r(S4,T3,Sa[3],S3);//2assign L3u={S3[27:0],z[3:0]};assign L3d={e[3:0],S3[31:4]};MUX2X32 M3l(L3u,L3d,Right,T2);MUX2X32 M3r(S3,T2,Sa[2],S2);//3assign L4u={S2[29:0],z[1:0]};assign L4d={e[1:0],S2[31:2]};MUX2X32 M4l(L4u,L4d,Right,T1);MUX2X32 M4r(S2,T1,Sa[1],S1);//4assign L5u={S1[30:0],z[0]};assign L5d={e[0],S1[31:1]};MUX2X32 M5l(L5u,L5d,Right,T0);MUX2X32 M5r(S1,T0,Sa[0],Sh);Endmodule32位6选1功能选择器:module MUX6X32(d_and,d_or,d_xor,d_lui,d_sh,d_as,Aluc,d);input [31:0]d_and,d_or,d_xor,d_lui,d_sh,d_as;input [3:0]Aluc;output [31:0]d;function [31:0]select;input [31:0]d_and,d_or,d_xor,d_lui,d_sh,d_as;input [3:0]Aluc;case(Aluc)4'b0000:select=d_as;4'b0001:select=d_as;4'b0010:select=d_and;4'b0011:select=d_or;4'b0100:select=d_xor;4'b0110:select=d_lui;4'b0101:select=d_sh;4'b0111:select=d_sh;4'b1111:select=d_sh;4'b1101:select=d_sh;endcaseendfunctionassign d=select(d_and,d_or,d_xor,d_lui,d_sh,d_as,Aluc); endmoduleRTL视图如下:四、实验仿真结果分析1.仿真测试文件:module sim();// ALU Inputsreg [31:0] X;reg [31:0] Y;reg [3:0] Aluc;// ALU Outputswire [31:0] R;wire Z;ALU u_ALU (.X ( X ),.Y ( Y ),.Aluc ( Aluc ),.R ( R ),.Z ( Z ) );initial beginAluc[3:0] = 0;X[31:0] = 3;Y[31:0] =2;#50;endalways #200 Aluc=Aluc+1;endmodule2.仿真测试波形:3.仿真测试结果分析开始时设置两个操作数X为3,Y为2;Aluc为0时执行加法运算,结果为5;Aluc为1时执行减法运算,结果为1;Aluc为2时执行与运算,结果为2;Aluc为3时执行或运算,结果为3;Aluc为4时执行异或运算,结果为1;……分析可知,设计符合实验要求。
计算机组成原理实验
1. 采用 Cache-Memory 存储层次。 2. 地址长度为 16 位,数据寄存器长度 16 位,存储字长是 8 位,采用小端存储模式。 3. Cache 采用二路组相联,Cache 大小为 1KB,每个字块 4 个字,字长为 2B。 4. 能根据有效地址读 Cache 和内存,把数据读入数据寄存器中;能根据有效地址把
1、 运算器由 ALU,状态寄存器,通用寄存器组成。 2、 ALU 能够进行加、减、乘、除等四则运算,与、或、非、异或等逻辑运算以及移
位求补等操作。其中乘除法要实现原码 1 位乘、补码 1 位乘(Booth)、原码加减 交替除法、补码加减交替除法 4 种算法。选作原码/补码 2 位乘算法。 3、 通用寄存器组用于保存参加运算的操作数和运算结果。 4、 状态寄存器用于记录算术、逻辑运算的结果状态。程序设计中,这些状态通常用 作条件转移指令的判断条件,所以又称为条件码寄存器。一般均设置如下几种状 态位:零标志位(Z),负标志位(N),溢出标志位(v),仅为或借位标志(C)。 【输入】从 ins_input.txt 读入。每行有一个操作码和两个操作数,用空格分开,操作数用原 码表示。 e.g. Add 0.110111 1.101110 Sub 0.100111 0.101011 Mul 1.101110 0.110111 【输出】将运算过程和结果输入到 output.txt 例如: ori_onebit_times [x]ori=1.101110 [y]ori=0.110111 x*=0.101110 y*=0.110111 0.000000 110111 + 0.101110 -------------------------------0.101110 0.010111 0 11011 + 0.101110 -------------------------------1.000101 0 0.100010 10 1101 + 0.101110 -------------------------------1.010000 10 0.101000 010 110 0.010100 0010 11 + 0.101110 -------------------------------1.000010 0010 0.100001 00010 1 + 0.101110 --------------------------------
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验三:八位运算器组成实验
一:实验目的:
1:掌握运算器的组成原理、工作原理;
2:了解总线数据传输结构;
3:熟悉简单的运算器的数据通路与控制信号的关系;
4:完成给定数据的算术操作、逻辑操作;
二:实验条件:
1:PC机一台;
2:MAX+PLUSⅡ软件;
三:实验内容(一)
1:所用到的芯片
74181:四位算术逻辑运算单元;
74244:收发器(双向的三态缓冲器)
74273:八位D触发器;
74374:八位D锁存器;
74163:八进制计数器;
7449:七段译码器
2:实验电路图
(1)运算器电路图
(A)数据输入电路由两个十六进制计数器连接成16*16=256进制的计数器,可以实现八位的输入。
(B)运算功能选择电路由一个十六进制计数器组成,可以实现16种不同运算的选择。
再加上逻辑运算器上的M位和Cn位的选择,一共可以实现16*3=48种运算功能。
内部由一个74163构成。
内部结构:
(C)数码管扫描显示电路由一个扫描电路scan和一个七段译码器7449组成,scan 内部是一个二选一的多路复用器。
scan内部结构:
(D)运算器电路图
(2)波形仿真图
(A)输入两个数A=05H,B=0AH,O5H DR1,0AH DR2,并通过经由74181在总线上显示。
(B)对两个数进行各种数学运算和逻辑运算。
加法运算:输出控制:s4s3s2s1=0001,M=0,CN=0 输出使能:ALU_BUS=0
计算结果:05H+0AH=10H
四:实验内容(二)
给定A,B两个数,设A=05H,B=0AH,完成几种常见的算术运算和逻辑运算画出运算的波形和仿真图
(1)逻辑运算:A and B,A or B,取反/A,A⊙B,A⊕B;
/A A⊕B A⊙B A and B A or B 输入控制s3s2s1s0 0000 0110 1001 1011 1110 计算结果FAH 0FH F0H 00H 0FH
(2)算术运算:A加B,A加B(带进位),A减B;
M=0, ALU_BUS=0
A-B A+B+1 A+B
输入控制s3s2s1s0 0110 1001 1001 Cn 0 0 1
计算结果FBH 10H 0FH
(3)复合运算:A加B 减((/A)·B)加B;(/(A⊙B)减(A⊕B)))加1 (/A)·B A加B (A加B)减((/A)·B) (A加B加B)减((/A)·B)加B
输入控制
M 1 0 0 0 Cn 1 0 1 s3s2s1s0 0010 1001 0110 1001
计算结果0AH 0FH 05H 0FH
载入寄存器R5 R4 R4
计算(A加B)减((/A)·B)后需要重新送入数据B,存入R5并且装载到LDDR2中。
A⊙B A⊕B (A⊙B)减(A⊕B) /((A⊙B)减(A⊕B)) 加1
输入控制
M 1 1 0 1 0 Cn 0 0 s3s2s1s0 1001 0110 0110 0000 0000
计算结果F0H 0FH E1H 1EH 1FH 载入寄存器R4 R5 R4 R4。