《恢复余数法定点原码一位除法器的设计.doc》由会员分享,可在线阅读,更多相关《恢复余数法定点原码一位除法器的设计.doc(18页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、【精品文档】如有侵权,请联系网站删除,仅供学习与交流恢复余数法定点原码一位除法器的设计.精品文档.课 程 设 计 报 告课程设计名称:计算机组成原理课程设计课程设计题目:恢复余数法定点原码一位除法器的设计院(系):*专 业:*班 级:*学 号:*姓 名:*指导教师:*完成日期:*目 录第1章 总体设计方案11.1 设计原理11.2 设计思路11.3 设计环境3第2章 详细设计方案42.1 顶层方案图的设计与实现42.1.1创建顶层图形设计文件42.1.2器件的选择与引脚锁定52.1.3 编译、综合、适配62.2 功能模块的设计与实现62.2.1寄存器模块的设计与实现62.2.2数据选择器模块的
2、设计与实现82.2.3补码器模块的设计与实现122.2.4加法器模块的设计与实现132.2.5移位寄存器模块的设计与实现152.3 仿真调试18第3章 编程下载与硬件测试203.1 编程下载203.2 硬件测试及结果分析20参考文献22附 录(电路原理图)23第1章 总体设计方案1.1 设计原理定点原码一位除法器的原理是根据人工进行二进制除法的规则:判断被除数与除数的大小,若被除数小,则上商0,并在余数最低位补0,再用余数和右移一位的除数比,若够除,则上商1,否则上商0。然后继续重复上述步骤,直到除尽(即余数为0)或已得到的商的位数满足精度要求为止。上述计算方法要求加法器的位数为除数位数的两倍
3、。但分析后,会发现右移除数,可以通过左移被除数(余数)来代替,左移出界的被除数(余数)的高位都是无用的0,对运算不会产生任何影响。另外,上商0还是1是计算者用观察比较的办法确定的,而计算机只能用做减法判断结果的符号为负还是为正来确定。当差为负时,上商为0,同时还应把除数再加到差上去,恢复余数为原来的正值之后再将其左移一位。若减得的差为0或为正值时,就没有恢复余数的操作,上商为1,余数左移一位。1.2 设计思路恢复余数法定点原码一位除法器的整体设计主要包含五个部分,分别是寄存器、数据选择器、补码器、加法器以及移位寄存器。l 寄存器 数据选择器选择数据寄存器:寄存被除数X和余数的其中一个,6位二进
4、制数(包含2位符号位),D触发器,上升沿触发;除数寄存器:寄存除数Y,6位二进制数(包含2位符号位),D触发器,上升沿触发;余数寄存器:寄存余数,6位二进制数(包含2位符号位),D触发器,上升沿触发;l 数据选择器选择器A:“与”门逻辑电路,选择输出0和除数Y的其中一个。当输入低电平时,输出0;当输入高电平时,输出除数Y;选择器B:“与”门逻辑电路,选择输出被除数X和余数的其中一个。当输入低电平时,输出被除数;当输入高电平时,输出余数;l 补码器:将除数Y的4位有效二进制数取反加一,求其Y补;l 加法器加法器A:将数据选择器选择数据寄存器中的值和Y补求和,判断结果正负,决定上商0还是上商1;加
5、法器 B:若加法器A中的结果为负,将结果加除数Y,恢复余数;l 移位寄存器移位寄存器:实现移位功能,将被除数(余数)左移;商移位寄存器:寄存每一次计算所得的商,依次左移得到最终结果商。恢复余数法定点原码一位除法器的底层、顶层的设计都采用原理图设计输入方式,经编译、调试后形成*.bit文件并下载到FPGA XCV200可编程逻辑芯片中,经硬件测试验证设计的正确性。其原理框图如图1.1所示。图1.1 恢复余数法除法器的原理框图1.3 设计环境l 硬件环境:伟福COP2000型计算机组成原理实验仪、FPGA实验板、微机;l EDA环境:Xilinx Foundation F3.1 设计工具、COP2
6、000仿真软件。第2章 详细设计方案2.1 顶层方案图的设计与实现设计采用自上而下的设计方法,顶层方案图实现恢复余数法定点原码一位除法器的逻辑功能,采用原理图设计输入方式完成,电路实现基于FPGA XV200可编程逻辑芯片。在完成原理图的功能设计后,把输入/输出信号安排到FPGA XV200指定的引脚上去,实现芯片的引脚锁定。2.1.1创建顶层图形设计文件顶层图形文件主要由三个寄存器模块(U2、U5、U7)、两个数据选择器模块、一个补码器模块、两个加法器模块以及两个移位寄存器模块组装而成的一个完整的设计实体。可利用Xilinx Foundation F3.1模块实现顶层图形文件的设计,顶层图形
7、文件结构如图2.1所示。图2.1 定点原码一位除法器顶层图形文件结构图2.1中P81、P82、P84、P85、P86、P87为从高位到低位被除数输入端;P96、P97、P100、P101、P102、P103为从高位到低位除数输入端;P213为脉冲信号输入端;P73为始能端,开始时为低电平,以后一直处于高电平; P217、P218、P220、P221、P222、P223为从高位到低位余数输出端;P231、P232、P234、P235为从高位到低位商的输出端。2.1.2器件的选择与引脚锁定(1)器件的选择由于硬件设计环境是基于伟福COP2000型计算机组成原理实验仪和FPGA XV200实验板,故
8、采用的目标芯片为Xlinx FPGA XV200可编程逻辑芯片。(2)引脚锁定把顶层图形文件中的输入/输出信号安排到Xlinx FPGA XV200芯片指定的引脚上去,实现芯片的引脚锁定,各信号及Xlinx FPGA XV200芯片引脚对应关系如表2.1所示。表2.1 信号和芯片引脚对应关系元件符号中的输入/输出信号FPGA芯片引脚A5P81A4P82A3P84A2P85A1P86A0P87CLKP213SP73B5P96B4P97B3P100B2P101B1P102B0P103OUT5P178/P217OUT4P184/P218OUT3P185/P220OUT2P203/P221OUT1P1
9、11/P222OUT0P110/P223S3P108/P231S2P109/P232S1P124/P234S0P125/P2352.1.3 编译、综合、适配利用Xilinx FoundationF3.1编译器对顶层图形文件进行编译、综合、优化、逻辑分割、适配和布线,生成可供时序仿真的文件和器件下载编程文件。2.2 功能模块的设计与实现定点原码一位除法器(恢复余数)的底层图形文件是由10个模块组装而成的一个完整的设计实体。可利用Xilinx Foundation F3.1 ECS模块实现底层图形文件的设计,底层模块包括三个寄存器模块、两个数据选择器模块、一个补码器模块、两个加法器模块以及两个移位
10、寄存器模块,由Xilinx FPGA XV200可编程逻辑芯片分别实现。2.2.1寄存器模块的设计与实现 (1)创建寄存器原理图内部主要用到D触发器,当上升沿到来时,输出与D端相同值,下降沿时,保持数值不变,实现寄存功能。其原理图如图2.2所示。图2.2 寄存器原理图(2)创建元件图形图2.3 寄存器元件图形符号 为了能在图形编辑器(原理图设计输入方式)中调用此芯片,需要为A1芯片创建一个元件图形,可用Xilinx Foundation F3.1编译器的Create Symbol模块实现,CLOCK为控制端,B0B5为输入端,F0F5为输出端。其元件图形如图2.3所示。(3)功能描述:上升沿触
11、发,用于寄存数据。三个寄存器分别寄存通过数据选择器选择的被除数和余数的其中一个,除数还有余数。 (4)功能仿真对创建的寄存器模块进行功能仿真,验证其功能的正确性,可用Xilinx Foundation F3.1编译器Simulator模块实现。其仿真图如图2.4所示。图2.4 寄存器仿真图2.2.2数据选择器模块的设计与实现1. 选择器A(选择输出0和除数Y)(1)创建选择器模块原理图 选择器内部主要由与门构成,控制信号分别与各输入数据相与,因此当控制信号为电平时,输出都为0,当控制信号为高电平时,输出为输入数据。其原理图如图2.5所示。图2.5 选择器模块原理图(2)创建元件图形 H0H5为
12、输入端,F0F5为输出端,C为控制端。其元件图如图2.6所示。图2.6 选择器模块元件图形符号(3)功能描述:当控制信号为高电平时,输出为输入值除数Y;当控制信号为低电平时,输出全为0。实现当余数为负时将其恢复为正数的功能。(4)功能仿真对创建的选择器模块进行功能仿真,验证其功能的正确性,可用Xilinx Foundation F3.1编译器Simulator模块实现。仿真结果如图2.7所示。图2.7 选择器模块仿真图2. 数据选择器B(二选一数据选择器:选择输出被除数X和余数)(1)创建二选一数据选择器原理图二选一数据选择器内部主要利用六个二选一芯片,当控制信号为高电平时,选择B,输出B中数
13、据;当控制信号为低电平时,选择A,输出为A中数据。其原理图如图2.8所示。图2.8 二选一数据选择器原理图其中,数据选择器逻辑框图如图2.9所示。图2.9 二选一数据选择器逻辑框图(2)创建元件图形A、B、A0A5、B0B5为输入端,S、C0C5为输出端,CO为控制端。其元件图如图2.10所示。图2.10 二选一数据选择器元件图形符号(3)功能描述:实现对两组数据的二选一功能,每一时刻只能输出两组数据中的一组,选择被除数和余数的其中一个。(4)功能仿真对创建的二选一数据选择器模块进行功能仿真,验证其功能的正确性,可用Xilinx Foundation F3.1编译器Simulator模块实现。
14、仿真结果如图2.11所示。图2.11 二选一数据选择器仿真图2.2.3补码器模块的设计与实现(1)创建补码器原理图补码器模块内部用到了一个ADD4芯片,以对除数Y求其Y补,通过对输入的二进制数的四位有效数字实行取反加1操作。其原理图如图2.12所示。图2.12 补码器模块原理图(2)创建元件图形 Y0Y3为输入端,B0B3为输出端。其图形如图2.13所示。图2.13 补码器模块元件图形符号(3)功能描述:对输入的除数Y的四位有效二进制数,进行取反加1操作,求得Y补。(4)功能仿真对创建的补码器模块进行功能仿真,验证其功能的正确性,可用Xilinx Foundation F3.1编译器Simul
15、ator模块实现,Y3为高位,B3也为高位。仿真结果如图2.14所示。图2.14 补码器模块仿真图2.2.4加法器模块的设计与实现(1)创建加法器原理图加法器内部主要用到ADDS加法芯片以及一些与非门,先将输入的六位二进制数转换成八位,即在高位加两个零,然后进行加法运算。最后,将得到的数据输出低六位。其原理图如图2.15所示。图2.15 加法器原理图(2)创建元件图形为了能在图形编辑器(原理图设计输入方式)中调用此芯片,需要为FPGA XV200芯片创建一个元件图形,可用Xilinx Foundation F3.1编译器的Create Symbol模块实现,A0A5、B0B5是输入端,S0S5
16、是输出端。其元件图形如图2.16所示。图2.16 加法器元件图形符号(3)功能描述:输入两组数据,对其求和。两个加法器分别将数据选择器选择数据寄存器中的值和Y补求和以及所得余数为负时将余数和Y以恢复余数的求和。(4)功能仿真对创建的加法器模块进行功能仿真,验证其功能的正确性,可用Xilinx Foundation F3.1编译器Simulator模块实现。仿真结果如图2.17所示。图2.17 加法器仿真图2.2.5移位寄存器模块的设计与实现1.移位寄存器(1)创建移位寄存器原理图 移位寄存器内部主要用到了与门和非门,依次将数据从低位传给高位,最低位补零。其原理图如图2.18所示。图2.18 移
17、位寄存器原理图(2)创建元件图形为了能在图形编辑器(原理图设计输入方式)中调用此芯片,需要为YIWEI芯片创建一个元件图形,可用Xilinx Foundation F3.1编译器的Create Symbol模块实现,A0A4是输入端,B0B5是输出端。其元件图形如图2.19所示。图2.19 移位寄存器元件图形符号(3)功能描述:将输入的数据左移一位。即将被除数(余数)左移一位以进行下一步运算。(4)功能仿真对创建的移位寄存器模块进行功能仿真,验证其功能的正确性,可用Xilinx Foundation F3.1编译器Simulator模块实现。仿真结果如图2.20所示。图2.20 移位寄存器仿真
18、图2.商移位寄存器(1)创建商移位寄存器原理图商移位寄存器内部主要用到了D触发器,CLK信号依次到达上升沿时促使D触发器工作,依次将后一位数据传递给前一位。其原理图如图2.21所示。图2.21 商移位寄存器原理图(2)创建元件图形 为了能在图形编辑器(原理图设计输入方式)中调用此芯片,需要为SHANGYIWEIJICUN芯片创建一个元件图形,可用Xilinx foundation F3.1编译器的Create Symbol模块实现,CLK为控制端,C是输入端,Q0Q3是输出端。其元件图如图2.22所示。图2.22 商移位寄存器元件图形符号(3)功能描述:依次将得到的上商结果左移并寄存,实现对商
19、的寄存。(4)功能仿真对创建的商移位寄存器模块进行功能仿真,验证其功能的正确性,可用Xilinx Foundation F3.1编译器Simulator模块实现。仿真结果如图2.23所示。图2.23 商移位寄存器仿真图2.3 仿真调试仿真调试主要验证设计电路逻辑功能、时序的正确性,本设计中主要采用功能仿真方法对设计的电路进行仿真。(1)建立仿真波形文件及仿真信号选择功能仿真时,首先建立仿真波形文件,选择仿真信号,对选定的输入信号设置参数,选定的仿真信号和设置的参数如表2.2所示。表2.2 仿真信号选择和参数设置输 入 信 号输 出 信 号A50OUT50A40OUT40A30OUT30A20O
20、UT20A11OUT11A00OUT00B50S30B40S21B30S10B21S01B11B00S先0后1CLK脉冲信号(2)功能仿真结果与分析功能仿真波形结果如图2.24所示,与表2.2的内容进行对比,可以看出功能仿真结果是正确的,进而说明电路设计的正确性。图2.24 功能仿真波形结果第3章 编程下载与硬件测试3.1 编程下载利用Xilinx Foundation F3.1的编程下载功能,将得到的*.bit文件下载到FPGA XV200实验板的FPGA XV200可编程逻辑芯片中。3.2 硬件测试及结果分析利用FPGA XV200实验板进行硬件功能测试。恢复余数法定点原码一位除法器的输入
21、数据通过FPGA XV200实验板的输入开关实现,输出数据通过FPGA XV200实验板的数码显示管和发光二极管实现,其对应关系如表3.1所示。表3.1 FPGA实验板信号对应关系FPGA芯片引脚信号FPGA实验板输入A0A5K1输入B0B5K0控制信号SK2脉冲信号CLKCLOCK输出OUT0OUT5S0/A0A5输出S0S3S1/B0B3利用表2.2中的输入参数作为输入数据,逐个测试输出结果,即用FPGA XV200实验板的开关K1、K0、K2输入数据,同时观察数码显示管和发光二极管显示结果,得到如图3.1所示的硬件测试结果。通过观察和比较,发现图3.1输出结果和表2.2输出结果相符合,说
22、明编程下载后硬件测试结果是正确的,所以该电路设计正确。图3.1 硬件测试结果图参考文献1 曹昕燕. EDA技术实验与课程设计M.北京:清华大学出版社,20062 范延滨.微型计算机系统原理、接口与EDA设计技术M.北京:北京邮电大学出版社,20063 王爱英.计算机组成与结构(第4版) M.北京:清华大学出版社,20064 王爱英.计算机组成与结构(第3版)M.北京:清华大学出版社,19995 侯伯亨、顾新.硬件描述语言与数字逻辑电路设计M.西安:西安电子科技大学出版社,19996 江国强. EDA技术与应用M.北京:电子工业出版社,2004附 录(电路原理图)底层设计图课程设计总结:我的课程
23、设计题目是恢复余数法原码一位除法器的设计。初见题目,我不知道该如何下手,尤其对恢复余数法的每一个计算步骤不太理解。但是本着对专业知识进一步学习的目的,我开始了为期两周的课程设计。通过查阅书籍和上网搜索,我学习到了除法器的很多知识并解决了一些不懂的问题。随之我逐渐开始设计电路的每一个模块。在设计过程中,遇到了很多困难,有时因为线连接有断点就导致无法正常仿真,有时设计逻辑有错误就需要反复修改进行试验。电路全部设计完成之时,我非常兴奋,但是仿真时由于一开始使用的试验数据被除数大于了除数,违反了恢复余数法的使用前提,导致电路无法正常计算。后来更换其他数据电路运行得到正确结果,我很高兴通过自己的努力基本完成了此次课程设计。后来,在编译过程中也遇到了一些小困难,比如管脚锁定编号有误等,但都很快得到了解决。最后,在进行硬件下载时一次性顺利完成下载。由于开始设计的电路只有发光二极管能够显示最终结果,不够直观,所以老师让我进行改进,让数码显示管和发光二极管同时显示以得到更直观的输出结果,通过小小的改动也已完成。 通过这次课程设计,我收获了很多,也发现了自身的很多不足,我会在以后的学习中更加刻苦努力,以取得更好的成绩。指导教师评语:指导教师(签字): 年 月 日课程设计成绩
限制150内