Как реализовать структуры данных, такие как стек / очередь в VHDL? - PullRequest
2 голосов
/ 28 февраля 2009

Как я могу имитировать поведение стека или очереди в VHDL? Есть указатели?

Я думал об использовании чего-то вроде операции логического сдвига битов, но как проверить ограничения пустого стека или случай переполнения стека?

Ответы [ 4 ]

4 голосов
/ 15 апреля 2009

Вы можете начать с чтения книги Питера Ашендена "Руководство дизайнера по VHDL". В главе 19 он реализует сеть массового обслуживания и подробно рассказывает, как реализовать очереди в VHDL. Вы можете получить файлы VHDL для этой книги по адресу: http://www.csee.umbc.edu/help/VHDL/ashenden/ch_19/

3 голосов
/ 11 февраля 2011

Вы захотите внедрить FIFO, если вы работаете в VHDL / Verilog. Если это будет реализовано в реальной FPGA, вы будете моделировать FIFO с указателями чтения и записи, чтобы блокировать оперативную память в FPGA. Проверьте хорошо разработанную реализацию в OpenCores ...

http://opencores.org/project,versatile_fifo

1 голос
/ 21 марта 2011

Не реализуйте стек. Используйте ядро ​​производителя FPGA.

0 голосов
/ 01 февраля 2012

вы можете создать компонент RAM и использовать его в качестве FIFO, LIFO или любого типа структуры данных, которую вы хотите.

если вам нужен стек, после того, как компонент RAM не использует для него адресную шину, создайте переменную, содержащую адрес Top Of Stack. затем с помощью POP уменьшите его (сначала отправьте вывод в шину данных), а с помощью PUSH увеличьте его (затем сохраните вход в переменную TOS [top of stack]).

если тебе нужно больше, я могу рассказать тебе больше ...

...