组大作业运算器tiny alu的设计报告_第1页
组大作业运算器tiny alu的设计报告_第2页
组大作业运算器tiny alu的设计报告_第3页
组大作业运算器tiny alu的设计报告_第4页
组大作业运算器tiny alu的设计报告_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

运算器TinyALU的设计报告

微机原理与接口技术小组项目报告TeamProjectReport<2011.1.7>

摘要 该项目旨在设计一个运算器TinyALU,完成算数加减和移位测试的功能,并且支持标志寄存器和累计器。 ALU是中央处理器(CPU)的执行单元,是所有中央处理器的核心组成部分。它的基本操作包括加、减、乘、除四则运算,与、或、非、异或等逻辑操作,以及移位、比较和传送等操作。而TinyALU的设计就是对于这些操作中最重要的也是最基本的算数加减和移位功能的一个实现,并完成与各寄存器之间的协调工作。 TinyALU的设计方法和理念是:使用现场可编程逻辑门阵列(FiledProgrammableGateArray,FPGA)和硬件描述语言(Very-highSpeedIntegratedCircuitHardwareDescriptionLanguage,VHDL)自顶向下地设计ALU。它具有多种指令,实现了算数的累加,减法以及移位测试的功能,最后采用VHDL语言中的语句对其进行测试。 在该项目中,因为ISE中提供的锁存、与非门等现成的symbol出现总是输出无效信号情况,因此,我们所有的元件都是根据整个系统自己编写设计(包括schvhd等文件),并且自己编写测试文件(vhdltestbanch)。在设计好各个元件后分别对各个元件进行了功能的仿真,结果满足了要求。将元件相连整合后也进行了一次整体的仿真,结果也基本达到了设计的要求。目标1)系统的目标:使TinyALU完成算数加减和移位测试的功能,支持标志寄存器和累计器等各种数据寄存器,并连接到内部总线上。内部总线的设计为一并行总线,含8根数据线,8根地址线以及RESET等必须的控制信号线。TinyALU通过内部并行总线接到FPGA的引脚上,最终连接到外部的示波器和LED、Key完成输入输出,以对设计处的ALU进行功能验证。2)设计的目标:通过数据总线进来首先进入加减法器前的锁存器或者位移器(由地址线控制)。其中位移器完成位移后直接输出。加减法器第一次进数据默认与0做运算,随后控制输出端的寄存器给加减法器送另一个数据,这样就可以完成累加器的功能。需要说明的是这里的减法并没有按照一般使用补码完成的思路,而是直接用FPGA将一位全加器设计为一个一位加减器,这样能使整体结构变得更加简单。3)性能上的目标:由于ALU在运算中对系统性能要求很高,采用可编程逻辑器件FPGA来实现ALU单元,比中小规模的集成电路设计的系统来得结构简单,并且稳定性强。而硬件描述语言VHDL是使用可编程逻辑器件FPGA必不可少的工具。设计TinyALU来实现简单的算数运算和移位测试功能,又通过组合逻辑电路和锁存器的应用,使得在FPGA的基础上,实现了TinyALU在速度上的进一步优化。

架构设计图一为TinyALU简明结构设计图硬件模块包括:加减法器、位移器、锁存器。其中位移器完成位移后直接输出。加减法器第一次进数据默认与0做运算,随后控制输出端的寄存器给加减法器送另一个数据,这样就可以完成累加器的功能。需要说明的是这里的减法并没有按照一般使用补码完成的思路,而是直接用FPGA将一位全加器设计为一个一位加减器,这样能使整体结构变得更加简单。 软件模块设计如下:Adder8模块。对应加减法器模块。Latch模块。对应锁存器模块。Shifter模块。对应位移器模块。Do_flag模块。对应标志寄存器中的标志位。

硬件设计电路图模块清单模块清单:八位加减法器(adder8)模块锁存器(LATCH)模块位移器(Shifter)模块标志位(do_flag)模块八位加减法器(adder8)模块一位加减法器(add1):管脚:cin——进位输入

M——模式选择(设计为当m=0时做加法,m=1时做减法)X,Y——输入数CS——选择

Cout——进位输出

Sum——结果输出

图三八位加减法器内部线路图锁存器(LATCH)模块锁存器(LATCH)模块:锁存器原件图如图四所示。锁存器的原理比较简单,在本项目中设计为当CS上升沿到来时,读取输入并在下一个上升沿到来前保持该输出。图四锁存器位移器(Shifter)模块位移器(Shifter)模块:如图五所示,除了8位的输出输入以及一个选择cs和时钟CLK外,还有a,b两个输入来选择位移器的模式。X0-x7为输入管脚,右端y0-y7为输出管脚。当a=0,b=0时,位移器向右平移,并补充零。当a=0,b=1时,位移器向左平移,并补充零。当a=1,b=0时,位移器向右平移,并将最右端数补充到最左端。当a=1,b=1时,位移器向左平移,并将最左端数补充到最右端。图五位移器标志位(do_flag)模块标志位(do_flag)模块:在该项目中主要由标志位显示两个状态,一个是加法中的益处位,和减法中出现负数的符号位。我们通过一个简单的译码电路完成。当进行加法时,八位加减法器的m位为0,如果两个8位数相加后产生了进位就说明有益处,则将m和cout的或运算结果输出就为溢出位。当进行减法时,八位加法器的m位为1,如果两数相减出现借位就说明符号为负,因此将m和cout做与运算结果输出就为符号位。(1为负,0为正)图六标志位地址---功能一览表A0latch1110000A1latch2110000A2adder8110000A3adder8/m010000A4shifter001111A5shifter/a000011A6shifter/b000101F溢出位B符号位加法运算减法运算SHR直线右移SHLRCR循环右移RCL

测试和效果评估地址线a0—a6:1111000Di:00000001图中黄线处为加法器启动后第9个脉冲到来时刻,因此DO为:00001001B=9(十进制)结果正确一、ALU累加功能二、ALU减法功能:在第一个脉冲先送入了一个11111111,然后再第二个脉冲送入00000001,输出DO为:011111111,结果正确。三、位移

温馨提示

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

评论

0/150

提交评论