计算机组成原理移位运算实验报告

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

计算机组成原理实验五

移位运算实验...............

姓名:陈衍席学号:1205110125 网工1202

【实验环境】

1. Windows 2000 或Windows XP

2. QuartusII9.1 sp2、DE2-115计算机组成原理教学实验系统一台,排线若干。

【实验目的】

本次实验要求掌握移位控制的组合功能。

【实验要求】

可以利用原理图设计并实现给定数据的逻辑左移SLL、逻辑右移SRL、算术右移SRA几种指定的运算。实验要求自己给定一个数据,然后进行功能仿真,验证仿真结果与理论结果是否一致。

【实验原理】

移位运算器就是实现将二进制数向左或者向右移动多少位。二进制数据(真值)每相对于小数点左移一位,相当于乘以2;每相对于小数点右移一位,相当于除以2。

它根据二进制数有无符号分为逻辑移位运算和算术移位运算,另外还有循环移位。

1、逻辑移位:将移位的数据视为无符号数据,各数据位在位置上发生了变化,导致无符号数据的数值(无正负)放大或缩小。

2、算术移位:将移位的数据视为带符号数据(机器数)。算术移位的结果,在数值的绝对值上进行放大或缩小,同时,符号位必须要保持不变。

3、循环移位:所有的数据位在自身范围内进行左移或者右移,左移时最高位移入最低位,右移时最低位移入最高位。

其中算术左移SLA、算术右移SRA:把操作数看成带符号数。对寄存器操作数进行移位(要移动数的第0位——符号位不变。右移时空出的其余位补与第0位相同的1或0;左移时空出的位补0),位数由有效地址决定。

逻辑左移SLL、逻辑右移SRL:把操作数看成无符号数。对寄存器操作数进行移位(不管左右移,要移动数空出的位补0),位数由有效地址决定。

表移位运算器真值表

输入输出

D[31..0] SA[4..0] Right Arith SH[31..0]

A B 右移标志算术运算标志D移位SA位

【实验步骤】

1、根据图中提示,建立移位运算器原理图文件。

注意:

由于在位移运算器的原理图设计中需要调用前面设计的32位2选1多路选择器,因此需要将在实验四的工程文件中建立的mux2x32、nux2x8、mux2x1的.bdf、.bsf文件导入到本次实验的工程文件中来。具体步骤:

(1) 首先,最好将要调用到的所有的文件复制到本次建立的工程文件夹内。

例如:

(2)在新建项目工程文件时,弹出添加文件界面,点击【User Libraries】按键(或者在设计原理图的时候,点击【Project】-->【Add/Remove Files in Project…】,在“General”中选择“Libraries”)。

在弹出的界面,点击【…】,导入含有以前所建文件的文件夹,点击【打开】,

点击【Add】按键,添加该元件库,

添加成功,单击【OK】。

添加成功后在后来建立的原理图文件中,就可以看见该原理图库文件,

(3) 根据图中提示,完成原理图设计。

2、文件编译

3、功能仿真

仿真结果及结果分析:

设置D为任意32位二进制数,SA为从0开始的5位二进制计数脉冲,Aright为周期为50ns的时钟脉冲,Right为周期为10ns的时钟脉冲。

如图所示:

在10ns--15ns时,D=0011 0111 1010 1010 0011 1001 0110 0100 ,SA=1、Arith=0、Right=0,逻辑左移1位。

输出为SH=0110 1111 0101 0100 0111 0010 1100 1000 。

在15ns--20ns时,D=0011 0111 1010 1010 0011 1001 0110 0100 ,SA=1、Arith=0、Right=1,逻辑右移1位。

输出为SH=0001 1011 1101 0101 0001 1100 1011 0010 。

在140ns--145ns时,D=1100 0010 1011 1010 0100 1000 0111 1100 ,SA=14、Arith=1、Right=0,算术左移14位。输出为SH=1001 0010 0001 1111 0000 0000 0000 0000 。

在15ns--20ns时,D=0011 0111 1010 1010 0011 1001 0110 0100 ,SA=14、Arith=1、Right=1,算术右移14位。输出为SH=1111 1111 1111 1111 0000 1010 1110 1001 。

上图说明SA计数到32位又从0开始。

实验总结:通过本次实验,我掌握移位控制的组合功能。

相关文档
最新文档