基于FPGA的计数器的程序设计_第1页
基于FPGA的计数器的程序设计_第2页
基于FPGA的计数器的程序设计_第3页
基于FPGA的计数器的程序设计_第4页
基于FPGA的计数器的程序设计_第5页
已阅读5页,还剩14页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

1草鱼河南科技大学草鱼课草鱼程草鱼设草鱼计草鱼说草鱼明草鱼书草鱼草鱼草鱼课程名称草鱼草鱼现代电子系统课程设计草鱼草鱼草鱼草鱼草鱼草鱼草鱼题草鱼草鱼草鱼草鱼目草鱼草鱼草鱼草鱼堆栈处理器的设计草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼学草鱼草鱼草鱼草鱼院草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼班草鱼草鱼草鱼草鱼级草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼学生姓名草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼指导教师草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼日草鱼草鱼草鱼草鱼期草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼课程设计任务书草鱼(指导教师填写)草鱼草鱼课程设计名称草鱼现代电子系统课程设计草鱼学生姓名草鱼草鱼专业班级草鱼草鱼草鱼草鱼2设计题目草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼堆栈处理器的设计草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼一、PORK草鱼课程设计目的草鱼掌握LPM模块的使用方法;PORK草鱼掌握GW48_SOPC实验箱的使用方法;PORK草鱼了解基于FPGA的电子系统的设计方法。草鱼草鱼二、PORK草鱼设计内容、PORK技术条件和要求草鱼设计一个具有如下功能的堆栈处理器。草鱼草鱼(1)基本要求PORK草鱼草鱼A与外部数据线的数据交换符合堆栈要求(先进后出);PORK草鱼草鱼B对存储的数据能进行算术运算;PORK草鱼C数据位数不少于8位;PORK草鱼D通过数码管显示操作数据及运算结果。草鱼草鱼(2)发挥部分草鱼A具有错误提示功能;PORK草鱼B数据位数不少于16位;PORK草鱼C其它。草鱼草鱼三、PORK草鱼时间进度安排草鱼布置课题和讲解PORK1天草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼查阅资料、PORK设计PORK4天草鱼实验PORK3天草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼撰写报告PORK2天草鱼四、PORK草鱼主要参考文献草鱼何小艇草鱼电子系统设计草鱼浙江大学出版社草鱼20081草鱼潘松草鱼黄继业草鱼EDA技术实用教程草鱼科学出版社草鱼200610草鱼齐晶晶草鱼现代电子系统设计实验指导书草鱼电工电子实验教学中心草鱼20098草鱼草鱼草鱼指导教师签字PORK草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼2010年草鱼12月30日草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼摘草鱼要草鱼草鱼草鱼草鱼草鱼草鱼堆栈处理器是具有两个功能,鲤鱼首先它与数据总线的数据交换符合堆栈的要求(即先进后出);PORK能对存储的数据进行算术运算。草鱼本次设计就是基于FPGA用VHDL语言实现的一个堆栈处理器,鲤鱼拥有一个RAM进行堆栈的数据存储操作,鲤鱼同时有两个寄存器存放运算器的输入和运算结果。草鱼草鱼草鱼堆栈处理器的主要组成部分如下PORK草鱼草鱼草鱼堆栈存储器PORK进行数据的存储是堆栈处理器的基本功能,鲤鱼这里的堆栈存储器3就是一个可以用来存储和读取数据的RAM,鲤鱼它的存储和读取符合堆栈先进后出的要求,鲤鱼具体的实现方法将在后面的方案论证中详细论述。草鱼草鱼草鱼草鱼运算器PORK运算器的功能就是对处于栈顶的两个数据进行算术运算(加、PORK减、PORK乘、PORK除),鲤鱼并将运算结果送至控制部分,鲤鱼进行下一步的操作。草鱼草鱼控制模块PORK控制堆栈处理器的各项操作(入栈、PORK出栈、PORK算术运算)、PORK状态转移、PORK设置各种状态标志和RAM地址的产生。草鱼草鱼显示模块PORK用来显示A、PORKB寄存器中的数据、PORK数据总线数据和输入数据的实时显示。草鱼草鱼草鱼草鱼关键词PORK堆栈、PORK算术运算、PORK控制、PORK显示、PORKFPGA、PORKVHDL草鱼草鱼草鱼草鱼草鱼草鱼草鱼4目草鱼草鱼录草鱼草鱼草鱼一、PORK任务解析3草鱼二、PORK系统方案论证4草鱼21总体方案比较论证4草鱼22系统结构与原理4草鱼三、PORK数据子系统的设计4草鱼31堆栈存储器的设计4草鱼32运算器的设计5草鱼33数据路径6草鱼四、PORK控制子系统6草鱼41方案论证6草鱼42控制部分的实现7草鱼五、PORK总结8草鱼51仿真结果8草鱼52系统缺陷分析11草鱼六、PORK心得体会11草鱼草鱼草鱼5一、PORK任务解析草鱼(1)根据任务要求,鲤鱼堆栈处理器与总线的数据交换要符合先进后出的原则,鲤鱼它是一个具有数据存储和读取功能的RAM,鲤鱼为了便于测试,鲤鱼这里我们设定了一个88的RAM,鲤鱼它的字数为8,鲤鱼每个字为8位,鲤鱼满足了数据位数为8的要求。草鱼草鱼在堆栈中定义一个堆栈指针SP,鲤鱼用来表征存储字在RAM中的位置,鲤鱼当进行入栈操作PUSH时,鲤鱼数据存入地址为SP的单元后,鲤鱼SPSP1;PORK而进行出栈操作POP时,鲤鱼将SP单元的数据读出后,鲤鱼SPSP1。草鱼当指针处于栈顶,鲤鱼对应满栈,鲤鱼应有满栈信号FULL1,鲤鱼此时不能进行入栈PUSH。草鱼当SP8时,鲤鱼指针处于栈底,鲤鱼对应栈空,鲤鱼应有栈空信号EMPTY1,鲤鱼此时不可以进行出栈POP。草鱼草鱼(2)堆栈处理器的第二个功能是算术运算操作,鲤鱼首先应有四个算术运算的指示信号,鲤鱼即输入信号ADD、PORKSUB、PORKMUL、PORKDIV。草鱼算术运算的过程就是把地址分别为SP和SP1的两个数据分别送入运算器进行运算,鲤鱼运算后将结果送入地址为SP1的字中。草鱼草鱼当栈中只有一个字时不能进行算术运算,鲤鱼因此应有一个ONE指示信号,鲤鱼当指针为7时,鲤鱼栈内只有一个字,鲤鱼指示信号ONE1。草鱼草鱼(3)控制器主要用来设置各个标志位的状态,鲤鱼数据的具体流向、PORK存储路径,鲤鱼控制显示模块的显示。草鱼草鱼(4)对于显示的部分,鲤鱼只需将数据总线的数据送至数码管显示电路即可。草鱼草鱼(5)系统框图的确定草鱼由以上分析可以得到堆栈处理器的功能框图和系统原理框图如下所示PORK草鱼草鱼草鱼草鱼堆栈存储器数据输入DIN地址(SP)产生器数据输出DOUT运算器控制器标志寄存器标志信号输出FULL、EMPTY、ONE、READ、FA、FB操作信号输入PUSH、POP、算术操作显示模块(显示A、B寄存器,数据总线和输入数据内容)图一、PORK系统原理框图草鱼草鱼草鱼草鱼6草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼图二、PORK功能框图草鱼二、PORK系统方案论证草鱼21总体方案比较论证草鱼方案一PORK采用数字逻辑电路,鲤鱼根据堆栈处理器的各种状态转移和逻辑关系画出卡诺图,鲤鱼分析其逻辑关系,鲤鱼使用触发器、PORK门电路等一系列芯片来连接电路实现堆栈处理器的功能。草鱼草鱼但是由于堆栈处理器的状态转移较多,鲤鱼逻辑关系分析起来比较复杂,鲤鱼而且会需要大量的芯片,鲤鱼电路连接复杂,鲤鱼不易实现,鲤鱼不是理想方案。草鱼草鱼方案二PORK采用FPGA实现,鲤鱼用语言描述或者微程序法实现各种状态转移和逻辑关系。草鱼草鱼这种方案较之于第一种方案比较容易实现,鲤鱼省去了复杂的电路连接,鲤鱼而且堆栈处理器的RAM,鲤鱼以及加法器,鲤鱼减法器,鲤鱼乘法器,鲤鱼除法器都可以定制,鲤鱼相对来说,鲤鱼省去了构建运算器的工作量。草鱼因此我们选择了方案二作为我们的设计方案。草鱼草鱼22系统结构与原理草鱼本方案的系统原理图见图一,鲤鱼它主要包括数据子系统和控制子系统两大模块,鲤鱼下面我们来讨论具体功能的实现。草鱼三、PORK数据子系统的设计草鱼草鱼草鱼草鱼草鱼数据子系统包括对数据的存储、PORK运算、PORK传输以及控制子系统之间的条件和控制信号交换部分,鲤鱼下面就从这几个方面来分析数据子系统的设计和实现放法。草鱼草鱼31堆栈存储器的设计草鱼方案一PORK定制RAM,鲤鱼然后根据各种操作对RAM的访问不同,鲤鱼编写一个RAM的读写控制器,鲤鱼它产生读写控制信号和相应的RAM地址。草鱼草鱼方案二PORK用语言编写,鲤鱼这里我们采用了语言编写了一个RAM,鲤鱼将各种的控制操作和RAM整合在了一起,鲤鱼作为一个堆栈存储器的模块。草鱼草鱼为了便于测试,鲤鱼我们这里定义一个88的RAM作为堆栈存储器,鲤鱼地址产生器产生的地址即为指针SP,鲤鱼由于RAM的速度问题,鲤鱼因此我们用两个高速的寄存器A、PORKB来数据总线进行数据交换,鲤鱼而RAM作为后备不直接和数据总线通信,鲤鱼这样就解决了RAM的读写速度较慢的问题。草鱼图示即为堆栈存储器的结构框图。草鱼草鱼7堆栈存储器的工作有三个方面PORK入栈、PORK出栈和算术运算。草鱼由于添加了两个寄存器,鲤鱼因此数据的流向不再是简单的将数据存储到RAM中,鲤鱼下面来分别讨论在这三方面的数据流向问题PORK草鱼草鱼寄存器RAM88寄存器BDATA_BUS图三、PORK堆栈存储器的结构草鱼入栈(PUSH)操作PORK草鱼草鱼草鱼草鱼草鱼A,鲤鱼B均空时PORKBDIN。草鱼草鱼空B满时PORKADIN。草鱼草鱼A、PORKB均满时PORKRAMB,鲤鱼BA,鲤鱼ADIN。草鱼草鱼出栈(POP)操作草鱼草鱼草鱼草鱼草鱼A,鲤鱼B均满PORKDOUTA。草鱼草鱼A空B满PORKDOUTB。草鱼草鱼A,鲤鱼B均空PORKBRAM,鲤鱼DOUTB。草鱼草鱼(3)算术运算(OP)操作PORK草鱼A,鲤鱼B均满PORKBA(OP)B。草鱼草鱼A空B满PORKAB,鲤鱼BRAM,鲤鱼BA(OP)B。草鱼草鱼A,鲤鱼B均空PORKBRAM,鲤鱼AB,鲤鱼BRAM,鲤鱼BA(OP)B。草鱼草鱼由以上分析可以看出堆栈处理器的工作特点PORK草鱼只有A,鲤鱼B寄存器和外部总线进行数据交换,鲤鱼RAM只和B寄存器进行数据交换。草鱼草鱼必须设置两个标志位FA,鲤鱼FB来指示A,鲤鱼B寄存器是否已满。草鱼草鱼应设置一个READY信号,鲤鱼指示操作是否完成,鲤鱼只有当处理器输出READY信号时才可以进行下一步的操作。草鱼草鱼关于堆栈指针SP,鲤鱼为了实现堆栈的要求(先进后出),鲤鱼因此在系统的起始状态,鲤鱼SP应指向栈底(RAM的最后一个单元,鲤鱼SP8),鲤鱼而且应注意到,鲤鱼入栈时,鲤鱼数据不直接进入RAM之中,鲤鱼必须是A、PORKB均满的时候才进行写RAM的操作,鲤鱼这时RAM(SP)B,鲤鱼SPSP1;PORK同样的对于出栈,鲤鱼应该在A、PORKB均空以后才可以读RAM,鲤鱼SPSP1,鲤鱼BRAM(SP),鲤鱼DOUTB。草鱼草鱼栈满信号FULL应该是在SP0,鲤鱼并且FA1,鲤鱼FB1时才指示栈满,鲤鱼输出栈空信号EMPTY的条件是FA0,鲤鱼FB0,鲤鱼且SP8。草鱼草鱼草鱼32运算器的设计草鱼由上面的分析我们知道运算器的输入是A,鲤鱼B两个寄存器的数据,鲤鱼运算器进行相关的运算以后将运算结果送至B寄存器存储起来。草鱼草鱼加法器和减法器的设计比较简单,鲤鱼直接进行加减运算就可以了,鲤鱼可以用语言描8述的方法将他们直接的整合到堆栈存储器的模块之中去,鲤鱼不必再去定制相应的模块,鲤鱼节省了部分资源;PORK乘法器和除法器我们采用定制的方法,鲤鱼将A,鲤鱼B的数据送至乘法器、PORK除法器的输入端,鲤鱼然后将结果送回堆栈处理器进行处理,鲤鱼下图即为定制的乘法器和除法器。草鱼草鱼UNSIGNEDMULTIPLICATIONDATAA70DATAB70RESULT150MULINST2草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼草鱼DENOMISUNSIGNEDNUMERISUNSIGNEDNUMER70DENOM70QUOTIENT70REMAIN70DIVINST1草鱼图四、PORK乘法器和除法器草鱼当栈内只有一个数时不能进行算术运算,鲤鱼因此必须设置一个ONE信号指示栈内数据为一的状态,鲤鱼提醒此时不可以经行算术运算。草鱼草鱼与堆栈存储器一样,鲤鱼运算器同样需要一个READY信号,鲤鱼来指示操作是否完成。草鱼草鱼33数据路径草鱼根据以上的分析,鲤鱼明确了数据系统应有的模块及其操作规则。草鱼按照分析的结果我们可以总结出其数据路径如下PORK草鱼寄存器A的数据来源有两个,鲤鱼分别是数据总线和B寄存器,鲤鱼只有在入栈和算术运算时才有数据进入。草鱼草鱼寄存器B的数据来自四个方面PORK寄存器A、PORK数据总线、PORKRAM和运算器的运算结果。草鱼草鱼RAM的数据仅来自寄存器B,鲤鱼不和其它设备进行数据的交换。草鱼草鱼输出的数据来自寄存器A和寄存器B,鲤鱼任何输出都要经过这两个寄存器才能输出。草鱼草鱼运算器的数据来自寄存器A和寄存器B,鲤鱼运算结果输出到寄存器B。草鱼草鱼至此,鲤鱼我们已经分析了堆栈存储器的设计思路,鲤鱼设计方案,鲤鱼以及实现的方法,鲤鱼根据上面得出的逻辑关系和数据流向就可以写出数据子系统的VHDL语言代码。草鱼草鱼四、PORK控制子系统设计草鱼41方案论证草鱼方案一PORK采用微程序法实现草鱼控制子系统的微程序设计适用于系统很复杂,鲤鱼系统的MDS图的状态数目很多,鲤鱼输入输出变量很多的情况,鲤鱼而且它具有设计规范、PORK易于模块化、PORK便于二次集成、PORK便于修改的有点。草鱼其基本结构如下图所示。草鱼草鱼9ROMD触发器输入输出草鱼图五、PORK微程序设计基本结构草鱼本系统的状态转移变量较多,鲤鱼系统较复杂,鲤鱼因而使用微程序设计的方法比较适合于这个系统。草鱼草鱼方案二PORK语言描述草鱼比之于微程序设计的方法来说,鲤鱼语言描述的方法相对来说比较繁琐,鲤鱼因为转移变量较多,鲤鱼写程序的时候比较复杂,鲤鱼需要仔细的分析系统,鲤鱼否则会导致数据混乱等一系列的后果,鲤鱼但是如前所述,鲤鱼在设计数据子系统的时候,鲤鱼已经涉及到了各项操作的数据流向及状态标志的问题,鲤鱼这里再进行一次相关描述会有些重复,鲤鱼因此在这里我们继续的使用语言描述的方案,鲤鱼将控制子系统和数据子系统相结合,鲤鱼利用数据子系统的资源来进行控制子系统的设计。草鱼草鱼虽然这种方案没有前者那样看起来模块清晰,鲤鱼但是由于和数据子系统结合在一起,鲤鱼在阅读程序时比较容易了解整个系统的工作流程,鲤鱼需要修改时也不必对各个模块逐一的修改。草鱼草鱼42控制部分的实现草鱼在数据子系统中我们讨论了在各种操作中的数据流向的问题,鲤鱼但并没有明确的指出数据的存储路径以及各种标志信号的变化,鲤鱼根据在上面分析的数据流向的基础上,鲤鱼我们加上各种标志位进行详细的论述PORK草鱼(1)入栈PUSH草鱼若FA0,鲤鱼FB0PORKBDIN,鲤鱼FB1;PORK草鱼若FA0,鲤鱼FB1PORKADIN,鲤鱼FA1;PORK草鱼若FA1,鲤鱼FB1PORKRAM(SP)B,鲤鱼SPSP1,鲤鱼BA,鲤鱼ADIN,鲤鱼FA1,鲤鱼FB1;PORK草鱼草鱼草鱼草鱼草鱼(2)出栈POP草鱼若FA1,鲤鱼FB1PORKDOUTA,鲤鱼FA0;PORK草鱼若FA0,鲤鱼FB1PORKDOUTB,鲤鱼FB0,;PORK草鱼若FA0,鲤鱼FB0PORKSPSP1,鲤鱼BRAM(SP),鲤鱼DOUTB,鲤鱼FA0,鲤鱼FB0;PORK草鱼(3)算术运算OP草鱼若FA1,鲤鱼FB1PORKBA(OP)B,鲤鱼FA0,鲤鱼FB1;PORK草鱼若FA0,鲤鱼FB1PORKAB,鲤鱼SPSP1,鲤鱼BRAMSP,鲤鱼BA(OP)B,鲤鱼FA0,鲤鱼FB1;PORK草鱼若FA0,鲤鱼FB0PORKSPSP1,鲤鱼BRAMSP,鲤鱼AB,鲤鱼SPSP1,鲤鱼BRAMSP,鲤鱼BA(OP)B,鲤鱼FA0,鲤鱼FB1;PORK草鱼(4)READY信号草鱼14READY信号用来指示是否可以进行操作,鲤鱼因此当有操作输入(PUSH,鲤鱼POP,鲤鱼草鱼15OP)时,鲤鱼READY0,鲤鱼此时封锁操作信号的输入,鲤鱼而当当前操作结束后,鲤鱼应立16即给READY恢复为1,鲤鱼允许其他操作的进行。草鱼可以用下面的方法来实现17READY的赋值PORKIF(PUSHPOPOP)READY0READY1;PORK草鱼18(5)ONE信号草鱼ONE信号指示栈内只有一个数据的情况,鲤鱼指示ONE有两种情况PORK草鱼FA0,鲤鱼FB1,鲤鱼SP8草鱼1FA0,鲤鱼FB0,鲤鱼SP7;PORK草鱼2根据堆栈的特点,鲤鱼入栈总是先入B寄存器,鲤鱼出栈总是先出A寄存器,鲤鱼因而草鱼不会出现A满B空的情况,鲤鱼因此FA1,鲤鱼FB0,鲤鱼SP8的情况不予考虑。草鱼草鱼(6)乘法、PORK除法的数据处理草鱼由于是定制的乘、PORK除法器,鲤鱼因此在进行乘除的运算时,鲤鱼控制器要将A、PORKB草鱼寄存器的值输出给乘、PORK除法器,鲤鱼然后接收两个运算器的结果,鲤鱼对其进行处理后存储起来,鲤鱼并且显示运算结果。草鱼草鱼我们对乘法和除法作如下的规定PORK两个8位的数据相乘之后得到的是16位的结果,鲤鱼我们这里只取其底8位,鲤鱼当结果的高8位有结果时,鲤鱼就输出错误警告,鲤鱼表示运算溢出;PORK对于除法,鲤鱼我们只保留其商,鲤鱼对余数不做处理。草鱼草鱼(7)显示部分的控制草鱼由于要求显示A、PORKB寄存器,鲤鱼数据总线,鲤鱼和输入数据的值,鲤鱼因此控制模块还要把A、PORKB寄存器,鲤鱼数据总线的数据送至数码管显示,鲤鱼同时还要实时的显示输入数据的值。草鱼草鱼FULL信号和EMPTY信号在31中已进行过论述,鲤鱼这里不再讨论。草鱼到此为止,鲤鱼我们已经把控制部分的设计讨论结束,鲤鱼结合数据子系统的设计,鲤鱼我们就得到了最终的堆栈处理器,鲤鱼它可以实现堆栈和基本的算术运算操作。草鱼草鱼五、PORK总结草鱼51仿真结果草鱼由于堆栈处理器的输入输出变量较多,鲤鱼把所有的输入输出放在一起进行仿真草鱼不易观察结果,鲤鱼观察不到内部个状态的转移,鲤鱼数据的存储等,鲤鱼因此这里分块对系统进行仿真,鲤鱼分别对入栈PUSH,鲤鱼出栈POP,鲤鱼算术运算OP进行仿真,鲤鱼下面是仿真的结果。草鱼草鱼入栈PUSH的仿真草鱼11图六、PORK入栈PUSH的波形仿真草鱼由于试验箱的按键有限,鲤鱼因此这里我们定义了两个计数器作为数据的输入,鲤鱼DIN1,鲤鱼DIN2为计数器的输入,鲤鱼DISPA,鲤鱼DISPB为A、PORKB寄存器得到内容,鲤鱼FA,鲤鱼FB为A、PORKB寄存器的标志位,鲤鱼DATA_BUS为数据总线的内容,鲤鱼DATA_SET为输入的数据,鲤鱼SP为堆栈指针(RAM的地址),鲤鱼SRAM为我们定义的88的RAM。草鱼草鱼草鱼草鱼草鱼如图所示,鲤鱼在入栈前,鲤鱼堆栈处理器为空,鲤鱼EMPTY为1,鲤鱼第一次PUSH时,鲤鱼A、PORKB均空,鲤鱼因此B寄存器存入数据1,鲤鱼且FB为1,鲤鱼此时SP指针不变,鲤鱼这时只有一个数据,鲤鱼ONE为1;PORK第二次PUSH时,鲤鱼A空B满,鲤鱼A寄存器存放输入数据2,鲤鱼FA变为1,鲤鱼SP仍旧没有变化;PORK第三次PUSH时,鲤鱼A、PORKB均满,鲤鱼B寄存器中的1放入了RAM的最底部单元RAM7中,鲤鱼A寄存器中的2放入了B中,鲤鱼A中存放新进入的数据3,鲤鱼且SP1;PORK从图中我们可以看到READY信号的变化,鲤鱼没有操作时,鲤鱼READY始终为1,鲤鱼当有操作进行时READY立即跳变为0,鲤鱼封锁其他的操作。草鱼综上所述,鲤鱼堆栈(PUSH)操作完全符合前面所分析的指标的要求,鲤鱼是正确的。草鱼草鱼出栈POP的仿真草鱼2草鱼图七、PORK出栈POP的仿真草鱼在上面入栈的基础上,鲤鱼我们进行出栈POP的仿真。草鱼如图所示,鲤鱼在第一次入栈操作前,鲤鱼A、PORKB寄存器均满,鲤鱼因此先向数据总线输出A寄存器的数据3,鲤鱼且A寄存器的标志位变为0,鲤鱼表示A已空;PORK第二次POP时,鲤鱼A空B满,鲤鱼因而向数据总线输出B寄存器中的2,鲤鱼并且FB0,鲤鱼这时栈内只有SRAM7的一个数据,鲤鱼因此ONE指示1;PORK第三次POP时,鲤鱼A、PORKB已空,鲤鱼所以SRAM7的数据1先传送给B,鲤鱼SP1,鲤鱼最后经B将数据送至数据总线,鲤鱼这时栈内没有任何数据,鲤鱼EMPTY1;PORK由此图我们也可以看出堆栈的特点(先入后出)PORK入栈的顺序为1、PORK2、PORK3,鲤鱼而出栈的顺序是3、PORK2、PORK1,鲤鱼且各项标志都完全正确,鲤鱼因而栈操作部分的设计是完全正确的。草鱼草鱼算术运算OP的仿真草鱼31草鱼因实验箱的按键有限,鲤鱼因此在算数运算部分我用了两个按键OP2和OP1对算术操作进行编码,鲤鱼OP20,鲤鱼OP10表示加法运算;PORKOP20,鲤鱼OP1表示减法运算;PORKOP21,鲤鱼OP10表示乘法运算;PORKOP21,鲤鱼OP11表示除法运算,鲤鱼OP_EN为运算操作的使能键。草鱼草鱼仿真说明PORK草鱼首先我们向栈内存入了三个数PORK1、PORK2、PORK3,鲤鱼加法时OP1、PORKOP2均为0,鲤鱼进行第一次加法时,鲤鱼FA1,鲤鱼FB1,鲤鱼因此是A、PORKB中的数据相加,鲤鱼然后将结果存入B寄存器中,鲤鱼A寄存器FA0,鲤鱼如图,鲤鱼第一次加法后,鲤鱼结果5放入了B寄存器中;PORK第二次加法时FA0,鲤鱼FB1,鲤鱼因而B先将其内的数据5传输给A,鲤鱼然后再从RAM中读取数据1,鲤鱼然后进行加法运算,鲤鱼结果6仍旧放入B寄存器。草鱼从波形分析可以看出,鲤鱼加法运算的仿真完全正确,鲤鱼证明设计没有错误。草鱼减法操作与加法操作相似这里不再仿真,鲤鱼下面给出乘法和除法的仿真结果PORK草鱼草鱼图九、PORK乘法(MUL)的仿真草鱼如图所示,鲤鱼草鱼事先我们已经往A、PORKB寄存器中放入了两个数3和2,鲤鱼进行一次乘法运算(OP21,OP10)后,鲤鱼结果为6,鲤鱼被存放至B寄存器,鲤鱼且A、PORKB寄存器的标志位的变化也完全正确,鲤鱼乘法器的设计符合要求。草鱼草鱼图八、加法(ADD)的仿真1草鱼图十、PORK除法(DIV)的仿真草鱼如图,鲤鱼A寄存器的值为3,鲤鱼B寄存器的值为2,鲤鱼进行一次除法(OP21,OP11)后,鲤鱼得到的商为1,鲤鱼由前面的分析我们知道余数被舍弃了,鲤鱼因此我们只保留运算的商,鲤鱼并将它存放在B寄存器中。草鱼草鱼52系统的缺陷分析草鱼这次堆栈处理器的设计大部分功能均已实现,鲤鱼且符合设计要求,鲤鱼然而还并不十分完美,鲤鱼下面我们就本系统设计的不足之处进行一下讨论。草鱼草鱼第一,鲤鱼没有添加错误报警模块,鲤鱼例如栈满和栈空时虽然有FULL和EMPTY信号,鲤鱼但是还是应该增加一个报警指示,鲤鱼当再进行入栈和出栈操作时,鲤鱼指示操作错误,鲤鱼并且控制器不执行相应的操作;PORK算术运算时,鲤鱼栈内只有一个数据时进行算术操作也应报警且拒绝算术操作;PORK此外,鲤鱼算术运算的溢出也需要报警,鲤鱼通知操作者运算溢出。草鱼这些是本设计需要改进的地方。草鱼草鱼第二,鲤鱼RAM的容量过小,鲤鱼本设计为了验证起来比较方便,鲤鱼因此只设计了一个88的RAM,鲤鱼在实际应用中这是不能满足要求的,鲤鱼所以在实际的使用中要根据应用的不同对RAM的字数和数据位数进行扩展,鲤鱼以满足相关的要求。草鱼草鱼第三,鲤鱼RAM的速度问题是堆栈处理器的一大缺陷,鲤鱼虽然增加了两个高速的寄存器A和B,鲤鱼但是在涉及到快速的数据交换应用时,鲤鱼B寄存器将会频繁和RAM经行数据交换,鲤鱼此时RAM的读写速度就限制了整个堆栈处理器的速度。草鱼草鱼第四,鲤鱼功能单一,鲤鱼只有出栈入栈和简单的加减乘除运算,鲤鱼在实际的应用中,鲤鱼这些功能远远不够,鲤鱼因此本设计还有很大的扩展空间,鲤鱼例如加入逻辑运算模块等等。草鱼草鱼六、PORK心得体会草鱼本次设计的堆栈处理器是纯粹的编写代码

温馨提示

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

最新文档

评论

0/150

提交评论