Синтез комбинированных схем памяти
Принцип построения комбинированных схем рассмотрим на примере. Допустим, необходимо построить схему, включающую в себя ПЗУ информационного объема 4Кх8 на базе ИС информационного объема 1Кх4 каждая и ОЗУ информационного объема 8Кх8 на базе ИС информационного объема 256х1 каждая. Массив поддерживаемых адресов должен быть сплошным: за старшим адресом одного блока следует младший адрес следующего блока. Начальный адрес, поддерживаемый схемой, равен 000016. Схема представлена на рис. 15.1.
Построение схемы начинается с определения начертания ИС ПЗУ. В данном случае у нее 10 входов адреса ( 210=1024=1К ) и 4 линии данных. Управляющий сигнал для упрощения схемы показывается только один - выбор кристалла - с активным уровнем логической 1. Для обеспечения возможности сохранения 8-разрядных слов необходимо в один блок объединить две ИС ПЗУ (П1.1 и П1.2 в блоке ПЗУ-1 на рис. 15.1). Этот блок обеспечивает информационный объем 1Кх8. Следовательно, для синтеза схемы объемом 4Кх8 потребуются 4 таких блока. На рис. 15.1 блоки ПЗУ-2, ПЗУ-3 и ПЗУ-4 показаны упрощенно с подводом ША, ШД и управляющих сигналов.
Далее аналогичным образом синтезируется ОЗУ. В данной задаче ИС ОЗУ имеет 8 входов адреса (28=256) и 1 линию данных. Кроме того, у нее сигнал выбора кристалла CS с активным уровнем логической 1 и сигнал управления режимом работы WR/RD.
увеличить изображение
Рис. 15.1. Функциональная схема комбинированной памяти: ПЗУ 4К х 8 на ИС 1К х 4 и ОЗУ 8К х 8 на ИС 256 х 1.
Для обеспечения возможности сохранения 8-разрядных слов необходимо в один блок объединить 8 ИС ОЗУ (блок ОЗУ-1 на рис. 15.1). Этот блок обеспечивает информационный объем 256x8. Следовательно, для синтеза схемы объемом 8Кx8 потребуются 32 таких блока. На рис. 15.1 упрощенно показаны блоки ОЗУ-2 и ОЗУ-32 с подводом ША, ШД и управляющих сигналов, остальные блоки подключаются аналогично и на рис. 15.1 не показаны.
Следующим этапом синтеза схемы является заполнение карты памяти (табл. 15.1). Начальный адрес всего блока памяти составляет 0000 0000 0000 00002 =000016. Это младший адрес блока ПЗУ-1. Старший адрес для него будет получаться при наличии десяти единиц в младших разрядах адреса, поскольку количество разрядов адреса ИС ПЗУ равно 10. Поэтому этот адрес будет равен 0000 0011 1111 111112 = 03FF16. Следующий, на 1 больший, код - это младший адрес блока ПЗУ-2. Он равен 0000 0100 0000 00002= 040016. Далее таблица для ПЗУ заполняется аналогично: для младших адресов блока младшие 10 разрядов (в табл. 15.1 выделено курсивом ) равны нулю, для старших - единице. При этом при переходе от одного блока к другому код старших разрядов (от одиннадцатого) увеличивается на 1. Всего блоков ПЗУ четыре, поэтому этот код из меняется от 002=010 до 112=310 (в табл. 15.1 выделено жирным шрифтом). Первый (самый младший адрес) ОЗУ следует за самым старшим адресом ПЗУ, он равен 0001 0000 0000 00002= 100016 (табл. 15.1). Разрядность адреса ИС ОЗУ отличается от разрядности ИС ПЗУ и составляет восемь разрядов. Очевидно, что старшим адресом для блока ОЗУ-1 будет адрес, в котором восемь младших разрядов равны 1(в табл. 15.1 они также выделены курсивом ). Старшие разряды (в таблице выделены жирным шрифтом), естественно, определяются тем, какой объем памяти уже занят под ПЗУ, иными словами, старшие разряды остаются теми же, что и в предыдущей строке карты памяти, получается код 0000 0100 1111 11112= 04FF16. Младший адрес блока ОЗУ-2 на 1 больше, он равен 0000 0101 0000 00002= 050016 (табл. 15.1). Далее таблица для ОЗУ заполняется аналогично: для младших адресов блока младшие 8 разрядов (в таблице 20 выделено курсивом ) равны нулю, для старших - единице. При этом при переходе от одного блока ОЗУ к другому код старших разрядов (от девятого) увеличивается на 1. Всего блоков ОЗУ тридцать два, причем данный код для блока ОЗУ-1 не равен нулю, он составляет 100002=1610. Небольшая сложность заключается в том, что при переходе от ОЗУ-16, в котором младшие четыре разряда этого кода становятся равными единице ( 111112=3110 ), к младшему коду ОЗУ-17 разрядность этого кода увеличивается, и он становится равным 1000002=3210. Далее он также изменяется на 1 при переходе от одного блока ОЗУ к другому (в табл. 15.1 выделено жир ным шрифтом). Тем не менее, закономерность остается такой же, как у ПЗУ, только "отсчет" блоков начинается не с нуля: он изменяется от 100002=1610 до 1011112=4710.
Поддерживаемые адреса | Активный блок памяти | |
---|---|---|
В двоичном коде | В шестнадцатеричном коде | |
0000 00 00 0000 0000 0000 00 11 1111 1111 | 0000 03FF | ПЗУ-1 |
0000 01 00 0000 0000 0000 01 11 1111 1111 | 0400 07FF | ПЗУ-2 |
0000 10 00 0000 0000 0000 10 11 1111 1111 | 0800 0BFF | ПЗУ-3 |
0000 11 00 0000 0000 0000 11 11 1111 1111 | 0C00 0FFF | ПЗУ-4 |
000 1 0000 0000 0000 000 1 0000 1111 1111 | 1000 10FF | ОЗУ-1 |
000 1 0001 0000 0000 000 1 0001 1111 1111 | 1100 11FF | ОЗУ-2 |
000 1 1111 0000 0000 000 1 1111 1111 1111 | 1F00 1FFF | ОЗУ-16 |
00 10 0000 0000 0000 00 10 0000 1111 1111 | 2000 20FF | ОЗУ-17 |
00 10 1110 0000 0000 00 10 1110 1111 1111 | 2E00 2EFF | ОЗУ-31 |
00 10 1111 0000 0000 00 10 1111 1111 1111 | 2F00 2FFF | ОЗУ-32 |
Следующим этапом построения памяти является синтез схемы дешифрации, инициирующей работу того или другого блока ЗУ в соответствии с картой памяти. При этом можно реализовать эту схему на нескольких дешифраторах так, как показано непосредственно на рис. 15.1. Здесь дешифратор 1 генерирует сигналы выбора кристалла для блоков ПЗУ. Он работает только в том случае, когда 13-й, 14-й, 15-й и 16-й разряды адреса равны 0 (табл. 15.1), что обеспечивается первым элементом ИЛИ-НЕ на рис. 15.1. На информационные линии этого дешифратора заведены 11-й и 12-й разряды ША (в табл. 15.1 выделены жирным шрифтом). На информационные линии дешифраторов 2 и 3 подключены 9-й, 10-й, 11-й, 12-й, 13-й и 14-й разряды ША. Выходы дешифратора с "16" по "47" подаются в качестве сигналов выбора кристалла на блоки ОЗУ. Данный дешифратор будет работать в том случае, когда два старших разряда адреса - 15-й и 16-й - будут равны 0, что поддерживается вторым логическим элементом ИЛИ-НЕ на рис. 15.1. Схема, представленная на рис. 15.1, является функциональной, поскольку практически дешифратор 2 можно реализовать лишь в виде каскада на дешифраторах меньшей разрядности (лекция 5). Кроме того, функции дешифратора 1 можно реализовать на дешифраторе 2 так, как показано на рис. 15.2. Из табл. 15.1 видно, что для всех блоков ПЗУ разряды 9-й и 10-й изменяются от 002=010 до 112=310, поэтому для получения сигналов выбора кристалла, поступающих на блоки ПЗУ, нужно объединять функцией ИЛИ по 4 выхода дешифратора: "0", "1", "2" и "3" - для получения сигнала CS 1, поступающего на ПЗУ-1; "4", "5", "6" и "7" - для получения сигнала CS 2, поступающего на ПЗУ-2 и т.д. Для ОЗУ старшие разряды кода адреса, выделенные в таблице 17 жирным шрифтом, изменяются на 1 при переходе от блока к блоку, поэтому сигналы выбора кристалла CS 5 CS 36, поступающие на ОЗУ-1 ОЗУ-32 соответственно, снимаются непосредственно с выходов дешифратора "16" "47". Номера этих выходов соответствуют кодам, выделенным жирным шрифтом в табл. 15.1. Дешифратор согласно карте памяти будет работать только тогда, когда старшие два разряда кода адреса (15-й и 16-й) будут равны нулю, что поддерживается логикой ИЛИ-НЕ.
увеличить изображение
Рис. 15.2. Альтернативная функциональная схема дешифрации для комбинированной схемы памяти: ПЗУ 4К х 8 на ИС 1К х 4 и ОЗУ 8К х 8 на ИС 256 х 1