Лекции по схемотехнике ЭВМ. Лекция Базовые понятия цифровой электроники версия для печати и pda в лекции рассказывается о базовых терминах цифровой электроники, о цифровых сигналах, об уровнях представления цифровых устройств, об их электрических и временных параметрах
Скачать 5.63 Mb.
|
Теперь составим карту прошивки ПЗУ. Для этого сформируем таблицу значений всех семи выходных сигналов во всех двадцати рабочих тактах генератора последовательностей (табл. 11.5). Значения шести выходных сигналов (Выход 0 ... Выход 5) мы непосредственно берем из требуемой временной диаграммы (см. рис. 11.12). Хотя эти сигналы будут приходить на выход схемы с задержкой на один такт из-за наличия выходного регистра, но при периодической работе генератора последовательности это не имеет никакого значения. Седьмой сигнал (Выход 6) используется в качестве сброса счетчика, он равен нулю от нулевого такта до 18 (в 16-ричном коде — 12) такта и равен единице в последнем девятнадцатом такте (в 16-ричном коде — 13). Этим единичным сигналом счетчик будет сбрасываться в нуль, то есть работа схемы после 19 такта будет возобновляться с нулевого такта. Пусть нам требуется более высокое быстродействие схемы. Например, период тактового генератора должен быть равен 100 нс и даже меньше. В этом случае асинхронный счетчик типа ИЕ19 уже не подойдет из-за своего низкого быстродействия. Надо использовать 5-разрядный синхронный счетчик. Можно, конечно, включить две микросхемы 4-разрядных счетчиков типа ИЕ17, но можно обойтись и одним 4-разрядным счетчиком, если задействовать оставшийся свободным выход данных ПЗУ и оставшийся свободным разряд регистра (рис. 11.14). При этом без всякого ущерба для быстродействия можно использовать синхронный счетчик с асинхронным переносом ИЕ7, так как нужна всего одна микросхема счетчика. Рис. 11.14. Второй вариант схемы генератора последовательности с 4-разрядным синхронным счетчиком ИЕ7 Карта прошивки ПЗУ генератора последовательностей остается той же самой, что и в предыдущем случае, но добавляется один (седьмой) разряд шины данных ПЗУ. Этот разряд должен быть равен нулю в пятнадцати тактах с нулевого до 14 (в 16-ричном коде — Е), в четырех тактах с 15 (F в 16-ричном коде) по 18 (12 в 16-ричном коде) он должен быть равен единице (код данных увеличится на 80), а в последнем 19 такте (13 в 16-ричном коде) он снова должен быть равен нулю. В результате адреса ПЗУ будут перебираться от 0 до 15 (старший разряд адреса равен нулю), затем от 16 до 19 (старший разряд адреса станет равен единице, а счетчик после переполнения считает с нуля), а затем снова от нулевого адреса (счетчик сбросится сигналом "Выход 6", а старший разряд адреса памяти станет нулевым). Получающаяся в результате карта прошивки ПЗУ приведена в табл. 11.6.
Конечно, рассмотренный пример довольно прост, при использовании ПЗУ большего объема генерируемые последовательности сигналов могут быть гораздо сложнее рассмотренной, и выходных сигналов может быть больше, но суть остается прежней: ПЗУ выдает любые последовательности выходных сигналов минимальными средствами. Причем генерируемые последовательности можно довольно просто изменять, заменяя ПЗУ на микросхемы с другой картой прошивки. Микропрограммные автоматы на ПЗУ Микропрограммные автоматы представляют собой следующий шаг по пути усложнения интеллекта цифровых схем. На основе микропрограммных автоматов можно строить устройства, которые работают по довольно сложным алгоритмам, выполняют различные функции, определяемые входными сигналами, выдают сложные последовательности выходных сигналов. При этом алгоритм работы микропрограммного автомата может быть легко изменен заменой прошивки ПЗУ. В отличие от рассматривавшихся ранее устройств на "жесткой" логике, принцип работы которых однозначно определяется используемыми элементами и способом их соединения, микропрограммные автоматы с помощью одной и той же схемы могут выполнять самые разные функции. То есть они гораздо более гибкие, чем схемы на "жесткой" логике. К тому же проектировать микропрограммные автоматы с точки зрения схемотехники довольно просто. Недостатком любого микропрограммного автомата по сравнению со схемами на "жесткой" логике является меньшее предельное быстродействие и необходимость составления карты прошивки ПЗУ с микропрограммами, часто довольно сложными. Наиболее распространенная структура микропрограммного автомата (рис. 11.15) включает в себя всего лишь три элемента: ПЗУ, регистр, срабатывающий по фронту, и тактовый генератор. Рис. 11.15. Структура микропрограммного автомата ПЗУ имеет (L+M) адресных разрядов и N разрядов данных. Регистр применяется с количеством разрядов (N + L). Разряды данных ПЗУ записываются в регистр по положительному фронту тактового сигнала с генератора. Часть этих разрядов (М) используется для образования адреса ПЗУ, другая часть (N-M) служит для формирования выходных сигналов. Входные сигналы (L) поступают на входы регистра и используются совместно с частью выходных разрядов ПЗУ для получения адреса ПЗУ. Схема работает следующим образом. В каждом такте ПЗУ выдает код данных, тем самым определяя не только состояние выходных сигналов схемы, но и адрес ПЗУ, который установится в следующем такте (после следующего положительного фронта тактового сигнала). На этот следующий адрес влияют также и входные сигналы. То есть в отличие от формирователя последовательности сигналов, рассмотренного в предыдущем разделе, в данном случае адреса могут перебираться не только последовательно (с помощью счетчика), но и в произвольном порядке, который определяется прошивкой ПЗУ, называемой микропрограммой. Условием правильной работы схемы будет следующее. За один период тактового сигнала должны успеть сработать регистр и ПЗУ. Иначе говоря, сумма задержки регистра и задержки выборки адреса ПЗУ не должна превышать периода тактового сигнала. Отметим также, что входные сигналы микропрограммного автомата нельзя подавать непосредственно на адресные входы ПЗУ (без регистра), так как их асинхронное (по отношению к тактовому сигналу) изменение может вызвать переходный процесс на выходах данных ПЗУ именно в тот момент, когда выходные сигналы ПЗУ записываются в регистр. В результате в регистр может записаться неверная информация, что нарушит работу всей схемы. Регистр же синхронизирует изменения входных сигналов с тактовым сигналом, в результате чего все разряды кода адреса ПЗУ меняется одновременно — по положительному фронту тактового сигнала. Регистр должен обязательно срабатывать по фронту, использование регистра-защелки не допускается, так как он может вызвать лавинообразный переходный процесс. Возможности такой простой схемы оказываются очень большими. Например, микропрограммный автомат может выдавать последовательности выходных сигналов в ответ на определенное изменение входных сигналов. Он может также временно остановить выдачу выходных сигналов до прихода входных сигналов. Он может анализировать длительность входного сигнала и в зависимости от нее выдавать те или иные выходные сигналы. Он может также и многое другое. Сформулируем несколько элементарных функций, из которых могут складываться алгоритмы работы микропрограммного автомата (рис. 11.16): Рис. 11.16. Элементарные функции микропрограммного автомата: последовательный перебор (а), циклическое повторение (б) и остановка (в)
В качестве примера рассмотрим выполнение некоторых элементарных функций микропрограммным автоматом, показанным на рис. 11.17. Рис. 11.17. Пример практической схемы микропрограммного автомата на ПЗУ ПЗУ имеет организацию 64х8 (это могут быть две микросхемы РЕ3 или одна микросхема РТ18), количество разрядов регистра равно десяти (это могут быть две микросхемы ИР27). Схема имеет два входных сигнала и четыре выходных сигнала. Такая организация микропрограммного автомата хороша тем, что его микропрограмма (то есть карта прошивки ПЗУ) очень наглядна, легко составляется и читается.
|