Контроллер Ричардса
Эта статья нуждается в дополнительных цитатах для проверки . ( февраль 2017 г. ) |
Контроллер Ричардса — это метод реализации конечного автомата с использованием простых интегральных схем и комбинационной логики . Метод был назван в честь его изобретателя Чарльза Л. Ричардса. Это позволяет упростить проектирование сложных конечных автоматов, чем традиционные методы диаграмм состояний , таблиц переходов состояний и булевой алгебры. Используя технику Ричардса, становится проще реализовать конечные автоматы с сотнями или даже тысячами состояний.
Благодаря способности контроллера Ричардса легко масштабироваться для использования многих состояний, его можно использовать во многих практических приложениях.
История
[ редактировать ]Контроллер Ричардса был разработан из-за необходимости более простого метода проектирования конечных автоматов, чем использование традиционного метода диаграмм состояний, таблиц переходов состояний и логической минимизации. В то время, [ когда? ] многие компьютерные инструменты минимизации логики , которые мы имеем сегодня [ когда? ] не существовало. Следовательно, логическая минимизация по большей части ограничивалась использованием карт Карно и закона ДеМоргана . По этой причине Чарльз Л. Ричардс изобрел метод реализации конечного автомата, который не нуждался в явной таблице перехода состояний. Он опубликовал свои выводы в февральском номере журнала Electronics за 1973 год . [ нужна ссылка ] Его обобщенная реализация стала популярной и к 1980-м годам считалась классическим методом проектирования. Хотя маловероятно, что коммерческие продукты, встречающиеся сегодня, содержат классический контроллер Ричардса (поскольку сейчас существуют более быстрые конструкции, чем те, которые используют загружаемые счетчики), существует большая вероятность использования модифицированного контроллера Ричардса или конструкции, полученной на основе контроллера Ричардса. [ нужна ссылка ] .
Блок-схема Ричардса
[ редактировать ]Контроллер Ричардса представляет собой машину Мили , поскольку его выходной сигнал зависит как от текущего состояния, так и от входных данных. Однако Ричардс разработал свой собственный метод представления состояний с использованием блок-схемы вместо диаграммы состояний . Каждое состояние представлено на блок-схеме как условие передачи. Каждое условие имеет два исходящих из него пути управления: ДА или НЕТ. Условие — ДА или НЕТ (ИСТИНА или ЛОЖЬ) на основе одного бита, введенного в машину. (Ричардс, стр. 108) В зависимости от того, что является входными данными для условия, будет выполнена одна из двух передаточных функций, связанных с этим условием. Машина считает выполнение функции установкой выхода одного контакта на устройстве, это можно использовать для запуска комбинационной логики. После выполнения передаточной функции машина перейдет в новое состояние, каждая передаточная функция явно или неявно определяет новое состояние для перехода. Неявное определение состояния также можно назвать значением по умолчанию, поскольку оно происходит без каких-либо дополнительных схем со стороны разработчика. Если условие равно ДА, то происходит численный переход к следующему состоянию. Например, если вы находитесь в состоянии 0 и возникает ДА, вы перейдете в состояние 1. Если условие НЕТ, то машина останется в своем текущем состоянии. Используя такое поведение, можно создать машину с простой последовательной блок-схемой. Конечно, последовательная машина обычно не очень полезна, к счастью, есть способ перейти в неупорядоченные состояния, используя так называемый скачок. Для реализации перехода требуется дополнительное оборудование для выбора состояния назначения. Точное оборудование зависит от выполняемой функции.
Ядро контроллера
[ редактировать ]Ядро контроллера Ричардса можно разделить на четыре части: счетчик, мультиплексор и два декодера. Простой контроллер можно построить с использованием классических логических интегральных схем ТТЛ серии 7400. Используемый счетчик — 74163, мультиплексор — 74151, а два декодера — часть 7442. [1] Выход счетчика выбирает, какой бит со входа мультиплексора должен быть отправлен на выход Y (инверсный бит отправляется на выход WN). Если Y высокий, то счетчику разрешено увеличиваться, в противном случае он не увеличивается. . Аналогично, Y должен быть высоким, чтобы активировать выходы функции ДА, поскольку вход D на декодере подключен к WN, в то время как он должен быть низким, чтобы активировать выходы функции НЕТ, поскольку вход D на этом декодере установлен на Y. Чтобы выполнить для перехода необходимо установить бит LDN на счетчике и входах A, B, C и D. LDN сообщает счетчику загрузить значение на входы A, B, C и D. Используя некоторую комбинационную логику, вы можете загрузить значение в счетчик для определенных функций, но не для других, а также указать адрес состояния для загрузки, учитывая, какая функция активна. Для этого нужно просто построить таблицу функций и состояний, в которые они должны перейти, а затем найти выражение булевой алгебры для каждого бита, составляющего адрес состояния, в которое нужно перейти.
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Чарльз Л. Ричардс, Простой способ разработки сложных программных контроллеров. Электроника, 107–113, февраль 1973 г.
- Ричардс, Чарльз Л.; Простой способ проектирования сложных программных контроллеров . Электроника, 1 (февраль 1973 г.): 107–113.
- Уэйкерли, Джон Ф.; Цифровой дизайн – 3-е издание. Река Аппер-Сэддл, Нью-Джерси: Prentice-Hall Inc., 2001.