1 / 20
文档名称:

EDA课程设计堆栈设计.docx

格式:docx   大小:182KB   页数:20页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

EDA课程设计堆栈设计.docx

上传人:小雄 2021/10/17 文件大小:182 KB

下载得到文件列表

EDA课程设计堆栈设计.docx

相关文档

文档介绍

文档介绍:信息技术学院
《可编程逻辑器件原理及应用》课程
综合设计报告书

名:-
简忠祥

级:_
B1106

号:_
0915110603

间:_
2013年12月31日
指导教师:
李海成
设计
题目
堆栈设计
设 计 要 求 和 任 务
设计一个以字节形式组织的的堆栈,长度为8,设有入栈按钮、 出栈和读栈按钮,执行相应操作
堆栈是一种简单的数据结构,是一种只允许在其一端进行插入或删除 的线性表。允许插入或删除操作的一端称为栈顶,另一端称为栈底,对 堆栈的插入和删除操作被称为入栈和出栈。有一组CPU指令可以实现 对进程的内存实现堆栈访问。其中,POP指令实现出栈操作,PUSH指 令实现入栈操作。CPU的ESP寄存器存放当前线程的栈顶指针,EBP 寄存器中保存当前线程的栈底指针。CPU的EIP寄存器存放下一个CPU 指令存放的内存地址,当CPU执行完当前的指令后,从EIP寄存器中 读取下一条指令的内存地址,然后继续执行。
在本文中,我们设计了堆栈处理器。主要分为如下几个部分:
•数据子系统模块:①堆栈存储器:“先进后出”是堆栈处理器的基本 功能,故在堆栈处理器设计之前我们首先需要了解入栈(PUSH)和 出栈(POP)的3中情况(A、B均满/空和A空B满),及其如何实 现该功能的,之后利用VHDL语言把这三种情况的实现编写出来。 由于加减模块较为简单,所以可以直接利用VHDL语言,把堆栈处 理器的基本操作表达出来。(A、B均满/空,A空B满)。在EDA课 程中我们很少用到乘法和除法运算,而且利用语言的形式也很难编 写出来,故该模块我们利用《现代电子系统设计实验指导书》上的 调用LPM模块的方式来编写。②运算器:由于执行各种运算所需的 时间不同,故需要开始和结束信号。③数据路径:RAM及寄存器A、 B的数据来源。④条件与控制点:输出及输出信号显示
•控制子系统:根据数据子系统对堆栈处理器各部分的分析,利用 VHDL语言编写程序,下载到FPGA实验板上,验证其功能是否满 足设计要求。
•其他:本次课程设计除了满足上述要求外还可以额外的实现错误提 示功能,及扩展数据到16位。下面会对此进行简单的分析。
关键词:入栈(POP)、出栈(PUSH)、算术运算(+ —X:)、VHDL、
FPGA
一、任务解析:
本次设计要实现如下功能:
与外部数据线的数据交换符合堆栈要求(先进后出);
对存储的数据能进行算术运算;
数据位数不少于8位;
通过数码管显示操作数据及运算结果。
围绕着要实现功能,分析堆栈处理器应该具有哪些输入和输出信号, 明确设计要求。

①堆栈的指示信号堆栈其实是一个能随机存取数据的存储器,它 符合先进后出的原则。作为一个存储器,除了工作速度外,它的首要指 标是容量,设其字数为aa,每个字N位。表征存取字位置的指示信号时 地址,在堆栈中称为指针SPo
当指针处于栈顶时,SP=0,对应满栈,应有满栈指示信号FULL=lo
当堆栈空时,指针SP=aa,应有空栈指示信号EMPTY=lo同时规定 指针SP始终指向操作之前栈内有内容的位置。
②堆栈的操作作为堆栈它的操作只有两项,入栈PUSH和出栈POPo 入栈操作PUSH后指针SP-(SP-l),出栈操作POP后指针SP-(SP+1)。 若FULL=1,不能入栈PUSH,若EMPTY=1,不能出栈POP。

首先应有进行算术运算的指示信号,即输出信号ADD,SUB,MUL和 DIVo由于不同的运算所需的时间不同,因此必须有一个启动信号 START和一个完成信号READY。堆栈中两个数据进行运算的过程如图 所示。地址分别为SP和SP+1的两个数据送入运算器进行运算,运算后 将结果送入地址SP+1的字中。
当堆栈只有一个字时,不能进行算术运算,因此必须有一个ONE指示。 当指针处于栈底时,SP=aa-l,这时堆栈只有一个字,应有指示信号 ONE=lo
图2堆栈处理器的运算

由以上分析可以得到堆栈处理器的功能框图如下所示。图中所标注的信 号时该堆栈处理器和外界应有的交换信号。
AM —
SUB -*
f FULL
—EMPTY
f ONE
―READY
f RESET
f START
MUL -*
DIV -*
PUSH—
图3堆栈处理器功能方框图
二、系统方案论证
由于本系统操作时判断条件很多,用流程图描述时会有很多分支, 显得很杂乱,因此在此采用VHDL语言将堆栈处理器对数据的操作方案 进行描述。
本语言对数字系统的描述不涉及具体实现和具体元件,属于行为处 理器的