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


     课 程 设 计 报 告 课程设计名称:计算机组成原理课程设计 课程设计题目:定点原码一位乘法器的设计 院(系): 专 业: 班 级: 学 号: 姓 名: 指导教师: 完成日期: 目 录 第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 部分积 乘数 00 0 0 0 0 1 1 0 1 +X 00 1 0 1 0 00 1 0 1 0 右移一位 00 0 1 0 1 0 1 1 0 1(丢失) +0 00 0 0 0 0 00 0 1 0 1 右移一位 00 0 0 1 0 1 0 1 1 0(丢失) +X 00 1 0 1 0 00 1 1 0 0 右移一位 00 0 1 1 0 0 1 0 1 1(丢失) +x 00 1 0 1 0 01 0 0 0 0 右移一位 00 1 0 0 0 0 0 1 0 1(丢失) 结果:X·Y=1.10000010 由于在计算机内多个数据一般不能同时相加,一次加法操作只能求出两数之和,因此每求得一个相加数,就与上次部分积相加每次计算时,相加数逐次向左偏移一位,由于最后的乘积位数是乘数(被乘数)的两倍,因此加法器也需增到两倍。部分积右移时,乘数寄存器同时右移一位,所以用乘数寄存器的最低位来控制相加数取被乘数或零,同时乘数寄存器接收部分积右移出来的一位,完成运算后,部分积寄存器保存乘积的高位部分,乘数寄存器中保存乘积的低位部分。 根据人工算法可以知道,原码一位乘法的整体设计应包括乘数寄存器,被乘数寄存器,移位电路,控制器,部分积五大模块,包含一个输入、输出、控制器模块,并作为顶层设计,以上五大模块作为底层设计,采用硬件器件设计实现。 因此,可以得出以下原理框图设计如图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个波形使总电路正常工作。其中乘数只在首次进行数据写入,之后只进行移位而不再写入数据,所以乘数的S片选端只在刚开始为高电平,之后应该全为低电平,所以其波形可通过一个D触发器来实现。其D输入端接高电平,并将输入波形作为脉冲源,当第一个上升沿到时,其输出端变成高电平,并不在变化,而本电路中要得到相反的结果,可在其输出端加非门来实现。通过CLK和S产生CLK1波形,通过比较CLK1和CLK波形可以发现,CLK1刚好是CLK两倍波形,所以可把S取反之后加到一个D触发器的输入端,然后将S作为其脉冲源即可,具体电路如下图: 图2.12 控制器内部电路图 对计数器部分可直接用书上的计数器,如图2.12所示,其以S脉冲作为脉冲源,3个JK触发器最大可接成8进制计数器,但在本电路中只需4进制计数器即可,即当S走到第5个脉冲时进位输出为1并保持不变,所以当三个输出端输出数据为101是进位输出为1,这可通过一个三输入的与门实现,其中一个输入端为低电平输入,为了保存进位输出可将其进位输出端作为一个D触发器的脉冲,D输入端接高电平,一旦进位输出为1,D触发器被触发并输出1,具体电路如图 2.13所示: 图 2.13 计数器电路图 (3)功能仿真 对创建的寄存器模块进行功能仿真,验证其功能的正确性,可用Xilinx foundation f3.1编译器的Simulator模块实现。仿真结果如图2.14所示: 图 2.14 控制器波形仿真 图 2.15 计数器波形仿真 从上面的两个波形可以看出,在波形发生器部分,输入CLK和S,输出四个波形:BUFENJIS(部分积S端脉冲),S1(乘数S端的脉冲),BUFENJICLK(部分积CLK脉冲),CLK1(乘数CLK脉冲);在计数器部分当第五个上升沿到来时候其进位输出为1,并不在变化,电路设计成功。 2.2.5 加法器模块的设计与实现 采用两个原有的XCV200可编程逻辑芯片加法器件ADD4实现电路中的加法,由于要求是4位数据,加上两个符号位共6为数据,所以第二片4位加法器芯片的两个高位分别接地,输出端也只取其低两位。 (1) 加法器芯片外观及内部电路 图 2.16 加法器芯片外观 图 2.17 加法器内部电路图 (2) 功能仿真 图 2.17 加法器仿真 A5-A0和B5-B0是输入数据,其加法器输入数据分别为00 1100和11 0011,C5-C0为输出,结果为11 1111,通过观看仿真图中的输出结果,可以看出结果正确无误,所以电路设计成功。 (3) 电路其他部件说明 除了上述的五大模块以外,整个电路也包含其他部件,具体有符号转化部件和符号位异或运算,符号位转换部分是把输入的数据转换成其绝对值,即无论两个符号位是11还是00,则通过符号转换部件后输出均为00,其实现电路如下所示: 由于两个与门的一端均接地所以两个输出端均为0。然后符号位进行异或运算得到符号部分的正确输出结果。 2.3 仿真调试 仿真测试主要验证设计电路逻辑功能、时序的正确性,本次设计为原码一位乘法,设计完成主要采用功能仿真方法对设计的电路进行仿真从而验证其电路功能的正确性 ( 1 ) 建立仿真波形文件及仿真信号选择 功能仿真时,首先建立仿真波形文件,输入仿真信号为CLK,数据输入A5-A0和B5-B0,符号位输入为A5A4和B5B4,结果输出C5-D0,对以上选定的输入信号设置参数,验证输出信号的正确性。 (2)功能仿真结果与分析 图 2.18 仿真波形 从波形可以清楚的看出输入和输出结果,在本次测试中输入的两个数为第一章乘法说明举例的两个数:00 1010和11 1101,从图2.18可以看到输出结果,C5C4为符号位,从上往下读运算结果为11 10000010,经过对比正确无误,即说明总的电路设计成功。 第3章 编程下载与硬件测试 3.1 编程下载 利用COP2000仿真软件的编程下载功能,将得到.bit文件下载到XCV200实验板的XCV200可编程逻辑芯片中。但由于编译的问题,始终不能下载,无法进行硬件检测,没有为此次课设画上圆满句号。 参考文献 [1] 唐朔飞.计算机组成原理[M].北京:高等教育出版设,2006 [2] 莫正坤.计算机组成原理[M].武汉:华中理工大学出版社,1996 [3] 王爱英.计算机组成与结构(第4版)[M].北京:清华大学出版社,2006 [4] 范延滨.微型计算机系统原理、接口与EDA设计技术[M].北京:北京邮电大学出版社,2006 [5] 李景华.可编程程逻辑器件与EDA技术[M].北京:东北大学出版社,2003 [6] 曹昕燕.EDA技术实验与课程设计[M].北京:清华大学出版社,2006 [7] 江国强. EDA技术习题与实验[M].北京:电子工业出版社,2005 [8] 白中英.计算机组成原理(第三版)[M].北京:科学出版社,2005 [9] 柳春风.电子设计自动化(EAD)教程[M].北京:北京理工大学大学出版社,2005 附录(电路原理图) 课程设计总结: 刚开始拿到课设题目时,感觉自己的课设很好做,因为我对原码一位乘法掌握的很不错,但随着慢慢的深入理解,我发现真的没有想象中的那么简单。如果是软件操作还可以,关键是做硬件测试,需要提前画好图进行仿真。说实话,硬件方面真是我的弱项,所以课设过程中遇到了很多问题。开始时完全不知道各个部件都应该怎么设计,后来经过查资料和答疑才有了思路,但很快又有了新的问题,在各个模块设计好了之后,由于乘数和部分积是移位寄存器,其使能控制端S很明显和输入的CLK脉冲不同,而且乘数和部分积的使能控制端S的波形也不同,如何协调各个部件的波形是整个电路正常工作成了设计本电路的关键问题,最后经过大量的尝试 解决了这个问题,只需输入CLK就可产生各个部件的不同波形,并可协调运行,能顺利实现仿真。 通过这次实验设计,了解了许多计算机组成原理的知识,同时也把所学的数电等相关内容有温习了一遍,更重要的是发现自己在设计方面的不足和对所需要学习的知识掌握的不清。在这次设计中老师和同学给予了我很大的帮助,在次此表示感谢!虽然最后没能实现下载,但我真正努力了,没有什么后悔的,我会以此课设中的精神在今后的学习中努力好更多知识。 指导教师评语: 指导教师(签字):       年 月 日 课程设计成绩 本文档由香当网(https://www.xiangdang.net)用户上传

    下载文档到电脑,查找使用更方便

    文档的实际排版效果,会与网站的显示效果略有不同!!

    需要 3 香币 [ 分享文档获得香币 ]

    下载文档

    相关文档

    定点原码一位乘法器的设计计算机组成原理

    课 程 设 计 报 告课程设计名称:计算机组成原理课程设计课程设计题目:定点原码一位乘法器的设计院(系):计算机学院专 业:计算机科学与技术班 级:学 号:姓 名:指导...

    1个月前   
    0    0

    《数据课程设计》与《数电课程设计》与《vb课程设计》心得体会汇编

    《数据课程设计》与《数电课程设计》与《vb课程设计》心得体会汇编  数据课程设计心得体会(一)  在我看来,数据库课程设计主要的目标是利用课程中学到的数据库知识和技术较好的开发设计出数据库应用...

    10个月前   
    141    0

    微课程设计

    重点: 认识细节描写的概念、作用难点: 掌握细节描写的写法要求学生认识细节描写的概念、作用并掌握掌握细节描写的写法。

    7个月前   
    75    0

    物流课程设计

    中国现代物流业,是适应中国经济快速开展和对外开放、市场竞争日益加剧的形势而开展起来的新兴产业。随着经济全球化、信息化进程的加快,近几年中国现代物流业有了较快的开展。已成为我国现代化程度和经济开展...

    10个月前   
    162    0

    铁路选线设计课程设计

    课程名称:铁路勘测设计设计题目:向阳~东风铁路新线选线 院 系: 土木工程系 专 业: 年 级: ...

    8个月前   
    124    0

    机械设计课程设计

    设计题目:二级齿轮减速器原始数据:传送带拉力F=1500; 传送带速度V=1.5m/s; 驱动滚筒直径d=240mm;说明:(1)机器大批量生产;(2)工作环...

    2年前   
    378    0

    水闸设计课程设计

     水闸设计说明书SLUICE DESIGN SPECIFICATION设计题目: 兴化水闸工程 学院名称: 水环学院 专业名称: ...

    2个月前   
    0    0

    冷库设计课程设计

     专业课程设计说明书课题名称:北京某单位小型冷库设计指导教师: 职 称: 教 授 学生姓名: ...

    3年前   
    754    0

    机械设计课程设计

    机械设计课程设计任务书学生姓名专业年级车辆工程设计题目: 设计带式输送机传动装置设计条件:1、 输送带工作拉力:F = 3300N;2、 输送带工作速度:v = 1.2...

    2年前   
    691    0

    课程设计自我总结

    课程设计自我总结  篇一  课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,单...

    8年前   
    461    0

    课程设计小组总结

    课程设计小组总结 为期10天的课程设计终于结束了,这段时间是我们小组在大学期间不可多得的美好记忆。他给了我们很多的感受和经验,让我们在饱受酸甜苦辣的同时也体会到集体的力量和成功的喜悦。在我们...

    8年前   
    9915    0

    软件课程设计心得

    软件课程设计心得第一篇:软件课程设计心得软件工程课程设计课程设想心得体味,这也激起了我尔后勤奋进修的乐趣,我想这将对我以后的进修发作主动的影响。其次,此次课程设想让我充实熟悉到团队协作的主要性...

    9年前   
    408    0

    软件课程设计心得

    软件课程设计心得  软件工程课程设计课程设想心得体味,这也激起了我尔后勤奋进修的乐趣,我想这将对我以后的进修发作主动的影响。其次,此次课程设想让我充实熟悉到团队协作的主要性,只要合作协作才干保...

    10年前   
    382    0

    工厂供电课程设计

    前言课程设计是教学过程中的一个重要环节,通过课程设计可以巩固本课程理论知识,了解变电所设计的基本方法,了解变电所电能分配等各种实际问题,培养独立分析和解决实际工程技术问题的能力,同时对电力工业...

    2个月前   
    0    0

    夹具课程设计说明书课程设计

     课程设计说明书 课 程 名 称 机械制造装配设计 设 计 课 程 钻床夹具设计 ...

    3年前   
    1371    0

    《调速系统课程设计》课程设计教学指导方案

     调速系统 课程设计 教学指导方案 双闭环直流电机调速系统设计 设计题目: 电气信息学院...

    3年前   
    1114    0

    干燥窑设计任务书课程设计

    木材干燥课程设计计算说明书设计题目: 木 材 干 燥 窑 的 设 计 学 院: 林 学 院 专...

    1年前   
    306    0

    管壳式换热器的设计课程设计

    成绩 化工原理课程设计说明书 设计题目:管壳式换热器的设计 姓 名: 专 ...

    2年前   
    304    0

    电子图书馆网站设计课程设计

    前 言电子图书馆又称为“虚拟图书馆〞、“数字图书馆〞、“桌面图书馆〞,也称为“没有围墙的图书馆〞。它是在实现人类和社会需要以及现代化开展的背景下产生的,是当今各类图书馆开展的趋势。现代社会开展...

    9个月前   
    137    0

    烟雾传感器的设计课程设计

     课程设计题 目 烟雾传感器的设计 指导教师 学生姓名 学...

    1个月前   
    0    0

    文档贡献者

    文***品

    贡献于2022-10-25

    下载需要 3 香币 [香币充值 ]
    亲,您也可以通过 分享原创文档 来获得香币奖励!
    下载文档

    该用户的其他文档