如何在VHDL中实现堆栈/队列等数据结构?

时间:2009-02-28 06:19:01

标签: vhdl

如何在VHDL中模拟堆栈或队列的行为?有什么指针吗?

我曾想过使用像bit的逻辑移位操作这样的东西,但是如何检查堆栈的空约束或堆栈溢出的情况呢?

4 个答案:

答案 0 :(得分:4)

您可以先阅读Peter Ashenden的书“VHDL设计师指南”。 在第19章,他实现了一个排队网络,他详细解释了如何在VHDL上实现队列。 您可以在http://www.csee.umbc.edu/help/VHDL/ashenden/ch_19/

获取该书的VHDL文件

答案 1 :(得分:3)

如果您使用的是VHDL / Verilog,则需要实现FIFO。如果要在实际的FPGA中实例化,您将使用读取和写入指针对FIFO进行建模,以阻止FPGA中的RAM。查看OpenCores中完善的实现......

http://opencores.org/project,versatile_fifo

答案 2 :(得分:1)

不要实现堆栈。使用FPGA供应商的核心。

答案 3 :(得分:0)

你可以制作一个RAM组件并将其用作FIFO,LIFO或你想要的各种数据结构。

如果你需要一个堆栈,在使RAM组件不使用地址总线之后,创建一个包含堆栈顶部地址的变量。然后用POP减少它(首先将输出发送到数据总线)并用PUSH增加它(然后将输入保存到TOS [堆栈顶部]变量)。

如果你需要更多,我可以告诉你更多...