2

如何在 VHDL 中模拟堆栈或队列的行为?任何指针?

我曾想过使用诸如位的逻辑移位操作之类的东西,但是如何检查堆栈为空的约束或堆栈溢出的情况?

4

4 回答 4

4

您可以从阅读 Peter Ashenden 的书“The Designer's Guide to VHDL”开始。在第 19 章中,他实现了一个排队网络,并详细解释了如何在 VHDL 上实现队列。您可以在以下网址获取该书的 VHDL 文件:http ://www.csee.umbc.edu/help/VHDL/ashenden/ch_19/

于 2009-04-15T05:00:12.020 回答
3

如果您使用 VHDL/Verilog 工作,您将需要实现 FIFO。如果这要在实际的 FPGA 中实例化,您将使用 FPGA 中的块 ram 的读写指针对 FIFO 建模。在 OpenCores 上查看一个完善的实现...

http://opencores.org/project,versatile_fifo

于 2011-02-11T19:50:09.820 回答
1

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

于 2011-03-21T16:31:15.497 回答
0

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

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

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

于 2012-02-01T05:41:22.693 回答