Искусство схемотехники. Том 2 (Изд.4-е) - Хоровиц Пауль. Страница 50
Рис. 8.72. 4-разрядный реверсивный регистр сдвига типа 74LS194.
Входы и выходы. Небольшие регистры сдвига могут производить параллельный ввод и вывод, и обычно это делают, например, схема `395' является 4-разрядным регистром сдвига с параллельным вводом и выводом (ΡΙ/ΡΟ) с выходом на 3 состояния. Большие регистры могут осуществлять только последовательный ввод и вывод, т. е. только ввод в первый триггер или вывод из последнего допускается. В некоторых случаях выводятся несколько промежуточных выходов. Единственный способ разместить как параллельный ввод, так и параллельный вывод в одном малом корпусе — это использовать одни и те же контакты в качестве входов и выходов. Так, например, схема `299 представляет собой 8-разрядный регистр параллельного ввода/вывода (ΡΙ/ΡΟ) в 20-контактном корпусе. Некоторые сдвиговые регистры включают защелки (фиксаторы) на входе или выходе, так что сдвиг может происходить пока данные загружаются или выгружаются. Так же как и у счетчиков, параллельная ЗАГРУЗКА и ОЧИСТКА могут быть либо синхронными, либо асинхронными, например схема `323 подобна схеме `299, но с синхронной очисткой.
В табл. 8.11 в конце главы приводится список сдвиговых регистров. Как всегда, не все типы регистров присутствуют во всех логических семействах, проверяйте по справочникам.
ОЗУ в качестве сдвиговых регистров. Запоминающее устройство с произвольной выборкой можно всегда использовать как сдвиговый регистр (но не наоборот), используя внешний счетчик для генерации последовательных адресов. Эта идея показана на рис. 8.73.
Рис. 8.73. Регистр сдвига большой длины на ОЗУ и счетчике; косая черточка указывает на кратность линий, в данном случае имеется 4-разрядный канал данных (а); временная диаграмма для определения максимальной частоты синхронизации при наихудшем распределении временных параметров (б); вычисления, показывающие наихудшее распределение задержек в одном такте синхронизации (в).
8-разрядный синхронный реверсивный счетчик вырабатывает последовательность адресов для КМОП ОЗУ с организацией 256x4 бит. Такая комбинация ведет себя подобно четырем 256-бит сдвиговым регистрам с направлением сдвига вправо/влево, выбираемым управляющей линией ВВЕРХ/ВНИЗ счетчика. Все остальные входы, как показано на рисунке, служат для разрешения счета. Выбирая быстрые счетчики и память, мы можем достигнуть максимальной скорости 30 МГц (см. временную диаграмму), которая такая же, как и у интегральных (не на много меньше) сдвиговых регистров НС-типа. Этот метод может быть использован для получения очень большого регистра сдвига, если требуется.
Упражнение 8.28. В схеме на рис. 8.73 кажется, что входные данные поступают в ту же ячейку, что и выходные данные при чтении. Тем не менее схема ведет себя подобно классическому сдвиговому регистру на 256 слов. Объясните, почему.
8.27. Последовательностные ПМЛ
Комбинационные (только на вентилях) ПМЛ, которые мы рассматривали выше в разд. 8.15, входят в большое семейство, которое включает устройства с различным числом регистров D-типа на кристалле (называемые «регистровые ПМЛ»). Типичный из этих ПМЛ-16R8-показан на рис. 8.74.
Рис. 8.74. Регистровая ПМЛ 16R8 имеет 8 внешних входов, 8 выходов, линии синхронизации и управления 3-м состоянием. Выходы регистра можно также использовать как входы матрицы И.
(с разрешения фирмы Advanced Micro Devices, Калифорния.)
Программируемая — И/фиксированная ИЛИ матрица типовых комбинационных ПМЛ генерирует входные уровни для 8 синхронно тактируемых регистра D-типа с выходами на 3 состояния; выходы регистра (прямой и инверсный) как и стандартные входные контакты доступны как входы логической матрицы.
Если вы посмотрите снова на рис. 8.57, вы увидите, что ПМЛ с регистрами — это элемент последовательностной схемы общего назначения с определенными ограничениями на число регистров и вентилей, и вы можете конструировать, что хотите, но только в этих пределах. Например, вы можете сделать сдвиговой регистр или счетчик, или сразу оба. На практике вы можете сделать некоторый кусок логики как часть большой схемы, для которой альтернативой является дискретная логика, построенная на вентилях и триггерах. Посмотрим некоторые примеры.
Карты перемычек, создаваемые вручную. Простые проекты могут конструироваться в ПМЛ посредством изображения логики, затем соответствующий образ преобразуется в массив перемычек для программатора ПМЛ. Так, например, предположим, что мы хотим получить 4-входовый мультиплексор с защелкиваемыми выходами. Мы можем записать логическое уравнение для мультиплексной части (т. е. до D-входов триггера) в виде
Q.d = I0*S'0*S'1 + I1*S0*S'1 + I2*S'0*S1 + I3*S0*S1
где входы S0 и I1 - адреса, выбирающие входы I0-S3и «*» и «+» соответственно И или ИЛИ.
Регистровые ПМЛ легко реализуют это с фиксацией результата. Заметим, что мы использовали ИЛИ 3-входовых И, предпочитая это первоначальному декодированию выбранного адреса на двухвходовых вентилях И, так как мы вынуждены использовать сумму произведений (это также быстрее). Окончательная схема показана на рис. 8.75 (заметим, существует тонкость для этой схемы, см. подразд. «Выбросы» в конце этого раздела).
Рис. 8.75. 4-входовый мультиплексор с фиксацией, выполненный на ПМЛ.
PALASM. Для схем какой-либо разумной сложности необходимы некоторые методы логического проектирования ПМЛ. Например, ПМЛ 16L8 имеет 2048 перемычек, а сложный проект может потребовать, чтобы вы прожгли несколько сотен из них, и если вы не необычайно обязательны, то маловероятно, что достигните цели вручную, корректно определив их для ПМЛ-программатора. PALASM (PAL Assembler, торговый знак фирмы Monolithic Memories Inc.), разработанный фирмой Monolithic Memories (впервые создавшей ПМЛ), был одним из первых инструментов. Он берет логическое выражение, подобное тому, которое мы писали выше, и преобразует его в карту перемычек. Производится это посредством программы, но без логической минимизации, поэтому вы должны проделать эту трудную работу сами. Однако PALASM позволяет вам вводить набор тестовых состояний (называемых тестовыми векторами), дающих возможность получить на выходах то, что должно быть результатом ваших логических спецификаций. Таким образом вы можете отлаживать ваши уравнения перед изготовителем ПМЛ.
PALASM широко используется. Существуют листинги исходных текстов (кодов) на языке Фортран, которые могут затем послать карты перемычек для ПМЛ-программаторов (в стандартном «JEDEC»-фopмате) через последовательный порт. Многие ПМЛ-программаторы со встроенными микропроцессорами включают резидентный PALASM такие, например, как у фирм Data I/O, Digiles, Stag, и Structured Resign. Остается только подключить терминал, и вы в работе.