前言
根据网上资料,对栈的基本概念和相关操作进行简要介绍,使用Verilog设计了一个简单的栈,并进行仿真验证。
本文仅是为了让初次接触堆栈的同学对栈有初步的概念,以及对栈的Verilog实现和验证方式有所了解。
栈
栈是一种基础的数据结构,只从一端读写数据。基本特点就”后进先出“,例如顺序入栈1,2,3,4,5,再顺序出栈是5,4,3,2,1
栈的基本操作
栈的基本操作有如下几种:
- 检测栈是否为空
- 返回栈存储数据的数量
- 返回栈顶数据/返回栈顶数据并将其弹出
- 将数据压入栈
- 清空栈
相关设计和仿真TB如下图
![](https://img-blog.csdnimg.cn/20201231110759711.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzIyMTY4Njcz,size_16,color_FFFFFF,t_70)
![](https://img-blog.csdnimg.cn/20201231110938761.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzIyMTY4Njcz,size_16,color_FFFFFF,t_70)
![](https://img-blog.csdnimg.cn/20201231111026206.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzIyMTY4Njcz,size_16,color_FFFFFF,t_70)