Простой вопрос: я построил симулятор квазипроцессора, который использует граф приоритетов, определяет приоритеты (и «готовые» инструкции), планирует задачи на доступных функциональных модулях и т. д. В значительной степени очень простой симулятор.
Но я понял, что должен был построить его поверх механизма DES, поскольку у меня нет возможности (кроме установки флага и проверки каждого узла на каждом «такте») для того, чтобы сказать что-то вроде «За 10 циклов сделайте это» ( т.е. подача сигналов в заранее определенное время и обработка событий, которые должны произойти в будущем или когда будут выполнены заранее определенные критерии).
Очевидно, я мог бы реализовать это сам; построил класс «событие», поместил их в очередь и в конце (или начале) каждого цикла проверял очередь и смотрел, что там происходит, но я полагаю, что нет смысла изобретать велосипед.
Таким образом, сложные сетевые симуляторы, очевидно, являются излишними. Мне не нужно причудливое моделирование, очереди или что-то в этом роде. Все, что мне нужно, это встроенные часы и возможность устанавливать события, поднимать флаги, когда что-то происходит, и т. д., как я описал выше.
Бесплатное ПО и C++ было бы здорово.
У кого-нибудь есть идеи? (Самое близкое, к чему я подошел — благодаря некоторым другим, несколько связанным вопросам — это то, что называется SIMLIB.)
Большое спасибо!