当前位置:文档之家› 定点原码一位乘法器的设计

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

沈阳航空航天大学课程设计报告课程设计名称:计算机组成原理课程设计课程设计题目:定点原码一位乘法器的设计院(系):专业:班级:学号:姓名:指导教师:完成日期:沈阳航空航天大学课程设计报告目录第1章总体设计方案 (1)1.1设计原理 (1)1.2设计思路 (2)1.3设计环境 (3)第2章详细设计方案 (5)2.1顶层方案图的设计与实现 (5)2.1.1创建顶层图形设计文件 (5)2.2功能模块的设计与实现 (6)2.2.1 乘数寄存器模块的设计与实现 (6)2.2.2 部分积寄存器模块的设计与实现 (8)2.2.3 被乘数寄存器模块的设计与实现 (10)2.2.4 控制器器模块的设计与实现 (12)2.2.5 加法器模块的设计与实现 (15)2.3仿真调试 (17)第3章编程下载与硬件测试 (18)3.1编程下载 (18)参考文献 (19)附录(电路原理图) (20)第1章总体设计方案1.1 设计原理原码一位乘,即两个原码数相乘,其乘积的符号为相乘两数符号的异或值,数值则为两数绝对值之积。

例如:X=0.1010,Y=—0.1101,求X·Y数值的过程如下:取双符号位,被乘数X=00 1010,乘数部分|Y|=00 1101由于在计算机内多个数据一般不能同时相加,一次加法操作只能求出两数之和,因此每求得一个相加数,就与上次部分积相加每次计算时,相加数逐次向左偏移一位,由于最后的乘积位数是乘数(被乘数)的两倍,因此加法器也需增到两倍。

部分积右移时,乘数寄存器同时右移一位,所以用乘数寄存器的最低位来控制相加数取被乘数或零,同时乘数寄存器接收部分积右移出来的一位,完成运算后,部分积寄存器保存乘积的高位部分,乘数寄存器中保存乘积的低位部分。

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

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

1.2 设计思路定点原码一位乘法器的设计(如图1.1所示)主要包含如下两个部分。

一、运算部分:被乘数寄存器要有并入功能,从而进行被乘数的输入,被乘数寄存器的输出和乘数寄存器的最后一位分别相与,以此来确定+X或+0;乘数寄存器要有并入和右移的功能,从而实现乘数部分的右移,最后得到结果的低四位;被乘数和乘数的最后一位相与的结果作为加法器的一个输入,与原部分积相加,得到新的部分积,最后则为结果的高四位。

二、控制部分:进行运算时主要有两个状态,一个是乘数与被乘数的并入状态,一个就是乘数与部分积的右移状态。

定点原码一位乘法器的底层、顶层的设计都采用原理图设计输入方式,经编译、调试后形成*.bit文件并下载到XCV200可编程逻辑芯片中,经硬件测试验证设计的正确性。

1.3设计环境(1)硬件环境•伟福COP2000型计算机组成原理实验仪COP2000计算机组成原理实验系统由实验平台、开关电源、软件三大部分组成实验平台上有寄存器组R0-R3、运算单元、累加器A、暂存器B、直通/左移/右移单元、地址寄存器、程序计数器、堆栈、中断源、输入/输出单元、存储器单元、微地址寄存器、指令寄存器、微程序控制器、组合逻辑控制器、扩展座、总线插孔区、微动开关/指示灯、逻辑笔、脉冲源、20个按键、字符式LCD、RS232口。

COP2000计算机组成原理实验系统各单元部件都以计算机结构模型布局,清晰明了,系统在实验时即使不借助PC 机,也可实时监控数据流状态及正确与否, 实验系统的软硬件对用户的实验设计具有完全的开放特性,系统提供了微程序控制器和组合逻辑控制器两种控制器方式,系统还支持手动方式、联机方式、模拟方式三种工作方式,系统具备完善的寻址方式、指令系统和强大的模拟调试功能。

(2)EDA环境•Xilinx foundation f3.1设计软件Xilinx foundation f3.1是Xilinx公司的可编程期间开发工具,该平台功能强大,主要用于百万逻辑门设计。

该系统由设计入口工具、设计实现工具、设计验证工具三大部分组成。

设计入口工具包括原理图编辑器、有限状态机编辑器、硬件描述语言(HDL)编辑器、LogiBLOX模块生成器、Xilinx内核生成器等软件。

其功能是:接收各种图形或文字的设计输入,并最终生成网络表文件。

设计实现工具包括流程引擎、限制编辑器、基片规划器、FPGA编辑器、FPGA写入器等软件。

设计实现工具用于将网络表转化为配置比特流,并下载到器件。

设计验证工具包括功能和时序仿真器、静态时序分析器等,可用来对设计中的逻辑关系及输出结果进行检验,并详尽分析各个时序限制的满足情况。

•COP2000集成调试软件COP2000集成开发环境是为COP2000实验仪与PC机相连进行高层次实验的配套软件,它通过实验仪的串行接口和PC机的串行接口相连,提供汇编、反汇编、编辑、修改指令、文件传送、调试FPGA实验等功能,该软件在Windows 下运行。

第2章详细设计方案2.1 顶层方案图的设计与实现顶层方案图实现原码一位乘的逻辑功能,采用原理图设计输入方式完成,电路实现基于XCV200可编程逻辑芯片。

在完成原理图的功能设计后,把输入/输出信号安排到XCV200指定的引脚上去,实现芯片的引脚锁定。

2.1.1创建顶层图形设计文件顶层图形文件的设计实体主要由控制器、加法器、部分积寄存器、被乘数寄存器和与门组成的芯片、乘数寄存器等模块组装而成的一个完整的可编程逻辑芯片。

而以上顶层图形文件的设计可利用Xilinx foundation f3.1中逻辑器件实现,顶层图形文件结构如图2.1所示。

图2.1 定点原码一位乘法器的设计图形文件结构2.2 功能模块的设计与实现2.2.1 乘数寄存器模块的设计与实现本乘数寄存器是在普通移位寄存器的基础上改造而来的,即在基本寄存器上面加入了用并行输入和串行输入的片选端S,当S=1时并行输入,并屏蔽串行移位功能,S=0时串行移位,并屏蔽并行输入功能,D5-D0为数据输入端,Q5-Q0为数据输出端,A0为串行输入端,来接受部分积低位移出的数据.(1)乘数寄存器芯片外观及内部电路图图2.2 乘数寄存器芯片外观按照整体模块设计时的思想,乘数寄存器具有并行输入输出和串行输入输出功能,我们可在被乘数寄存器上面加一部分电路来实现,它同样由六位D触发器组成,每个触发器的输入端不是直接接在数据输入端上,而是通过片选电路接入,同时每个D触发器的输出端也是通过片选电路接到下一个触发器的输入端,这样就可以通过片选段S的不同(0或1)来选择具体的操作,具体电路图如下:图2.3乘数寄存器芯片内部电路图(2)功能仿真对创建的控制器模块进行功能仿真,验证其功能的正确性,可用Xilinx Foundation f3.1编译器Simulator模块实现。

仿真结果如图 2.4所示:图2.4 乘数寄存器仿真从以上波形中数据可以看出,输入数据为001100,当第一个上升沿到来时S=1,数据被打入,当第二个上升沿到来时S=0,A0始终为1,此时产生移位。

所以该器件设计成功。

2.2.2 部分积寄存器模块的设计与实现部分积设计部分和乘数的功能基本一样,只是在D触发器的选择上稍有不同,部分积寄存器选用的是有异步清零端CLR的D触发器,并且为高电平清零,其余端和乘数一样,S=1:并行输入,S=0:右移。

(1)部分积芯片外观及内部电路图图2.5 部分积寄存器芯片外观通过和乘数寄存器比较可以发现,两者的不同点就是在D触发器的选择上,部分积是用具有异步清零的D触发器(高电平有效),并将其清零端CLR作为一个输入端。

A为能起到保存最低一位数据功能的D触发器,防止乘数脉冲和部分积脉冲上升沿到来存在的时间差而引起的不能移入的情况,此D触发器的输出端接入乘数的高位串行输入端,并实现移位,又因为部分积不需要串行输入数据,所以串行输入端接地,具体电路实现如下图图2.6 部分积寄存器电路图(2)功能仿真对创建的寄存器和与门模块进行功能仿真,验证其功能的正确性,可用XilinxFoundation f3.1编译器Simulator模块实现。

仿真结果如图 2.7所示:图2.7 部分积寄存器仿真从波形可以看出输入数据为110011,CLR在前一个上升沿为高电平,起清零作用,所以输出端均为0,到第二个上升沿到时CLR已是低电平,S=1,数据被打入,此后S=0,电路实现移位,所以此电路设计成功。

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

(1)被乘数芯片外观及内部电路图图2.8 被乘数寄存器芯片外观显然用6个D触发器就可实现,每个触发器的CLK并联接在一起,输入端作为数据输入端,输入数据后会第一个上升沿到时把数据打入,因为被乘数的每一位要和乘数的最低一位进行与运算,所以可以在电路中加入6个与门其中每个与门的一端与被乘数的输出端相连,另一端接在一起并引出,作为和乘数最低位的连接端,其中寄存器部分具体实现如下:图 2.9被乘数寄存器电路图(2)功能仿真对创建的加法器模块进行功能仿真,验证其功能的正确性,可用Xilinx foundation f3.1编译器的Simulator模块实现。

仿真结果如图2.10所示:图2.10 被乘数寄存器仿真从以上波形中可看出,输入数据为001100,当第一个上升沿到达时,数据被打入,并且不随以后的波形而改变,所以该器件设计成功。

2.2.4 控制器器模块的设计与实现控制器由几种波形和计数器组成,各种波形实现用输入的CLK和S波形产生乘数寄存器S端和CLK波形,计数器实现当乘数寄存器到第五个上升沿到来时计数进位输出为1,并保持不变,其中其CLK和乘数S脉冲相同,将计数器的进位输出端CO和输入的CLK一同接入或门输出作为所有部件的CLK脉冲,当进位输出为1时,CO和CLK进行或运算,结果输出为1,即脉冲恒为1,电路停止工作,此时输出结果。

(1)控制器芯片外观及内部电路图 2.11 控制器芯片外观按照整体设计思路,需要输入两个脉冲:CLK和S,作为部分积的时钟信号和S片选端脉冲,同时也是被乘数的时钟脉冲,但乘数的时钟脉冲CLK1和S1端脉冲却要通过这两个波形产生(具体形状见底下功能仿真中的波形发生器波形),然后通过这4个波形使总电路正常工作。

相关主题