资源描述:
《计算机组成原理课设定点补码一位乘法器的设计》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、课程设计报告课程设计名称课程设计题目计算机组成原理课程设计定点补码一位乘法器的设计院(系):专业:班级:学号:姓名:指导教师:完成日期:计算机学院计算机科学与技术•卜•卜•卜•卜•卜2006年12月31日目录第1章总体设计方案错误!未定义书签。1」补码乘法器设计原理错误!未定义书签。1.2设计思路错误!未定义书签。1.3设计环境错误!未定义书签。第2章详细设计方案错误!未定义书签。2.1补码乘法器电路图的设计与实现错误!未定义书签。2.1.1补码乘法器设计错误!未定义书签。2.1.2器件的选择与引脚锁定错误!未定义书签。2.1.
2、3编译、综合、适配错误!未定义书签。2.2功能模块的设计与实现错误!未定义书签。2.2.1两输入三选一选择器模块的设计与实现错误!未定义书签。2.2.2半加器模块的设计与实现错误!未定义书签。2.3仿真调试错误!未定义书签。第3章编程下载与硬件测试错误!未定义书签。3」编程下载错误!未定义书签。3.2硬件测试及结果分析错误!未定义书签。参考文献错误!未定义书签。错误!不能识别的开第1章总体设计方案1.1补码乘法器设计原理原码乘法的主要问题是符号位不能参加运算,单独用一个异或门产牛乘积的符号位,故白然提出能否让符号数字化后也参加乘
3、法运算,补码乘法就可以实现符号位直接参加运算。布斯(Booth)算法,它采用相加和相减的操作计算补码数据的乘积,Booth算法对乘数从低位开始判断,根据两个数据位的情况决定进行加法、减法还是仅仅移位操作。Booth算法操作表示表1.1-1soS1操作说明00无处于0串中,不需要操作01加X1串的结尾10减x1串的开始11无处于1串中,不需要操作判断的两个数据位为当前位及其右边的位(初始时需要增加一个辅助位0),移位操作是向右移动。判断被乘数中的最低位以及右边的位(辅助位0),如果为00,则只进行移位操作;之后在判断移位之后的最后
4、两位,如果为01,则进行加法操作并进行移位操作;如果最后两位为10,则进行减法操作并移位,这个减法操作相当于减去2x的值;判断最后的差值,如为1,则部分积加[X]补;如为0,则不分积加0;如为-1,则部分积加[-X]补,最后一次不移位。实现这种补码乘法规则时,在乘数最末位后而要增加一位补充位。开始时,由y』加判断第一步该怎么操作;然后再由另・必判断第二步该怎么操作。因为每做一步要右移一位,故做完第一步后,正好移到原来yg的位置上。依此类推,每步都要用几%】位置进行判断,我们将这两位称为判断位。如果判断位加治二01,则yi+i…另
5、二1,做加[刃补操作;如果判断位几血=10,则yi+i•••/i=-1,做加[-力补操作;如果判断位几%】二11或00,则另+
6、…y;二0,[z,-]加0,即保持不变。Booth乘法算法的流程图00.11lb.WHR2-HWlalc.RO-R2->RO2册存■右I下面为补码设计原理框图,用加法器,移位寄存器,计数器,多路开关,和控制电路实现补码乘法,如图1.1:被乘数x1・2设计思路根据补码一位乘法运算规则:(1)如果yr+”部分积⑺加0,再右移一位;(2)如果y„yn+1=01,部分积加[x]补,再右移一位;(3)如果y„Yo
7、h=10,部分积加[-x]补,再右移一位;这样重复进行n+1步,但最后一步不移位。包括一位符号位,所得乘积为2n+l位,其屮n为尾数位数。,设计一个二输入三选一选择器对可能的三种情况进行选择。当选择器中输入为YiYi+1为00或者11时,由一寄存器一端接GND,另一端对其进行零输入;当选择器中输入为YiYi+1为01时,对其进行[X]补输入;当选择器中输入为YiYi+1为10时,对[X]补输入端加一非门和一加法器对其进行取反加1输入。输出结果与一个一端接GND初始置零的寄存器相连接于一个加法器,实现部分积加法运算计算结果存放于两
8、个相同的移位寄存器中,当部分积相加之后,由两个移位寄存器同时对部分积的和进行移位操作。最后由两个移位寄存器的输出端连接至选择器重新选择进行循环操作,直到部分积移位结束。1.3设计环境•硬件环境:伟福COP2000型计算机组成原理实验仪、XCV200实验板、微机;•EDA环境:Xilinxfoundationf3.1设计软件、COP2000仿真软件。错误!不能识别的开第2章详细设计方案2.1补码乘法器电路图的设计与实现顶层方案图实现选择器的逻辑功能,采用原理图设计输入方式完成,电路实现基于XCV200可编程逻辑芯片。在完成原理图的
9、功能设计后,把输入/输出信号安排到XCV200指定的引脚上去,实现芯片的引脚锁定。2.1.1补码乘法器设计补码乘法器主要由一个三选一数据选择器组装而成的一个完整的设计实体。其实现补码一位乘功能,其与原码一位乘有如下区别:被乘数的符号和乘数的符号都参加运算。乘数寄