1801ВП1-119 представляет собой микросхему-компаньон для микропроцессора 1801ВМ3. Основным функционалом, который выполняет 1801ВП1-119, является контроллер динамической памяти и сопряжение процессора с остальными устройствами системной платы, поэтому микросхему условно можно назвать "северным мостом чипсета" в рамках современной терминологии. Массово применялся этот "северный мост" в составе плат микроЭВМ типа МС1201.03 и МС1201.04. На структурных схемах этих плат микросхема 1801ВП1-119 обозначена как "блок управления" и выполняет следующие функции:
- дешифрацию адреса обращения по системной магистрали
- формирование сигналов управления динамическим ОЗУ - nRASx, nCAS, nWE, nWEC
- формирование сигналов управления системным статическим ОЗУ - nLA, nCSx
- формирование сигнала выборки системного ПЗУ - nSROM
- выдачу сигналов управления блока обнаружения и коррекции ошибок (на 555ВЖ1) - S0 и S1, а также прием ответного сигнала DEF при обнаружении некорректируемой (двойной и более) ошибки
- управление буферными регистрами данных - сигналы CBx, nRB, используемых для выполнения байтовых операций записи, а также хранения данных после завершения цикла
- выдачу сигналов nIN и nOUT для управления буферными элементами между внешней магистралью МПИ и внутренней шиной системной платы
- формирование сигнала nESYNC для микропроцессора
- формирование сигналов nRPLY и nFRPLY для завершения циклов обмена МПИ
Процесс реверс-инжиниринга для данной микросхемы был выполнен по стандартному маршруту для матриц 1801ВП1, поэтому нет смысла останавливаться на нем особо.
Фотография кристалла 1801ВП1-119 в полном разрешении:
(97MБайт) ЗеркалоФотография кристалла 1801ВП1-119 в половинном разрешении:
(24MБайт) ЗеркалоАрхив со схемой, HDL-исходниками и материалами для моделирования:
здесьПоскольку в Сети не было обнаружено подробное описание цоколевки, а схемы плат МС1201.0x не полностью отображают особенности, признано целесообразным привести цоколевку микросхемы по результатам реверса:
1 -
CLK, основной тактовый сигнал, используется для тактирования внутренней машины состояний, состояние меняется как по фронтам, так и по срезам
2 -
RCLK, запрос на цикл регенерации памяти, про фронту на этом входе будет активирован внутренний запрос на цикл регенерации
3 -
nHLTM, признак пультового режима. При обращении к DRAM в пультовом режиме вход
DEF (признак некорректируемой ошибки) игнорируется
4 -
DEF, признак некорректируемой ошибки DRAM. Фронт на данном входе при активном цикле (на выходе
nLA низкий) и не в пультовом режиме (на входе
nHLTM высокий), и не зависимо от сигнала
DCE, вызывает блокировку генерации
nRPLY (
nFRPLY генерируется всегда) и возникает тайм-аут обращения по шине.
5 -
nSACK, признак доступа внешнего контроллера. Блокирует выработку активного
nESYNCx и
nFRPLY, влияет на
nOUT 6 -
nLA, строб адреса, активен при активном
nSYNC или
nRPLY7 -
nESYNC, выход синхронизации nSYNC, активируется по срезу
CLK, далее подается на
nSSYNC процессора, неактивен при
nSACK (доступ внешнего агента к памяти и устройствам системной платы)
8 -
nESYNCO, копия сигнала
nESYNC, открытый коллектор
9 -
nFRPLY, выдается при чтении процессором по фронту
CLK при активном
nCAS (примерно полтакта
CLK после
nCAS)
10 -
nIN, разрешение трансляции данных с МПИ на внутреннюю шину платы. Активен при чтении с внешних устройств и записи внешним контроллером.
11 -
nOUT, разрешение трансляции внутренней шины платы на МПИ. Активен почти всегда, кроме записи данных внешним контроллером.
12 -
DCE, высокий уровень разрешает коррекцию ошибок. Влияет на выработку
S0,
S1,
CB0,
CB1,
nWEC и
nRB.
13 -
S0, управление режимом 555ВЖ1
14 -
S1, управление режимом 555ВЖ1
15 - не используется
16 -
nRB, разрешение буферов прочитанных данных. Используется при записи байта с предварительным чтение комплементарного байта для формирования полного записываемого слова.
17 -
CB0, запись младшего байта буфера
18 -
CB1, запись старшего байта буфера
19 -
nA0, младший разряд адреса, в том числе используется для разрешения nSRAM
20 -
nA11, разряд адреса, используется для выбора
nSROM/
nCSx21 - земля
22 -
nA12, разряд адреса, используется для выбора
nSROM/
nCSx23 -
nSEL, низкий уровень генерируется процессором при обращении к системной памяти в режиме пульта, разрешает активацию
nSROM и
nCSx24 -
nSROM, выборка системного ПЗУ
25 -
nCS0, разрешением младшего байта системного статического ОЗУ
26 -
nCS1, разрешением младшего байта системного статического ОЗУ
27 -
nDCLO, системный сброс
28 -
nWEC, запись слова контрольных разрядов в DRAM
29 -
nWE, запись слова данных в DRAM
30 -
nRAS0, строб младшей половины DRAM, выбор определяется входом
nA1931 -
nRAS1, строб старшей половины DRAM, выбор определяется входом
nA1932 -
nCAS, общий строб всей DRAM
33 -
nA19, адрес, старший разряд области DRAM, определяет
nRAS0/
nRAS134 -
nTA, процессор начинает цикл чтения низким уровнем на этой линии
35 -
nA20, адрес, используется для дешифрации области DRAM (обращение к младшему мегабайту)
36 -
nA21, адрес, используется для дешифрации области DRAM (обращение к младшему мегабайту)
37 -
nDOUT38 -
nDIN39 -
nRPLY, генерируется как ответ при обращении к динамическому и статическому ОЗУ, ПЗУ
40 -
nWTBT41 -
nSYNC42 -
+5V, питание
В ходе моделирования выявлены следующие особенности работы микросхемы:
- динамическое ОЗУ на платах МС1201.03/04 может выполнять циклы обращения только 16-битными словами. При чтении ненужный байт просто игнорируется процессором. При записи байта 1801ВП1-119 организует предварительную операцию чтения и затем формирует полное 16-битное слово для записи. В связи с чем байтовая запись работает на данных платах значительно медленее варианта с маскированием записываемых данных
- сигнал nTA должен предпочтительно активироваться (ниспадающий фронт) только после установления стабильного адреса, иначе возможна ситуация когда дешифратор DR_ENA еще не отработал, а уже требуется старт по nTA. Это приводит к более позднему старту цикла чтения
- nWTBT должен опережать ниспадающий фронт nDOUT (по нему осуществляется запуск циклограммы записи, а nWTBN нужен для выбора типа цикла - запись байта или слова)
Микросхема 1801ВП1-119 использует всего 236 ячеек матрицы, однако при реверсе возникли сложности. Схема содержит очень много триггеров, cделанных на отдельных ячейках типа ИЛИ-НЕ, с большим количеством обратных связей, что препятствовало линейному распознаванию схемы. Но в итоге удалось справится с сортировкой ячеек. Типовой триггер в составе ВП1-119 выглядит так:
Для определения логики работы триггер был промоделирован в logisim (материалы могут быть найдены в архиве):
Данная схема представляет собой синхронный D-триггер с запоминанием инвертированных данных
nIN по срезу на тактовом входе
CLK. Также имеется асинхронный сброс
RST, при высоком уровне на котором триггер постоянно находится в состоянии низкого уровня. Данные триггеры служат основой внутреннего автомата состояний контроллера динамической памяти, все события происходят по фронтам и срезам, а не по уровням сигналов.
Далее приведены диаграммы для различных циклов обращения со стороны процессора. Также все диаграммы могут быть найдены в прилагаемом архиве в папке Images. Диаграммы получены как при моделировании, так и сняты логическим анализатором с реальной платы МС1201.03.
Циклы обращения к статическому ОЗУ (моделирование):
Цикл регенерации (реальная плата и моделирование):
Циклы на реальной плате с отключенной коррекцией ошибок:
Смоделированные циклы с отключенной коррекцией ошибок:
Циклы на реальной плате с включенной коррекцией ошибок:
Смоделированные циклы с отключенной коррекцией ошибок: