Основные временные характеристики микросхем ПЗУ - это две величины задержки.
Задержка выборки адреса памяти - время от установки входного кода адреса до установки выходного кода данных.
Задержка выборки микросхемы - время от установки активного разрешающего управляющего сигнала CS до установки выходного кода данных памяти. Задержка выборки микросхемы обычно в несколько раз меньше задержки выборки адреса.
Содержимое ПЗУ обычно изображается в виде специальной таблицы, называемой картой прошивки памяти. В таблице показывается содержимое всех ячеек памяти, причем в каждой строке записывается содержимое 16 (или 32) последовательно идущих (при нарастании кода адреса) ячеек. При этом, как правило, используется 16-ричное кодирование.
Пример карты прошивки ПЗУ с организацией 256х8 показан в табл. 12.1 (все биты всех ячеек считаются установленными в единицу). Пользоваться таблицей очень просто. Например для того, чтобы посмотреть содержимое ячейки памяти с 16-ричным адресом 8А, надо взять строку таблицы с номером 80 и столбец таблицы с номером А (данная ячейка в таблице выделена жирным шрифтом).
|
|
Таблица 12.1. Пример карты прошивки ПЗУ | ||||||||||||||||
Адрес | A | B | C | D | E | F | ||||||||||
FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | |
FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | |
FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | |
FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | |
FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | |
FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | |
FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | |
FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | |
FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | |
FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | |
A0 | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF |
B0 | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF |
C0 | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF |
D0 | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF |
E0 | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF |
F0 | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF | FF |
Любые микросхемы ПЗУ легко можно включать так, чтобы уменьшать или увеличивать количество адресных разрядов, то есть уменьшать или увеличивать количество используемых ячеек памяти.
На Рис. 12.7 показано, как из микросхемы с организацией 2Кх8 сделать микросхему 512х8. Два старших разряда адреса памяти отключены (на них поданы нулевые сигналы). Использоваться будут только младшие (верхние в таблице прошивки) 512 ячеек, и только их надо будет программировать.
Рис. 12.7. Уменьшение количества адресных разрядов ПЗУ
Задача увеличения количества адресных разрядов ПЗУ встречается значительно чаще задачи уменьшения количества адресных разрядов.
|
|
Для увеличения адресных разрядов обычно применяются микросхемы дешифраторов (Рис. 12.8).
Младшие разряды шины адреса при этом подаются на объединенные адресные входы всех микросхем, а старшие - на управляющие (адресные) входы дешифратора. Выходные сигналы дешифратора разрешают работу всегда только одной микросхемы памяти. В результате на общую шину данных всех ПЗУ выдает свою информацию только одна микросхема.
Применение дешифратора 3-8 позволяет объединить 8 микросхем ПЗУ (добавить три адресных разряда.
Рис. 12.8. Увеличение количества адресных разрядов ПЗУ
с помощью дешифратора
Часто возникает также задача увеличения количества разрядов данных. Для этого необходимо всего лишь объединить одноименные адресные входы нужного количества микросхем ПЗУ выходы же данных ПЗУ не объединяются, а образуют код с большим числом разрядов. Например, при объединении таким образом двух микросхем с организацией 8Кх8 можно получить ПЗУ с организацией 8Кх16.
Одно из самых распространенных применений микросхем ПЗУ - замена ими сложных комбинационных схем.
Если рассматривать адресные входы микросхемы ПЗУ как входы комбинационной схемы, а разряды данных - как выходы этой комбинационной схемы, то можно сформировать любую требуемую таблицу истинности данной комбинационной схемы. Для этого всего лишь надо составить таблицу прошивки ПЗУ, соответствующую нужной таблице истинности.
В качестве примера рассмотрим комбинационную схему, представленную на Рис.12.9., имеющую восемь входов и четыре выхода. Схема распознает два различных 5-разрядных входных кода (11001 и 10011) в случае, когда на входе разрешения «–Разр.» присутствует нулевой сигнал, а при приходе сигналов «–Строб 1» и «Строб 2» схема выдает на выход отрицательные импульсы. Причем первый выходной сигнал вырабатывается в случае, когда входной код равен 11001 и пришел сигнал «–Строб 1», второй выходной сигнал - при том же коде, но по входному сигналу «–Строб 2». Третий и четвертый выходной сигналы вырабатываются при входном коде 10011 и при приходе соответственно управляющих сигналов «–Строб 1» и «–Строб 2».
Рис. 12.9. Пример комбинационной схемы, заменяемой ПЗУ
Всю эту схему можно заменить одной микросхемой ПЗУ (рис. 12.10). Микросхема ПЗУ всегда выбрана (управляющие сигналы –CS1 и –CS2 - нулевые). На выходах данных памяти включены резисторы, так как тип выходов микросхемы - ОК.
Рис. 12.10. Включение ПЗУ для замены комбинационной схемы,
показанной на рис. 12.9
Микросхемы ПЗУ могут заменять собой любые комбинационные микросхемы: дешифраторы, шифраторы, компараторы кодов, сумматоры, мультиплексоры, преобразователи кодов и т.д.
В общем случае ПЗУ можно рассматривать как преобразователь входного кода (кода адреса) в выходной код (код данных) по произвольному закону, задаваемому разработчиком. Это позволяет не только преобразовывать друг в друга различные стандартные коды, но и выполнять множество других функций, например, использовать ПЗУ как простейший табличный вычислитель.
Одно из наиболее распространенных применений ПЗУ как преобразователя кодов - это построение на их основе всевозможных индикаторов, отображающих на экране буквы и цифры. ПЗУ в данном случае переводит код (номер) буквы или цифры в ее изображение. Конечно, в данном случае заменить ПЗУ комбинационной схемой совершенно невозможно, так как букв и цифр очень много, а их изображения очень разнообразны.
Простейший пример данного применения ПЗУ - это управление знаковым семисегментным индикатором, знакомым всем по калькуляторам, кассовым аппаратам, электронным часам, весам и т.д. В семисегментных индикаторах изображение всех цифр от 0 до 9 строится всего из семи сегментов (отрезков линий) (Рис 12.11.).
|
|
Рис. 12.11. Дешифратор знакового семисегментного индикатора на ПЗУ
Чтобы отобразить в виде цифры 4-разрядный двоичный код, надо этот код преобразовать в 7-разрядный код, каждому разряду которого будет соответствовать один сегмент индикатора. То есть коду 0000 должно соответствовать изображение нуля (6 сегментов, расположенных по периметру), а коду 0001 — изображение единицы (два правых вертикальных сегмента). Для повышения универсальности индикатора удобно дополнить десять цифр еще и шестью буквами, использующимися в 16-ричном коде (A, B, C, D, E, F). Семь сегментов индикатора позволяют сделать и это, правда, изображения букв получаются не слишком качественными.
ПЗУ типа РЕ3, используемое в качестве дешифратора индикатора, имеет 4 входа и 7 выходов (старший разряд адреса и старший разряд данных не используются). Карта прошивки ПЗУ приведена в табл. 12.4. Нулевой сигнал на каждом из выходов данных ПЗУ зажигает соответствующий ему сегмент.
Таблица 12.4 Карта прошивки ПЗУ для дешифратора знакового индикатора | ||||||||||||||||
Адрес | A | B | C | D | E | F | ||||||||||
0E | ||||||||||||||||
XX | XX | XX | XX | XX | XX | XX | XX | XX | XX | XX | XX | XX | XX | XX | XX |