定点补码一位乘法器的设计

定点补码一位乘法器的设计
定点补码一位乘法器的设计

沈阳航空航天大学

课程设计报告

课程设计名称:计算机组成原理课程设计课程设计题目:定点补码一位乘法器的设计

院(系):计算机学院

专业:计算机科学与技术

班级:84010101

学号:2008040101002

姓名:边爽

指导教师:曹一鹏

完成日期:2011年1月14日

沈阳航空航天大学课程设计报告

目录

第1章总体设计方案 (1)

1.1设计原理 (1)

1.2设计思路 (2)

1.3设计环境 (4)

第2章详细设计方案 (5)

2.1顶层方案图的设计与实现 (5)

2.1.1创建顶层图形设计文件 (5)

2.1.2器件的选择与引脚锁定 (6)

2.1.3编译、综合、适配 (7)

2.2功能模块的设计与实现 (7)

2.2.1 取补模块的设计与实现 (7)

2.2.2选择器模块的设计与实现 (9)

2.2.3 乘数补码移位寄存器模块的设计与实现 (12)

2.2.4 部分积移位寄存器模块的设计与实现 (14)

2.2.5加法器模块的设计与实现 (16)

2.3仿真调试 (16)

第3章编程下载与硬件测试 (19)

3.1编程下载 (19)

3.2硬件测试及结果分析 (19)

参考文献 (22)

附录(电路原理图) (23)

第1章 总体设计方案

1.1 设计原理

由于机器都采用补码做加减运算,所以设计补码乘法器能避免码制转换,提高机器效率。在计算两个补码相乘时,可以通过Booth 算法来实现定点补码一位乘的功能。布斯(Booth)算法采用相加和相减的操作计算补码数据的乘积,Booth 算法对乘数从低位开始判断,根据后两个数据位的情况决定进行加法、减法还是仅仅进行移位操作。

补码一位乘法的运算规则:

(1) 被乘数一般取双符号位参加运算。

(2) 乘数可取单符号位以决定最后一步是否需要校正,即是否加补][X -。

(3) 乘数末位增设附加位1+n y ,且初值为0。部分积补][0Z 初始值为0。

(4) 被乘数[x]补乘以对应的相邻两位乘数(n n y y -+1)之差值,再与前部分积累加,然后右移一位(乘2-1),形成该步的部分积累加和。1+n y 与n y 构成各步运算的判断值,以决定如何操 作补][X ,见图1.1Booth 算法操作说明:

图1.1 Booth 算法操作说明

(5)按照上述算法进行n+1步操作,但第n+1步不再移位,仅根据0y 与1y 的比较结果作相应的运算即可。

1.2 设计思路

课程设计的要求为:

(1)采用原码值输入,乘数和被乘数皆为8位。

(2)设计的电路应该包括ALU ,被乘数寄存器,乘数寄存器,部分积寄存器,门电路和移位电路。

课程设计的思路为:

(1)由于课程设计要求采用原码值输入,就需要设计一个原码值取反码的电路模块,同时只对符号位取反同时也可以实现求补][X -。

(2)实现Booth 算法需添加附加位1+n y ,并将其初始值置零,此操作通过外部输入来实现的。

(3)Booth 算法在运算中要将部分积初始值置零,此操作是通过给FD 寄存器的清零端一个高电平的脉冲信号,使寄存器的数据全部为0,即输出的部分积为00000000。

(4)取乘数末尾两位来判断,为00、11则部分积加0,为01则部分积加被乘数的补码,为10则部分积加乘数相反数的补码。为了实现此操作,需要设计一个二输入四输出选择器及选择电路。

(5)乘数逻辑右移一位,部分积算术右移一位,并用乘数最高位存放部分积溢出的位。此功能的实现,分别设计了乘数移位寄存器,以及部分积移位寄存器。

(6)依次反复直到原乘数部分只剩下最后两位,由于最后一次只运算不移位,所以在输出时要在部分积移位之前输出结果。

(7)加统一的时钟信号,保持各部件同步工作。

定点补码一位乘法器的设计总框图如图1.2所示;定点补码一位乘法器的设计流程图如图1.3所示。

图1.2 定点补码一位乘法器设计总框图

图1.3 定点补码一位乘法器设计流程图

1.3 设计环境

(1)硬件环境

?伟福COP2000型计算机组成原理实验仪

COP2000计算机组成原理实验系统由实验平台、开关电源、软件三大部分组成。实验平台上有寄存器组R0-R3、运算单元、累加器等组成。COP2000计算机组成原理实验系统各单元部件都以计算机结构模型布局,系统在实验时即使不借助PC 机,也可实时监控数据流状态及正确与否, 实验系统的软硬件对用户的实验设计具有完全的开放特性,系统提供了微程序控制器和组合逻辑控制器两种控制器方式,系统还支持手动方式、联机方式、模拟方式三种工作方式,系统具备完善的寻址方式、指令系统和强大的模拟调试功能。

?COP2000集成调试软件

COP2000集成开发环境是为COP2000实验仪与PC机相连进行高层次实验的配套软件,它通过实验仪的串行接口和PC机的串行接口相连,提供汇编、反汇编、编辑、修改指令、文件传送、调试FPGA实验等功能,该软件在Windows 下运行。

(2)EDA环境

?Xilinx foundation f3.1设计软件

Xilinx foundation f3.1是Xilinx公司的可编程期间开发工具,该平台功能强大,主要用于百万逻辑门设计。该系统由设计入口工具、设计实现工具、设计验证工具三大部分组成。

第2章详细设计方案

2.1 顶层方案图的设计与实现

顶层方案图是用来实现补码一位乘法器乘数与被乘数的输入和取补,以及结果的寄存和输出、二输入三输出选择器和运算控制电路、移位电路等逻辑功能,采用原理图设计输入方式完成,电路实现基于XCV200可编程逻辑芯片。在完成原理图的功能设计后,把输入以及输出信号安排到XCV200指定的引脚上去,实现芯片的引脚锁定。

2.1.1创建顶层图形设计文件

顶层图形文件的设计实体主要由取补电路(封装为QUBU),二输入三输出选择器(基于D2-4E的改装),乘数移位寄存器(封装为U11),部分积移位寄存器(基于FD实现),加法器(基于ADD8的改装),等模块组装而成的一个完整的可编程逻辑芯片U30。顶层图形文件结构如图2.1所示:

图2.1 顶层图形文件结构图

2.1.2器件的选择与引脚锁定

(1)器件的选择

由于硬件设计环境是基于伟福COP2000型计算机组成原理实验仪和XCV200实验板,故采用的目标芯片为Xilinx XCV200可编程逻辑芯片。

(2)引脚锁定

把顶层图形文件中的所有输入、输出信号对应到Xilinx XCV200芯片指定的引脚上去,实现芯片的引脚锁定,各信号及Xilinx XCV200芯片引脚对应关系如表2.1所示:

表2.1 信号和芯片引脚对应关系

图形文件中的输入/输出信号XCV200芯片引脚信号

GRD P50

ZCLOCK P213

FJW P47

CLR P49

VCC P48

S1 P80

S2 P81

S3 P82

S4 P84

S5 P85

S6 P86

S7 P87

Y1 P95

Y2 P96

Y3 P97

Y4 P100

Y5 P101

Y6

P102 Y7

P103 E0

P63 E1

P73 E2

P72 E3

P71 E4

P70 E5

P66 E6

P65 E7 P64

2.1.3编译、综合、适配

利用Xilinx foundation f3.1的原理图编辑器对顶层图形文件进行编译,并最终生成网络表文件,利用设计实现工具经综合、优化、适配,生成可供时序仿真的文件和器件下载编程文件。

2.2 功能模块的设计与实现

功能模块主要由取补电路,二输入三输出选择器,移位寄存器,部分积移位寄存器等模块组成,由Xilinx XCV200可编程逻辑芯片分别实现。

2.2.1 取补模块的设计与实现

进行求补的方法就是从数的最右端0a 开始,由右向左,直到找出第一个“1”,例如1=i a ,n i ≤≤0。则i a 以左的每一个输入位都求反,即1变0,0变1。最右端的起始链式输入1-C 必须永远置成“0”。当控制信号线E 为“1”时,启动对2求补的操作;当控制信号线E 为“0”时,输出将和输入相等。可以利用符号位来作为控制信号E 。

(1) 创建求乘数补码电路模块设计原理图。

求乘数补码电路原理结构如图2.2)(a 所示,实际电路如图2.2)(b 所示。

(a求乘数补码电路模块逻辑框图

图2.2)

(b实际取补电路

图2.2)

(2)创建元件图形符号

其元件图形符号如图2.3所示:

图2.3 求乘数补码电路模块元件图形符号

(3)功能仿真

对创建的取补模块进行功能仿真,验证其功能的正确性,可用Xilinx

foundation f3.1编译器的Simulator模块实现。仿真结果如图2.4所示:

图2.4 取补模块仿真结果

2.2.2选择器模块的设计与实现

选择器主要由一个D2-4E芯片和逻辑门电路控制选择输出。输入端输入的值

分别为补][X -,补][X 以及“00000000”(八个输入端为一组)。

D2-4E 芯片的0A 和1A 端的“0”和“1”控制0D ,1D ,2D ,3D 当10A A 为01时,输出为2D 高电平,即为2D 输出值为1,通过逻辑门电路实现输出为补][X -的值;当10A A 为10时,输出为1D 为 高电平,即为1D 输出值为1,通过逻辑门电路实现输出为补][X 的值;当10A A 为00时,输出为0D 为 高电平,即为0D 输出值为1,同时当10A A 为11时,输出为3D 为 高电平,即为3D 输出值为1,由于此时0D 和3D 输出值为相同,故此两条数据线通过一个或门输出一条数据线,此时输出值为“00000000”。正好实现三输入一输出的选择器模块。

(1)创建选择器设计原理图。

三输入一输出选择器原理结构如图2.5所示:

图2.5 选择器原理框图

(2)创建元件图形符号

其元件图形符号如图2.6所示:

图2.6 选择器元件图形符号

(3)功能仿真

对创建的三输入一输出器模块进行功能仿真,验证其功能的正确性,可用Xilinx foundation f3.1编译器的Simulator模块实现。仿真结果如图2.7所示:

(b

(a)

)

)(c )(d

图2.7 选择模块仿真结果图 2.2.3 乘数补码移位寄存器模块的设计与实现

乘数补码移位寄存器模块由八个二选一选择器(MUXCY ),9个寄存器(FD )组成,CP 端输入的是1个低电平信号其余都为高电平信号。MUXCY 选择器由控制信号S 端,输入端i D 和i C ,以及输出端O 组成,当S 端为低电平信号时,选择输出i D 值,当S 端为高电平信号时,选择输出i C 值。每次的输出信号寄存到FD 中,MUXCY 输出端O 连接下一位的寄存器,这样就实现了移位寄存的功能。

移位的07Y 和08两个输出端恰好为n y 和1+n y 的两个值,n y 和1+n y 的两个值要分别接到选择器的0A 和1A 端。

(1)创建乘数补码移位寄存器模块设计原理图。

乘数补码移位寄存器原理结构如图2.8所示:

图2.8 乘数补码移位寄存器原理结构图(2)创建元件图形符号

其元件图形符号如图2.9所示:

图2.9 乘数补码移位寄存器电路模块元件图形符号

(3)功能仿真

对创建的乘数补码移位寄存器模块进行功能仿真,验证其功能的正确性,可用Xilinx foundation f3.1编译器的Simulator模块实现。仿真结果如图2.10所示:

图2.10 乘数补码移位寄存器模块仿真结果

2.2.4 部分积移位寄存器模块的设计与实现

部分积移位寄存器模块是由一个8位寄存器(FD8CE)和四个逻辑门电路组成,实现部分积移位寄存功能。由于部分积的初始值为“00000000”,这样就要求FD8CE 寄存器的初始值为“00000000”,只需要给清零端CLR一个高电平的信号即可实现。

进行部分积移位时,要求移位过程中保证符号位相同,这样就需要把第一位符号位复制为两个数,而其余的6位相继向下串一位,这样就实现了移位功能,同时还保证的符号位相同。

(1)部分积移位寄存器设计原理图。

部分积移位寄存器原理结构如图2.11所示:

图2.11 部分积移位寄存器原理图

(2)功能仿真

对创建的寄存器模块进行功能仿真,验证其功能的正确性,可用Xilinx

foundation f3.1编译器的Simulator模块实现。仿真结果如图2.12所示:

图2.12 部分积移位寄存器仿真结果

2.2.5加法器模块的设计与实现

加法器模块是在系统提供的八位加法器(ADD8)的基础上,根据实际情况改造而来。由于系统ADD8的输入输出的高低位与前几个模块的正好相反,所以为了实现功能对ADD8进行了改装。改装后内部结构如图2.13所示。

图2.13 改装后加法器内部结构图

2.3 仿真调试

仿真调试主要验证设计电路逻辑功能、时序的正确性,本设计中主要采用功能仿真方法对设计的电路进行仿真。通过多组数据进行仿真测试,分别对两个正

数相乘,一个正数与一个负数相乘,两个负数相乘结果进行检验。

(1)建立仿真波形文件及仿真信号选择

功能仿真时,首先建立仿真波形文件,选择仿真信号,对选定的输入信号设置参数,选定的仿真信号和设置的参数如表2. 3所示。

表2.3 仿真信号相关参数表

输入信号输出信号

S1—S7 Y1—Y7 CLR CLOCK FJW I0—I7 0111011 0000100 10000000 01010101 0 00000011 1111011 0000100 10000000 01010101 0 11111100 1111011 1000100 10000000 01010101 0 00000011 (2)功能仿真结果与分析

仿真结果分别如图2.14)

(c所示。

(b、)

(a、)

(a

)

(c

)

(b)

图2.14 功能仿真波形结果

由表2.3和图2.14所示信息对比可知,多组仿真都完全正确,说明本设计能实现补码一位乘法计算功能。

四位原码乘法器

1.课程设计的内容和要求 内容:设计四位原码乘法器电路。 要求:1.有关资料,设计乘法器电路; 2.画出乘法器逻辑图; 3.在实验箱上完成乘法器电路的组装,调试,核对记录,测试有关数据, 通过老师当场验收; 4.完成课程设计报告。 1.课程设计原理 运用存储器的存储功能实现数字的存储。令电路的初始状态为000,000,000000。以二进制的形式输入数字,计算方式是以十进制数字乘法。输入的数字为三位数字,输出的是六位数字。先存储输入的乘数和乘积,然后再将乘积的导线端连到输出段,此时之前输入的乘积就可以在输出端显示。 此时序电路的真值表为:

1.课程设计思路 本次课程设计的题目为四位原码乘法器,利用真值表输入乘数时,需要存放数字,于是我查阅了一些资料,用存储器可以实现这一电路,所以本实验中用到的是INTEL 2114芯片。 具体实现过程如下图: a a b b F 32F 1 1.课程设计所需的器材 1.2114是一个容量为1K4位的静态RAM芯片,常用于寄存器。 其具体的引脚图为: 此芯片的电路图为: 2.数字电路实验箱 3.导线若干 1.课程设计实现 本次课程设计的题目是四位原码乘法器电路。 此部分只用到了2块INTEL2114芯片,具体连接如下: 1、先将这些芯片按在电路板上(注意不要插反,否者容易烧毁芯片)。 2、将两片芯片的A6和GND端,A7,A8,A9接地。 3、Vcc端接电压5V,cs接存储端,WE端接控制端。 4、两块芯片的A5,A4,A3组成一个乘数,A0,A1,A2组成另一个乘数。其中一块芯

片的I/O1,I/O2,I/O3,I/O4和另一块芯片的I/O1,I/O2组成要求的乘积。乘数与乘积的显示方式均为二进制,但是计算方法是以十进制数的乘法法则计算。 1.调试步骤及方法 在连接实验器件之前,要先检查如下实验器件: 1、检查芯片引脚是否有损坏。 2、检查电路板是否好用。 连接实验器件时要注意: 2严格按照电路图一步一步连接,以避免连接错误。 3导线要先连接电源测试是否导电。 连接好电路进行数据测试,输入001,010,000010,存储;001,101,000101,存储;001,111,000111,存储。将连在输入端的四个输出连接到输出端,并输入001,010,但是结果并不是000010,而是000100;再输入001,101,也没有得到000101的结果,而是000110的结果。检查线路,发现输出的线路错位,纠正后重新输入乘数,结果均得到计算结果。调试成功。 1.实验结果 连接好整个电路。A5A4A3和A2A1A0为输入端,即乘数,F5F4F3F2F1F0为输出端,即乘积。如下表: 8. 课程设计结果 输入000,000,000000,存储;

计算机组成原理_阵列乘法器设计

沈阳航空航天大学 课程设计报告 课程设计名称:计算机组成原理课程设计课程设计题目:阵列乘法器的设计与实现 院(系):计算机学院 专业:计算机科学与技术 班级: 学号: 姓名: 指导教师: 完成日期:2014年1月10日

沈阳航空航天大学课程设计报告 _______________________________________________________________________________ 目录 第1章总体设计方案 (1) 1.1设计原理 (1) 1.2设计思路 (2) 1.3设计环境 (3) 第2章详细设计方案 (3) 2.1总体方案的设计与实现 (4) 2.1.1总体方案的逻辑图 (4) 2.1.2器件的选择与引脚锁定 (4) 2.1.3编译、综合、适配 (5) 2.2功能模块的设计与实现 (5) 2.2.1一位全加器的设计与实现 (6) 2.2.2 4位输入端加法器的设计与实现 (7) 2.2.3 阵列乘法器的设计与实现 (10) 第3章硬件测试 (13) 3.1编程下载 (13) 3.2 硬件测试及结果分析 (13) 参考文献 (15) 附录(电路原理图) (16)

第1章总体设计方案 1.1 设计原理 阵列乘法器采用类似人工计算的方法进行乘法运算。人工计算方法是用乘数的每一位去乘被乘数,然后将每一位权值对应相加得出每一位的最终结果。如图1.1所示,用乘数的每一位直接去乘被乘数得到部分积并按位列为一行,每一行部分积末位与对应的乘数数位对齐,体现对应数位的权值。将各次部分积求和,即将各次部分积的对应数位求和即得到最终乘积的对应数位的权值。 为了进一步提高乘法的运算速度,可采用大规模的阵列乘法器来实现,阵列乘法器的乘数与被乘数都是二进制数。可以通过乘数从最后一位起一个一个和被乘数相与,自第二位起要依次向左移一位,形成一个阵列的形式。这就可将其看成一个全加的过程,将乘数某位与被乘数某位与完的结果加上乘数某位的下一位与被乘数某位的下一位与完的结果再加上前一列的进位进而得出每一位的结果,假设被乘数与乘数的位数均为4位二进制数,即m=n=4,A×B可用如下竖式算出,如图1.1所示。 X 4 X 3 X 2 X 1 =A × Y 4 Y 3 Y 2 Y 1 =B X 4Y 1 X 3 Y 1 X 2 Y 1 X 1 Y 1 X 4Y 2 X 3 Y 2 X 2 Y 2 X 1 Y 2 X 4Y 3 X 3 Y 3 X 2 Y 3 X 1 Y 3 (进位) X4Y4 X3Y4 X2Y4 X1Y4 Z 8 Z 7 Z 6 Z 5 Z 4 Z 3 Z 2 Z 1 图1.1 A×B计算竖式 X 4 ,X 3 ,X 2 ,X 1 ,Y 4 ,Y 3 ,Y 2 ,Y 1 为阵列乘法器的输入端,Z 1 -Z 8 为阵列乘法器 的输出端,该逻辑框图所要完成的功能是实现两个四位二进制既A(X)*B(Y)的 乘法运算,其计算结果为C(Z) (其中A(X)=X 4X 3 X 2 X 1 ,B(Y)=Y 4 Y 3 Y 2 Y 1 , C(Z)=Z 8Z 7 Z 6 Z 5 Z 4 Z 3 Z 2 Z 1 而且输入和输出结果均用二进制表示 )。阵列乘法器的总原 理如图1.2所示。

定点补码一位乘法器方案

个人资料整理仅限学习使用 课程设计报告 课程设计名称:计算机组成原理课程设计 课程设计题目:定点补码一位乘法器的设计 院<系):计算机学院 专业:计算机科学与技术 班级: 学号: 姓名: 指导教师: 完成日期:2018年1月15日

目录第1章总体设计方案1 1.1设计原理1 1.2设计思路2 1.3设计环境4 第2章详细设计方案5 2.1顶层方案图的设计与实现5 2.1.1创建顶层图形设计文件5 2.1.2器件的选择与引脚锁定6 2.2功能模块的设计与实现7 2.2.1求补电路模块的设计与实现7 2.2.2 控制电路模块的设计与实现8 2.2.3选择器模块的设计与实现10 第3章编程下载与硬件测试12 3.1编程下载12 3.2硬件测试及结果分析12 参考文献14 附录<电路原理图)15

第1章总体设计方案 1.1设计原理 <1)用[X]补×[Y]补直接求[X×Y]补 讨论当相乘的两个数中有一个或二个为负数的情况,在讨论补码乘法运算时,对被乘数或部分积的处理上与原码乘法有某些类似,差别仅表现在被乘数和部分积的符号位要和数值一起参加运算。 若[Y]补=Y0Y1Y2…Yn 当Y0为1时,则有Y=-1+Yi×2-i 故有X×Y=X×Yi×2-1-X当Y为负值时,用补码乘计算[X×Y]补,是用[X]补乘上[Y]补的数值位,而不理[Y]补符号位上的1,乘完之后,在所得的乘积中再减X,即加-[X]补。实现补码乘法的另一个方案是比较法,是由BOOTH最早提出的,这一方法的出发点是避免区分乘数符号的正负,而且让乘数符号位也参加运算。技巧上表现在分解乘数的每一位上的1为高一位的一个+1和本位上的一个-1:X×Y=X×<-1+Yi×2i)<逐项展开则得)=X×[-Y0+Y1×2-1+Y2×2-2+…+Yn×2-n]=X×[-Y0+(Y1-Y1×2-1>+(Y2×2-1-Y2×2-2>+…+(Yn×2-(n-1>-Yn×2-n>]<合并相同幂次项得)=X×[(Y1-Y0>+(Y2-Y1> ×2-1+…+(Yn-Yn-1> ×2-(n-1>+(0-Yn> ×2-n]=X× ×X]补 P2=[2-1(P1+(Yn-Yn-1> ×X>]补 … Pi=[2-1(Pn-i+(Yn-I+2-Yn-I+1> ×X>]补 … Pn=[2-1(Pn-1+(Y2-Y1> ×X>]补 Pn+1=[ (Pn+(Y1-Y0> ×X>]补 则最终补码乘积为[X*Y]补=[Pn+1]补

原码一位乘法

实验课程: 计算机组成原理实验时间: 班级:姓名:学号批阅教师: 硬布线实现原码一位乘法 实验内容: 在实验箱上用硬布线方法实现原码一位乘法 实验设备: CP226组成原理实验箱 实验设备介绍: CP226 模型机包括了一个标准CPU 所具备所有部件,这些部件包括:运算器ALU、累加器A、工作寄存器W、左移门L、直通门D、右移门R、寄存器组R0-R3、程序计数器PC、地址寄存器MAR、堆栈寄存器ST、中断向量寄存器IA、输入端口IN、输出端口寄存器OUT、程序存储器EM、指令寄存器IR、微程序计数器uPC、微程序存储器uM, 以及中断控制电路、跳转控制电路。其中运算器和中断控制电路以及跳转控制电路用CPLD 来实现,其它电路都是用离散的数字电路组成。微程序控制部分也可以用组合逻辑控制来代替。 模型机为8 位机,数据总线、地址总线都为8位,但其工作原理与16位机相同。模型机的指令码为8 位,根据指令类型的不同,可以有0 到 2 个操作数。指令码的最低两位用来选择R0-R3 寄存器,在微程序控制方式中,用指令码做为微地址来寻址微程序存储器,找到执行该指令的微程序。而在组合逻辑控制方式中,按时序用指令码产生相应的控制位。在本模型机中,一条指令最多分四个状态周期,一个状态周期为一个时钟脉冲,每个状态周期产生不同的控制逻辑,实现模型机的各种功能。模型机有24 位控制位以控制寄存器的输入、输出,选择运算器的运算功能,存储器的读写。24 位控制位分别介绍如下: XRD :外部设备读信号,当给出了外设的地址后,输出此信号,从指定外设读数据。EMWR:程序存储器EM 写信号。 EMRD:程序存储器EM 读信号。 PCOE:将程序计数器PC 的值送到地址总线ABUS 上。 EMEN:将程序存储器EM 与数据总线DBUS 接通,由EMWR和EMRD决定是将DBUS 数据写到EM 中,还是从EM 读出数据送到DBUS。 IREN:将程序存储器EM 读出的数据打入指令寄存器IR 和微指令计数器uPC。 EINT:中断返回时清除中断响应和中断请求标志,便于下次中断。 ELP:PC 打入允许,与指令寄存器的IR3、IR2位结合,控制程序跳转。 MAREN:将数据总线DBUS 上数据打入地址寄存器MAR。 MAROE:将地址寄存器MAR 的值送到地址总线ABUS 上。 OUTEN:将数据总线DBUS 上数据送到输出端口寄存器OUT 里。 STEN:将数据总线DBUS 上数据存入堆栈寄存器ST 中。RRD:读寄存器组R0-R3,寄存器R?的选择由指令的最低两位决定。 RWR:写寄存器组R0-R3,寄存器R?的选择由指令的最低两位决定。 CN:决定运算器是否带进位移位,CN=1 带进位,CN=0 不带进位。 FEN:将标志位存入ALU内部的标志寄存器。 X2、X1、X0 三位组合来译码选择将数据送到DBUS 上的寄存器。

八位乘法器VHDL及功能模块说明

EDA课程设计报告 实验名称:八位乘法器

目录 一.引言 1.1 EDA技术的概念?? 1.2 EDA技术的特点?? 1.3 EDA设计流程?? 1.4 VHDL介绍?? 二.八位乘法器的设计要求与设计思路??2.1 设计目的?? 2.2 设计要求?? 三.八位乘法器的综合设计?? 3.1 八位乘法器功能?? 3.2 八位乘法器设计方案?? 3.3 八位乘法器实体设计?? 3.4 八位乘法器VHDL设计?? 3. 5八位乘法器仿真图形?? 心得体会?? 参考文献??

一、引言 1.1 EDA技术的概念 EDA是电子设计自动化(Electronic Design Automation)的缩写,在20世纪90年代初从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言HDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。 1.2 EDA技术的特点 利用EDA技术进行电子系统的设计,具有以下几个特点:①用软件的方式设计硬件;②用软件方式设计的系统到硬件系统的转换是由有关的开发软件自动完成的;③设计过程中可用有关软件进行各种仿真;④系统可现场编程,在线升级;⑤整个系统可集成在一个芯片上,体积小、功耗低、可靠性高。因此,EDA技术是现代电子设计的发展趋势。 1.3 EDA设计流程 典型的EDA设计流程如下: 1、文本/原理图编辑与修改。首先利用EDA工具的文本或图形编辑器将设计者的设计意图用文本或图形方式表达出来。 2、编译。完成设计描述后即可通过编译器进行排错编译,变成特定的文本格式,为下一步的综合做准备。 3、综合。将软件设计与硬件的可实现性挂钩,是将软件转化为硬件电路的关键步骤。 4、行为仿真和功能仿真。利用产生的网表文件进行功能仿真,以便了解设计描述与设计意图的一致性。 5、适配。利用FPGA/CPLD布局布线适配器将综合后的网表文件针对某一具体的目标器件进行逻辑映射操作,其中包括底层器件配臵、逻辑分割、逻辑优化、布局布线。适配报告指明了芯片内资源的分配与利用、引脚锁定、设计的布尔方程描述情况。

计算机组成原理第四版课后习题答案完整版

第一章 1.比较数字计算机和模拟计算机的特点 解:模拟计算机的特点:数值由连续量来表示,运算过程是连续的; 数字计算机的特点:数值由数字量(离散量)来表示,运算按位进行。 两者主要区别见P1 表1.1。 2.数字计算机如何分类?分类的依据是什么? 解:分类:数字计算机分为专用计算机和通用计算机。通用计算机又分为巨型机、大型机、 中型机、小型机、微型机和单片机六类。 分类依据:专用和通用是根据计算机的效率、速度、价格、运行的经济性和适应性来划分的。 通用机的分类依据主要是体积、简易性、功率损耗、性能指标、数据存储容量、 指令系统规模和机器价格等因素。

3.数字计算机有那些主要应用? (略) 4.冯. 诺依曼型计算机的主要设计思想是什么?它包括哪些主要组成部分? 解:冯. 诺依曼型计算机的主要设计思想是:存储程序和程序控制。 存储程序:将解题的程序(指令序列)存放到存储器中; 程序控制:控制器顺序执行存储的程序,按指令功能控制全机协调地完成运算任务。 主要组成部分有:控制器、运算器、存储器、输入设备、输出设备。 5.什么是存储容量?什么是单元地址?什么是数据字?什么是指令字? 解:存储容量:指存储器可以容纳的二进制信息的数量,通常用单位KB、MB、GB来度量,存储容 量越大,表示计算机所能存储的信息量越多,反映了计算机存储空间的大小。 单元地址:单元地址简称地址,在存储器中每个存储单

元都有唯一的地址编号,称为单元地 址。 数据字:若某计算机字是运算操作的对象即代表要处理的数据,则称数据字。 指令字:若某计算机字代表一条指令或指令的一部分,则称指令字。 6.什么是指令?什么是程序? 解:指令:计算机所执行的每一个基本的操作。 程序:解算某一问题的一串指令序列称为该问题的计算程序,简称程序。 7.指令和数据均存放在内存中,计算机如何区分它们是指令还是数据? 解:一般来讲,在取指周期中从存储器读出的信息即指令信息;而在执行周期中从存储器中读出的 信息即为数据信息。 8.什么是内存?什么是外存?什么是CPU?什么是适配器?简述其功能。

定点补码一位乘法器的设计与实现

课程设计报告 课程设计名称:计算机组成原理课程设计 课程设计题目:定点补码一位乘法器的设计与实现 院(系):计算机学院 专业:计算机科学与技术 班级: 学号: 姓名: 指导教师: 完成日期:2012年1月13日

目录 第1章总体设计方案 (1) 1.1设计原理 (1) 1.2设计思路 (1) 1.3设计环境 (2) 第2章详细设计方案 (3) 2.1顶层方案图的设计与实现 (3) 2.1.1创建顶层图形设计文件 (3) 2.1.2器件的选择与引脚锁定 (4) 2.1.3编译、综合、适配 (5) 2.2功能模块的设计与实现 (5) 2.2.1 取补模块的设计与实现 (5) 2.2.2选择器模块的设计与实现 (7) 2.2.3 乘数补码移位寄存器模块的设计与实现 (11) 2.2.4 部分积移位寄存器模块的设计与实现 (13) 2.3仿真调试 (14) 第3章编程下载与硬件测试 (16) 参考文献 (17) 附录(电路原理图) (18)

第1章总体设计方案 1.1 设计原理 在计算两个补码相乘时,可以通过Booth算法来实现定点补码一位乘的功能。布斯(Booth)算法采用相加和相减的操作计算补码数据的乘积,Booth算法对乘数从低位开始判断,根据后两个数据位的情况决定进行加法、减法还是仅仅进行移位操作。讨论当相乘的两个数中有一个或二个为负数的情况,在讨论补码乘法运算时,对被乘数或部分积的处理上与原码乘法有某些类似,差别仅表现在被乘数和部分积的符号位要和数值一起参加运算。 Booth乘法规则如下: 假设X、Y都是用补码形式表示的机器数,[X]补和[Y]补=Ys.Y1Y2…Yn,都是任意符号表示的数。比较法求新的部分积,取决于两个比较位的数位,即Yi+1Yi 的状态。 首先设置附加位Yn+1=0,部分积初值[Z0]补=0。 当n≠0时,判断YnYn+1, 若YnYn+1=00或11,即相邻位相同时,上次部分积右移一位,直接得部分积。若YnYn+1=01,上次部分积加[X]补,然后右移一位得新部分积。 若YnYn+1=10,上次部分积加[-X]补,然后右移一位得新部分积。 当n=0时,判YnYn+1(对应于Y0Y1),运算规则同(1)只是不移位。即在运算的最后一步,乘积不再右移。 1.2 设计思路 首先要采用原码值输入,乘数和被乘数皆为8位。而且根据补码一位乘法运算规则:(1) 如果yn = yn+1,部分积[ zi ] 加0,再右移一位;(2) 如果yn yn+1 = 01,部分积加[ x ]补,再右移一位;(3) 如果yn yn+1 = 10,部分积加[ - x]补,再右移一位;这样重复进行n+1 步,但最后一步不移位。包括一位符号位,所得乘积为2n+1 位,其中n 为尾数位数。 设计一个二输入三选一选择器对可能的三种情况进行选择。当选择器中输入

补码一位乘法

计算机组成原理 第三章运算方法与运算器3.4 补码一位乘法

1补码一位乘法的基本方法 设[X]补= X0X1X2X3…X n[Y]补= Y0Y1Y2Y3…Y n 可证明: [X?Y]补= [X]补?( 0.Y1Y2Y3…Yn) –Y0? [X]补 进一步展开合并后可得: n [x?y]补=[x] 补?∑(y i+1-y i)2-i (符号位参加运算) i=0

1补码一位乘法的基本方法 [x?y] 补=[x] 补? (y i+1-y i)2-i (符号位参加运算) 补码一位乘法的运算规则如下: (1)如果y n+1=y n,部分积加0,部分积算术右移1位; (2)如果y n+1y n=10,部分积加[x]补,部分积算术右移1位; (3)如果y n+1y n=01,部分积加[-x]补,部分积算术右移1位. 重复进行n+1步,但最后一步不移位。 包括一位符号位,所得乘积为2n+1位,其中n为数据位位数.

1补码一位乘法的基本方法 几个特殊问题的处理 [x ?y] 补=[x] 补? (y i+1- y i )2-i (符号位参加运算) 设[X]补= X 0X 1X 2X 3…X n [Y]补= Y 0Y 1Y 2Y 3…Y n (1)i=n 时,y n+1=?(2)y n+1是哪个寄存器? (3)算术右移的对象有哪些?y n+1=0 在乘数寄存器Y 后增加的一位部分积和乘数寄存器均右移

2补码一位乘法的举例 例1 已知X= +1101 Y=+1011 用补码一位乘法求X?Y 解:[X]补=01101 [Y]补=01011 [–X]补=10011 部分积乘数说明 000000 010110Y n+1< Y n部分积+[–X]补 + 110011 110011 →111001101011结果右移一位,Y n+1= Y n部分积+0 + 000000 111001 →111100 110101结果右移一位, Y n+1> Y n部分积+[X]补 + 001101 001001

计算机组成原理第六章答案

1. 写出下列各数的原码、反码、补码、移码(用8位二进制表示),其中MSB是最高位(符号位),LSB是最低位。如果是小数,则小数点在MSB之后;如果是整数,则小数点在LSB之后。 (1)-59/64 (2)27/128 (3)-127/128 (4)用小数表示-1 (5)用整数表示-1 (6)-127 (7)35 (8)-128 2. 设[x]补=x0.x1x2x3x4,其中x i取0或1,若要使x>-0.5,则x0、x1、x2、x3、x4的取值应满足什么条件? 3. 若32位定点小数的最高位为符号位,用补码表示,则所能表示的最大正数为,最小正数为,最大负数为,最小负数为;若32位定点整数的最高位为符号位,用原码表示,则所能表示的最大正数为,最小正数为,最大负数为,最小负数为。 4. 若机器字长为32位,在浮点数据表示时阶符占1位,阶码值占7位,数符占1位,尾数值占23位,阶码用移码表示,尾数用原码表示,则该浮点数格式所能表示的最大正数为,最小正数为,最大负数为,最小负数为。 5. 某机浮点数字长为18位,格式如图2.35所示,已知阶码(含阶符)用补码表示,尾数(含数符)用原码表示。 (1)将(-1027)10表示成规格化浮点数; (2)浮点数(0EF43)16是否是规格化浮点数?它所表示的真值是多少? 图2.35 浮点数的表示格式 6. 有一个字长为32位的浮点数,格式如图2.36所示,已知数符占1位;阶码占8位,用移码表示;尾数值占23位,尾数用补码表示。 图2.36 浮点数的表示格式 请写出:

(1)所能表示的最大正数; (2)所能表示的最小负数; (3)规格化数所能表示的数的范围。 7. 若浮点数x的IEEE754标准的32位存储格式为(8FEFC000)16,求其浮点数的十进制数值。 8. 将数(-7.28125)10转换成IEEE754标准的32位浮点数的二进制存储格式。 9. 已知x=-0.x1x2…x n,求证:[x]补=+0.00…01。 10. 已知[x]补=1.x1x2x3x4x5x6,求证:[x]原=+0.000001。 11. 已知x和y,用变形补码计算x+y,同时指出运算结果是否发生溢出。 (1)x=0.11011 y=-0.10101 (2)x=-10110 y=-00011 12. 已知x和y,用变形补码计算x-y,同时指出运算结果是否发生溢出。 (1)x=0.10111 y=0.11011 (2)x=11011 y=-10011 13. 已知[x]补=1.1011000,[y]补=1.0100110,用变形补码计算2[x]补+1/2[y]补=?,同时指出结果是否发生溢出。 14. 已知x和y,用原码运算规则计算x+y,同时指出运算结果是否发生溢出。 (1)x=0.1011,y=-0.1110 (2)x=-1101,y=-1010 15. 已知x和y,用原码运算规则计算x-y,同时指出运算结果是否发生溢出。 (1)x=0.1101,y=0.0001 (2)x=0011,y=1110 16. 已知x和y,用移码运算方法计算x+y,同时指出运算结果是否发生溢出。 (1)x=-1001,y=1101 (2)x=1101,y=1011

quartus II 软件做4的位乘法器设计(vhdl 语言)

用quartus II 软件设计4位乘法器 1. 并行乘法的算法: 下面根据乘法例题来分析这种算法,题中M4,M3,M2,M1是被乘数,用M表示。N4,N3,N2,N1是乘数,用N表示 2.乘法模块 Library ieee; Use ieee.std_logic_1164.all; Use ieee.std_logic_unsigned.all; Entity and4a is Port(a:in std_logic_vector(3 downto 0); en:in std_logic; r:out std_logic_vector(3 downto 0)); End and4a; Architecture behave of and4a is Begin Process(en,a(3 downto 0)) Begin If (en='1') then r<=a; Else r<="0000"; End if; End process; End behave;

3.加法模块 Library ieee; Use ieee.std_logic_1164.all; Entity ls283 is Port (o1,o2:in std_logic_vector(3 downto 0); res:out std_logic_vector(4 downto 0)); End ls283; Architecture behave of ls283 is Begin Process(o1,o2) Begin res<=('0'&o1)+('0'&o2); End process; End behave;

补码一位乘法之较正法的公式推导

在定点乘法运算中,补码乘法分为补码一位乘法和补码两位乘法。而补码一位乘法又分为较正法和比较法(Booth算法)两种。其中,较正法是比较法的基础。因此,掌握较正法是学习补码一位乘法的关键。下面,我们就对较正法进行深入分析。 一、较正法公式 [XY]补= [X]补*(0.Y1,Y2, … ,Y n) + [-X]补*Y0 其中,X、Y是两个定点数的真值,[Y]补=Y0.Y1,Y2, … ,Y n,Y0是符号位。 为了推导出此公式,我们分情况来进一步分析。 1、Y=0 在这种情况下,[Y]补=Y=0.0,0, … ,0=0。 [XY]补=0 =[X]补*(0.0,0, … ,0)+[-X]补*0 =[X]补*(0.Y1,Y2, … ,Y n)+[-X]补*Y0 2、X>=0, Y>0 在这种情况下,[X]补=X,[Y]补=Y,且Y0=0。不难看出, [XY]补=XY =[X]补*Y =[X]补*(Y0.Y1,Y2, … ,Y n)+[-X]补*0 =[X]补*(0.Y1,Y2, … ,Y n)+[-X]补*Y0 到此为止,我们还有两种情况尚未讨论,一种情况是X<0, Y>0,一种情况是Y<0。前一种情况是本文讨论的重点。与很多教材上的推导方法不同,本文采用与原码一位乘法相对照来证明此种情况。此方法用到的知识点有原码一位乘法和补码移位规则。首先,我们先来回顾一下这两个知识点。 二、原码一位乘法 原码一位乘法基本上是从手算法则演变过来的。我们知道,两个数相乘的手算法则是“绝对值相乘;同号得正,异号得负”。原码一位乘法也采用这种方法。 设[X]原=X s.X1,X2, … ,X n [Y]原=Y s.Y1,Y2, … ,Y n 因为[X]原=X,[Y]原=Y,[XY]原=XY 所以[XY]原=[X]原*[Y]原

移位相加型8位硬件乘法器设计

合肥学院 课程设计报告 题目:移位相加型8位硬件乘法器 系别:电子信息与电气工程系 专业:通信工程 班级: 13通信工程(1)班 学号: 姓名: 导师:石朝毅 成绩: 2016年 6 月 11 日

移位相加型8位硬件乘法器设计 摘要 本次设计是基于时序结构的8位移位相加型乘法器,使用软件QuartusII进行仿真设计。完成此乘法器,我们需要首先设计该乘法器的组件,包括REGSHT模块、SREG8BT模块、AND8B模块和ADDER8BT模块,并对所有元件进行仿真,无误后可进行乘法器的设计。设计方法使用的是元件例化,具体原理是通过逐项相加来实现乘法功能,最终完成整体的VHDL程序设计并仿真。 关键词:时序;乘法器;元件例化

目录 第一章前言............................................ 错误!未定义书签。设计概述............................................. 错误!未定义书签。 问题提出与原理..................................... 错误!未定义书签。 设计需要........................................... 错误!未定义书签。第二章设计过程及结果.................................. 错误!未定义书签。设计思路............................................. 错误!未定义书签。 设计须知........................................... 错误!未定义书签。 基本步骤........................................... 错误!未定义书签。设计代码及仿真....................................... 错误!未定义书签。 元件REGSHT设计代码及仿真结果...................... 错误!未定义书签。 元件SREG8BT设计代码及仿真结果..................... 错误!未定义书签。 元件AND8B设计代码及仿真结果....................... 错误!未定义书签。 元件ADDER8BT设计代码及仿真结果.................... 错误!未定义书签。 总模块设计代码及仿真结果........................... 错误!未定义书签。第三章总结............................................ 错误!未定义书签。致谢................................................... 错误!未定义书签。

定点原码一位乘法器讲课教案

定点原码一位乘法器

沈阳航空工业学院 课程设计报告 课程设计名称:计算机组成原理课程设计 课程设计题目:定点原码一位乘法器的设计 院(系):计算机学院 专业:计算机科学与技术 班级: 学号: 姓名: 指导教师: 完成日期:

目录 第1章总体设计方案 (1) 1.1设计原理 (1) 1.2设计环境 (2) 第2章详细设计方案 (4) 2.1顶层方案图的设计与实现 (4) 2.1.1创建顶层图形设计文件 (4) 2.1.2器件的选择与引脚锁定 (5) 2.2第二层模块的设计与实现 (7) 2.3功能模块的设计与实现 (7) 2.3.1移位模块的设计与实现 (7) 2.3.2 乘数移位模块的设计与实现 (10) 2.3.3选择模块的设计与实现 (12) 2.3.4 控制模块的设计与实现 (13) 2.3.5 其他模块的设计与实现 (15) 2.4仿真调试 (16) 第3章编程下载与硬件测试 (19) 3.1编程下载 (19) 3.2硬件测试及结果分析 (19) 参考文献 (20) 附录(电路原理图) (21)

第1章总体设计方案 1.1 设计原理 原码一位乘,两个原码数相乘,其乘积的符号为相乘两数符号的异或值,数值则为两数绝对值之积。 例:X=0.1100,Y=0.1110,计算乘积X*Y。 0.1100 * 0.1110 0000 1100 1100 1100 0.10101000 在计算时,逐次按乘数每1位上的值是1还是0,决定相加数取被乘数的值还是取零值,而且相加数逐次向左偏移1位,最后一起求积。 由于在计算机内多个数据一般不能同时相加,一次加法操作只能求出两数之和,因此每求得一个相加数,就与上次部分积相加每次计算时,相加数逐次向左偏移一位,由于最后的乘积位数是乘数(被乘数)的两倍,因此加法器也需增到两倍。部分积右移时,乘数寄存器同时右移一位,所以用乘数寄存器的最低位来控制相加数取被乘数或零,同时乘数寄存器接收部分积右移出来的一位,完成运算后,部分积寄存器保存乘积的高位部分,乘数寄存器中保存乘积的低位部分。

补码乘法

补码乘法因符号位参与运算,可以完成补码数的“直接”乘法,而不需要求补级。这种直接的 方法排除了较慢的对2求补操作,因而大大加速了乘法过程。 首先说明与直接的补码乘法相联系数学特征。对于计算补码数的数值来说,一种较好的表示 方法是使补码的位置数由一个带负权的符号和带正权的系数。今考虑一个定点补码整数 [N]补=a n-1a n-2…a1a0,这里a n-1是符号位。根据[N]补的符号,补码数[N]补和真值N 的关系 可以表示成: N= n-2 +∑a i2i当a n-1= 0([N]补为正)时i=0 n-2 -[1+∑(1-a i)2i] 当a n-1= 1([N]补为负)时i=0 如果我们把负权因数-2n-1强加到符号位a n-1上,那么就可以把上述方程组中的两个位置 表达式合并成下面的统一形式: (2.29) (2.30) [例19] 已知: [N]补= 01101,[-N]补=10011,求[N]补,[-N]补具有的数值。 [解:]

常规的一位全加器可假定它的3个输入和 2个输出都是正权。这种加法器通过把正权或 负权加到输入/输出端,可以归纳出四类加法 单元。如右表,0类全加器没有负权输入; 1类全加器有1个负权输入和2个正权输入;依次类推。 对0类、3类全加器而言有: S =XYZ +XYZ +XYZ +XYZ C =XY +YZ +ZX 对1类、2类全加器,则有 S =XYZ +XYZ +XYZ +XYZ C =XY +XZ +YZ 表2.3 四类一般化全加器的名称和逻辑符号 注意,0类和3类全加器是用同一对逻辑方程来表征的,它和普通的一位全加器(0类)是一致 的。这是因为3类全加器可以简单地把0类全加器的所有输入输出值全部反向来得到,反之亦然。 1类和2类全加器之间也能建立类似的关系。由于逻辑表达式具有两级与一或形式,可以用 “与或非”门来实现,延迟时间为2T 。 利用混合型的全加器就可以构成直接补码数阵列乘法器。设被乘数A 和乘数B 是两个5位的二 进制补码数,即 A =(a 4)a 3a 2a 1a 0

四川大学数电课程设计(四位二进制无符号数乘法器 ).

数字电子技术基础课程设计报告 学院电气信息学院 专业 姓名 学号 设计题目四位二进制无符号数乘法器

目录 1设计任务描述 (1) 1.1设计描述 (1) 1.2设计概述 (1) 2通用器件实现 (1) 2.1方案一与门和全加器组合逻辑电路 (1) 2.1.1设计思路 (1) 2.1.2仿真测试 (2) 2.1.3优缺点分析 (3) 2.2方案二多种通用集成芯片组合逻辑电路 (3) 2.2.1设计思路 (3) 2.2.2仿真测试 (5) 2.2.3优缺点分析 (7) 3使用硬件描述语言——Verilog实现 (7) 3.1设计目的 (7) 3.2设计要求 (7) 3.3硬件语言描述 (7) 3.4BASY2板结果附图 (9) 4结论与心得体会 (11) 4.1结论 (11) 4.2心得体会 (11)

1设计任务描述 1.1设计描述 设计一个乘法器,实现两个四位二进制数的乘法。两个二进制数分别是被乘数3210A A A A 和乘数3210B B B B 。被乘数和乘数这两个二进制数分别由高低电平给出。乘法运算的结果即乘积由电平指示灯显示的二进制数。做到保持乘积、输出乘积,即认为目的实现,结束运算。 1.2设计概述 4位二进制乘法器在实际中具有广泛应用。它是一些计算器的基本组成部分,其原理适用于很多计算器和大型计算机,它涉及到时序逻辑电路如何设计、分析和工作等方面。通过此电路更深刻的了解时序逻辑部件的工作原理,从而掌握如何根据需要设计满足要求的各种电路图,解决生活中的实际问题,将所学知识应用于实践中。 2通用器件实现 2.1方案一与门和全加器组合逻辑电路 2.1.1设计思路手动实现两个四位二进制乘法的计算,应为以下过程: 1 23456781 2341234111100011 10111010 0001 10110111 101C C C C C C C C A A A A B B B B 设乘数为1234A A A A (下标数字大则为高位),被乘数为1234B B B B ,使乘数从低位到高位依次与被乘数相乘,得到四个四位二进制加数,再依次对四个加数错位相加,得到八位的二进制的乘法运算结果。 依次算法,两个四进制乘数由8个单刀双掷开关接地(低电平0)和接5V(高电平1)进行输入,乘数A 从低位到高位依次与被乘数B 相乘过程可用二输入与门实现,共得到四个加数16个与运算结果,乘数最低位1A 与被乘数作与运算的四位结果的最低位即是乘法运算结果的最低位1C ;依次用三个四位全加器对四个加数进行全加运算,运算时输入两个四位二进制数,输入进位信号接地为0,低级的全加器的运算结果进位信号作为与下一个加数进行全加运算的被加数的最高位,四位全加运算结果的最低位作为输出结果,并从低到高位的依次输出432C C C 、、,最后一个全加器运算过后得到进位信号是八位二进制计算结果的最高位8C ,剩余的高三位输出分别为567C C C 、、,将8位输出结果直接在通过电阻到地保护的发光二极管表示。

《计算机组成原理》课程设计_两个数的乘法运算

《计算机组成原理》课程设计报告课程设计题目:两个数的乘法运算 小组成员: …. 完成日期:第十一周

模型机设计实验 一、实验目的 综合运用所学计算机原理知识,设计并实现较为完整的模型计算机。其功能为: 输入两个数,进行两个正数(二进制4位)的乘法运算,输出结果。 二、实验内容 编写程序,运行程序,观察并记录运行结果。 三、实验仪器 1、ZY15CompSys12BB计算机组成原理及系统结构教学实验箱一台 2、排线若干 3、PC机一台 四、预备知识 1、数据格式 8位,其格式如下: 其中第7位为符号位,数值表示范围是:-1≤X<127。 2、指令格式 模型机设计四大类指令共十六条,其中包括算术逻辑指令、I/O指令、访问存储器、转移指令和停机指令。 (1)算术逻辑指令 规定: 算术逻辑指令的名称、功能和具体格式见表2—3。 (2)访存指令及转移指令 模型机设计2条访存指令,即存数(STA)、取数(LAD),2条转移指令,即无条件转移( 负均可)

本模型机规定变址寄存器RI指定为寄存器R2。 (3)I/O指令 其中,在IN 指令中,addr=01,选中“输入”中的开关组作为输入设备,在OUT指令中,addr=10时,表示选中“输出单元”中的数码块作为输出设备。 (4)停机指令 HALT指令,机器码为60H,用于实现停机操作。 3、指令系统 复杂模型机共有16条基本指令,其中算术逻辑指令7条,访问内存指令和程序控制指令4条,输入输出指令2条,其它指令1条。表2-3列出了各条指令的格式、汇编符号、指令功能。 我们依然采用复杂模型机指令系统中的部分指令。 五、实验的机器指令程序如下: 地址内容助记符说明 00 14 IN R0 ; 作计数器用,00000001→R0 01 15 IN R1 ; 输入X的值,0000xxxx→R1 02 05 STA R1 ; X→22H 03 22 04 15 IN R2 ; 输入Y→R2,0000xxxx→R2 05 06 STA R2 ; R2→23H 06 23

用原码一位乘

第六章 20.用原码一位乘、两位乘和补码一位乘( Booth算法)、两位乘计算x ? y。 (1)x= 0.110111, y= -0.101110; (2)x= -0.010111 , y= -0.010101 ; (3)x= 19 , y= 35 ; (4)x= 0.110 11 , y= -0.111 01。 解: (a)原码一位乘: (1) 凶原=0.110111 [y]原=1.101110 x*=0.110111 y*=0.101110 符号位:X 0 Y00 1 1 数值部分的计算: 部分积乘数y* 0.000000 + 0.000000 10111 0 开始部分积为0 乘数为0,加上0 0.000000 0.000000 010111 1 部分积右移一位,乘数右移一位+ 0.110111 乘数为1,加上X* 0.110111 0 0.011011 10 1011 1 部分积右移一位,乘数右移一位 + 0.110111 乘数为1,加上X* 1.010010 10 0.101001 010 101 1 部分积右移一位,乘数右移一位 + 0.110111 乘数为1,加上X* 1.100000 010 0.110000 0010 10 + 0.000000 0.110000 0010 0.011000 00010 1 部分积右移一位,乘数右移一位 + 0.110111 乘数为1,加上X* 1.001111 00010 右移一位 0.100111 100010

[x*y]原=1.100111100010 ⑵ 凶原=1.010111 [y]原=1.010101 x*=0.010111 y*=0.010101 符号位:X 0 Y 0 1 1 0 数值部分的计算: 部分积 乘数y* 0.000000 010101 开始部分积为0 乘数为1,加上X* + 0.010111 0.010111 0.001011 1 01010 1 部分积右移一位,乘数右移一位 + 0.000000 乘数为0,加上0 0.001011 1 0.000101 11 0101 1 部分积右移一位,乘数右移一位 + 0.010111 乘数为1,加上X* 0.011100 11 0.001110 011 010 部分积右移一位,乘数右移一位 + 0.000000 乘数为0,加上0 0.001110 011 0.000111 0011 01 部分积右移一位,乘数右移一位 + 0.010111 乘数为1,加上X* 0.011110 0011 0.001111 00011 0 部分积右移一位,乘数右移一位 + 0.000000 0.001111 00011 0.000111 100011 故,x ? y=0.000111100011 (3) [x]原=0, 0001 0011 [y]原=0, 0010 0011 x*=0001 0011 y*=0010 0011 符号位:X 0 Y 0 0 0 0 00000000 00100011 + 00010011 开始部分积为0 乘数为1,加上X* 数值部分的计算: 部分积 乘数y* 部分积右移一位,乘数右移一位 00010011 00001001 1 001000

相关文档
最新文档