欢迎来到天天文库
浏览记录
ID:55923250
大小:229.00 KB
页数:17页
时间:2020-06-15
《EDA课程设计堆栈设计.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、信息技术学院《可编程逻辑器件原理及应用》课程综合设计报告书姓名:简忠祥班级:B1106学号:0915110603时间:2013年12月31日指导教师:李海成设计题目堆栈设计设计要求和任务设计一个以字节形式组织的的堆栈,长度为8,设有入栈按钮、出栈和读栈按钮,执行相应操作设计过程堆栈是一种简单的数据结构,是一种只允许在其一端进行插入或删除的线性表。允许插入或删除操作的一端称为栈顶,另一端称为栈底,对堆栈的插入和删除操作被称为入栈和出栈。有一组CPU指令可以实现对进程的内存实现堆栈访问。其中,POP指令实现出栈操作,PUSH指令实现入栈操作。C
2、PU的ESP寄存器存放当前线程的栈顶指针,EBP寄存器中保存当前线程的栈底指针。CPU的EIP寄存器存放下一个CPU指令存放的内存地址,当CPU执行完当前的指令后,从EIP寄存器中读取下一条指令的内存地址,然后继续执行。在本文中,我们设计了堆栈处理器。主要分为如下几个部分:l数据子系统模块:①堆栈存储器:“先进后出”是堆栈处理器的基本功能,故在堆栈处理器设计之前我们首先需要了解入栈(PUSH)和出栈(POP)的3中情况(A、B均满/空和A空B满),及其如何实现该功能的,之后利用VHDL语言把这三种情况的实现编写出来。由于加减模块较为简单,所
3、以可以直接利用VHDL语言,把堆栈处理器的基本操作表达出来。(A、B均满/空,A空B满)。在EDA课程中我们很少用到乘法和除法运算,而且利用语言的形式也很难编写出来,故该模块我们利用《现代电子系统设计实验指导书》上的调用LPM模块的方式来编写。②运算器:由于执行各种运算所需的时间不同,故需要开始和结束信号。③数据路径:RAM及寄存器A、B的数据来源。④条件与控制点:输出及输出信号显示l控制子系统:根据数据子系统对堆栈处理器各部分的分析,利用VHDL语言编写程序,下载到FPGA实验板上,验证其功能是否满足设计要求。l其他:本次课程设计除了满足
4、上述要求外还可以额外的实现错误提示功能,及扩展数据到16位。下面会对此进行简单的分析。关键词:入栈(POP)、出栈(PUSH)、算术运算(+-×÷)、VHDL、FPGA一、任务解析:本次设计要实现如下功能:a.与外部数据线的数据交换符合堆栈要求(先进后出);b.对存储的数据能进行算术运算;c.数据位数不少于8位;d.通过数码管显示操作数据及运算结果。围绕着要实现功能,分析堆栈处理器应该具有哪些输入和输出信号,明确设计要求。1.1从堆栈角度考虑①堆栈的指示信号堆栈其实是一个能随机存取数据的存储器,它符合先进后出的原则。作为一个存储器,除了工作
5、速度外,它的首要指标是容量,设其字数为aa,每个字N位。表征存取字位置的指示信号时地址,在堆栈中称为指针SP。当指针处于栈顶时,SP=0,对应满栈,应有满栈指示信号FULL=1。设计过程当堆栈空时,指针SP=aa,应有空栈指示信号EMPTY=1。同时规定指针SP始终指向操作之前栈内有内容的位置。图1堆栈处理器指针②堆栈的操作作为堆栈它的操作只有两项,入栈PUSH和出栈POP。入栈操作PUSH后指针SP←(SP-1),出栈操作POP后指针SP←(SP+1)。若FULL=1,不能入栈PUSH,若EMPTY=1,不能出栈POP。1.2从算术运算功
6、能考虑首先应有进行算术运算的指示信号,即输出信号ADD,SUB,MUL和DIV。由于不同的运算所需的时间不同,因此必须有一个启动信号START和一个完成信号READY。堆栈中两个数据进行运算的过程如图所示。地址分别为SP和SP+1的两个数据送入运算器进行运算,运算后将结果送入地址SP+1的字中。当堆栈只有一个字时,不能进行算术运算,因此必须有一个ONE指示。当指针处于栈底时,SP=aa-1,这时堆栈只有一个字,应有指示信号ONE=1。图2堆栈处理器的运算1.3功能方框图由以上分析可以得到堆栈处理器的功能框图如下所示。图中所标注的信号时该堆栈
7、处理器和外界应有的交换信号。设计过程图3堆栈处理器功能方框图二、系统方案论证由于本系统操作时判断条件很多,用流程图描述时会有很多分支,显得很杂乱,因此在此采用VHDL语言将堆栈处理器对数据的操作方案进行描述。本语言对数字系统的描述不涉及具体实现和具体元件,属于行为处理器的描述语言。但其整个描述过程可以得到下图的框架。在此结构中,将堆栈处理器分为数据子系统和控制子系统两大部分,下面分别设计数据子系统和控制子系统。图4堆栈处理器结构方框图三、数据子系统模块数据子系统包括对数据的存储、运算、传输以及和控制子系统之间的条件和控制信号交换几大部分。下
8、面就从这几个方面来设计数据子系统,找出各部分的模块电路和它们之间的联系。3.1堆栈存储器用一块容量为aa×N的随机存取存储器RAM作为堆栈存储器,相应的地址产生器的输出即指针SP
此文档下载收益归作者所有