计算机组成原理移位运算实验报告
- 格式:doc
- 大小:96.50 KB
- 文档页数:3
计算机组成原理实验五
移位运算实验...............
姓名:陈衍席学号: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开始。
实验总结:通过本次实验,我掌握移位控制的组合功能。