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