定点补码一位乘法器的设计
补码一位乘法器logisim实验步骤
补码一位乘法器logisim实验步骤补码一位乘法器的实验步骤如下:步骤1:打开Logisim并创建新电路。
选择"文件"->"新建",然后选择"干净的电路"。
步骤2:从左侧的元件面板中选择所需的元件,在本实验中我们需要的元件有:- 输入端口(选择位数适当的位宽)- 与门- 异或门- 输出端口(选择位数适当的位宽)步骤3:连接输入端口和与门。
将与门拖动到电路编辑区域,并连接到输入端口。
步骤4:连接异或门和输出端口。
将异或门拖动到电路编辑区域,并连接到输出端口。
步骤5:添加中间变量。
我们需要两个中间变量a和b来存储输入的两个操作数。
从左侧的元件面板选择一个“双输入线”元件,并将其拖动到电路编辑区域。
重复此步骤来添加第二个中间变量。
步骤6:连接中间变量和与门。
将中间变量a和b连接到与门的两个输入端口处。
步骤7:添加补码转换电路。
我们需要一个电路来将输入的补码转换为二进制表示形式。
从左侧的元件面板选择一个“4位补码转换”元件(这里的位数根据实验要求选择),然后将其拖动到电路编辑区域。
将中间变量a和b连接到补码转换电路的输入端口处。
步骤8:连接补码转换电路和异或门。
将补码转换电路的输出连接到异或门的两个输入端口处。
步骤9:添加输入变量。
我们需要一个变量来控制乘法器是否进行计算。
从左侧的元件面板选择一个“输入”元件,并将其拖动到电路编辑区域。
步骤10:连接输入变量和与门。
将输入变量连接到与门的两个输入端口处。
步骤11:完成连接。
确保所有元件都正确连接,没有无效或断开的连接。
步骤12:设置输入变量的值。
右键单击输入变量并选择“编辑”来设置其值。
步骤13:运行仿真。
点击Logisim的“模拟”按钮,然后选择“仿真”。
步骤14:观察输出结果。
在仿真窗口中查看输出结果,确认乘法器是否按预期工作。
步骤15:保存电路。
选择“文件”->“保存”来保存电路。
定点原码一位乘法器的设计 (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语言进行设计,顶层的乘法器采用原理图设计输入方式。
原码一位乘的数值运算中不需要考虑符号位的情况,符号位于数值位分开处理。
补码一位乘法booth算法例题
补码一位乘法booth算法例题补码一位乘法 Booth 算法是一种用于进行乘法运算的算法,它可以有效地减少乘法器的操作次数,从而提高乘法运算的效率。
这个算法基于补码的概念,可以用来进行有符号数的乘法运算。
让我们以一个例题来说明补码一位乘法 Booth 算法的工作原理。
假设我们要计算 5(0101)乘以 -3(1101)。
首先,我们需要将乘数和被乘数转换为补码形式。
-3 的补码是其本身(1101),而 5 的补码是 0101。
然后,我们将它们排成两列,如下所示:0101 (5的补码)。
1101 (-3的补码)。
接下来,我们引入一个额外的位,称为扩展位,用于在算法中移动。
初始时,扩展位为 0。
然后,我们开始从右向左遍历两列,对每一对比特进行操作。
首先,我们观察最右边的两位(01),它们对应的乘法结果为01。
然后,我们移动扩展位并继续比较下一对比特。
接着,我们看到 10,这时候我们需要减去 5(0101)的补码,所以我们需要加上 5 的补码(0101)。
这样,我们得到了 11。
然后,我们再次移动扩展位并继续比较下一对比特。
最后,我们观察到 11,这时候我们需要再次加上 5 的补码(0101)。
这样,我们得到了 100。
最终,我们得到的结果是 100,即 -15 的补码。
这就是补码一位乘法 Booth 算法的运算过程。
总的来说,补码一位乘法 Booth 算法通过引入扩展位和对比特的逐个操作,可以高效地进行有符号数的乘法运算。
这种算法在数字逻辑电路和计算机系统中得到了广泛的应用,因为它能够减少乘法器的操作次数,从而提高了乘法运算的效率。
补码一位乘的booth算法
补码一位乘的booth算法布斯算法是一种计算机算术中使用的乘法算法,其可以有效地计算两个二进制数的乘积。
相比于传统的乘法算法,布斯算法的优势在于减少了乘法器的运算次数,从而提高了计算速度和效率。
布斯算法的核心思想是利用位运算和补码运算,将乘法运算转化为加法运算。
布斯算法中使用的补码乘法是一种对乘法操作进行优化的技术。
具体步骤如下:1.初始化:将需要进行乘法运算的两个二进制数A和B转化为对应的补码形式,即A'和B'。
2.设置两个变量:乘法器寄存器P和乘法操作寄存器E。
3.进行循环:进行n次迭代,其中n为乘法器P的位数,并且每次迭代中右移乘法器寄存器P一位。
4.判断乘法器P的最后一位和倒数第二位的值:-如果最后一位为0,倒数第二位为1,执行步骤5-如果最后一位为1,倒数第二位为0,执行步骤6-如果最后两位都为1或都为0,则进行下一次迭代。
5.步骤5执行以下操作:-将乘法器寄存器P右移一位,并将乘法操作寄存器E与乘数A'相加,得到新的乘法操作寄存器E。
-计数器减16.步骤6执行以下操作:-将乘法器寄存器P右移一位,并将乘法操作寄存器E与乘数A'的补码相加,得到新的乘法操作寄存器E。
-计数器减17.如果计数器为0,则迭代完成,得到最终的乘法操作寄存器E的补码形式,即乘积的补码。
8.将结果转化为原码形式,即得到最终的乘积。
如果结果为负数,则取其补码形式。
布斯算法的优点在于减少了乘法器的运算次数,从而提高了计算速度和效率。
此外,由于布斯算法的乘法运算是通过加法运算来实现的,可以直接使用加法器来进行计算,进一步简化了硬件设计。
不过,布斯算法的实现较为复杂,需要进行多次位运算和补码运算,因此对计算资源的消耗较大。
总结起来,布斯算法是一种利用位运算和补码运算来优化乘法运算的算法。
通过减少乘法器的运算次数,布斯算法提高了计算速度和效率,但是实现较为复杂,对计算资源的消耗较大。
布斯算法在计算机算术中得到了广泛的应用,特别是在乘法器设计和数字信号处理中有着重要的作用。
定点原码一位乘法器的设计
定点原码一位乘法器的设计定点原码一位乘法器的设计是一种用于实现数字信号处理中定点运算的电路。
在数字信号处理中,运算主要使用了整数的定点表示方式,这种表示方式采用了固定的小数点位置。
乘法是数字信号处理中最常用的运算之一,因此乘法器的设计对于整个系统的性能有着重要的影响。
一位乘法器的设计主要包括两个步骤:乘法操作和结果保存。
在乘法操作中,输入的两个操作数进行乘法运算,得到结果。
在结果保存中,利用寄存器等电路将结果保留下来供后续运算使用。
一位乘法器的乘法操作可以通过移位和加法来实现。
乘法操作的基本原理是将两个操作数的每一位进行相乘,并将结果相加。
具体实现中,可以通过移位操作将一个操作数的每一位与另一个操作数的对应位相乘得到部分积,然后将部分积相加得到最终的乘积。
一位乘法器的设计要考虑到运算的精度、速度和电路复杂度等因素。
采用定点原码表示的乘法器设计相对简单,但需要考虑原码的正负号运算和进位的处理。
在一位乘法器的设计中,可以采用串行方式或并行方式来实现乘法操作。
串行方式的优点是电路简单,但速度较慢;并行方式的优点是速度快,但电路复杂。
根据实际需求和设计限制,选择适合的方式。
一位乘法器的结果保存可以通过寄存器等电路来实现。
在结果保存中,还需要考虑正负号的表示,可以采用补码表示方法。
总结来说,定点原码一位乘法器的设计需要考虑乘法操作和结果保存两方面的问题。
乘法操作可以通过移位和加法来实现,结果保存可以通过寄存器等电路来实现。
设计中还需要考虑运算的精度、速度和电路复杂度等因素。
最终的设计方案需要根据具体需求和设计限制来选择合适的方式和方法。
计算机组成原理课设_定点补码一位乘法器的设计
课程设计报告课程设计名称:计算机组成原理课程设计课程设计题目:定点补码一位乘法器的设计院(系):计算机学院专业:计算机科学与技术班级:*****学号:*****姓名:*****指导教师:*****完成日期:2006年12月31日沈阳航空工业学院课程设计报告目录第1章总体设计方案 (2)1.1补码乘法器设计原理 (2)1.2设计思路 (4)1.3设计环境 (5)第2章详细设计方案 (5)2.1补码乘法器电路图的设计与实现 (6)2.1.1 补码乘法器设计 (6)2.1.2 器件的选择与引脚锁定 (8)2.1.3 编译、综合、适配 (8)2.2功能模块的设计与实现 (9)2.2.1 两输入三选一选择器模块的设计与实现 (9)2.2.2 半加器模块的设计与实现 ........................................... 错误!未定义书签。
2.3仿真调试 (10)第3章编程下载与硬件测试 (12)3.1编程下载 (12)3.2硬件测试及结果分析 (12)参考文献 (14)第1章总体设计方案1.1 补码乘法器设计原理原码乘法的主要问题是符号位不能参加运算,单独用一个异或门产生乘积的符号位,故自然提出能否让符号数字化后也参加乘法运算,补码乘法就可以实现符号位直接参加运算。
布斯(Booth)算法,它采用相加和相减的操作计算补码数据的乘积,Booth算法对乘数从低位开始判断,根据两个数据位的情况决定进行加法、减法还是仅仅移位操作。
Booth算法操作表示判断的两个数据位为当前位及其右边的位(初始时需要增加一个辅助位0),移位操作是向右移动。
判断被乘数中的最低位以及右边的位(辅助位0),如果为00,则只进行移位操作;之后在判断移位之后的最后两位,如果为01,则进行加法操作并进行移位操作;如果最后两位为10,则进行减法操作并移位,这个减法操作相当于减去2x的值;判断最后的差值,如为1,则部分积加[X]补;如为0,则不分积加0;如为-1,则部分积加[-X]补,最后一次不移位。
补码一位乘法浮点运算器--课程设计报告
目录
第一章引言 .................................................................. 4 1.1 课题背景............................................................................................................................ 4 1.1.1 应用领域................................................................................................................ 4 1.1.2 国内外研究现状 .................................................................................................... 4 1.2 课题意义及价值................................................................................................................ 5 1.3 理论依据........................................................................................................................... 5 1.3.1 浮点运算原理 ...........................................................................
定点补码一位乘法的实现算法 用[x]补×[y]补直接求[x×y]补
定点补码一位乘法的实现算法
用此法计算乘积,需要乘数寄存器的最低一位之后再补充一位 Yn+1,并使其初值为0,再增加对Yn和Yn+1两位进行译码的线路, 以区分出Yn+1-Yn 4种不同的差值。对N位的数(不含符号位) 相乘,要计算N+1次部分积,并且不对最后一次部分积执行右移 操作。此时的加法器最好采用双符号位方案。
定点补码一位除法的实现算法
运算规则如下: (1)如果被除数与除数同号,开始求商时,用被除数减去除数, 若二数异号,则用被除数加上除数的办法处理。 (2)若余数与除数同号,上商1,左移一位后下次用余数减除数操 作求商,若余数与除数异号,上商0,左移一位后下次用余数加除 数操作求商。 (3)商的符号,是在第一次求商试算时求出的,若定点除不溢出, 得到的就是正确的符号位的值。 (4)商的修正问题。在对精度要求不高时,将商的最低一位恒置1。 最大误差为|2-n|。 若对商的精度要求较高,可对N位数求商N+1次,按得到的不同结 果对商进行修正。当商为负数时,要在商的最低一位加1,从反码 的结果得到商的正确的补码值。
定点双位乘法的实现方案
阵列乘法器 跳0 跳1法 (1)如果R≥0,且R的高K个数位均为0,则本次直接得商1后 跟K-1个0,R左移K位后,减出除数D,得新余数。 (2)如果R<0,且R的高K个数位均为1,则本次直接得商0 后跟K-1个1,R左移K位后,加上除数D,得新余数。 用快速乘法器实现快速除法运算
定点补码一位乘法的实现算法
用[X]补×[Y]补直接求[X×Y]补 讨论当相乘的两个数中有一个或二个为负数的情况 在讨论补码乘法运算时,对被乘数或部分积的处理上与原码乘 法有某些类似,差别仅表现在被乘数和部分积的符号位要和数 值一起参加运算。 若[Y]补=Y0Y1Y2…Yn 当Y0为1时,则有
定点数乘除运算及实现
商0即q2=0
-+—[左-︱—移| y1—|y位]补︱—010—... —001 —101 1—111—01 — 余数>0 商1即q3=1
+[-—| y—| ]—补 ——1.—0—0—1—1——
0. 0 0 0 1
余数>0 商1即q4=1
所以:商:Q=-0.1011, 余数:R=+0.0001 2-4 第二十页,共30页。
—+—[-—X—]补——00﹒﹒—10——01 —11——1——1 —0——
所以: [X •Y ]补 =0. 011110
第十三页,共30页。
实现补码一位乘法的乘法器的逻辑框图如图所示
补码两位乘法:是把补码的一位乘法的两个单步操作和并成一个操作。 即:【 (Z i+2)补】= 2-2 {【 Z i补】+ (Yn+1 +Yn-2Y n-1) 】 ·【X 】补}
再将上述过程重复n(除数位数)次,共上n位商
最后所得的商和余数即为| X | / | Y | 的商及余数
原码恢复余数法算法:
≥0 商1 2R -Y=R
↗ }→ X-Y=R
↑ ↘ ↓ _ _ ≤_0 _ _商_0 _2_(R_+Y_)_-_Y=_R___
分原析码原恢码复恢余复余数数法法可得归知纳: 为:
[| Y| ]补 =0.1101
[-| Y| ]补= 1.0011
第十九页,共30页。
所以0.1001/ 0.1101用原码恢复余数的过程为:
0. 1 0 0 1
——-++[——-︱——|︱y|y——]y补︱——︱——1100....——0111——0011—10—00—11—01
余数<0
左移1位 1. 0 0 1 0
定点补码一位乘法的实现算法用x补y补直接求xy补
定点补码一位除法的实现算法
运算规则如下:
(1)如果被除数与除数同号,开始求商时,用被除数减去除数, 若二数异号,则用被除数加上除数的办法处理。
(2)若余数与除数同号,上商1,左移一位后下次用余数减除数操 作求商,若余数与除数异号,上商0,左移一位后下次用余数加除 数操作求商。
(3)商的符号,是在第一次求商试算时求出的,若定点除不溢出, 得到的就是正确的符号位的值。
(4)商的修正问题。在对精度要求不高时,将商的最低一位恒置1。 最大误差为|2-n|。
若对商的精度要求较高,可对N位数求商N+1次,按得到的不同结 果对商进行修正。当商为负数时,要在商的最低一位加1,从反码 的结果得到商的正确的补码值。
定点双位乘法的实现方案
阵列乘法器 跳0 跳1法 (1)如果R≥0,且R的高K个数位均为0,则本次直接得商1后 跟K-1个0,R左移K位后,减出除数D,得新余数。 (2)如果R<0,且R的高K个数位均为1,则本次直接得商0 后跟K-1个1,R左移K位后,加上除数D,得新余数。 用快速乘法器实现快速除法运算
故有 X×Y=X× Yi×2-1-X i 1
当Y为负值时,用补码乘计算[X×Y]补,是用[X]补乘上[Y]补的数 值位,而不理[Y]补符号位上的1,乘完之后,在所得的乘积中再 减X,即加- [X]补。
定点补码一位乘法的实现算法
实现补码乘法的另一个方案是比较法,是由BOOTH最早提出 的,这一方法的出发点是避免区分乘数符号的正负,而且让乘 数符号位也参加运算。技巧上表现在分解乘数的每一位上的1 为高一位的一个+1和本位上的一个-1:
定点补码一位乘法的实现算法
Pn=[2-1(Pn-1+(Y2-Y1) ×X)]补 Pn+1=[ (Pn+(Y1-Y0) ×X)]补 则最终补码乘积为[X*Y]补=[Pn+1]补 由上述公式可以看出,比较法是用乘数中每相邻的两位判断 如何求得每次的相加数。 每两位Yi和Yi+1的取值有00,01,10,11四种组合,则它们的 差值分别为0,1,-1和0,非最后一次的部分积,分别为上一 次 部 分 积 的 1/2 ( 右 移 一 位 ) 的 值 Rj , Rj + [X] 补 , Rj - [X] 补 (即Rj+[-X]补)和Rj,但一定要注意:最后一次求出的部 分积即为最终乘积,不执行右移操作。
b o o t h 算 法
第三章运算方法与运算器文章目录定点补码加减法运算补码加减法运算方法溢出及检测溢出检测操作数与运算结果的符号位是否一致最高位的进位和符号位的进位是否一致变形补码补码加减法的逻辑实现移码加减运算及实现逻辑移码的加法运算移码加减法的溢出判断直接采用移码运算的溢出判断方法采用双符号判断定点乘法运算机器数的移位操作原码一位乘法原码一位乘法符号位的确定乘积的数值补码一位乘法运算规则(booth算法)阵列乘法器定点除法运算原码一位除法原码恢复余数法原码不恢复余数法不恢复余数的补码一位除法浮点运算浮点数加减运算阶码和尾数采用补码表示的浮点数加减运算IEEE 754浮点数的加减运算浮点数乘法运算浮点数除法运算逻辑运算运算器定点运算器运算前的基本组成单元算术逻辑运算单元通用寄存器组输入输出数据选择控制内部总线运算器的基本结构单总线双总线三总线浮点运算器基本算术逻辑单元的设计基本算术、逻辑部件基本算术逻辑运算单元设计串行进位加法器并行加法器定点补码加减法运算补码加减法运算方法补码加法:[x]补 + [y]补 = [x + y]补 mod M补码减法:[x]补 - [y]补 = [x - y]补 mod M溢出及检测运算结果超出数据类型所能表示数据范围的现象称为溢出溢出检测操作数与运算结果的符号位是否一致只有符号相同的数相加,才有可能产生溢出,因此检测运算结果的符号位,是否与操作数一致设操作数为S1XXXX和S2XXXX,其中S1和S2为他们的符号位,结果为SXXXX,S是结果的标志位,V是溢出标志位,那么V = S1 S2 !S + !S1 !S2 S如果符号位不同,则S1和S2必定是0和1的组合,其结果V一定为0 如果符号位相同,则可能同时为0或者同时为1,这时就要看结果的符号位S了最高位的进位和符号位的进位是否一致最高位C和符号位S的进位,如果不同步,则发生了溢出变形补码变形补码就是用两个位来表示符号位,正数符号位00,负数符号位11 如果运算后的结果为01,则上溢,10则下溢补码加减法的逻辑实现利用一位全加器(FA)作为基本的加法单元,低位FA的进位,直接送到相邻高位FA的进位输入,构成一个串行进位链进行加法运算时,直接送入全加器,进行减法运算时,减数先求补采用基于变形补码的双符号位溢出检测方法不支持逻辑运算移码加减运算及实现逻辑移码的加法运算公式1:[x]移 + [y]移 = [x + y]移 + 2^n公式2:[x]移 + [y]移 = [x + y]补公式3:[x]移 + [y]补 = [x + y]移 mod 2^(n+1)求移码的加法有三种方式直接对两数的移码求和,然后将高位取反直接求出两数和的补码,然后将高位取反用一个数的移码,加另一个数的补码移码加减法的溢出判断直接采用移码运算的溢出判断方法只有符号相同的加法,才会溢出正数的移码,符号位为1,如果两个正数的移码相加,符号位1+1=0,结果的符号位变成0因此,移码相加后,符号位与操作数相同,则发生了溢出采用双符号判断S1S2 = 00,结果为负,未溢出S1S2 = 01,结果为正,未溢出S1S2 = 10,上溢S1S2 = 11,下溢定点乘法运算机器数的移位操作移位操作是乘法实现过程的基本操作,又分为逻辑移位和算术移位逻辑移位:左移和右移,空出来的位置都补0算术移位:左移时低位补0,右移时高位补符号位原码一位乘法原码一位乘法符号位的确定两个乘数符号位的异或乘积的数值由于符号位已经单独处理了,所以乘积就是绝对值相乘用循环累加和移位操作实现乘法运算两个n位数参加乘法运算,要做n次加法和移位操作补码一位乘法运算规则(booth算法)被乘数一般取双符号位参与运算乘数末位增设附加位Y(n+1),初值为0利用Y(n+1) 与 Yn 的差,决定下一步的具体运算按照上述算法进行n+1步累加操作,n步右移操作Y(n+1) - Yn部分积右移一位部分积加[x]补后,右移一位部分积加[-x]补后,右移一位阵列乘法器一位乘法通过逐位判断、右移、循环累加来实现,速度较慢,为了提高乘法速度,可以采用硬件方式实现阵列乘法器,其基本思想是采用类似手工乘法运算的方法,用大量与门产生手工乘法中的各乘积项,同时将大量一位全加器按照手工乘法算式中需要进行加运算的各相关项的排列方式组成加法器阵列定点除法运算除法运算与乘法运算的处理思想相似,通常是将n位数的除操作转换成若干次的加减和移位来实现原码一位除法原码恢复余数法被除数(余数)减去除数,如果为正则够减商1,如果为负则不够减商0,而且被除数(余数)要恢复到减之前的值,这就叫恢复余数法为了防止溢出,除法运算(x - y)一定要满足(|x| |y|),保证商的绝对值不超过1,因此第一次上商的值,要放在商的符号位,后面上的商,从小数点后依次排列,商的位数一般与除数相等,因此最后一次上商后,就不用做减法和移位了原码不恢复余数法与恢复余数法相比,进行比较后,如果商1则算法不变,如果商0则不恢复余数,先移位再加上除数当余数为正时,商1,余数左移一位,减去除数当余数为负时,商0,余数左移一位,加上除数不恢复余数的补码一位除法算法规则如下被除数与除数同号,被除数减去除数;被除数与除数异号,被除数加上除数余数与除数同号,商1,余数左移一位减去除数;余数与除数异号,商0,余数左移一位加上除数一般情况下,对于商的精度没有特殊要求,商的末位“恒置1”如果要求提高精度,则多求一位商,再用校正的办法对商进行处理当刚好能除尽时,如果除数为正,则商不必修正;如果除数位负,则商需要校正当不能除尽时,如果商为正,则不必修正;如果商为负,则商需要校正求得n位商后,得到的余数往往是不正确的,正确的余数常需要根据具体情况做适当的处理若商为正,当余数与被除数符号相同,则不需处理;当余数与被除数异号时,则应将余数加上除数进行修正才能获得正确的余数若商为负,当余数与被除数同号时,则余数不需要处理;当余数与被除数异号时,则余数需要减去除数进行校正余数之所以需要校正,是因为补码不恢复余数法除法运算过程中先比较上商的缘故浮点运算浮点数常用规格化数进行运算浮点数加减运算阶码和尾数采用补码表示的浮点数加减运算对阶:对阶的原则是小的阶码向大的看齐,因为小阶码增大时,尾数部分右移而减小,损失的是最低位,对精度影响不大尾数运算:对阶完成后,按照定点数的加减法运算执行尾数加减操作结果规格化:为了处理方便,一般取两位符号位,当尾数符号位01或10时,需要向右规格化,将尾数右移一位,同时阶码加一;当尾数为11.1xxx 或00.0xxx时,需要左移规格化,左移次数不固定,直到尾数部分出现11.0xx或00.1xx为止舍入:在对阶右移和结果规格化右移时,会丢掉末尾的值,常用的舍入方法末位恒置1法:只要右移时丢失过1,则末位置10舍1入法:当丢失位数最高位为1时,尾数末尾加1溢出判断:只有阶码溢出时,才产生溢出,阶码符号位为01和10时溢出IEEE 754浮点数的加减运算IEEE 754浮点数的阶码采用移码表示,尾数采用原码表示,且尾数的最高位隐藏,因此算法与之前都采用补码的形式不同对阶和规格化过程中,阶码的运算采用移码的加减运算尾数的运算采用原码运算法则,且隐藏位要参与尾数运算隐藏位参与尾数规格化判断及尾数规格化过程溢出判断,上溢时阶码全1,下溢时阶码全0浮点数乘法运算阶码相加尾数相乘结果规格化浮点数除法运算尾数调整:检查被除数的尾数是否小于除数的尾数(考察绝对值),如果被除数的尾数大于除数尾数,则将被除数的尾数右移一位并调整阶码。
定点补码一位乘法器的设计
沈阳航空航天大学课程设计报告课程设计名称:计算机组成原理课程设计课程设计题目:定点补码一位乘法器的设计院(系):计算机学院专业:计算机科学与技术班级: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),形成该步的部分积累加和。
补码一位乘法
其(符4)号位R与0保加存法部器分符积号,位它f始也终是一具致有.右移功能的移位寄存器,
最(后5)一当步计不数移器位i.=n+1时,封锁LDR1和LDR0控制信号,使
执行补码一位乘法的总时间为
tm=(n+1)ta+ntr
(2. 33)
行其一中次n移为位尾操数作位的数时,间ta.为执行一次加法操作的时间,tr为执
[例] [x]补=0.1101, [y]补=0.1011, 求[x·y] 0 0 0 0 + 1 1. 0 0 1 1
1 1. 0 0 1 1
0. 1 0 1 1 0
yn+1=0 ynyn+1=10,+[-x]补
1 1. 1 0 0 1
1 0 1 0 11
右移1位
=[x] 补(-y0+0.y1y2…yn)
n
=[x] 补•(-yo + Σ yi2-i) i=1
证毕.
为了推出串行逻辑实现的分步算法,将上式展开加以变换:
[x•y] 补=[x] 补•[ -y0+ y12-1+y22-2+…+yn2-n] =[x] 补•[ -y0+(y1-y12-1)+(y22-1-y22-2)+…+(yn2-(n-1) - yn2-n)] =[x] 补•[(y1-y0)+(y2-y1)2-1+…+(yn-yn-1)2-(n-1) + (0-yn)2-n]
当当yynnyyn1n1即送rr22反码且在加法器最末位加反码且在加法器最末位加1144rr00保存部分积它也是具有右移功能的移位寄存器保存部分积它也是具有右移功能的移位寄存器其符号位与加法器符号位其符号位与加法器符号位ff始终一致始终一致
Verilog实现补码一位乘法课程设计
计算机科学与工程学院课程设计报告题目全称:Verilog实现补码一位乘法课程名称:计算机组成原理指导老师:文泉职称:指导老师评语:指导签字:课程设计成绩:目录第 1 章序言 (1)1.1 课程设计目的 (1)1.2 课程设计作用 (2)1.3 课程设计需求 (2)1.3.1Xilinx设计软件 (2)1.3.2 在xilinx ISE集成开发环境下,使用Verilog HDL (2)第 2 章正文 (4)2.1 实现补码一位乘法的原理 (4)2.2 比较补码一位乘法方法 (6)2.2.1 分步乘法 (6)2.2.2 运算规则 (7)2.2.3 运算实例 (7)2.2.4算法流程图 (8)2.2.5 比较法(Booth算法) (8)2.3课程设计实验代码(概要设计) (10)2.4课程设计详细设计方案 (12)2.4.1顶层方案图的设计与实现 (13)2.4.2 功能模块的设计与实现 (14)2.4.3 仿真调试 (13)第 3 章结论 (16)3.1课程设计总结 (16)摘要本定点补码一位乘法器,具有良好的可移植性。
本文介绍了定点补码一位乘法的概念已及定点补码一位乘法的的原理和方法,分析了定点补码一位乘法器的设计,并详细介绍了使用EDA环境,Xilinx设计软件,在XCV200实验板的XCV200可编程逻辑芯片中上进行定点补码一位乘法器的移植。
通过测试,系统移植成功。
关键词:定点补码;EDA;一位乘法器;设计第1 章序言当今时代是一个信息的时代,我们的生活与信息紧密相连。
伴随着计算机的生活化,我们更近一步接触到信息技术的发展。
如今,计算机技术迅猛发展,它的发展不仅仅表现在软件领域取得辉煌的成就,同时也在硬件方面也取得了长足的发展。
因此,很多功能已经可以通过硬件来实现。
但是通常对嵌入式软件的基本要求是体积小、指令速度快、具有较好的裁减性和可移植性,目前这方面的设计已经很多也很优异,但是基于补码一位乘法器的实现,克服了定点补码乘法器的缺点,实现更加方便有效。
定点补码一位乘法器的设计
定点补码一位乘法器的设计一、简介定点补码一位乘法器是一种常见的数字电路设计,用于完成两个定点补码数相乘的操作。
在计算机中,乘法是一个非常基础和重要的操作,因此定点补码一位乘法器的设计对于数字系统的性能有着直接的影响。
在本篇文章中,我们将详细介绍一位乘法器的设计思路与实现方法。
二、原理分析定点补码乘法器的原理基于二进制乘法的基本原理。
乘法的本质是累加多个被乘数与乘法因子相乘的结果。
一位乘法器是指每次只进行一位乘法运算的乘法器。
因为乘法运算是一个递归的过程,所以一位乘法器的设计方法对于多位乘法器的设计有着很高的实用价值。
定点补码的乘法过程中,首先需要将两个操作数分别转换为其对应的补码表示形式。
然后,将乘法因子的每一位与被乘数的每一位相乘,并将每一位的结果累加起来。
最终,我们需要将乘法的结果转换回原来的表示形式。
三、设计过程1.补码转换首先,我们需要将操作数转换为其对应的补码形式。
对于一个定点数(例如8位定点数),其补码形式可以通过将原码取反加一得到。
对于一个n位的定点数,其补码的范围是从-2^(n-1)到2^(n-1)-1、补码的转换可以通过比较操作数的最高位来判断是否为负数,如果是负数,则需要对其取反加一得到补码形式,否则保持原值不变即可。
2.乘法运算乘法运算过程中,我们需要将乘法因子的每一位与被乘数的每一位相乘,并将结果累加起来。
在这个过程中,乘法因子的每一位都需要与被乘数的每一位相乘,并将结果保存在一个暂存器中。
通过多次递进,我们可以求得最终的乘法结果。
3.结果转换乘法运算得到的结果是定点补码形式的。
因此,我们需要将其转换回原来的表示形式。
转换过程可以通过比较结果的最高位来判断是否为负数,如果是负数,则需要对其取反加一得到原码形式,否则保持原值不变即可。
四、设计示例下面我们给出一个8位定点补码一位乘法器的设计示例:输入:A(8位),B(8位)输出:Result (16位)1.补码转换A=(A[7]==1?~(A)+1:A)B=(B[7]==1?~(B)+1:B)2.乘法运算Result = 0for i = 0 to 7:if B[i] == 1:Result += (A << i)3.结果转换Result = (Result[15] == 1 ? ~(Result) + 1 : Result)五、总结定点补码一位乘法器是一种常见的数字电路设计,用于完成两个定点补码数相乘的操作。
定点补码一位乘的运算方法
定点补码一位乘的运算方法
定点补码是一种表示有符号整数的方法,其中最高位为符号位,表示
正负。
一位乘是指使用一位数与多位数进行乘法运算。
一位乘的运算方法可以通过以下步骤进行:
1.将乘数和被乘数转换为定点补码表示。
如果乘数和被乘数是十进制数,首先用二进制表示,然后将其转换为定点补码。
对于正数,最高位为0;对于负数,最高位为1,其余位取反加1
2.确定乘法操作中的最高位。
根据定点补码表示,最高位是符号位。
将乘数和被乘数的符号位相乘,得到结果的符号位。
3.将乘数的符号位扩展到与被乘数的位数相同,并将结果的符号位放
在最高位。
4.对每一位进行乘法运算。
对于每一位,将乘数与被乘数的对应位相乘,得到一个部分乘积。
5.将所有部分乘积相加,得到最终结果。
对于每一位,将所有部分乘
积相加,得到该位的结果。
如果有进位,要将进位加到下一位的运算结果中。
需要注意的是,一位乘的运算方法是逐位运算的,所以需要对每一位
进行乘法运算,然后将结果相加。
在相加的过程中,需要考虑进位的情况。
此外,定点补码表示的补码运算方法也需要掌握,以正确进行符号位的计算。
以上是一位乘的运算方法的简要介绍,详细的运算步骤可以通过具体
的例子进行演示和说明。
补码一位乘法校正法
补码一位乘法校正法补码一位乘法校正法是一种用于检测和纠正乘法器误差的方法。
在数字电路中,乘法器是一种非常重要的组件,负责执行数字信号的乘法运算。
然而,由于硬件设计和制造的不完美,乘法器可能会产生误差,导致输出结果不准确。
补码一位乘法校正法就是一种常用的解决方案。
在理解补码一位乘法校正法之前,我们首先需要了解补码的概念。
补码是一种用于表示有符号整数的编码方式。
在计算机中,负数一般使用补码表示,这样可以简化运算。
补码的计算方法是将原码的符号位保持不变,其余位按位取反后加1。
例如,-5的原码为10000101,补码为11111011。
补码一位乘法校正法的基本思想是将乘法器的输出结果与真实的乘法结果进行比较,并根据比较结果来调整乘法器的输出。
具体步骤如下:1. 乘法器的输入为两个n位的补码数字,输出为一个2n位的补码数字。
2. 将乘法器的输出结果与真实的乘法结果进行比较。
如果两者相等,则乘法器的输出是正确的;如果不相等,则说明乘法器存在误差。
3. 根据乘法器输出的最高位进行判断。
如果最高位为1,说明乘法器的输出是负数,需要对乘法器的输出进行补码取反操作;如果最高位为0,则不需要进行操作。
4. 将乘法器的输出与校正后的结果进行比较。
如果两者相等,则乘法器的输出是正确的;如果不相等,则说明乘法器的误差无法通过补码一位乘法校正法进行修复。
补码一位乘法校正法的原理是通过对乘法器输出结果的最高位进行判断,来确定是否需要对乘法器的输出进行补码取反操作。
通过这种方法,可以有效地检测和纠正乘法器误差,提高乘法器的准确性和可靠性。
然而,补码一位乘法校正法只能处理一位乘法误差,对于多位乘法误差无法进行有效的修复。
在实际应用中,补码一位乘法校正法通常与其他纠错技术结合使用,以进一步提高乘法器的准确性。
例如,可以将补码一位乘法校正法与冗余校验码相结合,通过对乘法器输出结果进行校验和校正,来实现更可靠的乘法运算。
总结起来,补码一位乘法校正法是一种用于检测和纠正乘法器误差的方法。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计报告课程设计名称:计算机组成原理课程设计课程设计题目:定点补码一位乘法器的设计院(系):专业:班级:学号:姓名:指导教师:完成日期:目录第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×(Yi+1-Yi)×2-i(写成累加求和的形式,得到实现补码乘运算的算法)将上述公式展开,则每一次的部分积为:P1=[2-1(Yn+1-Yn) ×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]补由上述公式可以看出,比较法是用乘数中每相邻的两位判断如何求得每次的相加数。
每两位Yi和Yi+1的取值有00,01,10,11四种组合,则它们的差值分别为0,1,-1和0,非最后一次的部分积,分别为上一次部分积的1/2(右移一位)的值Rj,Rj+[X]补,Rj-[X]补(即Rj+[-X]补)和Rj,但一定要注意:最后一次求出的部分积即为最终乘积,不执行右移操作。
用此法计算乘积,需要乘数寄存器的最低一位之后再补充一位Yn+1,并使其初值为0,再增加对Yn和Yn+1两位进行译码的线路,以区分出Yn+1-Yn 4种不同的差值。
对N位的数(不含符号位)相乘,要计算N+1次部分积,并且不对最后一次部分积执行右移操作。
此时的加法器最好采用双符号位方案。
(2)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设计思路设计一个二输入三选一选择器对可能的三种情况进行选择。
当选择器中输入为S0 S1为00或者11时,由一寄存器一端接GND,另一端对其进行零输入;当选择器中输入为S0 S1为01时,对其进行[X]补输入;当选择器中输入为S0 S1为10时,对[X]补输入端加一非门和一加法器对其进行取反加1输入。
输出结果与一个一端接GND初始置零的寄存器相连接于一个加法器,实现部分积加法运算计算结果存放于两个相同的移位寄存器中,当部分积相加之后,由两个移位寄存器同时对部分积的和进行移位操作。
最后由两个移位寄存器的输出端连接至选择器重新选择进行循环操作,直到部分积移位结束。
这里用布斯算法在硬件电路上比较容易实现。
布斯算法的流程图如下:图1.1 定点补码一位乘法器的流程图补码一位乘法的硬件实现逻辑图如下:1.2 定点原码一位乘法器的原理框图1.3 设计环境·硬件环境:伟福COP2000型计算机组成原理实验仪、XCV200实验板、微机;·EDA环境:Xilinx设计软件。
第2章详细设计方案2.1 顶层方案图的设计与实现顶层方案图实现一位补码乘法器的逻辑功能,采用原理图设计输入方式完成,电路实现基于XCV200可编程逻辑芯片。
在完成原理图的功能设计后,把输入/输出信号安排到XCV200指定的引脚上去,实现芯片的引脚锁定。
2.1.1创建顶层图形设计文件顶层图形文件主要由一个两个16进制数和和一个封装模块组装而成的一个完整的设计实体。
可利用Xilinx模块实现顶层图形文件的设计,顶层图形文件结构如图2.1所示。
图2.1 一位补码乘法器顶层图形文件结构2.1.2器件的选择与引脚锁定(1)器件的选择由于硬件设计环境是基于伟福COP2000型计算机组成原理实验仪和XCV200实验板,故采用的目标芯片为Xlinx XCV200可编程逻辑芯片。
(2)引脚锁定把顶层图形文件中的输入/输出信号安排到Xlinx XCV200芯片指定的引脚上去,实现芯片的引脚锁定,各信号及Xlinx XCV200芯片引脚对应关系如表2.1所示。
表2.1 信号和芯片引脚对应关系2.2功能模块的设计与实现2.2.1求补电路模块的设计与实现这个模块由八位加法器,非门组成,GND8输入的是8个低电平信号,这个模块实现的是对-X求补功能。
(1)创建求补电路模块设计原理图。
求补电路原理结构如图2.2所示:图2.2 求补电路模块逻辑框图(2)创建元件图形符号为能在图形编辑器(原理图设计输入方式)中调用NEG芯片,需要为NEG模块创建一个元件图形符号,可利用Xilinx foundation f3.1编译器中的如下步骤实现:Tools=>Symbol Wizard=>下一步。
A[7:0]是输入信号,B[7:0]是输出信号。
其元件图形符号如图2.3所示:图2.3 求补电路模块元件图形符号(3)功能仿真对创建的寄存器模块进行功能仿真,验证其功能的正确性,可用Xilinx foundation f3.1编译器的Simulator模块实现。
仿真结果如图2.4所示:图2.4 求补电路仿真结果2.2.2 控制电路模块的设计与实现控制电路模块是由8个选择器模块和一个求补电路模块组成,实现选择控制功能。
当C为高电平时输出-X的补码,当C端为低电平时,输出X的补码。
(1)控制电路设计原理图。
控制电路原理结构如图2.5所示:图2.5 控制电路逻辑框图(2)创建元件图形符号为能在图形编辑器(原理图设计输入方式)中调用2_1DC8芯片,需要为2_1DC8模块创建一个元件图形符号,可利用Xilinx foundation f3.1编译器中的如下步骤实现:Tools=>Symbol Wizard=>下一步。
A[7:0]、C是输入信号,OUT[7:0]是输出信号。
其元件图形符号如图2.6所示:图2.6 控制电路图形符号(3)功能仿真对创建的寄存器模块进行功能仿真,验证其功能的正确性,可用Xilinx foundation f3.1编译器的Simulator模块实现。
仿真结果如图2.7所示:图2.7 控制电路仿真结果2.2.3 选择器模块的设计与实现选择器主要由三个门电路组成,当CC输入为高电平时,O输出的值为A的值,否则输出B的值(1)创建选择器设计原理图。
选择器原理结构如图2.8所示:图2.8选择器原理框图(2)创建元件图形符号为能在图形编辑器(原理图设计输入方式)中调用DC1芯片,需要为DC1模块创建一个元件图形符号,可利用Xilinx foundation f3.1编译器中的如下步骤实现:Tools=>Symbol Wizard=>下一步。
A、B、CC是输入信号,O是输出信号。
其元件图形符号如图2.9所示:图2.9 选择器元件图形符号(3)功能仿真对创建的寄存器模块进行功能仿真,验证其功能的正确性,可用Xilinx foundation f3.1编译器的Simulator模块实现。
仿真结果如图2.10所示:图2.10 选择器仿真结果第3章编程下载与硬件测试3.1 编程下载利用COP2000仿真软件的编程下载功能,将得到.bit文件下载到XCV200实验板的XCV200可编程逻辑芯片中。
3.2 硬件测试及结果分析利用XCV200实验板进行硬件功能测试。
一位补码乘法器的输入数据通过XCV200实验板的输入开关实现,输出数据通过XCV200实验板的LED指示灯实现,其对应关系如表3.1所示。
表3.1 XCV200实验板信号对应关系利用表3.1中的输入参数作为输入数据,逐个测试输出结果,即用XCV200实验板的开关K0、K1及K2控制数据输入,同时观察数码显示管和发光二极管显示结果,得到如图3.1所示的硬件测试结果。
图3.1 硬件测试结果图参考文献[1] 曹昕燕.EDA技术实验与课程设计[M].北京:清华大学出版社,2006[2] 范延滨.微型计算机系统原理、接口与EDA设计技术[M].北京:北京邮电大学出版社,2006[3] 王爱英.计算机组成与结构(第4版)[M].北京:清华大学出版社,2006[4]侯伯亨,顾新.VHDL硬件描述语言与数字逻辑电路设计[M].西安:西安电子科技大学出版社,1998.5-9.[5]廖裕评,陆瑞强.CPLD数字电路设计--使用MAX+PLUSⅡ[M].北京:清华大学出版社,2001.217-221.[6]John F Wakerly.DIGIAL DESIGN Principles & Practices (Third Edition)[M].北京:高等教育出版社,2001.446-54附录(电路原理图)附录。