Все большие бинарные файлы вынесены в репозиторий-сабмодуль:
https://github.com/1801BM1/cad11
Теперь коммиты идут туда отдельно от собственно проектов на верилоге.
Вид для печати
Все большие бинарные файлы вынесены в репозиторий-сабмодуль:
https://github.com/1801BM1/cad11
Теперь коммиты идут туда отдельно от собственно проектов на верилоге.
Уже 8 столбцов из 14.
Не публикую, т.к. решил по одному столбцу не кидать)
Из интересненького: очень бедная номенклатура элементов по сравнению с ХМ2-001. Там различных логических элементов было великое множество. А тут из простой логики 2И-НЕ, 2ИЛИ-НЕ, почти весь чип. И триггеры. И еще кое-что. И только изредка что-то интересненькое.
Ну естественно. Там из устройств только ловушка адреса. Регистр адреса и регистр данных совмещен с контроллером ОЗУ. Да и контроллер ОЗУ здесь простой, регенерации не делает, RAS не выставляет. Ну еще простые дешифраторы для сигнала BS и частичный дешифратор адресов К0, К1, К2 для 1801ВП1-120.
А вывод FD имеет какое-то отношение к адресной линии A5 ОЗУ, небось FifthDigit.
9 столбец из 14.
Из интересненького:
1. Пару столбцов на первый лист все-таки не влезут, и придется переносить на второй. Но лучше два последних столбца, где меньше связей, чем где-то посередине чипа, где самый завал этих самых связей.
2. Только я посетовал, что сплошные однообразные элементы, как началось просто-таки засилье дешифраторов разных, и, соответственно, разной логики.
3. В этом чипе очень много триггеров. Причем, в основном, работающих по уровню, а не по фронту.
- - - Добавлено - - -
Почему-то там для ВМ1 две схемы vm1_ma и vm1_mg. Это буквы А и Г?
Столбец 10 из 14.
Из интересненького:
1. Сплошные триггеры.
2. Сплошные связи.
Еще два столбца.
Из интересненького.
1. Триггеров в этом чипе набралось уже под 90 штук.
2. Под конец пошли дешифраторы разбавив скукотищу шин.
3. Есть весьма странные решения, например N35.
4. Пришлось сделать переход на второй лист, что весьма затрудняет работу, но что делать, не уместились.
Первый этап реверса 1515ХМ2-003 завершен!
Схема на двух листах в PDF.
Схема для P-CAD.
Из интересненького:
1. Последний столбец - это исключительно одни элементы 2И-НЕ, из которых каждые 4 сгруппированы в элемент XOR (исключающее или).
2. Схема сравнения двух регистров сделана совсем не так, как в ХМ2-001, что опять же говорит о другой команде разработчиков. И реализация XOR совершенно другая.
3. Загадочная и недокументированная ножка 21 помечена, как UNC. Теперь каждый поймет, для чего она нужна)
4. На фотографии есть кляксы и артефакты, но они ничего принципиально важного не закрыли.
У тебя в пикаде по ширине листа еще запас не выбран - все вполне могло бы влезть в один листик 60000x60000
Очень интересненько внутри ХМ2-003.
Всякие регистры и прочее.
Интересно, что ловушка адреса не 16-битная, а 17-битная)
Из интересненького:
В регистре управления ловушкой, по INIT сбрасывается только бит 8 (разрешение прерывания). Все остальное имеет произвольные значения.
А это в зависимости как адресуют ОЗУ. Можно прямо, тогда доступно всего 64 Кб, соответственно адресная линия AD0 не учитывается, т.е. адрес 0 и 1 это одно и тоже. Можно через регистр адреса 0176640, тогда доступно 128 Кб. В случае адресации через РА, если в РА адрес равен 1, то это адрес 2 при прямой адресации.
Приведено в понятный человеку вид примерно 75% от всех схемы.
Уже кое-что можно порассматривать интересненькое.
Пока вроде не вижу формирование сигнала RPLY. В ловушке адреса есть такая особенность - если она настроена на выдачу сигнала ПОРТ, то вместе с этим сигналом по сигналам DIN или DOUT происходит формирование сигнала RPLY. Т.е. запрограммировали ловушку на адрес 0177514, и в странице ввода-вывода должен появится данный регистр. Естественно с него всё время читается ноль, а запись уходит в никуда.
Появится регистр, на который запрограммировали ловушку адреса. Это даже не регистр. Просто ловушка адреса в режиме выдачи сигнала ПОРТ еще должна отвечать RPLY.
- - - Добавлено - - -
Добавлю, что регистр не реальный, а виртуальный, так что искать его в 1515ХМ2-003 не стоит.
Можно попробовать в пультовом отладчике. Занести в 0176646 число 177514, а в 0176644 число 400. После этого должен появится регистр 0177514.
Напомните, какая ножка сигнал ПОРТ.
И за что отвечает ножка MO (РЕЖ).
Уточню полярность, напишу.
- - - Добавлено - - -
Да, похоже, как IO.
- - - Добавлено - - -
Выяснил, как работает неизвестная ножка 21 (/UNC).
UNC устанавливается (внешняя ножка инверсная, значит сбрасывается), если соблюдены несколько условий:
1. Установка SYNC после сброшенного SYNC.
2. Установлен ST, либо нет обращения к памяти или регистрам.
UNC сбрасывается по установке DIN или DOUT.
Разобрался с /FD. Это делитель некоей внутренней частоты (пока еще не дошел до того места, что за частота) ровно на 3. Причем, делитель навороченный, чтобы деление было с равной скважностью 50/50.
Обнуляется делитель по установке DIN и DOUT одновременно. Видимо, опять для стендовых испытаний.
- - - Добавлено - - -
Разобрался, что за частота делится на 3. Это CLC1 и CLC2 сложенные по XOR.
Еще не все причесано до конца, но уже все распознано.
Кому интересно, можно уже сейчас посмотреть, как работают секретные выходы FD и UNC.
Не смотря на то, что на первый взгляд ХМ2-003 казался проще, чем ХМ2-001, на самом деле логики там тоже немало. В основном в контроллере памяти.
- - - Добавлено - - -
Я имею в виду, в чем задействована в УКНЦ эта нога ST?
В схеме Mick'а на его сайте нашел ошибочку. D11 названа DS11.
- - - Добавлено - - -
Небольшое уточнение по поводу выхода FD.
Сперва из двух фаз F1 и F2 по XOR восстанавливается исходная частота 12.5МГц, затем уже она делится на 3, и получается 4.16МГц. У кого-нить есть мысли, зачем она могла понадобиться? Да еще с хорошей правильной скважностью, и синхронная с F1?
- - - Добавлено - - -
Финальная версия 1515ХМ2-003.
Итак, все причесано.
Диаграммы обращения к памяти рисовать не стал, т.к. без реверса контроллера ОЗУ - это не имеет смысла.
Если найдутся ошибки, пишем.
Я так понимаю, что элемент N34 тоже нужен для стендовых испытаний?
Т.к. требует соблюдения условий неактивного SYNC, и активного DIN и SEL?
- - - Добавлено - - -
Так же нашел маленькую ошибочку. K16 - это 2И, а не 2ИЛИ.
- - - Добавлено - - -
И еще о формировании сигнала RPLY при обращении к ячейке памяти, на которую установлена ловушка адреса, если включен вывод в порт ST.
Если эта ячейка находится в области регистров, то формируется RPLY, и на шине появляется виртуальный пустой регистр, как уже писал выше Alex_K.
Если же эта ячейка находится в памяти, то RPLY будет формироваться не по DATA_REPLY после обращения к реальной ячейке памяти, а гораздо раньше по установке ST, что опять же приведет к чтению фигни.
С помощью этого элемента реализуется цикл "Безадресное чтение", соответственно этот цикл есть только в 1801ВМ2/1806ВМ2. По этому циклу передается содержимое безадресного регистра. Старший байт используется процессором для формирования адресов векторов прерывания режима HALT, установленный 7-й говорит о том, что отсутствует эмулятор FIS. Остальные биты (с 0 по 6) пультовый отладчик может использовать по своему усмотрению, например в ДВК на младшие биты выводятся свитчи начального запуска. Программа также может прочесть содержимое безадресного регистра в режиме HALT по команде RSEL (код 020). В УКНЦ читается 0160000, т.е. вектора прерываний режима HALT начинаются с адреса 0160000 и присутствует эмулятор FIS.
А что на счет неизвестного выхода unc? Есть идеи, зачем он?
Вопрос к автору реверсов 1801ВП1, @Vslav.
Ты не против, если я ВП1, которые относятся к УКНЦ, дореверсю до своего формата, в котором я делаю ХМ1 и 2?
Vslav, добрый вечер. А можно ли, по тому, что уже сделано в реверсе вм3, определить - в halt режиме при обращении по адресам диапазона 0-77776(8) что проц выдаёт на шину в качестве адреса - полный диапазон (0-77776) или урезанный (0-17776)?
С позволения @Vslav'а, сделал оптимизированную версию реверса 1801ВП1-120 в стиле отреверсенных 1515ХМ2.
На соответствие техническому описанию особо не проверял. Так даже интереснее, потому что менее предвзято) Так что если есть ошибки, сообщите. Всякие там перепутанные полярности (бич оптимизированных реверсов).
Почему мне понадобился реверс в таком виде - потому что мне важно смотреть и сразу видеть на схеме законченные блоки. Вот регистр. Вот порт. Вот управление. Все сигналы подписаны интуитивно понятно. Тогда очень быстро можно ориентироваться в схеме и логике работы.
Оптимизированная версия совсем простенькой 1801ВП1-055, основанная на реверсе @Vslav'а.
Для упрощения, не стал делать буфера с разной задержкой для двух половинок шины, т.к. ни на эмуляции, ни на реализации в ПЛИС это никак не скажется. Очевидно, разная задержка (разница ориентировочно 10нс), была сделана для уменьшения шума на линии питания.