Como implementar estruturas de dados como pilha / fila em VHDL?
-
11-09-2019 - |
Pergunta
Como posso simular o comportamento de uma pilha ou uma fila em VHDL? Os ponteiros?
Eu tinha pensado em usar alguma coisa como operação de deslocamento lógico de bits mas como verificar as restrições de pilha estar vazio ou o caso de estouro de pilha?
Solução
Você pode começar por ler Peter Ashenden livro "O Guia do Designer para VHDL". No capítulo 19, ele implementa uma rede de filas e ele vai longamente para explicar como implementar filas em VHDL. Você pode obter os arquivos VHDL para que o livro em: http: // www. csee.umbc.edu/help/VHDL/ashenden/ch_19/
Outras dicas
Você vai querer implementar um FIFO se você estiver trabalhando em VHDL / Verilog. Se isso vai ser instanciado em um FPGA real, você vai modelar a FIFO com ponteiros de leitura e gravação para a memória RAM bloco no FPGA. Confira uma implementação bem desenvolvida no OpenCores ...
Do not implementar uma pilha. Use núcleo do fornecedor FPGA.
Você pode fazer um componente RAM e usá-lo como FIFO, LIFO ou qualquer tipo de estrutura de dados que deseja.
Se você precisa de um Stack, depois de fazer RAM Componente não usar ônibus Endereço para ele, fazer uma variável que contêm Top Of endereço Stack. depois com POP diminuí-lo (primeiro enviar a saída para barramento de dados) e com push aumentá-la (então salvar a entrada para TOS [topo da pilha] Variável).
Se você precisa mais que eu posso lhe dizer mais ...