![]() |
Эмулятор комбинационной схемы
Вложений: 1
Добрый день!
Наверняка каждый из Вас в университете или школе рассматривал комбинационные схемы. Передо мной стоит задача разработать приложение, позволяющее создавать, и самое ужасное - симулировать их. Для того чтобы было понятнее, я приведу пример во вложении. Допустим у нас есть 2 кнопки генерирующие логический 0, либо 1 в зависимости нажаты ли они. Выходы этих клавиш поступают в блок логического "И", который в зависимости от входных данных формирует на выходе 0, либо 1. Мне нужно создать редактор, позволяющий эмулировать подобные процессы, только элементов там будет значительно больше. В качестве примера можно привести Electronic WorkBench под винду. Как реализовать интерфейс и связи между элементами я знаю, но как производить симуляцию сцемы - понятия не имею. Может кто-то сталкивался и хотя бы подскажет в каком направлении компать. Т.к. для меня важна только идея - код я реализую если алгоритм будет понятен. Заранее благодарен. |
|
А D-триггеры тоже будут? =)
silin, что это? Там, похоже тема из обычной корпусной электроники 70-х годов. И, ИЛИ, ИЛИ-НЕ, ИСКЛ-И(ИЛИ), RS-ТРИГЕРЫ, C-ТРИГГЕРЫ, регистры, мультиплексоры, счетчики и в таком духе. |
Спасибо за ссылку. Дело в том, что я первым делом в википедию и пошел искать ответы. Принцип действия логических элементов я знаю, сложность для меня состоит в создании эмулятора такой схемы.
Мне нужно на входе установить виртуальное устройство типа кнопки, подающей сигнал и визуально наблюдать его прохождение. А на выходе установить, что-то типа лампочки и видеть функционирование схемы. Добавлено: Нашел внизу страницы, которую дал silin: http://www.neuroproductions.be/logic...ndex.php?id=52 То что нужно, знать бы как это реализовано... |
http://code.google.com/p/as3ds/ - возможно, поможет. Особенно не всматривался, что туда входит.
|
Cпасибо, пригодится любая информация!
|
У вас типичная задача для систем автоматизированного проектирования (САПР). То, что вы хотите реализовать, это моделирование систем на макро-уровне.
Можете прочитать про это в книге И.П. Норенкова "Основы автоматизированного проектирования", ну, или, например, в лекциях В.В. Топоркова ;) Если вкратце, то первоначально, вам необходимо построить модель комбинационной схемы, например, в виде графа. Впоследствии применяя метод простых итераций или метод Зейделя решаете задачу определения состояний комбинационной схемы в 0,1, и в переходах 0->1,1->0. Определяете выходные значения(а заодно статические и динамические риски сбоев ;) ). Однако, эти методы достаточно требовательны к памяти и вычислений многовато, можно воспользоваться модификацией методов на основе событийной модели(это когда создаётся специальный блок, следящий за изменением событий на выходе элементов и пересчитывает только в том случае, если имело место изменения состояния выхода). Заодно сможете и задержки просчитать. :) |
>>silin, что это?
наводящий вопрос..:) я банально не понял, в чем собственно проблема, если "реализовать интерфейс и связи между элементами" не вопрос, то в чем затык ? |
Вложений: 1
Цитата:
Если рассмотреть элементарный пример в приложении, то мы видим 2 кнопки (источники сигнала), логический элемент "ИЛИ" и графичекий индикатор. Принцип расчета я пока вижу следующим образом: 1) Циклически перебираем все элементы, являющиеся генераторами сигнала (в данном случае 2 кнопки). 2) Берем первый и устанавливаем его значение на всех входах, элементов подключенных к нему. 3) Пытаемся эмуляровать дальше и видим, что у элемента "ИЛИ" известно значение только первого входа, поэтому берем следующий генератор сигнала и повторяем пункт 2. 4) При подаче второго сигнала на входы элемента "ИЛИ" - мы можем двигаться дальше. 5) Получаем выходное значение и зажигаем либо тушим лампочку. Это все, что я пока могу полагать - не знаю является ли этот алгоритм универсальным, поэтому мне остается только начать изучение книг предложенных, wizardjedi. Спасибо за помощь. |
Зачем циклически опрашивать? Есть четыре объекта (в данном случае): два входа, логический элемент, выход. Лампочка запрашивает сигнал с выхода, выход запрашивает логичекий элемент, логический элемент опрашивает свои входы, входы запрашивают состояние своих кнопок.Все
|
| Часовой пояс GMT +4, время: 20:21. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.