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

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

沈阳航空工业学院

课程设计报告

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

院(系):计算机学院

专业:计算机科学与技术

班级:6401101

学号:1031

姓名:闫培峰

指导教师:周大海

完成日期:2009年1月9日

目录

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

设计原理 (1)

设计环境 (2)

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

整体模块设计图 (3)

具体模块的设计与实现 (4)

被乘数模块的设计与实现 (4)

乘数寄存器模块的设计与实现 (6)

部分积模块的设计与实现 (8)

控制器模块的设计与实现 (10)

加法器及其他模块的设计与实现 (13)

2.3总电路仿真测试 (15)

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

编程及下载 (18)

参考文献 (19)

附录(电路图) (20)

第1章总体设计方案

设计原理

原码一位乘,两个原码数相乘,其乘积的符号为相乘两数符号的异或值,数值则为两数绝对值之积。

例:X=,Y=,计算乘积X*Y。

*

0000

1100

1100

1100

0.

在计算时,逐次按乘数每1位上的值是1还是0,决定相加数取被乘数的值还是取零值,而且相加数逐次向左偏移1位,最后一起求积。

由于在计算机内多个数据一般不能同时相加,一次加法操作只能求出两数之和,因此每求得一个相加数,就与上次部分积相加每次计算时,相加数逐次向左偏移一位,由于最后的乘积位数是乘数(被乘数)的两倍,因此加法器也需增到两倍。部分积右移时,乘数寄存器同时右移一位,所以用乘数寄存器的最低位来控制相加数取被乘数或零,同时乘数寄存器接收部分积右移出来的一位,完成运算后,部分积寄存器保存乘积的高位部分,乘数寄存器中保存乘积的低位部分。

根据人工算法可以知道,原码一位乘法的整体设计应包括乘数寄存器,被乘数寄存器,移位电路,控制器,部分积五大模块,包含一个输入、输出、控制器模块,并作为顶层设计,以上五大模块作为底层设计,采用硬件器件设计实现。

因此,可以得出以下原理框图设计如图所示:

图原码一位乘的逻辑电路框图

如上逻辑框图中所示,其中B为被乘数寄存器,用来存放被乘数,C为乘数寄存器,用来存放乘数并且移位,A为部分积寄存器,存放每次相加并移位后的数据,ALU加法器实现加法操作,移位电路用来对相加后的数据作移位处理,计数器控制移位次数和输出结果。

设计环境

·硬件环境:伟福COP2000型计算机组成原理实验仪、XCV200实验板、微机;

·EDA环境:Foundation 设计软件。该设计由设计入口工具,设计实现工具,验证工具三大部分组成.入口工具包括原理图设计,有限状态编辑器,硬件描述语言编辑器等。

第2章详细设计方案

整体模块设计图

按照课设题目要求及逻辑电路图,先设计出电路的具体模块图,如下图所示,共有五大模块。1加法器:题目要求是4位数据位,再加上2个符号位共6位,所以要求本加法器能实现对6位二进制数相加;2部分积:按照原码一位乘原理,部分积要求是具有并行输入输出和串行输入输出及其带有异步清零端的移位寄存器;3被乘数:是用来存放被乘数的寄存器,不需要移位功能,用普通的寄存器即可;4乘数:应和部分积模块有基本一样的功能,有并行输入输出和串行输入输出功能;5控制器:实现电路的自动停止功能,可用计数器来完成,当经过4个脉冲后,计数器进位输出为1,然后将进位和总的CLK进行或运算来实现消除脉冲,进而实现电路停止工作。

图整体模块图设计图

2.2具体模块的设计与实现

整体设计主要由乘数寄存器,被乘数寄存器,控制器,部分积寄存器和加法器五大模块,其中被乘数和部分积寄存器是移位寄存器,除了以上五大模块以外,还有符号转化芯片以及符号运算部分,以下介绍各个模块的具体设计方案与实现。被乘数模块的设计与实现

从乘法设计的原理图可以看出被乘数并不需要移位功能,所以只需具用普通的寄存器的功能即可,选用上升沿的D触发器,在第一个上升沿将数据打入,并不在变化。

(1)被乘数芯片外观及内部电路图

图被乘数寄存器芯片外观

显然用6个D触发器就可实现,每个触发器的CLK并联接在一起,输入端作为数据输入端,输入数据后会第一个上升沿到时把数据打入,因为被乘数的每一位要和乘数的最低一位进行与运算,所以可以在电路中加入6个与门其中每个与门的一端与被乘数的输出端相连,另一端接在一起并引出,作为和乘数最低位的连接端,其中寄存器部分具体实现如下:

图被乘数寄存器电路图(2)功能仿真

图被乘数寄存器芯片内部电路图

从以上波形中可看出,输入数据为100111,当第一个上升沿到达时,数据被打入,并且不随以后的波形而改变,所以该器件设计成功。

乘数寄存器模块的设计与实现

本乘数寄存器是在普通移位寄存器的基础上改造而来的,即在基本寄存器上面加入了用并行输入和串行输入的片选端S,当S=1时并行输入,并屏蔽串行移位功能,S=0时串行移位,并屏蔽并行输入功能,D5-D0为数据输入端,Q5-Q0为数据输出端,A0为串行输入端,来接受部分积低位移出的数据。

(1)乘数芯片外观及内部电路图

图乘数寄存器芯片外观

按照整体模块设计时的思想,乘数寄存器具有并行输入输出和串行输入输出功能,我们可在被乘数寄存器上面加一部分电路来实现,它同样由六位D触发器组成,每个触发器的输入端不是直接接在数据输入端上,而是通过片选电路接入,

相关文档
最新文档