组成专题实验报告三

组成专题实验报告三

ID:35252080

大小:171.00 KB

页数:15页

时间:2019-03-22

组成专题实验报告三_第1页
组成专题实验报告三_第2页
组成专题实验报告三_第3页
组成专题实验报告三_第4页
组成专题实验报告三_第5页
资源描述:

《组成专题实验报告三》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、计算机组成原理实验报告学院:____电信学院_____专业:_计算机科学与技术____学号:___2110505108________班级:___计算机15_________姓名:_____张玲玲__________时间:__2013年1月3日__一、实验目的(1)掌握基本的算术运算和逻辑运算的运算规则和实现方法;(2)掌握基本运算器的信息传送通路;(3)掌握运算器的工作原理,设计并实现具有定点、浮点运算功能的模块。二、实验内容设计一个基本的算术逻辑运算模块,包括:①算术运算模块,主要包括定点运

2、算:加减乘除运算及浮点运算(浮点运算依照IEEE754标准);②逻辑运算模块,主要包括与、或、非、异或和各种移位运算等;注:运算器模块框图:运算器(ALU)通常有两个数据输入端(opr1和opr2),一个数据输出端(result),运算模式控制信号(code)和标志位(cin,flag)等。下图为运算器的逻辑框图:图2-1运算器运算器包含加法器(含用先行进位的构成的加法器,如4位一组构成16位)、减法器、乘法器、与门、或门、非门、异或门和移位器等及浮点运算模块;运算器模块中也可以加入寄存器组。本

3、实验中设计的运算器操作数可以分别为8/16/32位字长((32位字长运算可以只进行仿真分析)③定点乘法:已知X=-0.1010,Y=0.0011,求X*Y=?利用原码乘法的方法,设计VHDL程序,完成乘法的运算并描述其算法及电路图;一、实验原理在计算机内实现原码乘法时,要做以下方面的改进工作。由于在运算器内通常只能完成对两数的求乘操作,则可以每求得一个相加数,就同时完成与上一次部分积相加的操作。其次是在手工计算时,各加数逐位左移,最终相加数为相乘二位数的两倍,而在计算机中,加法器的位数一般与乘法

4、器的位数相同,而不是寄存器位数的两倍。这实际上也可以用另外的办法解决。手工计算时,各加数是逐位左移,但很容易发现,在求本次部分积之和时,前一部分积的最低一位是不再与任何数值相加的。这就意味着,若采用每求得一次部分积之后使其右移一位,则可以只用N位的加法器就能实现两个N位的数相乘j!显而易见,若前一次部分积已经右移一位,就可以用其高位部分加上被乘数或加零的方法求得本次部分积。最后一点是,手工计算时,乘数每一位的值是0还是1都直接看得见,而在计算机内,采用放乘数的寄存器的每一位直接决定本次相加数是被

5、乘数还是零是很不方便的,若均采用该寄存器的最低一位来执行这种判别就简便了。为此,只要每求一次部分积就使放乘数的寄存器执行一次右移操作即可以了。若移位时,使其最高数值位接收加法器最低位的输出,则完成乘法运算后,该寄存器中保存的是乘积的低位部分。计算机内求乘积的符号,很容易用求相乘二数符号的半加和(异或值)实现。原码一位乘法的规则:⑴判断参加运算的操作数是否合格;⑵令乘数的最低位为判断位,若为“1”,加被乘数,若为“0”,不加被乘数(加0);⑶累加后的部分积以及乘数右移一位⑷重复n次⑵和⑶;⑸符号位

6、单独处理,同号为正,异号为负。通常,乘法运算需要3个寄存器。被乘数存放在B寄存器中;乘数存放在C寄存器中;A寄存器用来存放部分积与最后乘积的高位部分,它的初值为0。运算结束后寄存器C中不再保留乘数,改为存放乘积的低位部分。例:已知:X=0.1101,Y=-0.1011,求:X×Y。

7、X

8、=00.1101→B,

9、Y

10、=.1011→C,0→A原码一位乘法示例AC说明00.00001011+

11、X

12、00.1101C4=1,+

13、X

14、00.1101→00.01101101部分积右移一位+

15、X

16、00.1101

17、C4=1,+

18、X

19、01.0011→00.10011110部分积右移一位+000.0000C4=0,+000.1001→00.01001111部分积右移一位+

20、X

21、00.1101C4=1,+

22、X

23、01.0001→00.10001111部分积右移一位∵PS=XS⊕YS=0⊕1=1∴X*Y=-0.10001111原码一位乘法流程图这里为了简便,我编写了无符号数原码的乘法运算,不考虑符号位。即实现了两个四位数相乘,结果放入一个八位数中。一、实验源代码libraryieee;useieee.std_log

24、ic_1164.all;useieee.std_logic_unsigned.all;useieee.std_logic_arith.all;entityALUisport(set:instd_logic;--运算控制信号code:instd_logic_vector(3downto0);--操作码cin:instd_logic;--低位向高位的进位或者借位信号opr1:instd_logic_vector(7downto0);--第一操作数opr2:instd_logic_vector(7do

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。