У других есть хорошие прямые ответы, но я собираюсь предложить альтернативу. Если я вас правильно понимаю, вам нужна система на C ++ или такая, где вы можете публиковать события, которые срабатывают в будущем, и код запускается, когда эти события срабатывают.
У меня был такой проект, и я начал пытаться написать такую систему событий на C ++, а затем быстро понял, что у меня есть лучшее решение.
Рассматривали ли вы написание вашей программы в поведенческом Verilog? Это может показаться странным при написании программного обеспечения на языке описания аппаратных средств, но симулятор Verilog - это система, основанная на событиях, а поведенческий Verilog - очень удобный способ выражения событий, времени, триггеров и т. Д. Существует бесплатный симулятор Verilog что я и использовал) называется Icarus Verilog. Если вы не используете Ubuntu или какой-либо дистрибутив Linux с Icarus, который уже находится в пакете, сборка из исходного кода проста.