Симулятор цифровых схем на расписании задержек
Изменяемые провода, отложенные действия логических элементов, упорядоченное расписание и полусумматор, реагирующий после задержки распространения.
Как локальные правила логических элементов объединяются в схему, чье поведение разворачивается через явное модельное время?
- Хранение одного сигнала и списка действий внутри каждого провода
- Запуск действий провода только при реальном изменении сигнала
- Планирование обновлений элементов на момент текущего времени плюс фиксированная задержка
- Распространение событий плана действий в неубывающем модельном времени
- Композиция базовых логических элементов в полусумматор без центральной логики схемы
Провод содержит сигнал и список процедур действий. Установка логического элемента добавляет действие к каждому входному проводу и запускает его один раз для планирования начального вывода. Позже set-signal! вызывает эти действия только тогда, когда сигнал изменяется. Каждый логический элемент считывает свои текущие входы немедленно, но планирует изменение выхода на более позднее время в плане действий.
Полусумматор строится из элементов or, and, inverter и еще одного элемента and. Конечное расписание сначала устанавливает нулевые входы, а затем изменяет a, b и снова a. Зафиксированные моменты времени представляют собой точные события симуляции, полученные из явных задержек в этой модели.
- Вывод
- —
- Значение
- —
- Диагностика
- —
Программа inverter возвращает (2 1 4 0). Программа half-adder возвращает ((initial 5 0 0) (a-one 13 1 0) (both-one 21 0 1) (a-zero 29 1 0)).
Отделяйте немедленное чтение входов от отложенных изменений выходов. Проследите за упорядоченной вставкой в план действий, каждым обновлением current-time и действиями провода, вызванными изменением сигнала. В полусумматоре определите, какой базовый логический элемент планирует каждый переход в sum и carry.
Измените программу и сравните результат.
Добавьте второй полусумматор и элемент or для построения полного сумматора. Подайте три конечные комбинации входов, запишите модельное время и объясните, какие переходы выхода имеют общее время, но происходят из разных запланированных событий.
Показать подсказку
Полный сумматор объединяет два полусумматора и выполняет операцию OR над их выходами carry. Сохраняйте все задержки явными вместо централизованного вычисления таблицы истинности.