Distributed Stacks and Queues in Verilog

As part of the BondMachine Project, we have developed a distributed stack (and queue) in Verilog. These data structures are essential for the implementation of the BondMachine architecture. The stack (and queue) are implemented in a distributed manner to allow for concurrent access by multiple agents. Moreover, the HDL code is generated and customized via a golang library called bmstack and its associated command-line tool sharing the same name.

The library is general enough to be used standalone to create code for other Verilog projects, and it is available as standard tool in the BondMachine Project. See the Quick start section for more details on how to obtain it.

Alternatively, the library code can be found on GitHub at https://github.com/BondMachineHQ/BondMachine/tree/main/pkg/bmstack and the command-line tool at https://github.com/BondMachineHQ/BondMachine/tree/main/cmd/bmstack.

The docs are either available on the BondMachine website or in the GitHub repository.

Issues and contributions are welcome!