|
|
|||||
Регистрация: May 2007
Сообщений: 232
|
Эмулятор комбинационной схемы
Добрый день!
Наверняка каждый из Вас в университете или школе рассматривал комбинационные схемы. Передо мной стоит задача разработать приложение, позволяющее создавать, и самое ужасное - симулировать их. Для того чтобы было понятнее, я приведу пример во вложении. Допустим у нас есть 2 кнопки генерирующие логический 0, либо 1 в зависимости нажаты ли они. Выходы этих клавиш поступают в блок логического "И", который в зависимости от входных данных формирует на выходе 0, либо 1. Мне нужно создать редактор, позволяющий эмулировать подобные процессы, только элементов там будет значительно больше. В качестве примера можно привести Electronic WorkBench под винду. Как реализовать интерфейс и связи между элементами я знаю, но как производить симуляцию сцемы - понятия не имею. Может кто-то сталкивался и хотя бы подскажет в каком направлении компать. Т.к. для меня важна только идея - код я реализую если алгоритм будет понятен. Заранее благодарен. |
|
|||||
|
|
|||||
.
|
А D-триггеры тоже будут? =)
silin, что это? Там, похоже тема из обычной корпусной электроники 70-х годов. И, ИЛИ, ИЛИ-НЕ, ИСКЛ-И(ИЛИ), RS-ТРИГЕРЫ, C-ТРИГГЕРЫ, регистры, мультиплексоры, счетчики и в таком духе. Последний раз редактировалось dimarik; 08.06.2009 в 01:39. |
|
|||||
Регистрация: May 2007
Сообщений: 232
|
Спасибо за ссылку. Дело в том, что я первым делом в википедию и пошел искать ответы. Принцип действия логических элементов я знаю, сложность для меня состоит в создании эмулятора такой схемы.
Мне нужно на входе установить виртуальное устройство типа кнопки, подающей сигнал и визуально наблюдать его прохождение. А на выходе установить, что-то типа лампочки и видеть функционирование схемы. Добавлено: Нашел внизу страницы, которую дал silin: http://www.neuroproductions.be/logic...ndex.php?id=52 То что нужно, знать бы как это реализовано... Последний раз редактировалось Роман Вадимович; 08.06.2009 в 02:48. |
|
|||||
http://code.google.com/p/as3ds/ - возможно, поможет. Особенно не всматривался, что туда входит.
__________________
Дело не в тебе |
|
|||||
Регистрация: May 2007
Сообщений: 232
|
Cпасибо, пригодится любая информация!
|
|
|||||
Регистрация: May 2009
Сообщений: 10
|
У вас типичная задача для систем автоматизированного проектирования (САПР). То, что вы хотите реализовать, это моделирование систем на макро-уровне.
Можете прочитать про это в книге И.П. Норенкова "Основы автоматизированного проектирования", ну, или, например, в лекциях В.В. Топоркова Если вкратце, то первоначально, вам необходимо построить модель комбинационной схемы, например, в виде графа. Впоследствии применяя метод простых итераций или метод Зейделя решаете задачу определения состояний комбинационной схемы в 0,1, и в переходах 0->1,1->0. Определяете выходные значения(а заодно статические и динамические риски сбоев ). Однако, эти методы достаточно требовательны к памяти и вычислений многовато, можно воспользоваться модификацией методов на основе событийной модели(это когда создаётся специальный блок, следящий за изменением событий на выходе элементов и пересчитывает только в том случае, если имело место изменения состояния выхода). Заодно сможете и задержки просчитать. |
|
|||||
Регистрация: May 2007
Сообщений: 232
|
Цитата:
Если рассмотреть элементарный пример в приложении, то мы видим 2 кнопки (источники сигнала), логический элемент "ИЛИ" и графичекий индикатор. Принцип расчета я пока вижу следующим образом: 1) Циклически перебираем все элементы, являющиеся генераторами сигнала (в данном случае 2 кнопки). 2) Берем первый и устанавливаем его значение на всех входах, элементов подключенных к нему. 3) Пытаемся эмуляровать дальше и видим, что у элемента "ИЛИ" известно значение только первого входа, поэтому берем следующий генератор сигнала и повторяем пункт 2. 4) При подаче второго сигнала на входы элемента "ИЛИ" - мы можем двигаться дальше. 5) Получаем выходное значение и зажигаем либо тушим лампочку. Это все, что я пока могу полагать - не знаю является ли этот алгоритм универсальным, поэтому мне остается только начать изучение книг предложенных, wizardjedi. Спасибо за помощь. |
|
|||||
Зачем циклически опрашивать? Есть четыре объекта (в данном случае): два входа, логический элемент, выход. Лампочка запрашивает сигнал с выхода, выход запрашивает логичекий элемент, логический элемент опрашивает свои входы, входы запрашивают состояние своих кнопок.Все
|
Часовой пояс GMT +4, время: 04:08. |
|
« Предыдущая тема | Следующая тема » |
|
|