2012-07-01 11 views
5

Простой вопрос: Я построил квазипроцессорный симулятор, который берет график приоритета, определяет приоритеты (и «готовые» инструкции), расписывает задачи на доступных функциональных блоках и т. Д. Довольно очень простой симулятор.Простая библиотека моделирования дискретных событий (C++) для планирования процессов/задач?

Но я понял, что должен был построить его поверх механизма DES, так как у меня нет возможности (кроме установки флага и проверки каждого узла на каждом «такте») для высказывания таких вещей, как «В 10 циклах, сделайте это »(т. е. поднимая сигналы в заранее определенные моменты времени и обрабатывая события, которые должны произойти в будущем или когда были определены заранее определенные критерии).

Я мог бы реализовать это сам; построил класс «событие», вставил их в очередь и в конце (или начале) каждого цикла проверил очередь и посмотрел, что там происходит, но я считаю, что нет смысла изобретать колесо.

Таким образом, сложные сетевые симуляторы, очевидно, переполнены. Мне не нужно модное моделирование или очередность или что-то в этом роде. Все, что мне нужно, это встроенные часы, а также возможность устанавливать события, поднимать флаги, когда это происходит, и т. Д., Как я описал выше.

Freeware и C++ были бы замечательными.

У кого-нибудь есть идеи? (Ближайший я пришел - благодаря некоторым другим некоторым связанным вопросам - это что-то вроде SIMLIB.)

Большое вам спасибо!

+0

Если вы уже внедрили планировщик задач, не могли ли вы позволить событиям таймера быть другой задачей? – jxh

+0

+1 за попытку избежать перекручивания колес. Из вашего вопроса кажется, что вам хотелось бы добавить дополнительные функции из механизма DES (в противном случае это не что иное, как цикл и отсортированный список событий, поэтому использование _any_ конкретной библиотеки, похоже, слишком велико), так что еще вам нужно? Масштабируемость (параллельное моделирование)? Поддержка случайных распределений/RNG? Предпочитаете ли вы конкретное мировоззрение (например, см. Http://www.informs-sim.org/wsc10papers/019.pdf)? –

+0

Извините за задержку в ответе! Задачи планировщика не записываются в общем виде. События на основе таймера потребуют значительного вмешательства, и все дело в том, чтобы не изобретать велосипед. – user770901

ответ

0

Вы можете попробовать Open Virtual Platforms (OVP). Кажется, он предоставляет тип симулятора, который вы ищете.

0

Попробуйте SystemC, это бесплатная библиотека. Я бы предупредил, что это не «open-source», поскольку лицензия не совместима с FOSS.

+0

Да, нет, спасибо. Я смотрел SystemC для других вещей - именно FPGA-дизайн - и в этом тоже не получается. Весь проект кажется/бесполезным. Я ценю время, когда вы должны ответить, но меня это не интересует. Несмотря на это, это безумно переполняет то, что я хочу сделать. Настройка того, что составляет поведенческое описание моей системы, не имеет особого смысла. – user770901

Смежные вопросы