定点原码一位除法器的设计
定点源码一位乘法器的设计内容结论
定点源码一位乘法器的设计内容结论篇一:设计一个定点源码一位乘法器可以帮助我们更好地理解计算机内部如何进行乘法运算。
本文将介绍一个定点源码一位乘法器的设计方案,包括其基本结构和实现方式,结论是这种乘法器在计算机内部可以实现,并且具有高效的性能。
首先来看乘法器的基本原理。
乘法是将两个数相乘得到的结果存储在两个数的对应位上,然后根据乘积的二进制表示将结果进行位运算得到最终的答案。
对于一位乘法器,其基本操作如下:1. 读取两个数,并将它们存储在一个临时变量中。
2. 对两个数进行位运算,将乘积的对应位设置为1,其他位设置为0。
3. 将结果存储回原来的两倍位置。
下面我们来具体实现一个一位乘法器。
首先,我们需要选择一种编程语言来实现乘法器。
由于一位乘法器只涉及两个数的不同位,因此选择C语言作为实现语言。
接下来,我们需要设计一个乘法器的数据结构。
对于一位乘法器,我们只需要将乘积的二进制表示存储在一个数组中,而不需要存储中间结果。
因此,我们可以使用一个二进制数组来实现一位乘法器。
接下来,我们来实现乘法器的代码。
首先,我们初始化两个数组,一个用于存储乘积的二进制表示,另一个用于存储中间结果。
然后,我们使用位运算来实现乘法操作。
具体地,我们按照以下步骤进行操作:1. 读取两个数。
2. 对两个数进行位运算。
3. 将乘积的对应位设置为1,其他位设置为0。
4. 将结果存储回原来的两倍位置。
下面是完整的代码实现:```c#include <stdio.h>#include <stdlib.h>#define MAX_INT 32767// 乘法器数据结构typedef struct {int value;int bit[2];} 乘积;// 初始化乘积void init_积(乘积*积) {积->value = 0;for (int i = 0; i < 2; i++) {积->bit[i] = 0;}}// 读取两个数int read_nums(乘积*积, int num1, int num2) { 乘积 temp;init_积(&temp);int carry = 0;for (int i = 0; i < 8; i++) {int bit = (num2 >> i) & 1;temp.bit[i] = bit;if (bit) {carry++;}}temp.value = carry ? (temp.value + num1) : num1;return temp.value;}// 位运算void bit_Ops(乘积*积, int num1, int num2, int bit) { if (bit) {积->bit[2 * bit - 1] = num2 & 1;}}// 打印结果void print_result(乘积*积, int num1, int num2) {for (int i = 0; i < 2; i++) {printf("%d ",积->bit[i]);}printf("");}int main() {乘积积1,积2;int num1, num2;printf("请输入两个整数:");scanf("%d%d", &num1, &num2);printf("请输入第一个整数:");scanf("%d", &积1.value);printf("请输入第二个整数:");scanf("%d", &积2.value);printf("请输入第一个整数的位数: ");scanf("%d", &积1.bit[0]);printf("请输入第二个整数的位数: ");scanf("%d", &积2.bit[0]);printf("计算结果为:");printf("%d", read_nums(积1, num1, num2));printf("计算结果的位数:");printf("%d ",积1.bit[2 *积1.bit[0] - 1]);printf(" ");printf("计算结果的进位:");printf("%d ",积2.bit[2 *积2.bit[0] - 1]);printf(" ");return 0;}```根据上面的代码,我们可以得到一位乘法器的基本结构。
2020年恢复余数法定点原码一位除法器的设计精品版
****************课程设计报告课程设计名称:计算机组成原理课程设计课程设计题目:恢复余数法定点原码一位除法器的设计院(系):*************专业:*************班级:*************学号:*************姓名:*************指导教师:*************完成日期:*************目录第1章总体设计方案 (1)1.1设计原理 (1)1.2设计思路 (1)1.3设计环境 (3)第2章详细设计方案 (4)2.1顶层方案图的设计与实现 (4)2.1.1创建顶层图形设计文件 (4)2.1.2器件的选择与引脚锁定 (5)2.1.3 编译、综合、适配 (6)2.2功能模块的设计与实现 (6)2.2.1寄存器模块的设计与实现 (6)2.2.2数据选择器模块的设计与实现 (8)2.2.3补码器模块的设计与实现 (12)2.2.4加法器模块的设计与实现 (13)2.2.5移位寄存器模块的设计与实现 (15)2.3仿真调试 (18)第3章编程下载与硬件测试 (20)3.1编程下载 (20)3.2硬件测试及结果分析 (20)参考文献 (22)附录(电路原理图) (23)第1章总体设计方案1.1 设计原理定点原码一位除法器的原理是根据人工进行二进制除法的规则:判断被除数与除数的大小,若被除数小,则上商0,并在余数最低位补0,再用余数和右移一位的除数比,若够除,则上商1,否则上商0。
然后继续重复上述步骤,直到除尽(即余数为0)或已得到的商的位数满足精度要求为止。
上述计算方法要求加法器的位数为除数位数的两倍。
但分析后,会发现右移除数,可以通过左移被除数(余数)来代替,左移出界的被除数(余数)的高位都是无用的0,对运算不会产生任何影响。
另外,上商0还是1是计算者用观察比较的办法确定的,而计算机只能用做减法判断结果的符号为负还是为正来确定。
当差为负时,上商为0,同时还应把除数再加到差上去,恢复余数为原来的正值之后再将其左移一位。
5第五讲定点除法器
20
2 不恢复余数阵列除法器
21
二 定点运算器的组成
1. 2.
3.
4. 5.
基本构成 算术逻辑运算单元 数据缓冲寄存器 通用寄存器 多路寄存器 数据总线
22
1 逻辑运算
逻辑非运算 eg1: x=011001,求逻辑非 逻辑加运算 eg2: x=011001,y=110101,求逻辑加 逻辑乘运算 eg3: x=011001,y=110101,求逻辑乘 逻辑异或运算 eg4: x=011001,y=110101,求逻辑异或
X0X1X2X3Cn Cn+4=G+P Cn
28
74181ALU电路逻辑图
29
74181ALU相关讨论
1.
当M=0时,M对进位信号没有任何影
响。因此M=0时,进行算术操作。
2.
当M=1时,封锁了各位的进位输出,即
C =0,因此各位的运算结果F 仅与Y 和 X 有关,故M=1时,进行逻辑操作。
30
则第n+1步恢复余数,不移位。
16
二 并行除法器
与阵列乘法器相似,阵列除法器也是一种
并行运算部件。
阵列除法器有多种形式,如不恢复余数阵
列除法器、补码阵列除法器等等。
17
1 可控加法/减法(CAS)单元
Si=Ai⊕(Bi⊕P)⊕Ci Ci+1=(Ai+Ci)· (Bi⊕P)+AiCi
18
原码除法实例
11
2 原码不恢复余数法(加减交替法)
算法分析
第二步:2r1-B=r2’<0
第二步:2r1-B=r2’<0 第三步:r2’+B=r2(恢复余数) 第三步:2r2’+B=r3 (不恢复余数) 第四步:2r2-B=r3 2r2-B=2(r2’+B)-B =2r2’+B=r3
定点原码一位乘法器的设计 (3)
沈阳航空工业学院课程设计报告课程设计名称:计算机组成原理课程设计课程设计题目:定点原码一位乘法器的设计院(系):计算机学院专业:计算机科学与技术班级:4401102学号:200403011034姓名:蔡丽娇指导教师:刘泽显完成日期:2006年12月31日沈阳航空工业学院课程设计报告目录第1章总体设计方案 (1)1.1 设计原理 (1)1.2 设计思路 (1)1.3 设计环境 (2)第二章详细设计方案 (3)2.1顶层方案图的设计与实现 (3)2.1.1创建顶层图形设计文件 (3)2.1.2器件的选择与引脚锁定 (3)2.2 功能模块的设计与实现 (5)2.2.1 8位移位电路 (5)2.2.2 部分积寄存器 (7)2.2.3 乘数寄存器 (7)2.2.4 二路选择器 (8)2.2.5 计数器 (9)2.2.6 结果输出器 (11)2.3 仿真调试 (13)第3章编程下载与硬件测试 (14)3.1 编程下载 (14)3.2 硬件测试及结果分析 (14)参考文献 (15)附录(电路原理图) (16)第1章总体设计方案1.1 设计原理定点原码一位乘法器的设计主要是基于原码一位乘法的计算过成。
设计内容主要是实现输入被乘数和乘数经电路得出结果。
设计思想是:以乘数的最低位作为乘法判断位,若判断位为1,则在前次部分积(初始部分积为0)上加上被乘数,然后连同乘数一起右移一位;若判断位为0,则在前次部分积上加0,然后连同乘数一起右移一位。
重复此判断过程,直到运算n次为止(n为乘数数值部分的长度)。
1.2 设计思路原码一位乘法器主要包括ALU﹑部分积寄存器﹑乘数移位寄存器﹑被乘数寄存器和移位电路五大部分。
这五大部分就作为底层设计,其中乘数移位寄存器需要保留移出的最低位,它的最高位要接收部分积移出的最低位这两部分采用V erilog语言进行设计,顶层的乘法器采用原理图设计输入方式。
原码一位乘的数值运算中不需要考虑符号位的情况,符号位于数值位分开处理。
不恢复余数法定点原码一位除法器的的设计汇总
沈阳航空航天大学课程设计报告目录学术诚信声明 ................................................................................... 错误!未定义书签。
第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功能模块的设计与实现 (6)2.2.1 输入模块的设计与实现 (6)2.2.移位模块的设计与实现 (7)2.2.3加法器模块的设计与实现 (9)2.2.4 相反补码模块的设计与实现 (10)2.3仿真调试 (11)第3章编程下载与硬件测试 (13)3.1编程下载 (13)3.2硬件测试及结果分析 (13)参考文献 (15)附录(电路原理图) (16)第1章总体设计方案1.1 设计原理减交替法的实现是当某一次求得的差值(余数Ri)为负时,不恢复它,继续求下一位的商,但用加上除数(+[—Y]补)的办法来取代(-Y)的操作,其他操作依然不变。
(1)当余数为正时,商上“1”,求下一位商的办法是余数左移一位,再减去除数;(2)当余数为负数时,商上“0”,求下一位商的办法是余数左移一位,再加上除数。
(3)这种方法不用恢复余数,但若最后一次上商为“0”,而又需要得到正确的余数,则在这最后一次仍需恢复余数。
1.2 设计思路课程设计的要求为:(1)采用定点原码一位除法器由一个除数寄存模块,一个被除数寄存模块,一个加法模块,一个移位模块,一个移位模块、一个商寄存模块,采用逻辑电路设计输入方式。
(2)定点原码一位除法器的顶层采用原理图设计输入方式。
课程设计的思路为:(1)由于是不恢复余数法,所以需要修正余数为负的情况,所以原理图如图1.2:图1.2 不恢复余数法一位除法器设计总框图1.3 设计环境(1)硬件环境•伟福COP2000型计算机组成原理实验仪COP2000计算机组成原理实验系统由实验平台、开关电源、软件三大部分组成实验平台上有寄存器组R0-R3、运算单元、累加器A、暂存器B、直通/左移/右移单元、地址寄存器、程序计数器、堆栈、中断源、输入/输出单元、存储器单元、微地址寄存器、指令寄存器、微程序控制器、组合逻辑控制器、扩展座、总线插孔区、微动开关/指示灯、逻辑笔、脉冲源、20个按键、字符式LCD、RS232口。
5讲 定点数除法
Ë Ô Ó ¼ õ ¼ Ë ³ ý ³
第5讲
21
第3章—2 定点数除法运算
八、运算部件
浮点运算器
根据浮点运算算法,浮点运算器一般包括阶码 运算何尾数运算两个部分。 阶码运算是一个定点整数运算部件; 尾数运算是一个定点小数运算部件。 Intel 80287支持80位浮点数运算,其中阶码 16位,尾数64位。关键运算部件有:
12
舍入处理
检查是否溢出
第5讲
第3章—2 定点数除法运算
五、浮点数的加、减运算方法
已知:X=2010· (0.11011011), Y=2100· (-0.10101100),求Z=X+Y。
①对阶操作: 阶差△E=[Ex]补+[-Ey]补=00010+11100=11110 X阶码小,Mx左移2位,保留阶码E=00100 Mx=0.0011 0110 11,[Mx]补=00.0011 0110 11 ②尾数相加: [Mx]补+[My]补=11.1000 1010 11, Mz=-0.0111010101 ③规格化操作: 左移一位, [Mz]补=11.0001 0101 10 阶码减1,E=00011 ④舍入:附加位最高位为1,在结果的最低位+1, [M]补=11 00010110,M=-0.11101010 ⑤判溢出:阶符为00,不溢出,最终结果为
截断处理:无条件地丢掉正常尾数最低位之后的全部数值 舍入处理:运算过程中保留右移中移出的若干高位的值,然而 再按某种规则用这些位上的值修正尾数
第5讲
判溢出
14
第3章—2 定点数除法运算
组成原理课程设计定点原码一位乘
沈阳航空航天大学课程设计报告课程设计名称:计算机组成原理课程设计课程设计题目:定点原码一位乘法器的设计院(系):计算机学院专业:计算机科学与技术班级:84010103学号:2008040101061姓名:李雪城指导教师:周大海完成日期:2011年01月14日沈阳航空航天大学课程设计报告目录第1章总体设计方案 (1)1.1设计原理 (1)1.2设计思路 (1)1.3设计环境 (1)第2章详细设计方案 (3)2.1总体方案的设计与实现 (3)2.1.1总体方案的逻辑图 (4)2.1.2算法流程图 (5)2.2功能模块的设计与实现 (6)2.2.1 数据输入模块的设计与实现 (6)2.2.2 乘数末位判断模块的设计与实现 (6)2.2.3 移位模块的设计与实现 (7)2.2.4 乘积结果显示的设计与实现 (8)第3章程序调试与结果测试 (9)3.1程序调试 (9)3.2结果测试 (9)参考文献 (11)附录 (12)第1章总体设计方案1.1 设计原理原码一位乘,即两个原码数相乘,其乘积的符号为相乘两数符号的异或值,数值则为两数绝对值之积。
在计算时,用乘数寄存器的最低位来控制部分积是否与被乘数相加,然后右移部分积和乘数,同时乘数寄存器接收部分积右移出来的一位,完成运算后,部分积寄存器保存乘积的高位部分,乘数寄存器中保存乘积的低位部分。
1.2 设计思路被乘数与乘数都是4位,所以相乘的结果是8位。
每个寄存器的范围是8位,所以乘积的结果用一个寄存器来存储表示。
实验开始时将实验数据从实验箱的开关输入到R0、R1、R2三个寄存器中,部分积存放在R0,4位被乘数放在R1,4位乘数放在R2。
运算过程采用原码一位乘。
在计算时,首先判断乘数末位上的值是1还是0,决定部分积是否与被乘数相加,然后判断部分积的末位,因为右移时部分积的末位会溢出,乘数右移时要接收由部分积溢出来的数,所以根据判断来决定乘数右移后的高位是1还是0。
恢不复余数法定点原码一位除法器的的设计
沈阳航空航天大学课程设计报告目录学术诚信声明 ................................................................................. 错误!未定义书签。
第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功能模块的设计与实现 (6)2.2.1 输入模块的设计与实现 (6)2.2.移位模块的设计与实现 (7)2.2.3加法器模块的设计与实现 (9)2.2.4 相反补码模块的设计与实现 (10)2.3仿真调试 (11)第3章编程下载与硬件测试 (13)3.1编程下载 (13)3.2硬件测试及结果分析 (13)参考文献 (15)附录(电路原理图) (16)第1章 总体设计方案1.1 设计原理减交替法的实现是当某一次求得的差值(余数Ri )为负时,不恢复它,继续求下一位的商,但用加上除数(+[—Y]补)的办法来取代(-Y )的操作,其他操作依然不变。
(1)当余数为正时,商上“1”,求下一位商的办法是余数左移一位,再减去除数;(2)当余数为负数时,商上“0”,求下一位商的办法是余数左移一位,再加上除数。
(3)这种方法不用恢复余数,但若最后一次上商为“0”,而又需要得到正确的余数,则在这最后一次仍需恢复余数。
1.2 设计思路课程设计的要求为:(1)采用定点原码一位除法器由一个除数寄存模块,一个被除数寄存模块,一个加法模块,一个移位模块,一个移位模块、一个商寄存模块,采用逻辑电路设计输入方式。
(2)定点原码一位除法器的顶层采用原理图设计输入方式。
课程设计的思路为:(1)由于是不恢复余数法,所以需要修正余数为负的情况,所以原理图如图1.2:被除数加法器求补器除数加法器商寄存器余数寄存器图1.2 不恢复余数法一位除法器设计总框图1.3 设计环境(1)硬件环境•伟福COP2000型计算机组成原理实验仪COP2000计算机组成原理实验系统由实验平台、开关电源、软件三大部分组成实验平台上有寄存器组R0-R3、运算单元、累加器A、暂存器B、直通/左移/右移单元、地址寄存器、程序计数器、堆栈、中断源、输入/输出单元、存储器单元、微地址寄存器、指令寄存器、微程序控制器、组合逻辑控制器、扩展座、总线插孔区、微动开关/指示灯、逻辑笔、脉冲源、20个按键、字符式LCD、RS232口。
COP2000实现原码一位除法.
沈阳航空航天大学课程设计报告课程设计名称:计算机组成原理课程设计课程设计题目:COP2000实现原码一位除法院(系):计算机学院专业:计算机科学与技术班级:24010103学号:******************指导教师:***完成日期:2015年01月15日沈阳航空航天大学课程设计报告目录第1章总体设计方案 (2)1.1设计原理 (2)1.2设计思路 (2)1.3设计环境 (2)第2章详细设计方案 (4)2.1总体方案的设计与实现 (4)2.1.1总体方案的逻辑图 (4)2.1.2算法流程图 (5)2.2功能模块的设计与实现 (6)2.2.1 模块的设计与实现 (6)第3章验证测试 (9)3.1验证测试 (9)参考文献 (10)附录(源代码) (11)第1章总体设计方案1.1设计原理原码一位除,即两个原码数相除,商的符号为除数和被除数的符号异或值。
采用汇编语言实现定点原码一位除法器,算法为恢复余数法。
利用恢复余数的方法来进行运算。
1.2设计思路算法为恢复余数法,先用被除数减去除数,如果结果为正数商1,然后左移,如果是负数商0然后加上Y的补,继续运算。
实验开始时将实验数据从实验箱的开关输入到R0,R1,R2三个寄存器中,R0为被除数,R1为除数,R2为商。
运算过程采用恢复余数法。
主要判断被除数减去除数的商值。
如果为负,商0然后加除数然后左移。
如果商值为正商1,左移。
数据都存放在寄存器中,最后结果在OUT寄存器中显示。
1.3设计环境COP2000 模型机包括了一个标准CPU 所具备所有部件,这些部件包括:运算器ALU、累加器A、工作寄存器W、左移门L、直通门D、右移门R、寄存器组R0-R3、程序计数器PC、地址寄存器MAR、堆栈寄存器ST、中断向量寄存器IA、输入端口IN、输出端口寄存器OUT、程序存储器EM、指令寄存器IR、微程序计数器uPC、微程序存储器uM,以及中断控制电路、跳转控制电路。
定点数原码一位乘法c语言
定点数原码一位乘法c语言下面是一个实现定点数原码一位乘法的C语言程序:```c#include <stdio.h>int fixed_point_multiply(int a, int b, int frac_bits) {int sign_bit = (a & 0x80000000) ^ (b & 0x80000000); // 计算结果的符号位int a_abs = a & 0x7FFFFFFF; // 取a的绝对值int b_abs = b & 0x7FFFFFFF; // 取b的绝对值// 保留小数部分相乘的结果,并向上取整int multiply_result = ((a_abs >> frac_bits) * (b_abs >> frac_bits) + (1 << (frac_bits - 1))) >> frac_bits;return sign_bit | (multiply_result << frac_bits);}int main() {int a = 0x40000000; // 1.0的定点数表示(1的原码)int b = 0x20000000; // 0.5的定点数表示(0.5的原码)int frac_bits = 16; // 定点数的小数位数int result = fixed_point_multiply(a, b, frac_bits);printf("Result: %f\n", (float)result / (1 << frac_bits)); // 打印结果 return 0;}```这个程序实现了两个定点数的原码乘法。
`fixed_point_multiply`函数接受两个定点数和定点数的小数位数作为参数,返回它们的乘积。
定点原码一位除法器的设计
沈阳航空航天大学课程设计报告课程设计名称:计算机组成原理课程设计课程设计题目:定点原码一位除法器的设计院(系):计算机学院专业:计算机科学与技术班级:学号:姓名:指导教师:完成日期:2011年01月14日沈阳航空航天大学课程设计报告目录第1章总体设计方案 (2)1.1设计原理 (2)1.2设计思路 (2)1.3设计环境 (2)第2章详细设计方案 (4)2.1总体方案的设计与实现 (4)2.1.1总体方案的逻辑图 (4)2.1.2算法流程图 (5)2.2功能模块的设计与实现 (6)2.2.1 模块的设计与实现 (6)第3章验证测试 (9)3.1验证测试 (9)参考文献 (10)第1章总体设计方案1.1设计原理原码一位除,即两个原码数相除,商的符号为除数和被除数的符号异或值。
采用汇编语言实现定点原码一位除法器,算法为恢复余数法,除数为4位。
利用恢复余数的方法来进行运算。
1.2设计思路算法为恢复余数法,先用被除数减去除数,如果结果为正数商1,然后左移,如果是负数商0然后加上Y的补,继续运算。
本题目是要求4位所以到结果是4位时结束运算。
实验开始时将实验数据从实验箱的开关输入到R0,R1,R2三个寄存器中,R0为被除数,R1为除数,R2为商。
运算过程采用恢复余数法。
主要判断被除数减去除数的商值。
如果为负,商0然后加除数然后左移。
如果商值为正商1,左移。
数据都存放在寄存器中,最后结果在OUT寄存器中显示。
1.3设计环境COP2000 模型机包括了一个标准CPU 所具备所有部件,这些部件包括:运算器ALU、累加器A、工作寄存器W、左移门L、直通门D、右移门R、寄存器组R0-R3、程序计数器PC、地址寄存器MAR、堆栈寄存器ST、中断向量寄存器IA、输入端口IN、输出端口寄存器OUT、程序存储器EM、指令寄存器IR、微程序计数器uPC、微程序存储器uM,以及中断控制电路、跳转控制电路。
其中运算器和中断控制电路以及跳转控制电路用CPLD 来实现,其它电路都是用离散的数字电路组成。
加减交替法定点原码一位除法器
课程设计报告课程设计名称:计算机组成原理课程设计课程设计题目:加减交替法定点原码一位除法器设计院(系):专业:班级:学号:姓名:指导教师:完成日期:目录第1章总体设计方案 (1)1.1设计原理 (1)1.2设计思路 (2)1.3设计环境 (3)第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 移位电路模块的设计与实现 (11)2.2.4 加法器模块的设计与实现 (12)2.2.5 相反数补码模块的设计与实现 (14)2.2.6 控制器模块的设计与实现 (15)2.2.7 商寄存器模块的设计与实现 (17)2.2.8 恢复余数寄存器模块的设计与实现 (18)2.3仿真调试 (21)第3章编程下载与硬件测试 (22)3.1编程下载 (22)3.2硬件测试及结果分析 (22)参考文献 (26)附录(电路原理图) (27)第1章总体设计方案1.1 设计原理定点除法运算有两种不同的实现方法,一种是恢复余数法,即在运算过程中,必须先算减法,若余数为正,才知道够减,若余数为负,则知道不够减,不够减时必须恢复原来的余数,以便再继续往下运算。
另一种是不恢复余数法,又称加减交替法,此次设计即是采用加减交替法来实现四位二进制数的定点原码一位除法。
加减交替法的实现是对恢复余数法的一种修正,当某一次求得的差值(余数Ri)为负时,不恢复它,继续求下一位的商,但用加上除数(+[—Y]补)的办法来取代(-Y)的操作,其他操作依然不变。
即:(1)当余数为正时,商上“1”,求下一位商的办法是余数左移一位,再减去除数;(2)当余数为负数时,商上“0”,求下一位商的办法是余数左移一位,再加上除数。
恢复余数法定点原码一位除法器设计方案
****************课程设计报告课程设计名称:计算机组成原理课程设计课程设计题目:恢复余数法定点原码一位除法器的设计院(系):*************专业:*************班级:*************学号:*************姓名:*************指导教师:*************完成日期:**************************课程设计报告目录第1章总体设计方案 (1)1.1设计原理 (1)1.2设计思路 (1)1.3设计环境 (3)第2章详细设计方案 (4)2.1顶层方案图的设计与实现 (4)2.1.1创建顶层图形设计文件 (4)2.1.2器件的选择与引脚锁定 (5)2.1.3 编译、综合、适配 (6)2.2功能模块的设计与实现 (6)2.2.1寄存器模块的设计与实现 (6)2.2.2数据选择器模块的设计与实现 (8)2.2.3补码器模块的设计与实现 (12)2.2.4加法器模块的设计与实现 (13)2.2.5移位寄存器模块的设计与实现 (15)2.3仿真调试 (18)第3章编程下载与硬件测试 (20)3.1编程下载 (20)3.2硬件测试及结果分析 (20)参考文献 (22)附录(电路原理图) (23)第1章总体设计方案1.1 设计原理定点原码一位除法器的原理是根据人工进行二进制除法的规则:判断被除数与除数的大小,若被除数小,则上商0,并在余数最低位补0,再用余数和右移一位的除数比,若够除,则上商1,否则上商0。
然后继续重复上述步骤,直到除尽(即余数为0)或已得到的商的位数满足精度要求为止。
上述计算方法要求加法器的位数为除数位数的两倍。
但分析后,会发现右移除数,可以通过左移被除数(余数)来代替,左移出界的被除数(余数)的高位都是无用的0,对运算不会产生任何影响。
另外,上商0还是1是计算者用观察比较的办法确定的,而计算机只能用做减法判断结果的符号为负还是为正来确定。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计报告课程设计名称:计算机组成原理课程设计课程设计题目:定点原码一位除法器的设计(系):业: 级: 号: 名:指导教师:完成日期:第1章总体设计方案1.1设计原理1.2设计环境第2章详细设计方案2.1顶层方案图的设计与实现.......2.1.1创建顶层图形设计文件........2.1.2器件的选择与引脚锁定........2.2功能模块的设计与实现.........2.2.1选择移位模块的设计与实现.2.2.2余数选择器模块的设计与实现2.2.3控制器模块的设计与实现... 2.3仿真调试...................... 第3章编程下载与硬件测试.......... . (4) (4) (4) (6) (6) (9)..10 .11.133.1编程下载..........3.2硬件测试及结果分析参考文献............... 13 13 14第1章总体设计方案1.1 设计原理定点原码一位除法的计算有恢复余数和加减交替两种算法,商的符号为除数与被除数两符号位的异或值,数值则为两数绝对值相除后的结果。
此设计方案仅采用恢复余数法进行设计。
恢复余数定点原码一位除法器实现的功能如表 1.1所示,设计的电路应实现表1.1中给定的功能。
设:X=X0 X1……X nY=Y0 Y1……Y nX0 X1,丫0丫1分别为符号位,K为两符号位的异或值X/Y=K*|X|/|Y||X|/|Y|利用恢复余数法求的,在计算机中,商只能用做减法判结果的符号为正还是为负来确定。
当差为负时,上商为0,同时还应该把除数再加到差上去,恢复余数为原来的正值之后再左移一位。
若减得的差为0或为正值时,就没有恢复余数的操作,上商为1,余数左移一位。
其计算过程如下:例:已知:X=0.0100丫=0.1000求:X/Y表1.1恢复余数定点原码一位除法器功能表恢复余数定点原码一位除法器的整体设计包含两输入寄存器模块,一个加法运算模块,一个余数移位模块,一个商移位模块和一个由触发器和计数器构成的控制模块,移位模块采用Verilog设计输入方式,其余采用原理图设计输入方式。
采用硬件描述语言进行电路设计并实现表 1.1中给定的功能,设计的Verilog程序经编译、调试后形成*bit文件并下载到XCV200可编程逻辑芯片中,经硬件测试验证设计的正确性。
定点原码一位除法器的原理框图如图 1.1所示,被除数经选择器首次存入余数寄存器中,除数取反后存入除数寄存器中,两数经加法器实现加法运算,将商送入商寄存器中,同时将结果送入选择移位电路中进行移位,再将移位后的结果经选择器送入余数寄存器中。
图1.1恢复余数定点原码一位除法器原理框图•硬件环境:伟福COP2000型计算机组成原理实验仪、XCV200实验板、微机;-EDA 环境:Xilinx Foundation3.1 设计软件。
第2章详细设计方案2.1顶层方案图的设计与实现顶层方案图实现一位除法器的逻辑功能,采用原理图设计输入方式完成,电 路实现基于XCV200可编程逻辑芯片。
在完成原理图的功能设计后,把输入/输出 信号安排到XCV200指定的引脚上去,实现芯片的引脚锁定。
2.1.1创建顶层图形设计文件顶层图形文件主要由两输入模块,一个运算模块,两个移位模块和一个控制 模块组装而成的一个完整的设计实体。
顶层图形文件结构如图TJ QOOTO FI FAD V-LOOOn I IFAD 1L0Ci072 I IPAD 1图2.1定点原码一位除法器顶层图形文件结构2.1.2器件的选择与引脚锁定(1)器件的选择由于硬件设计环境是基于伟福C0P2000型计算机组成原理实验仪和XCV2002.1所示。
IBUFSSHA[7:0]LOC=093 L0C=095 L0C=0,96 L0C=037 LOC^lOO 1J OC=101IFAD IFAD IFADIFADIFAD IFAD IFAP IPAD 1BUF3A]ja>o?9 LOOOSO LOC=O01 LOC=083 LJOODSa LOO 085 IJOC=OS6 LOO 087 IPAD IPAD IFAD IFAD IFAD IFAD IPAD IFAD CH[7;0]YE[7:0]丁 EU1&TR CPlEUFEH>-S[7:C]cy _________ 釜_< IFAD IFAD罟IFAD L0C=215L0C=216 L0C=2I7 L0C=213L0C=220LOC=22L LJ0O222 L0C=223LOC=225 L0O228 IJOC=229 IJ00230 LOC=231L0C=232 1J OC=23C[7:0jY[7:0]IBUFS实验板,故采用的目标芯片为Xlinx XCV200可编程逻辑芯片。
(2)引脚锁定把顶层图形文件中的输入/输出信号安排到Xlinx XCV200芯片指定的引脚上去,实现芯片的引脚锁定,各信号及Xlinx XCV200芯片引脚对应关系如表 2.1 所示。
2.2功能模块的设计与实现恢复余数定点原码一位除法器是以两输入寄存器模块,一个加法器模块,两个输出模块,两个移位模块和一个由触发器和计数器构成的控制模块构成,移位模块采用Verilog设计输入方式,其余采用原理图设计输入方式。
具体设计如图2.2所示。
图2.2恢复余数定点原码一位除法器功能模块图2.2.1选择移位模块的设计与实现选择移位的三个输入分别用HIN[7:0],NIN[7:0],CS表示,当CS为1时数据选择器选择HIN[7:0]送入移位器,当CS为0时数据选择器选择NIN[7:0]送入移位器,移位部分通过程序实现,形成的Verilog程序用ZUOYI.VHD表示,具体电路及程序如下:图2.2.1选择移位模块图形文件(1)创建Verilog源文件module yiwei(X7, X6, X5, X4, X3, X2, X1, XO, CE, CLR, QQOUT); input X7 ;input X6 ;input X5 ;input X4 ;input X3 ;input X2 ;input X1 ;input X0 ;input CE ;input CLR ;out put [7:0] QQOUT;reg [7:0] QQOUT;// add your declaratio ns here// add your code herealways@(CLR);beg inif(CLR) QQOUT<=0;elsebeg inQQOUT[7]<=X7;QQOUT [ 6]<=X6;QQOUT [ 5]<=X5;QQOUT[4]<=X4;QQOUT[3]<=X3;QQOUT[2]<=X2;QQOUT[1]<=X1;QQOUT[0]<=0;enden dmodule(2)创建元件图形符号为了能在图形编辑器(原理图设计输入方式)中调用此移位器,需要为ZUOYI 创建一个元件图形符号,可用Xilinx ISE编译器的Create Symbol模块实现。
(3)功能仿真对创建的两输入或门元件(ZUOYI )进行功能仿真,验证其功能的正确性,可用Xilinx ISE编译器的Simulator模块实现。
仿真结果如下:222余数选择器模块的设计与实现(1)创建元件图形符号YIN[7:0] CSOUT[7:0].CPBIN[7:0]余数选择器的四个输入分别用HIN[7:0]、NIN[7:0],CS,CP表示,通过数据选择器选择数据,当CS为1时将数据HIN[7:0]送入余数寄存器中,当CS为0时将数据NIN[7:0]送入余数寄存器中具体电路如下:(2)器件实现C CP(3)功能仿真对创建的半加器元件(H_ADDER )进行功能仿真,验证其功能的正确性,可用Xilinx ISE编译器的Simulator模块实现。
223控制器模块的设计与实现(1)创建元件图形符号控制器的三个输入端中S,R为触发器的两输入端当S值1时将被除数除数打入寄存器当R值1时脉冲打入,CP为脉冲输入端,SQ, SC为输出端。
(2)器件实现U31(3)功能仿真对创建的半加器元件(H_ADDER )进行功能仿真,验证其功能的正确性,可用Xilinx ISE编译器的Simulator模块实现。
2.3仿真调试仿真调试主要验证设计电路逻辑功能、时序的正确性,本设计中主要采用功 能仿真方法对设计的电路进行仿真。
(1)建立仿真波形文件及仿真信号选择功能仿真时,首先建立仿真波形文件,选择仿真信号,对选定的输入信号设 置参数,选定的仿真信号和设置的参数如表2.2所示。
表2.2输入 信 号输出信号 BCH CH TS TR CP YS7SHA734 08 1 0 034 08 0 1 134 08 0 1 134 08 0 1 134 08 0 1 1340811(2)功能仿真结果与分析功能仿真波形结果如图2.2所示,仿真数据结果如表2.3所示。
对表2.3与表1.1的内容进行对比,可以看出功能仿真结果是正确的,进而说明电路设计的正确性。
图2.2功能仿真波形结果 表2.3仿真数据结果i i i o o1122.5 - 1122. R - U22.CP = 1123.5Q - U22.3C 一H L -■: = = - = ” 1 ■ rHI F-------- 1 土 --------- j __Ls 匚sCsC-^Cs第3章编程下载与硬件测试第3章编程下载与硬件测试3.1编程下载利用Xilinx ISE的编程下载功能,将得到的*bit文件下载到XCV200实验板的XCV200可编程逻辑芯片中。
3.2硬件测试及结果分析利用XCV200实验板进行硬件功能测试。
一位全加器的输入数据通过XCV200实验板的输入开关实现,输出数据通过XCV200实验板的LED指示灯实现,其对应关系如表3.1所示。
表利用表2.20实验板的开关K4、K2、K3输入数据,同时观察七段数码管D0七段数码管D1的输出。
.参考文献参考文献[1]曹昕燕.EDA技术实验与课程设计[M ].北京:清华大学出版社,2006[2]范延滨.微型计算机系统原理、接口与EDA设计技术[M].北京:北京邮电大学出版社,2006[3]王爱英.计算机组成与结构(第4版)[M].北京:清华大学出版社,2006[4] William Stallings张昆藏[译]计算机组织与结构一性能设计(第五版)[M ]北京:电子工业出版社2001⑸ 黄任.编著VHDL入门•解惑•经典实例•经验总结.[M ]北京:北京航空航天大学出版社,2005[6]李勇.计算机原理与设计(修订本).[M ]长沙:国防科技大学出版社,1984[7]Douglas er著,马志强译.[M ]北京:清华大学出版社,1995[8]白中英主编.计算机组成原理.[M]北京:科学出版社,1994课程设计总结:1.在此次课程设计中,我遇到了很多问题。