原码一位乘法器的设计_第1页
原码一位乘法器的设计_第2页
原码一位乘法器的设计_第3页
原码一位乘法器的设计_第4页
原码一位乘法器的设计_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第1章 总体设计方案1.1 设计原理原码一位乘乘法器中用三个寄存器X,Y和BFJ分别存放被乘数,乘数和部分积。乘法运算开始时, BFJ寄存器被清零,作为初始部分积。被乘数放在X寄存器中,乘数放在Y寄存器中。实现部分积和被乘数相加是通过X送加法器和Y送加法器,在加法器中完成的。加法器的输出经过移位电路向右移一位送入BFJ寄存器中。Y寄存器是用移位寄存器实现的,其最低位用作Y送加法器的控制命令。因为原码一位乘是通过乘数的最低位是1还是0来确定加数的,当乘数的最后一位为1的时候,部分积加上被乘数,当乘数的最后一位为0的时候,部分积加上0。加法器最低一位的值,在右移的过程中将被移入Y寄存器的最高数值位

2、,这样就使积的低位部分被保存在Y寄存器中,最开始的乘数在逐位右移的过程中不断丢失,直到移位结束。乘法运算完成以后BFJ寄存器中保存的数值是乘积的高位部分, Y寄存器即乘数寄存器中保存乘积的低位部分。1.2设计思路实现原码一位乘乘法的逻辑框图如图1.2所示, BFJ存放部分积, X存放被乘数,Y存放乘数。一个实现一位原码乘法运算的运算器可以由一个被乘数寄存器,一个乘数寄存器,一个部分积寄存器,一个加法器,一个计数器,二选一选择电路以及移位电路七个模块构成。顶层的乘法器模块采用原理图设计输入方式。被乘数寄存器模块中X为被乘数输入端,LOAD为数据打入电平,CLK为输入脉冲,XOUT为数据输出端口。

3、乘数寄存器模块中Y为乘数输入端,LOAD为数据打入电平,CLK位输入脉冲,INPUT为部分积最低位输入端,YOUT为数据输出端口,LOWBIT为数乘数最低位输出端。 部分积寄存器中IN为部分积右移一位以后的数据输入端,CLR为清零电平,CLK为输入脉冲,HIGH为加法器的进位输入端,OUT为部分积右移一位后数据输出端。 ALU/2BFJCdY/2YXALUBFJALU移位电路ALU 加法器Y 乘数BFJ 部分积计数器X 被乘数 图1.2实现原码一位乘法的逻辑电路框图计数器模块中CLR为清零端,CLKI为输入脉冲,CLKO为脉冲输出。二选一选择电路中IN为被乘数输入端口,CTR为控制信号输入。O

4、UT为数据输出。 二选一选择电路模块用原理图输入方式,被乘数寄存器,乘数寄存器,部分积极寄存器和计数器模块采用verilog HDL语言设计输入方式。首先,单独调试仿真每个模块,确定在没有错误以后,再对整个运算器模块进行仿真。在没有错误的前提下,生成furui.bit文件下载到XCV200可编程逻辑芯片中经硬件测试验证运算结果。1.3 设计环境硬件环境:伟福COP2000型计算机组成原理实验仪、XCV200实验板、微机。EDA环境:Foundation 3.1设计软件。第二章详细设计方案2.1 顶层方案图的设计与实现顶层方案图实现原码一位乘法运算的逻辑功能,采用原理图设计输入方式完成,电路实现

5、基于XCV200可编程逻辑芯片。完成原理图的功能设计后,把输入/输出信号安排到XCV200指定的引脚上去,实现芯片的引脚锁定。2.1.1创建顶层图形设计文件顶层图形文件主要由两个数据输入端,一个脉冲输入端,一个启停控制端,一个数据输出端组成。定点原码一位乘乘法器的顶层原理图见图2.1。2.1.2器件的选择与引脚锁定(1)器件的选择硬件设计环境基于伟福COP2000型计算机组成原理实验仪和XCV200实验板,采用目标芯片为Xlinx XCV200可编程逻辑芯片。(2)引脚锁定把顶层图形文件中的输入/输出信号安排到Xlinx XCV200芯片指定的引脚上去,实现芯片的引脚锁定,原理图中各信号及Xl

6、inx XCV200芯片引脚对应关系如下表:原理图信号芯片管脚原理图信号芯片管脚X7P94OUTHIGH7P236X6P95OUTHIGH6P237X5P96OUTHIGH5P238X4P97OUTHIGH4P3X3P100OUTHIGH3P4X2P101OUTHIGH2P5X1P102OUTHIGH1P6X0P103OUTHIGH0P7Y7P79OUTLOW7P215Y6P80OUTLOW6P216Y5P81OUTLOW5P217Y4P82OUTLOW4P218Y3P84OUTLOW3P220Y2P85OUTLOW2P221Y1P86OUTLOW1P222Y0P87OUTLOW0P223CL

7、RP73CLKP2132.2第二层方案图的设计与实现第二层图形文件主要由两个数据输入端,一个脉冲输入端,一个启停控制端,一个数据输出端以及相对应的被乘数寄存器模块,乘数寄存器模块,部分积寄存器模块,加法器模块,计数器模块,数据选择电路模块以及移位电路模块组成。第二层原理图见图2.2。计数器模块起控制整个运算过程的作用。实现控制器的功能,其它所有需要脉冲的模块均受计数器即控制器的控制。当控制器的输入端(清零端)为低电平的时候,控制器才启动整个运算过程,只有当控制器的输出出现脉冲的时候,其它需要脉冲的模块才开始工作,当达到需要运算次数后,控制器封锁脉冲。各寄存器保持值不变。被乘数寄存器模块的功能是

8、实现被乘数寄存,接收来自外部输入数据,提供选择器模块的输入。乘数寄存器模块的功能是实现乘数的寄存,接收来自外部输入数据,还具有向右移位的功能,将从部分积寄存器传来的数据保存在最高位,同时将乘数的最低位输出作为数据选择器的控制端。也作为最后乘积的低位部分寄存器。数据选择器模块的功能是实现数据的选择,当从乘数寄存器传来的控制信号为高电平时,输出为被乘数,作为加法器的一个输入,当从乘数寄存器传来的控制信号位低电平时,输出为零,作为加法器的输入。部分积寄存器模块的功能是寄存从移位电路传过来的数据,作为加法器的输入。移位电路模块起将部分积移位的作用,同时达到了让所有模块在同一个脉冲下工作脉冲同步的作用,

9、由于用组合逻辑电路形成的移位电路不需要脉冲的打入就能工作,当加法器的输出改变时,移位电路就将移位后的部分积送给了部分积寄存器,而不需要让部分积先将未移位的部分积打如寄存器,再移位的过程。 图2.1 定点原码一位乘乘法器的顶层原理图图2.2 定点原码一位乘乘法器的第二层原理图2.3功能模块的设计与实现被乘数寄存器模块,乘数寄存器模块,计数器模块,部分积寄存器模块用verilog HDL语言设计输入方式实现。数据选择器模块用原理图设计输入方式实现。2.3.1被乘数寄存器模块的设计与实现此模块用Verilog HDL语言输入方式设计,运算位数为8位,实现被乘数的接收及寄存,提供选择器模块的输入。用X

10、总线输入,XOUT总线输出。当输入端LOAD为高电平的时候,被乘数寄存器把总线X的数据打入,当LOAD为低电平的时候,被乘数寄存器保持数据不变。该模块的符号如图2.31。 图2.311 被乘数寄存器的符号Verilog代码如下:module JICUNQIX (CLK, X, LOAD, XOUT) ;input CLK ;input 7:0 X ;input LOAD ;output 7:0 XOUT ;reg 7:0XOUT;/ add your declarations herealways (posedge CLK) begin if(LOAD)XOUT=X; end / add yo

11、ur code hereendmodule被乘数寄存器模块功能仿真见图2.312图2.312被乘数寄存器模块功能仿真当脉冲的上升沿到来的时,数据被打入寄存器,符合要求。2.3.2乘数寄存器模块的设计与实现 此模块用Verilog HDL语言输入方式设计,运算位数为8位,实现乘数的接收及寄存,还具有向右移位的功能。Y总线做为输入,YOUT总线作为输出。当LOAD为高电平的时候,总线Y上的数据被打入乘数寄存器中。当LOAD为低电平的时候,每到来一个脉冲,乘数寄存器向右移动一位,并将从INPUT进入的数据打入最高位,同时将最低位的值赋给输出端LOWBIT。实现乘数寄存和移位。该模块的符号如图2.32

12、1。 图2.321乘数寄存器的符号Verilog代码如下:module JICUNQIY (LOAD, INPUT, Y, CLK, LOWBIT, YOUT) ;input LOAD ;input INPUT ;input 7:0 Y ;input CLK ;output LOWBIT ;output 7:0 YOUT ;reg LOWBIT;reg 7:0YOUT;/ add your declarations herealways (posedge CLK)begin if(LOAD) begin YOUT=Y; LOWBIT=YOUT0; end else begin YOUT =YO

13、UT1; YOUT7=INPUT; LOWBIT=YOUT0; end end / add your code hereendmodule乘数寄存器模块功能仿真见图2.322图2.322乘数寄存器模块功能仿真LOAD为高电平的时候,数据被打入。以后每个脉冲的上升沿到来是INPUT被打入最高位。2.3.3部分积寄存器模块的设计与实现 此模块用Verilog HDL语言输入方式设计,运算位数为8位,功能是寄存从移位电路传过来的数据,作为加法器的输入。总线IN作为输入,总线OUT作为输出。当CLR为高电平的时候,部分积寄存器的输出被清零。当CLR为低电平的时候,每到来一个脉冲,就将通过移位电路送过来

14、的值赋给输出端OUT。该模块的符号如图2.331。 图2.331部分积寄存器的符号Verilog代码如下:module JCQBFJ (CLK, CLR, IN, HIGH, OUT) ;input CLK ;input CLR ;input 7:0 IN ;input HIGH ;output 7:0 OUT ;reg7:0OUT;/ add your declarations herealways (posedge CLK) begin OUT7:0=IN7:0; OUT7=HIGH; end / add your code hereendmodule部分积寄存器模块功能仿真见图2.332

15、图2.332部分积寄存器模块功能仿真输出数据即为输入数据,符合设计要求。2.3.4计数器模块的设计与实现 此模块用Verilog HDL语言输入方式设计,起控制整个运算过程的作用。当CLR为高电平的时候,计数器被清零,同时CLKO为高电平。以后每进来一个脉冲,计数器加1,直到加到7,也就是乘数移位次数达到8次的时候,CLKO输出为低电平。该模块的符号如图2.341。 图2.341计数器模块的符号 Verilog代码如下: module JiShuQi (CLKI, CLR, CLKO) ;input CLKI ;input CLR ;output CLKO ;reg CLKO;reg 3:0t

16、emp;/ add your declarations herealways (posedge CLKI or posedge CLR)begin if(CLR) begin; temp=0; CLKO=1; end else begin if(temp=7) CLKO=0; else temp=temp+1; endend / add your code hereendmodule计数器模块功能仿真见图2.342图2.342 计数器模块功能仿真当计数脉冲达到8的时候,脉冲输出恒为低电平脉冲,符合设计要求,能达到控制作用。2.3.5二选一选择器模块此模块用原理图输入方式设计,运算位数为8位,功

17、能是实现数据的选择。总线IN作为输入,总线OUT作为输出。当输入端CTR为高电平的时候,输出OUT为乘数寄存器传进值,当CTR为低电平的时候,输出OUT为0。电路原理图见图2.351。二选一选择器模块功能仿真见图2.352和图2.353图2.352 二选一选择器模块功能仿真当CTR为高电平时,输出为乘数 ,符合要求。图2.352 二选一选择器模块功能仿真当CTR为低电平时,输出为0,符合要求。图2.351 二选一选择电路的原理图2.4 仿真调试仿真调试主要验证设计电路逻辑功能、时序的正确性,本设计中主要采用功能仿真方法对设计的电路进行仿真。(1)建立仿真波形文件及仿真信号选择功能仿真时,首先选

18、定需要仿真的模块,建立仿真波形文件,选择仿真信号,对选定的输入信号设置参数,实验中为了让运算没有错误,需要对每一个非元件库中提供的模块进行功能仿真。选定的仿真信号和设置的参数图所示。(2)功能仿真结果与分析定点原码一位乘乘法器的整体功能仿真见图2.41和2.42。 图2.41输入被乘数3H,乘数4H,输出为0C,结果正确。 图2.42输入被乘数5H,乘数4H,输出为14(16进制数),结果正确。第3章编程下载与硬件测试3.1 编程下载利用XilinxFoudation3.1的编程下载功能,将得到的furui.bit文件下载到XCV200实验板的XCV200可编程逻辑芯片中。3.2 硬件测试及结果分析 由于本人能力有限,该步骤未能完成。 参考文献1 曹昕燕. EDA技术实验与课程设计M.北京:清华大学出版社,20062 范延滨.微型计算机系统

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论