Добавлен: 10.02.2019
Просмотров: 3451
Скачиваний: 44
0 |
0 |
|
1 |
Д анная форма табличной записи не является каноническая, так как здесь не конкретизируется значение переменной , но из нее можно сделать вывод, что аналитическая связь между значениями функции и должна иметь вид . Таким образом, дешифратор со стробированием может быть построен с использованием обычного дешифратора выходные сигналы которого обрабатываются в элементах 2И совместно с сигналом стробирования.
Время задержки в такой схеме будет порядка ( в дешифраторе и в элементе И). Это объясняется тем, что обработка сигналов осуществляется последовательно. На первом этапе формируется выходной сигнал дешифратора, а затем реализуется его конъюнкция с сигналом стробирования. Аналитическая запись этой процедуры выглядит следующим образом .
П овысить быстродействие можно перейдя к параллельной обработке соответствующих сигналов, для чего в приведенном выражении требуется раскрыть скобки. В итоге получится система уравнений, которой будет соответствовать следующая схема дешифратора-демультиплексора с задержкой формирования выходного сигнала - .
В составе серий цифровых микросхем выпускается большой ассортимент дешифраторов, маркируемых буквами ИД:
К155ИД3 – дешифратор-демультиплексор 4→16; К155ИД4 – комбинированный дешифратор-демультиплексор 2→4, либо 3→8; К555ИД6 – дешифратор 4→10 (неполный); К1533ИД7 - дешифратор-демультиплексор 3→8; К555ИД10 - дешифратор 4→10 (выходы с открытым коллектором) и т.д.
При необходимости создания дешифраторов большой разрядности помимо рассмотренного подхода, подразумевающего их построение на логических элементах, можно использовать готовые функционально законченные узлы.
Пусть требуется реализовать дешифратор 3→8 на основе дешифраторов-демультиплексоров 2→4. Количество необходимых узлов можно в первом приближении оценить путем деления числа выходов у проектируемого дешифратора на их количество у каждого из исходных модулей. Однако, у дешифратора 3→8 число управляющих входов – 3, а у каждого из исходных по два и дополнительный вход стробирования. Таким образом основным здесь является вопрос объединения модулей в систему.
Т аблица, описывающуая связь номера активизированного выхода дешифратора 3→8 с входной кодовой комбинации выглядит следующим образом. Если младшие разряды подать на входы одного из дешифраторов 2→4, то на первых четырех наборах переменных он будет функционировать в соответствии с логикой работы дешифратора 3→8. Однако, так как на остальных наборах значения переменных станут повторяться, то на выходах этого дешифратора вновь начнут появляться единичные сигналы, которых не должно быть, если он входит в состав дешифратора 3→8.
Данную проблему можно решить, заблокировав работу дешифратора 2→4 на соответствующих наборах переменных. Для этого на его вход стробирования необходимо подать сигнал логического нуля. Второй дешифратор 2→4 должен вступить в работу при и тех же комбинациях переменных . Их потребуется подать на его входы управления, а на вход стробирования - логический ноль при и единицу в случае . Таким образом, схема дешифратора 3→8 будет иметь вид.
4.2 Преобразователи кода.
При решении ряда практических задач, в частности определении двоичного кода номера устройства, сформировавшего на соответствующей линии сигнал, к примеру логической единицы, требуется преобразовать кодовую комбинацию из унитарного кода в двоичный. Эта процедура обратна той, которую выполняет дешифратор.
Так как большинство логических элементов не обладают свойством обратимости и на их активные выходы не допускается подача сигналов, то для решения данной задачи необходимо проектирование специального устройства, которое относится к классу преобразователей кодов.
Т аблица его функционирования для восьмиразрядного входного кода выглядит следующим образом. Хотя количество возможных комбинаций входных сигналов 256, она содержит всего 8 строк, так как иных комбинаций, чем представленные, в унитарном коде не существует. Отсюда следует, что набор выходных функций такого устройства относится к классу недоопределенных.
Применение карт Карно для их представления в алгебраической форме нецелесообразно, из-за их сложности вследствие большого количества компонент. В таких случаях удобнее использовать нестандартные подходы, позволяющие получить в алгебраическом виде одну из возможных форм связи между входными и выходными переменными. При этом гарантий того, что она окажется минимальной не будет. Однако, имея результат, его в дальнейшем можно трансформировать с целью оптимизации.
И з анализа таблицы видно, что функция становится равной единице когда либо принимают единичные значения, а остальные переменные обращаются в нуль. При этом из-за недоопределенности можно считать, что на всех остальных наборах переменных также равна нулю.
Т огда выражения для нее и остальных выходных функций преобразователя кода представленные в дизъюнктивной нормальной форме будут выглядеть следующим образом. Эти же функции можно представить и в конъюнктивной форме. Здесь в выражения входят логические произведения инверсий переменных при единичном значении которых функция обращается в нуль.
Рассматривая работу цифровых устройств с несколько иной точки зрения, их можно использовать для реализации, на первый взгляд не свойственных им функций. Рассмотрим таблицу, описывающую работу преобразователя унитарного кода логических единиц в двоичный и обратное преобразование, выполняемое дешифратором.
Если кодовые комбинации, представленные в строках таблицы, представлять не как наборы нулей и единиц, а как двоичные коды чисел, то преобразователь кода ставит в соответствие числам 1,2,4,8, и т.п. числа 0,1,2,3..., являющиеся показателями степени в которую требуется возвести двойку, чтобы получить исходное число.
С этой точки зрения преобразователь кода можно рассматривать как устройство, осуществляющее процедуру логарифмирования определенного набора чисел. Дешифратор осуществляет обратное преобразование, то есть числу k ставит в соответствие .
Ч асто встречающейся разновидностью преобразователей кода являются схемы для управления семисегментными индикаторами, который представляет собой набор обычно из семи полосок-сегментов, расположенных следующим образом. Каждый из них определенным сигналом может быть переведена в одно из двух состояний, отличающихся тем, что в одном из них сегмент может светиться, либо изменить свой контраст.
Сегменты обозначаются латинскими буквами от a до g. Часто в такой индикатор вводится дополнительный сегмент h, выполняющий роль десятичной точки. Комбинируя совокупности, к примеру, светящихся, сегментов можно сформировать изображение любой десятичной цифры и ряда буквенных символов.
О бычно вид символа задается двоичным кодом. Соотношения между значениями кодовых комбинаций, цифрами и их представлением (отображением) приведено в таблице. Считая, что единичному значению сигнала управления сегментом соответствует его свечение или изменение контраста, комбинациям двоичного кода символов можно поставить в соответствие наборы значений этих сигналов. Далее необходимо определить функциональные связи , и т.п., после чего можно выбрать логические элементы и разработать принципиальную схему такого устройства.
Такие преобразователи кодов выпускаются промышленностью в составе различных серий микросхем – К514ИД1, К514ИД2, К155ПП4, К555ИД18 и другие.
4.3 Приоритетный шифратор.
Данное устройство также относится к группе преобразователей кодов и обычно используется как узел аппаратной поддержки при обработке прерываний. Обобщенный алгоритм его работы можно определить следующим образом.
П усть имеется система, содержащая процессор и ряд внешних устройств ВУ0 – ВУN-1 c которыми ему требуется осуществлять обмен информацией. Данные при обмене передаются по общей шине, но работа с каждым конкретным устройством имеет свои особенности. В качестве внешних устройств в персональном компьютере могут выступать клавиатура, монитор, модем и т. п.
Один из способов организации обмена состоит в том, что процессор формирует сигнал, переводящий соответствующее устройство в режим передачи или приема данных. Так как таких устройств обычно несколько, то сигнал процессора должен в любой момент времени поступать только на одно из них.
С целью уменьшения количества линий связи процессор формирует двоичный код номера устройства, который преобразуется в сигнал, поступающий по отдельной линии к каждому из них, для начала процесса обмена. Преобразование кода номера в соответствующий сигнал может быть реализовано с помощью дешифратора.
При таком варианте обмена, процессор выступает в качестве активного узла. Для обмена данными ему требуется прервать работу над текущей задачей и это необходимо делать каждый раз при опросе любого из устройств, независимо от того состоится ли с их стороны передача, либо прием данных или нет. Даже, если ни одно из устройств не готово к обмену, либо в данный момент времени он не требуется, процедура опроса все равно должна осуществляться, так как устройство не может сообщить процессору необходим ли в данный момент времени обмен, или нет. При таком подходе будут достаточно велики непроизводительные потери времени процессора.
Другой вариант организации обмена заключается в том, что активными выступают сами внешние устройства и они по мере необходимости формируют запросы прерывания. Эти сигналы, поступающие по определенным линиям должны быть преобразованы в двоичные коды номеров устройств, чтобы иметь возможность определить его разновидность и производить обмен данными в соответствии с установленными правилами.
Возможны и комбинированные варианты решения этой задачи, в частности при передаче данных к устройствам в качестве активного элемента может выступать процессор, а при обратной передаче – сами устройства.
Однако в последних двух случаях возникает проблема, когда сигналы запроса приходят от нескольких устройств одновременно. Логически эта задача неразрешима, так как если устройства равнозначны, то выбрать одно из них невозможно.
Ч тобы выйти из этого положения, объекты выбора требуется каким-либо образом различать. Один из подходов заключается во введении принципа приоритетности, то есть неравнозначности, или старшинства. При этом объектам приписывается разная степень значимости, или важности и требования самого значимого из них должны выполняться в первую очередь, независимо от ситуации с другими.
Данный принцип можно реализовать следующим образом. Линии сигналов прерывания и соответствующие объекты нумеруются, причем линии с меньшим номером приписывается более старший приоритет. Сигнал запроса на прерывание обычно формируется в виде уровня логического нуля.
Так как комбинации сигналов, поступающих на преобразователь кода могут быть самыми различными, то для синтеза шифратора приоритетов необходимо в таблице соответствия входных и выходных переменных рассмотреть все возможные их варианты.
Однако такая таблица получится очень громоздкой, в частности для восьми входных переменных она будет содержать 256 строк и определить из нее связь между входными и выходными переменными затруднительно. В таких случаях выходом является поиск закономерностей, позволяющих упростить структуру таблицы, для получения какого либо варианта аналитической связи аргументов и функций.
Г арантий, что полученная форма представления окажется минимальной не будет, но ее можно использовать как основу для дальнейшей модификации.
Используя данный подход, таблицу функционирования шифратора приоритетов, можно представить следующим образом. Здесь крестиками обозначены произвольные состояния входов, то есть либо логический ноль, либо единица. Из таблицы следует, что появление нуля на линии с меньшим номером (более высоким приоритетом) независимо от сигналов на остальных входах должно устанавливать на выходе код номера этой линии.
Так, если нулевой сигнал поступал на вход (при этом независимо от сигналов на входах формировался выходной код 100,), а затем появился нулевой уровень на входе , то в соответствии с таблицей, будет формироваться код 001, соответствующий номеру линии, по которой пришел сигнал запроса.
То есть такая таблица действительно описывает работу шифратора приоритетов. Использование карт Карно для выявления аналитических связей между входными и выходными переменными в данном примере затруднительно из за большого количества переменных. Поэтому здесь более целесообразным здесь является использование неформальных подходов к анализу свойств соответствующих функций.
Если рассмотреть функцию , то можно сделать вывод, что она принимает единичное значение, лишь при одновременном обращении в единицы переменных . Отсюда следует, что .
Функция принимает нулевое значение, если , либо равны нулю, независимо от состояния других переменных. Это возможно, если она имеет вид . В следующих двух строках при , равных единице и нулевых значениях , либо , что возможно, если , так как только при этом и .
Когда , или равны нулю, а единице, функция должна обратиться в нуль, независимо от значений , . Отсюда следует, что , так как . Эта функция принимает единичное значение на последних двух наборах переменных, если . Таким образом, ее окончательный вид будет .
Как уже отмечалось, использование нестандартных подходов не дает гарантии того, что полученное выражение будет представлять функцию в минимизированной форме.
Однако, в данной ситуации из-за отсутствия комбинации переменных , логическая сумма будет тождественно равна единице, а следовательно эту компоненту можно исключить и функция примет вид .
Используя аналогичные рассуждения, можно придти к выводу, что функция будет выглядеть следующим образом . Из таблицы видно, что в последней строке принимает нулевое значения, то есть и функция также может быть упрощена до выражения .
И з полученных соотношений следует, что для реализации шифратора приоритетов требуется три узла, схемы которых выглядят таким образом.
С ущественным недостатком данной схемы шифратора является большое время задержки появления выходного сигнала , оно составляет . Это время определяет и максимальное быстродействие системы, так как двоичный код номера линии, по которой приходит запрос, может быть считан, лишь когда сформируются все его разряды.