如何在VHDL中模拟堆栈或队列的行为?有什么指针吗?
我曾想过使用像bit的逻辑移位操作这样的东西,但是如何检查堆栈的空约束或堆栈溢出的情况呢?
答案 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中完善的实现......
答案 2 :(得分:1)
不要实现堆栈。使用FPGA供应商的核心。
答案 3 :(得分:0)
你可以制作一个RAM组件并将其用作FIFO,LIFO或你想要的各种数据结构。
如果你需要一个堆栈,在使RAM组件不使用地址总线之后,创建一个包含堆栈顶部地址的变量。然后用POP减少它(首先将输出发送到数据总线)并用PUSH增加它(然后将输入保存到TOS [堆栈顶部]变量)。
如果你需要更多,我可以告诉你更多...