Бытовой ретро-компьютер своими руками
http://forum.pk-fpga.ru/

Цифровая археология 1801: Северный мост 119
http://forum.pk-fpga.ru/viewtopic.php?f=43&t=5603
Страница 1 из 1

Автор:  Vslav [ 02 сен 2017, 21:53 ]
Заголовок сообщения:  Цифровая археология 1801: Северный мост 119

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 или nRPLY
7 - 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/nCSx
21 - земля
22 - nA12, разряд адреса, используется для выбора nSROM/nCSx
23 - nSEL, низкий уровень генерируется процессором при обращении к системной памяти в режиме пульта, разрешает активацию nSROM и nCSx
24 - nSROM, выборка системного ПЗУ
25 - nCS0, разрешением младшего байта системного статического ОЗУ
26 - nCS1, разрешением младшего байта системного статического ОЗУ
27 - nDCLO, системный сброс
28 - nWEC, запись слова контрольных разрядов в DRAM
29 - nWE, запись слова данных в DRAM
30 - nRAS0, строб младшей половины DRAM, выбор определяется входом nA19
31 - nRAS1, строб старшей половины DRAM, выбор определяется входом nA19
32 - nCAS, общий строб всей DRAM
33 - nA19, адрес, старший разряд области DRAM, определяет nRAS0/nRAS1
34 - nTA, процессор начинает цикл чтения низким уровнем на этой линии
35 - nA20, адрес, используется для дешифрации области DRAM (обращение к младшему мегабайту)
36 - nA21, адрес, используется для дешифрации области DRAM (обращение к младшему мегабайту)
37 - nDOUT
38 - nDIN
39 - nRPLY, генерируется как ответ при обращении к динамическому и статическому ОЗУ, ПЗУ
40 - nWTBT
41 - nSYNC
42 - +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.

Циклы обращения к статическому ОЗУ (моделирование):


Цикл регенерации (реальная плата и моделирование):



Циклы на реальной плате с отключенной коррекцией ошибок:






Смоделированные циклы с отключенной коррекцией ошибок:


Циклы на реальной плате с включенной коррекцией ошибок:





Смоделированные циклы с отключенной коррекцией ошибок:


Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/