定点原码一位乘法器设计原理与实现

4星 · 超过85%的资源 需积分: 33 9 下载量 115 浏览量 更新于2024-09-30 收藏 304KB DOC 举报
"定点原码一位乘法器的设计是计算机组成原理课程设计的一部分,主要探讨如何设计一个能够进行原码一位乘法操作的硬件电路。该设计由潘育兰在2006年完成,指导教师为刘泽显,属于沈阳航空工业学院计算机学院计算机科学与技术专业的课程设计项目。" 在定点原码一位乘法器的设计中,关键在于理解原码表示法以及如何执行一位乘法。原码是数字在计算机中的一种常见表示方式,其中最高位用于表示正负符号,其余位表示数值。在原码一位乘法中,两个数相乘的结果,其符号是由两个乘数的符号位异或得到,数值则是它们绝对值的乘积。 设计的基本原理是通过逐位乘法和移位操作来实现。例如,乘法过程可以通过以下步骤进行: 1. 初始化两个数的原码,假设X=0.1100,Y=0.1110。 2. 将被乘数Y的每一位与乘数X进行比较。如果Y的某位是1,则将被乘数X左移相应的位置并累加到部分积中;如果Y的该位是0,则不进行累加。 3. 每次累加后,部分积都要向左移一位,乘数也相应地向左移一位。 4. 这个过程持续到乘数的所有位都被检查过。最终,部分积的高位部分存储在部分积寄存器中,低位部分存储在乘数寄存器中,形成完整的乘积。 在详细设计方案中,设计分为以下几个模块: - 顶层方案图的设计与实现:这是整个系统的设计框架,包含了所有底层模块的集成。 - 第二层模块:可能包括数据路径和控制逻辑的进一步细分。 - 功能模块: - 移位模块:负责根据控制信号将被乘数和部分积进行左移操作。 - 乘数移位模块:管理乘数的移位,与移位模块配合。 - 选择模块:根据乘数的当前位决定是否将被乘数加入部分积。 - 控制模块:产生必要的控制信号来协调各个模块的操作。 - 其他模块:可能包括输入/输出接口,数据寄存器等辅助模块。 - 仿真调试:使用仿真工具验证设计的正确性,确保所有模块按预期工作。 编程下载与硬件测试阶段,设计会被编译成适合目标硬件的代码,并下载到实际的硬件平台上进行测试,验证其功能是否符合预期。 通过这个设计,学生能够深入理解计算机内部如何执行基本的算术运算,同时掌握VHDL或Verilog等硬件描述语言来实现数字逻辑电路。这样的实践项目对于学习计算机组成原理至关重要,因为它将理论知识转化为实际操作,有助于培养学生的工程能力和问题解决能力。
2020-07-11 上传
(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次部分积,并且不对最后一次部分积执行右移操作。此时的加法器最好采用双符号位方案。