А так как процесс пошел, то его надо углУбить.
Вид для печати
Начинка: контроллер ОЗУ ПП, доступ к планам памяти 0,1 и 2, контроллер адресного пространства, частичный компаратор адресов для 1801ВП1-120, спрайтовый механизм.
Доступ к планам памяти:
177010 - регистр адреса планов
177012 - регистр данных плана 0
177014 - регистр данных планов 1 и 2
Спрайтовый механизм:
177016 - регистр кода цвета точки
177020 - регистр кода цвета фона, планы 0-1
177022 - регистр кода цвета фона, планы 1-2
177024 - регистр октета точки
177026 - регистр маски планов
Поддержка по записи с выдачей RPLY для регистров прототипа:
177030 - 177052
Контроллер адресного пространства:
177054 - регистр управления адресным пространством
Выводы:
1 - выход CAS, выбор столбца для байта ОЗУ
2 - выход адреса ОЗУ A0
3 - выход адреса ОЗУ A1
4 - выход адреса ОЗУ A2
5 - выход адреса ОЗУ A3
6 - выход адреса ОЗУ A4
7 - выход адреса ОЗУ A5
8 - выход адреса ОЗУ A6
9 - выход адреса ОЗУ A7
10 - вход-выход данных ОЗУ D0
11 - вход-выход данных ОЗУ D1
12 - вход-выход данных ОЗУ D2
13 - вход-выход данных ОЗУ D3
14 - вход-выход данных ОЗУ D4
15 - вход-выход данных ОЗУ D5
16 - вход-выход данных ОЗУ D6
17 - вход-выход данных ОЗУ D7
18 -
19 -
20 -
21 -
22 - вход-выход AD15 (МПИ)
23 - вход-выход AD14 (МПИ)
24 - вход-выход AD13 (МПИ)
25 - вход-выход AD12 (МПИ)
26 - вход-выход AD11 (МПИ)
27 - вход-выход AD10 (МПИ)
28 - вход-выход AD9 (МПИ)
29 - вход-выход AD8 (МПИ)
30 - вход-выход AD7 (МПИ)
31 - вход-выход AD6 (МПИ)
32 - общий (земля)
33 - вход-выход AD5 (МПИ)
34 - вход-выход AD4 (МПИ)
35 - вход-выход AD3 (МПИ)
36 - вход-выход AD2 (МПИ)
37 - вход-выход AD1 (МПИ)
38 - вход-выход AD0 (МПИ)
39 - выход CE0, выбор ПЗУ в адресах 100000-117777, бит 0 регистра 0177054
40 - выход CE1, выбор банка кассеты ПЗУ, бит 1 регистра 0177054
41 - выход CE2, выбор банка кассеты ПЗУ, бит 2 регистра 0177054
42 - выход CE3, выбор слота кассеты ПЗУ, бит 3 регистра 0177054
43 - вход EVNT, сетевой таймер от видеоконтроллера частотой 50,08 Гц (19968 мкс)
44 - выход EVNG, сетевой таймер для ПП, разрешение бит 9 регистра 0177054
45 - выход EVNС, сетевой таймер для ЦП, разрешение бит 8 регистра 0177054
46 - выход RPLY (МПИ)
47 - вход SYNC (МПИ)
48 - вход DIN (МПИ)
49 - вход SEL (МПИ)
50 -
51 - выход CS, частичный компаратор адресов К0-К2 для 1801ВП1-120
52 - выход BS (МПИ)
53 - выход EDIN, сигнал DIN для ПЗУ
54 - выход СС1, запрос к видеоконтроллеру к планам памяти 1 и 2
55 - выход СС0, запрос к видеоконтроллеру к планам памяти 1 и 2
56 - выход RQ, запрос к видеоконтроллеру к планам памяти 1 и 2
57 - вход WTBT (МПИ)
58 - вход DOUT (МПИ)
59 - вход PS, линия арбитра от видеоконтроллера
60 - вход INIT (МПИ)
61 - вход CLC1, тактовая частота
62 - вход CLC2, тактовая частота
63 - выход WE, сигнал записи в ОЗУ
64 - питание +5В
- - - Добавлено - - -
Прерываний не используется. Непонятно для чего поступает SEL, т.к. конфигурация адресного пространства одинаковая для режимов USER и HALT.
Продолжение банкета - 3-й столбец из 22.
Уже вырисовыаются какие-то логические закономерности. Регистры всякие и дешифраторы.
p.s.: Всеобщий карантин рождаетпидоровиковпередовиков домашнего производства)
- - - Добавлено - - -
Никто и не заметил ошибку в триггере A64 :)
Там уже есть часть схемы, вспомнил для чего SEL. По сигналам nSEL, nDIN, pSYNC выдается на шину безадресный регистр. Его значение 0160000.
Тыц - 4 столбца из 22.
Интересно, что номенклатура элементов совсем иная, чем в ХМ2. Очень много 2-И, вместо традиционного для ХМ2 2-И-НЕ.
В целом элементы попримитивнее. Даже разновидностей триггеров пока что только две. Незадействованные части элементов просто не используются. Тогда как в ХМ2 все оптимальнее (и сложнее для реверса), когда на каждый вариант использования, скажем, триггера, своя схема элемента.
- - - Добавлено - - -
А зачем это надо?
Столбец 5 из 22.
Этот столбец был посложнее. Много соединений, больше элементов. Уже кое-что пришлось раздвигать из ранее сделанного, чтобы впихнуть невпихуемое.
Все четче и четче прорисовываются регистры и все такое прочее. Очень много буферов. Возможно, также, цепей задержки.
Номенклатура элементов все еще бедна по сравнению с ХМ2. Практически в разы.
Столбец 6 из 22.
Только в предыдущей серии я посетовал, что бедна номенклатура элементов, как тут же появилось куча всякой разнообразности. И двунаправленные мультиплексоры, и всякая другая фигня. И впихивалось все это еще сложнее, чем в предыдущем столбце. А с учетом безумного количества длинных соединений, которыми располосован кристалл, этот столбец просто лютый ад)
Интересную заметил особенность в управлении D-триггерами.
У этих триггеров, как известно, есть управляющие входы R (reset) и S (set). Они могут использоваться, а могут не использоваться (посажены на землю). При этом, R имеет приоритет над S. Т.е. если установлен R, то все равно, какое состояние S.
Чаще всего в нашей схеме используется только вход R. Но при этом встречается два варианта управления. Первый - это нормальный, когда S посажен на землю. А второй вариант - ненормальный, когда S обьединен с R. При этом R, имея высший приоритет задавливает S, т.е. S значения не имеет. Интересно, зачем так по-разному сделали в одной и той же схеме. Единственная мысль приходит на ум, что это творчество двух разных людей внутри одного коллектива.
- - - Добавлено - - -
Выглядит это так:
https://pic.maxiol.com/images2/15853...4841820.01.png
7-й ряд из 22.
Еще более сложный, чем предыдущий.
В основном сложности в большом количестве соединений, которые надо не перепутать и вместить.
Так же появился новый элемент RS-триггер.
Вырисовываются регистры, мультиплексоры и тактовые генераторы.
8-й столбец из 22.
В общем, тут еще жестче, чем в 7 столбце.
Триггеры в нижней части кончились (завершились 8-битовые регистры), и началась мелкая логика. А она занимает на схеме гораздо больше места, чем компактные триггеры.
Пришлось перекраивать части схемы, чтобы что-то сдвинуть и приподнять низ схемы, иначе эта логика вообще никак не влезала (вашшпще, насяльнике).
По сравнению с ХМ2 соединений тут больше. Возможно, это связано с тем, что в ХМ2 больший уровень оптимизации, а в ХМ1 как будто сперва расставили элементы, сгруппировав и выровнив их, а потом трассировали соединения и мелкую логику. Из-за чего очень много очень длинных и витиеватых линий.
9-й столбец из 22.
Из интересненького.
1) Когда подошел к концу цепочки сигнала R для нижних двух групп триггеров, оказалось, что он сидит на земле, и все триггеры пришлось из RDC переделать в DC.
2) Всякие другие косметические убранства.
3) Уже почти половина чипа, между прочим ;)
4) Некоторые соединения или кто-то правил ручками, или из-за глюков трассировщика они имеют очень странную форму, например, дорожка идет-идет, потом разворачивается на 180 градусов и идет назад.
5) Очень много мультиплексоров.
10-й ряд из 22.
Из интересненького:
Ничего)
Только миллиарды регистров. А так же схем сравнения или дешифраторов адреса (подробнее не смотрел). И счетчиков загадочных немало.
Этот ряд был наконец-то проще. В некоторых местах разрежен. Решил поменять подход, и не тянуть все связи каждый столбец, а оставить их до востребования. Может так будет и быстрее, и надежнее.
Да, счетчик нужен. Чтение слова в два приёма. Запрос к памяти ЦП идёт через видеоконтроллер. А регистров много, кроме адреса и данных планов, есть ещё спрайтовый механизм.
Увидел часть регистра 177054 - G4.G5.G6 (бит 0 - CE0), H4.H5.H6 (бит 1 - CE1), J4.J5.J6 (бит 2 - CE2), K4.K5.K6 (бит 3 - CE3).
11 столбец из 22.
Ровно половина! Та-дам!
Будем надеяться, что влезет.
Из интересненького:
Кристалл грязноватый. Местами отвалилась металлизация, местами под грязью не очень хорошо видно дорожки.
И еще панорамы склеены более криво, чем в ХМ2 (это вопрос к @Vslav, почему так).
Также миллиарды соединительных линий.
А так же куча схем сравнения (или XOR).
Первое неоднозначное место с кляксой. В этом месте много перекрестных соединений.
Я его пока что восстановил так:
https://pic.maxiol.com/images2/15858...04841820.1.png
12 столбец из 22.
Из интересненького:
Сплошное однообразие)
Есть скол в области ввода-вывода, площадки на 3-4, не очень чистая, но реверсить можно, деваться некуда :)
13-й столбец из 22.
Из интересненького:
1) Появился RS-триггер с инверсными входами.
2) Номенклатура элементов все еще невелика, по сравнению с ХМ2.
3) Уровень оптимизации тоже ниже. Из-за чего нет зеркально отраженных по вертикали элементов, и очень длинные связи.
4) Периодически встречаются глюки трассировки. Когда линия идет, идет и никуда не придет) Или же шла, развернулась, обратно пошла. Вряд ли это правка ручками финальной схемы. Я думаю, что именно глюки трассировщика.
14-й столбец из 22.
Из интересненького:
1. Проявились схемы тактирования.
2. Мир регистров и мультиплексоров.
3. Все больше убеждаюсь, что разработка шла готовыми блоками размерами с целые регистры, которые потриггерно стройными рядами натыкали, а потом трассировали соединения, как придется. Соединения порой очень длинные. А иногда такие, что по кругу все обойдут и вернутся рядом, но с другой стороны. В ХМ2 в этом плане все очень хорошо оптимизировано.
4. Рисую не заглядывая в шпаргалку, как выглядят элемены, т.к. уже запомнил их наизусть. Да и разнообразия элементов особо нет, запоминать нечего.
5. В ХМ2 вывод содержимого различных регистров на одну шину делался просто - они обьединялись по И. А в ХМ1 все более громоздко, целые системы с мультиплексорами.
Начинаем обратный отсчёт - девять, восемь ...
Да там одни резисторы в четырнадцатом столбце. :biggrin:
Ну в ХМ1 стандартная библиотека элементов, которую надо объединить, так что выбора особого нет. А объединение по И есть. Например биты 4, 5 и 6 при выдаче на шину проходят через элементы 5И, это элементы L12.L13, M12.M13, N12.N13. Так как биты 3 и 7 в регистрах 177020 и 177022 не используются, то в элементах K12.K13 и R12.R13 я вижу только 3И, хотя может там и 5И, но два входа не задействованы (должны быть на VCC). Ну и для самых насыщенных битов 0, 1 и 2 выделили целую кучу, в том числе F6.F7, F8.F9, F10.F11.
Элементы-то все одни и те же, только расставлены будут по-другому)
@Vslav не выкладывал фотку 136-й склеенной в единую панораму.
15-й столбец из 22.
Из интересненького:
1) Начали проявлятся порты A0-A7. Сделаны тоже на мультиплексорах, но иначе, чем AD0..AD15
2) Место для трассировки связей пока есть, буду надеяться, что его хватит.
- - - Добавлено - - -
p.s.: Похоже, один столбец все же в лист P-CAD'а не уместится, и придется переносить на другой. Печалька.
- - - Добавлено - - -
p.p.s: Полез ковыряться в формате файла P-CAD'а, .sch, нашел, где там задаются размеры листа (максимально 60 дюймов, или 1524мм). Попробовал поставить больше, и редактор это скушал! Странно, т.к. я раньше пробовал, и почему-то не получалось. Если не заглючит, так можно размер листа любым сделать. Другой вопрос, не окривеет ли из-за этого редактор в процессе редактирования. Поэтому пока не дойду до края листа, не буду его увеличивать.
- - - Добавлено - - -
Инструкция, как изменить размер поля в P-CAD:
Размер задается в миллиметрах. Берем заданный размер, например, 1700мм. Умножаем его на 100000, и переводим в шестнадцатиричный 32-битный формат, получается 0x0A21FE80.
Записываем в файл .sch размер листа по вертикали по смещению 0x00D1 в обратном порядке байт - 80, FE, 21, 0A,
а размер листа по горизонтали по смещению 0x00DD, соответственно.
Разумеется, это справедливо для схемы, где всего лишь один лист. Для схемы с другим количеством листов, смещения будут в другом месте. Не исключено, что и для одного листа они могут располагаться в другом месте, в зависимости от размера других данных в заголовке. Но эти смещения нетрудно найти, если знаешь изначальный размер листа.
Что-то не то, возможно там миллиметры, никогда не видел чтобы оно давало выйти за ограничения 60x60 дюймов.
Я бы насторожился и сделал бэкап, база может умереть в любой момент и больше не открыться, такое случается если возникает внутренняя ошибка, сохраняется в файле, а потом валидатор при открытии говорит - "база данных не алё".
Размер листа в редакторе схем PCAD-2004/2006 один - аттрибут называется workspaceSize, для всех sheets во всей схеме.
Схему можно сохранить в текстовом формате, для этого в диалоге "Save As" выбрать опцию "ASCII Files *.sch" в качестве выходного формата.
Тогда можно найти что-то типа (workspaceSize 60000.0 60000.0) и поменять руками. Но, я попробовал поставить 80000x80000 и оно при загрузке схемы выдало предупреждение и обрезало до 60000x60000.
Менять текст в файле схемы надо осторожно, а то оно может не загрузиться. Например, очень не любит букву "я" - это код 0xFF в кодировке 1251, PCAD-200x считает что это конец текстового файла и когда попадется текстовый аттрибут типа "Author Вячеслав" загрузка файла на букве "я" радостно завершается с ошибкой. Поэтому, бывает файл с надписями в кириллице пишется в текстовый файл, а потом его обратно открыть не получается. Мне везло - кириллица в проектах была не нужна, а народ радостно эти грабли откапывает до сих пор. Со смещениями в бинарном файле надо тоже аккуратно - там есть опция компрессия файла базы :).