PDA

Просмотр полной версии : Цифровая археология: 1801 и все-все-все



Страницы : 1 2 3 4 [5] 6 7 8 9 10 11

Saar
02.01.2016, 13:29
Vslav,
Может имеет смысл вывести содержимое R0-R7,PSW на выходные сигналы (read-only, хотя бы)? Было бы полезно для отладки и прочего.
Я, могу это сделать и сам, но хотелось бы это иметь в вашем первоисточнике (Wsync). На поведении модели это же не должно сказаться.

Vslav
02.01.2016, 14:41
Vslav,
Может имеет смысл вывести содержимое R0-R7,PSW на выходные сигналы (read-only, хотя бы)? Было бы полезно для отладки и прочего.
Иерархические имена в Верилоге позволяют "вытащить" для чтения любой сигнал из любого экземпляра модуля, поэтому во внешние интерфейсы всякий редкоиспользуемый мусор обычно не тащат. Возможно, неплохо было бы добавить отладочный интерфейс через JTAG - точки останова, доступ к внутренним переменным и прочее, но это отдельный не самый простой вопрос, если встраивать это все в процессор "по уму". И кто потом будет писать и использовать отладчик для этого всего?

Patron
02.01.2016, 17:40
Добавление модели 037 влечет за собой добавление модели динамической памяти, дополнительных регистров и прочего, что совершенно излишне для отладки собственно процессора.Если импортировать из модели 037 только сигнал RPLY, то модели объединяются без проблем.

Если дополнительно убрать из модели 037 всё, что не относится к генерации сигнала RPLY при обращении к адресу 000000, то она превратится в модель задержки 037: Async_+_037.rar (http://emulator.pdp-11.org.ru/misc/Async_+_037.rar)

Для запуска модели в ModelSim - нужно перейти в её каталог при помощи File->Change Directory и ввести в консоли ModelSim команду do run.do

http://emulator.pdp-11.org.ru/misc/msim15.png

- - - Добавлено - - -

В данной модели процессор работает на частоте 4 МГц. Для запуска процессора на другой частоте - нужно изменить настройку в файле config.v



`define SIM_CONFIG_CLOCK_HPERIOD 125 // 166 == 3 MHz ; 125 == 4 MHz ; 100 == 5 MHz ; 83 == 6 MHz

Vslav
02.01.2016, 21:45
Прекрасно, моделью можно воспользоваться для изучения задержек, создаваемых 037.

MiX
02.01.2016, 21:53
Vslav, Я не сильно разбираюсь в этой теме. Может есть смысл подключить модель 030 для изучения задержек?

Vslav
02.01.2016, 22:38
Vslav, Я не сильно разбираюсь в этой теме. Может есть смысл подключить модель 030 для изучения задержек?
Безусловно, смысл есть. Но смотрите какая ситуация. *sync - это модели процессора 1801ВМ1, максимально приближенные к реальной схеме, с разной степенью реалистичности и адаптации для практического применения в ПЛИС. И все тестбенчи в них "заточены" именно для тестирования собственно процессора. Все внешние прилепленные агенты этой главной цели могут если не помешать, но сделать использование менее удобным. Пример - найдена ошибка при исполнении какой-то инструкции (как с MUL было), надо исправить ядро и прогнать тест. При этом может сбиться времянка теста (такое многократно бывало при переносе модели на очередной этап), простая внешняя схема, которая всегда реагирует за фиксированное время позволяет проще найти рассогласование, не загромождая модель ненужными для данного случая деталями (плавающий RPLY в случае 037). Поэтому я считаю излишним внесение всяких компонентов, специфичных для конкретной платы (037 для БК, 030 для 1201.01) - это уже детали для отдельных проектов, а не проекта generic VM1. Планируются же generic VM2/VM3, туда тоже надо будет притащить 030/037? Впрочем, чтобы не пропал труд Patron-а по подключению модели 037, можно подумать над опцией конфигурации, чтобы моделирование RPLY-037 было опциональным.

Упдата: форум глючит постоянно - сообщение удваивает

Patron
02.01.2016, 22:47
Может есть смысл подключить модель 030 для изучения задержек?Можно и 030 вместо 037 подключить, но хотелось бы ещё иметь для 030 такой же "человеческий" вариант модели, как и для 037.

- - - Добавлено - - -


можно подумать над опцией конфигурации, чтобы моделирование RPLY-037 было опциональнымГде RPLY-037, там и RPLY-030. Кроме того - в модели задержек дополнительно эмулируется триггер на входе ВМ1, выравнивающий входные изменения RPLY по срезу CLC.

Saar
03.01.2016, 10:08
Patron,
а в Wsync можете delay_037.v перевести? Там, насколько я понимаю, нужно wb_ack задерживать.

Patron
03.01.2016, 10:41
а в Wsync можете delay_037.v перевести? Там, насколько я понимаю, нужно wb_ack задерживать.Существующей модели 037 нужны для работы сигналы Q-Bus :



module delay_037
(
input nDCLO,
input nSYNC,
input nDIN,
input nDOUT,
output nRPLY
);


Как получить эти сигналы в модели Wsync - я не знаю.

Saar
03.01.2016, 13:03
Patron,
Я сам попробую, вроде разобрался. Думаю соответствие такое:
wbm_cyc_o = ~nSYNC
wbm_stb_o = ~(nDOUT & nDIN)
vm_dclo = ~nDCLO
wbm_ack_i = ~nRPLY

- - - Добавлено - - -

Patron,
always @(*) if (RASEL) TRPLY = 1'b1; else if (PIN_nDIN & PIN_nDOUT) TRPLY = 1'b0;
IMHO для комбинаторной логики данная конструкция странно выглядит. Нехватает еще одного присвоения для TRPLY.

- - - Добавлено - - -

Хм.. глянул 037-rc0.rar - думал посмотреть как там сделано. А там совершенно нечитабельный машинный код.
Нормальный верилог 037 никто не делал?

Vslav
03.01.2016, 13:32
Хм.. глянул 037-rc0.rar - думал посмотреть как там сделано. А там совершенно нечитабельный машинный код.
Нормальный верилог 037 никто не делал?
Прошу прощения - не успеваю все ссылки править, постараюсь обеспечить актуальность пока (надо проекты куда-то нормально выложить, в githab или на OpenCores) в первом посте, ссылки на актуальные архивы добавил. В 037 есть файл va_037.v - это переписанный "по-человечески" код.

Saar
05.01.2016, 04:58
надо проекты куда-то нормально выложить, в githab или на OpenCores
Или на оба.
На OpenCores проект точно не потеряется среди тонны других. Зато на github классный контроль версий. Не чета ублюдочной SVN.
На github можно микро-коммиты делать, а на OpenCores выкладывать уже с большими обновлениями.

ilynxy
07.01.2016, 14:08
Добрый день.
Просветите, пожалуйста, по процессору ВМ2 в применении к УКНЦ.

1.1. Шина адреса при нечётном адресе
а) Как будет выглядеть шинный цикл MOV (R0), R1 если R0 нечётное? (если я правильно понимаю AD[0] в этом случае равен 0, то есть чтение выравнено по чётному адресу, прерывания типа "unaligned access" нет)
б) Как будет выглядить шинный цикл MOVB (R0), R1 и MOVB R1, (R0) если R0 нечётное? В частности интересует нога WTBT и AD[0] отражают ли они байтовую адресацию при записи? А при чтении?

1.2. Правильно ли я понимаю, что при байтовых операциях типа CLRB (R0) или MOVB rN, (R0) цикл выглядит как READ-MODIFY-WRITE?
При этом в цикле READ считывается выравненное слово без выставления WTBT, MODIFY нужная часть слова (верхний или нижний байт) и, затем, WRITE по пункту 1.1б.
Интересно почему было принято такое решение, поскольку AD[0] и WTBT (если я правильно понимаю их назначение) позволяют обойтись без цикла READ-MODIFY.

1.3. Используется ли вообще ноги WTBT и AD[0] в дешифраторах УКНЦ (я смотрел схему, но не понял). Поскольку для байтовых команд процессор использует RMW это позволяет обойтись без WTBT и AD[0].

2. Зависание при приёме адреса вектора прерывания.
Квитируется ли цикл обработки VIRQ сигналом RPLY? Я помню, что при отладке встречал такой тип зависания (*** ЗАВИСАНИЕ ПРИ ПРИЁМЕ А.В.П. ***).
Когда определяется этот тип зависания: а) нет RPLY в момент получения адреса вектора в цикле VIRQ-IAK0 или б) нет RPLY когда фетчится память по адресу полученному в цикле VIRQ-IAK0? (Я склоняюсь к варианту а), поскольку это бы точно отражало назначение этого зависания).

4. Квитируется ли цикл чтения SEL сигналом RPLY? То есть возможно ли зависание при "чтении регистра SEL" (и какой вектор в этом случае)? Или он всегда завершается успешно?

И сразу ещё вопрос, относительно эмуляторписательства: как обычно реализуется дешифрация команд для "ортогональных" процессоров типа DEC PDP-11? Быстрее будет таблица вызовов или развесистое дерево if/switch? Я, конечно, померяю при возможности, но в плане реализации табличный метод, конечно проще и менее подвержен ошибкам при модификации. Вопрос в быстродействии.

Если интересно: пишу эмулятор УКНЦ (синдром NIH) и есть идеи как получить достаточно точное соответствие времянок учитывая асинхронщину на шине. Взять за основу ukncbtl не получится в придуманной мной концепции, проще переписать. Хотя многие идеи ворую почти без изменений.

Titus
07.01.2016, 14:17
И сразу ещё вопрос, относительно эмуляторписательства: как обычно реализуется дешифрация команд для "ортогональных" процессоров типа DEC PDP-11? Быстрее будет таблица вызовов или развесистое дерево if/switch? Я, конечно, померяю при возможности, но в плане реализации табличный метод, конечно проще и менее подвержен ошибкам при модификации. Вопрос в быстродействии.

Хотя бы частичное таблицезирование завсегда будет быстрее. Можно сделать иерархию таблиц.
Замечу, что развесистый switch компилятор так же может превратить в таблицу.

- - - Добавлено - - -



Если интересно: пишу эмулятор УКНЦ (синдром NIH) и есть идеи как получить достаточно точное соответствие времянок учитывая асинхронщину на шине. Взять за основу ukncbtl не получится в придуманной мной концепции, проще переписать. Хотя многие идеи ворую почти без изменений.

Потактово точный, ипи так, побаловаться?)

ilynxy
07.01.2016, 14:48
Потактово точный, ипи так, побаловаться?)
Понимаю Ваш сарказм. Насколько получится точный. Я прочёл тему про измерение быстродействия разных команд (спасибо, очень помогло). Проблема с "потактовым" соответствием комплексная и сложная, у меня есть некотрые идеи как приблизиться к идеалу. Я изложу здесь кратко свое видение этой проблемы (осторожно, поток сознания):

Проблема №1. Смоделировать потактово процессор вполне возможно при доступной информации (забив на несущественные моменты типа POWER ON STARTUP timing и т.п.).
При этом шинные обмены должны эмулироваться с учётом Проблемы №2 (циклы READ/WRITE/VIRQ и т.п.)

Проблема №2. Смоделировать шинные обмены с учётом разных частот и их синхронизации. Здесь куча неясных для меня моментов. Но есть и некоторые светлые.
Известны обеих частоты процессоров. Известна частота видеоформирователя и общий принцип работы арбитра шины. При учёте времянок этих четырёх сущностей у меня в голове вырисовывается стройная картина "вполне потактового соответствия". В данный момент я описываю шинные обмены практически машинами состояний и переходами сигналов (чёрт подери, это реализация части функциональности HDL-симулятора), что позволит в теории написать "приближенный к реальности арбитр".

Неясные моменты: времянки при обращении к IO-MAPPED регистрам -- тут может быть разброд и шатание и можно провести много времени с осциллографом измеряя шинные циклы разной перефирии. Но этот момент я пока даже не рассматриваю как реалистичный (у меня нет "железной" УКНЦ).

Как-то так. Собственно из-за реализации "шины позволяющей эмулировать сигналы RPLY, VIRQ и т.п." у меня и возникли вопросы из предыдущего сообщения, а так же это причина по которой модификация ukncbtl в эту сторону слишком затратна, ввиду другой идеологии.

Titus
07.01.2016, 14:53
Неясные моменты: времянки при обращении к IO-MAPPED регистрам -- тут может быть разброд и шатание и можно провести много времени с осциллографом измеряя шинные циклы разной перефирии. Но этот момент я пока даже не рассматриваю как реалистичный (у меня нет "железной" УКНЦ).
А вот я, написав уже один эмулятор, менее оптимистичен на счет осциллографа и концепции 'примерно понимаю времянки'.
Теперь сижу жду реверса ВМ2 и других времязадающих чипов УКНЦ (в особенности таймера, реверсом которого я по чайной ложки занимаюсь). До этого времени чего-то писать или переделывать в эмуле считаю бесполезным.

ilynxy
07.01.2016, 15:13
А вот я, написав уже один эмулятор, менее оптимистичен на счет осциллографа и концепции 'примерно понимаю времянки'.
Теперь сижу жду реверса ВМ2 и других времязадающих чипов УКНЦ (в особенности таймера, реверсом которого я по чайной ложки занимаюсь). До этого времени чего-то писать или переделывать в эмуле считаю бесполезным.Я не спорю, что на данный момент нет полной информации по поводу времянок УКНЦ (даже процессора ВМ2). Я не видел других эмуляторов, кроме ukncbtl (если где-то есть -- дайте, пожалуйста, ссылки). Но даже владея полной информацией по времянкам её нельзя будет использовать в ukncbtl (по-крайней мере сейчас), поскольку решение задачи разночастотных шин процессора, арбитра и видеоформирователя приведёт к сильной переделке кода (чем я и занимаюсь). А когда появится детальная информация -- тогда её можно будет быстро применить, поскольку модель эмулятора будет готова к таким изменениям.

Время выполнения команд в тактах для ВМ2 измерялось множеством способов. То есть растактовка команд не представляет проблемы. Растактовка методов адресации должна решится при решении задачи асинхронной шины (ну то есть фиксированное количество тактов должно дополнятся, если требуется синхронизация в текущий момент и т.п.). Время реакции на прерывания -- это вопрос, хотя диаграммы есть, можно покурить. Таким образом, как только будет решена проблема эмуляции асинхронной шины решение остальных вопросов будет сводится к подстановке конкретных цифровых параметров. Это будет большим шагом к "потактовому соответствию".

Titus
07.01.2016, 15:46
Я не спорю, что на данный момент нет полной информации по поводу времянок УКНЦ (даже процессора ВМ2). Я не видел других эмуляторов, кроме ukncbtl (если где-то есть -- дайте, пожалуйста, ссылки).

EmuStudio (http://zx-pk.ru/showthread.php?t=18027)

ilynxy
07.01.2016, 15:51
EmuStudio (http://zx-pk.ru/showthread.php?t=18027)
Что то не найду исходники. Быстрое гугление приводит к эмуляторам чего угодно, но только не того что надо. )

nzeemin
07.01.2016, 16:00
И сразу ещё вопрос, относительно эмуляторписательства: как обычно реализуется дешифрация команд для "ортогональных" процессоров типа DEC PDP-11? Быстрее будет таблица вызовов или развесистое дерево if/switch? Я, конечно, померяю при возможности, но в плане реализации табличный метод, конечно проще и менее подвержен ошибкам при модификации. Вопрос в быстродействии.

Первоначально в UKNCBTL были чистые switch, с переходом к конкретной процедуре обработки команды.
Сейчас уже просто плоская таблица с переходом к таким же процедурам обработки команд -- т.е. расходуем больше памяти ради производительности.
Когда занимался оптимизацией, ещё разделил универсальные обработчики на отдельные для байтовых команд и словных команд.

Когда окончательно вскроют и опишут ВМ2 -- лучше всё же будет переписать весь код дешифрации и исполнения команд, с тем чтобы он работал через матрицы, полностью аналогичные тем что зашиты в самом процессоре.

Titus
07.01.2016, 16:00
Что то не найду исходники. Быстрое гугление приводит к эмуляторам чего угодно, но только не того что надо. )
А исходников я и не выкладывал)

Patron
07.01.2016, 17:52
.

Обсуждение особенностей работы и эмуляции процессора ВМ2, не связанное с темой реверса, уместнее ( на мой взгляд ) вести в другой теме.

Например:

1. Особенности процессоров и устройств архитектуры PDP-11. Тесты. Диагностика. (http://zx-pk.ru/showthread.php?t=18184)

2. КМ1801ВМ2 - Техническое описание. (http://zx-pk.ru/showthread.php?t=17284)

gid
11.01.2016, 12:55
Vslav, я тут на досуге пытался разобраться с выдачей результатов матрицы микрокода. Чтобы расписать таблицу, в которой однозначно было бы расписано, что каждый бит означает. В принципе, ясно довольно много, но остаётся непонятным самое нужное.
Как я понимаю, биты plx[14:11] являются управляющими, в зависимости от их комбинации, нужно по-разному интерпретировать некоторые другие группы битов.
Если plx[12] == 1, то неверный опкод, и вроде бы вообще всё, кроме битов следующего адреса можно игнорировать.
Если биты {13,11} == 2'b11, то это первая фаза, распознавание инструкции, иначе - вторая фаза.
Во второй фазе, биты {14,13,11} - Y bus operand type selector, либо биты биты {14,13} - ALU operation. Но вот как определить, что это в данный момент времени, мне как-то вообще не ясно. Из текста верилога пока ясно, что ALU operation должен обеспечивать все 4 комбинации из двух бит, а Y bus operand type selector, только некоторые из допустимых 8ми комбинаций, т.е. казалось бы, что если бит {11} == 0, то это ALU operation, иначе - это Y bus operand type selector, но нет, Y bus operand type selector тоже использует комбинации, когда бит {11} == 0.
Например, если {14,13} == 2'b11, то биты {27,26,25} - какие-то флаги для АЛУ, для интерпретации битов {28:25} как адреса регистра, используются несколько разных комбинаций битов {14,13,11}, причём как-то неочевидно.
Может я чего-то не так понимаю, и однозначная интерпретация результата матрицы микрокода невозможна? Нужно смотреть ещё разные дополнительные регистры, напр. sop_out или ещё что-нибудь?

Vslav
11.01.2016, 17:36
К сожалению, пока дать полезный информативный ответ не в состоянии. Те функции входов-выходов матрицы что были понятны и очевидны - прописал в комментариях в файле vm1_plm.v. Но они там многофункциональны, "влёт" разобраться сложно, поэтому я сейчас пытаюсь зайти с другой стороны, немножко допилил MCODE и смотрю по каким микроадресам ходит микропрограмма и что при этом происходит. Интересно отрабатывают команды ветвления - в любом случае вычисляется PC+offset*2, но присвоение PC нового значения с выхода ALU просто блокируется, если условие не выполняется. Поэтому ВМ1 выполняет команды ветвления за одинаковое колдичество тактов, вне зависимости есть переход или нет. Но возможно что предвыборка следующей команды влияет на скорость, если нет перехода.


Если plx[12] == 1, то неверный опкод, и вроде бы вообще всё, кроме битов следующего адреса можно игнорировать.
Следующий адрес тоже можно игнорировать - происходит принудительный переход на адрес 0x01 и там обрабатывается принудительно записанный в 3-х битный регистр код прерывания.


Если биты {13,11} == 2'b11, то это первая фаза, распознавание инструкции, иначе - вторая фаза.
Насколько я разобрался - там еще есть пара состояний, и функционал зависит от других битов.


Может я чего-то не так понимаю, и однозначная интерпретация результата матрицы микрокода невозможна?
Да вроде никаких других сигналов нет, выходы матрицы однозначно определяют что выполняется в данный момент и куда оно перейдет в следующий. Момент перехода зависит от готовности остальных схем - можно выделить сигнал готовности внешней шины, сигнал готовности АЛУ, сигнал готовности блока матрицы прерываний.

Saar
13.03.2016, 03:24
Перевел свой эмулятор БК0011М на модель с QBUS. Благо, от WB не сильно отличается. Сделал небольшую обертку чтобы сигналы соответствовали WB (но уже с таймингами QBUS).
Пытаюсь прикрутить генерацию RPLY от 037 выложенную тут ранее.
И что-то не выходит.. Точнее, в пределах экрана я вижу совпадение по таймингам в мультиколоре демки Shock 2. Если бы был сдвиг, то это выглядело бы лесенкой в демке. Но там всё довольно точно. Но....
Что-то не то творится с вертикальной синхронизацией. Такое впечатление, что IRQ2 приходит позже строк на 10, но на самом деле это не так.
У меня есть подозрение, что в ВП1-037 тайминги разные в момент отрисовки информационных строк и в момент когда выводятся пустые строки и обратный ход. Иначе я не могу объяснить общий сдвиг отрисовки эффектов на экране.
Может кто-то перепроверить код ВП1-037 на предмет разных таймингов? Там есть VGATE, HGATE которые тормозят логику отрисовки, но я не смог уловить связи..
Если бы еще кто-то дописал тестбенч для 037 где были бы запросы со стороны CPU на максимальной скорости. Тогда по графику можно было бы посмотреть есть ли разница в сигнале RPLY.

- - - Добавлено - - -

Заспамил в тестбенче операциями qbus_write на максимальной скорости. RPLY выглядит одинаково на протяжении всего времени...
Непонятно почему тогда у меня IRQ2 не получается...

- - - Добавлено - - -

Нашел баг в коде из-за чего CLK для CPU иногда пропускал такт.
Теперь растактовка 100% как в БК0011М!

b_10101101
14.03.2016, 21:30
Добрый день!
А на какой платформе запускаете свой БК-вариант ? Исходники будут ?
Есть DE1, но опыта маловато, хотелось бы подсмотреть как стартануть проект по минимуму хотя бы.

Patron
14.03.2016, 21:43
А на какой платформе запускаете свой БК-вариант ?См. ЗДЕСЬ (http://zx-pk.ru/showthread.php?t=26080&p=852565&viewfull=1#post852565)



Исходники будут ?См. ЗДЕСЬ (https://github.com/sorgelig/BK0011M)

Vslav
26.03.2016, 23:24
Пополним копилку снимков, матричные кристаллы от МС-0585:
KM1527XM1-716 (полное разрешение 620М) (http://u.zeptobars.ru/yuot/1527/xm1-716-hd.jpg)
KM1527XM1-716 (четверть разрешение 57М) (http://u.zeptobars.ru/yuot/1527/xm1-716-fd.jpg)
KM1527XM1-717 (полное разрешение 704М) (http://u.zeptobars.ru/yuot/1527/xm1-717-hd.jpg)
KM1527XM1-717 (четверть разрешение 61М) (http://u.zeptobars.ru/yuot/1527/xm1-717-fd.jpg)
Обновил ссылки в первом посту.

Vamos
26.03.2016, 23:41
Такой абстрактный вопрос, а сейчас реально заказать ХМ со своей прошивкой или заменить аналогом, желательно совпадение по выводам.

Vslav
26.03.2016, 23:58
Такой абстрактный вопрос, а сейчас реально заказать ХМ со своей прошивкой или заменить аналогом, желательно совпадение по выводам.
Серию 1527 вряд ли, это продукция Воронежского завода была, а на сайте Ангстрема висит такое (http://www.angstrem.ru/products/Integrated-schemes-bmk/Digital-basic-matrix-crystals/), но на письма они не отвечают, я документацией и китом 1515 интересовался, так что скорее всего это "голимая реклама". Сейчас есть человек (наш форумчанин - захочет, сам назовется) , вплотную реверсит 1527ХМ1-715. Я думаю все закончится успешно и по результатам реверса будет реплика всех трех 715/716/717 на EPM3064 на платке в габаритах советского DIP-48 с шагом 2.5, как прямая замена 1527 серии. А то валяется (и не только у меня) куча плат от МС-0585, без этих микросхем, оригиналы редко попадаются и достаточно дорогие. Платки можно сделать с белым слоем маски, с черной маркировкой, издали вообще на разобрать будет что это реплика ))

Vamos
27.03.2016, 00:20
на EPM3064 на платке в габаритах советского DIP-48 с шагом 2.5, как прямая замена 1527 серии
Я интересовался с точки зрения замены в УКНЦ той которая видео делает, чтоб народ не мучался с адаптерами всякими, а заменил на новую и получил VGA на выходе к примеру.

Vslav
16.04.2016, 00:00
Закончил реверс и моделирование 1801ВП1-120 (http://u.zeptobars.ru/yuot/1801/VP1/120.rar). Довольно скучная микросхема, без неожиданностей, даже в статье нечего написать.
Так же давно готова и выложена 1801ВП1-055 (http://u.zeptobars.ru/yuot/1801/VP1/055.rar). Это еще более скучная микросхема, можно просто заменить парой 1533АП6.
Итого все 1801ВП1 из УКНЦ отреверсены. Дальше буду заниматься ВП1-119, интересно будет помоделировать 555ВЖ1 и коррекцию ошибок.
Все обновления внесены в первый пост.

bigral
16.04.2016, 02:48
555ВЖ1 реверсить смысла нет?

Vslav
16.04.2016, 08:55
555ВЖ1 реверсить смысла нет?
Абсолютно никакого, она полностью документирована и ничего кроме комбинационной логики не содержит. Зачем ЛА3, пусть и немного более сложную, реверсить? :)
К тому же ТТЛ/ТТЛШ так влегкую, по одному поверхностному снимку, не реверсятся.

Vslav
19.04.2016, 23:24
Выявилась непонятка с сигналом nТА у 1801ВМ3. Диаграммы, снятые с реального процессора, показывают что он активируется в момент выдачи процессором адреса на мультиплексированную шину nAD[15:0]. А 1801ВП1-119 по ниспадающему фронту на своем входе nTA осуществляет запуск автомата состояний DRAM. При этом очень важно временнОе соотношение с шиной старшего адреса и nSEL, там уже должен быть валидный адрес, иначе запуск цикла чтения не осуществляется. С циклом записи еще интереснее, nCAS может появиться раньше чем процессор выдаст данные и nDOUT, соответственно ни nWE и данные нормально в цикл DRAM не попадают. На реальной плате 1201.03 цепь nTA имеется, соответствует схеме, внутри отреверсенного экземпляра 119-ой, nTA четко приходит на триггер запуска циклограммы DRAM и никуда больше. Непонятно, то ли вскрыта нерабочая версия 119-ой (маркировка 9007 ОП, на кристалле надпись 119 без дополнительных циферок), то ли на платах реально приходилось отключать nTA, то ли процессор может работать в режиме без генерации nTA. В описании платы старт записи слова по nTA не происходит. Если nTA не использовать (задать всегда высокий), то модель нормально работает, читает-пишет слова, отрабатывают циклы записи байтов с предварительным чтением недостающего байта (на МС1201.03 запись может осуществляться только 16-битными словами).

Update: текущая схемка ВП1-119 (http://u.zeptobars.ru/yuot/MISC/119.pdf), PDF полежит временно

Update2:
Мда, у меня две платы мс1201.03, воткнул в них заведомо исправные ВМ3, ни одна нормально не завелась, генераторы работают, процессоры молотят по ПЗУ/пультовому ОЗУ, но к ВП1-065 не обращаются. Надо цеплять анализатор и разбираться. nTA генерируется, но, поскольку пока нет обращения к DRAM, сказать что-то определенное не получается.

Patron
20.04.2016, 01:03
процессоры молотят по ПЗУ/пультовому ОЗУ, но к ВП1-065 не обращаются. Надо цеплять анализатор и разбираться.Анализатор быстро покажет, в чём дело, потому что первое обращение к порту терминала происходит почти сразу:



################
HALT Trap to 020000
################
; 020000 -> HSP :000000

; PSW :000000 -> 017776:000000
; PC :177777 -> 017774:000000
; 000000 -> PC :177777
; 000340 -> PSW :000000

000000 [000340] JMP 005710 ; 005710 -> PC

005710 [000340] MOV SP, @#77114 ; R6 :177774 -> 077114
005714 [000350] MOV #95., @#77004 ; 005716:000137 -> 077004
005722 [000340] MOV #2422., @#77006 ; 005724:004566 -> 077006
005730 [000340] MOV R0, @#77100 ; R0 :000000 -> 077100
005734 [000344] MOV R1, @#77102 ; R1 :000000 -> 077102
005740 [000344] MOV R2, @#77104 ; R2 :000000 -> 077104
005744 [000344] MOV R3, @#77106 ; R3 :000000 -> 077106
005750 [000344] MOV R4, @#77110 ; R4 :000000 -> 077110
005754 [000344] MOV R5, @#77112 ; R5 :000000 -> 077112
005760 [000344] MOV @#077774, @#77116 ; 077774:177777 -> 077116
005766 [000350] MOV @#077774, @#77012 ; 077774:177777 -> 077012
005774 [000350] MOV @#077776, @#77120 ; 077776:000000 -> 077120
006002 [000344] CLR @#077010 ; 077010:000000
006006 [000344] CMP @#077000, #-22738. ; 077000:000000 -> 006012:123456
006014 [000341] BNE 006026

006026 [000341] CMP @#077060, #-27493. ; 077060:000000 -> 006032:112233
006034 [000341] BNE 006104

006104 [000341] CMP @#077060, #594. ; 077060:000000 -> 006110:001122
006112 [000351] BNE 006126

006126 [000351] CALL 012474 ; PC :006132 -> 017772

012474 [000351] CLR R2 ; R2 :000000
012476 [000344] TSTB @#177564 ; 177564: 200
012502 [000350] BMI 012506

012506 [000350] MOV #42., @#177566 ; 012510:000052 -> 177566 '*'

MM
20.04.2016, 02:33
...
Update2:
Мда, у меня две платы мс1201.03, воткнул в них заведомо исправные ВМ3, ни одна нормально не завелась, генераторы работают, процессоры молотят по ПЗУ/пультовому ОЗУ, но к ВП1-065 не обращаются. Надо цеплять анализатор и разбираться. nTA генерируется, но, поскольку пока нет обращения к DRAM, сказать что-то определенное не получается.
А какой адрес выставлен в набортной ВП1-065 ?
Платы из типового ДВК имеют выставленный адрес ВП1-065 на МС1201.03 на 176560.

Vslav
20.04.2016, 11:03
А какой адрес выставлен в набортной ВП1-065 ?

Ножка 23 ACL0 - высокий
Ножка 24 ACL1 - низкий
Таки да, 176560, его же золотари достали из рабочей машины, очень вероятно что с КЦГД :) Перемычки выбора скорости и старта процессора я проверил, а вот адрес упустил. Спасибо за подсказку.
Update: Добавил перемычку, одна из плат стартанула, "dostupnoe ozu - 256K", на ввод тоже реагирует, тест запустил.
Update2: Опробовал эмулятор VT52 от Patron и загрузил RT-11SJ через HX. Надо будет скорость поднять, 9600 маловато, заказал DIP-SWITCH, чтобы в плату нормальные переключатели впаять.
Update3: 1201.03 кушает 3.5A по +5V, очень греются 531ИР22 - 52-58С на открытом воздухе, 531АП2 почти холодные - 41-42С, 1801ВМ3 - 40С. Позже попробую поменять 531ИР22 на 1533ИР22, вроде должно работать, но "без огонька" :)

MM
20.04.2016, 14:27
...Update3: 1201.03 кушает 3.5A по +5V, очень греются 531ИР22 - 52-58С на открытом воздухе, 531АП2 почти холодные - 41-42С, 1801ВМ3 - 40С. Позже попробую поменять 531ИР22 на 1533ИР22, вроде должно работать, но "без огонька" :)
Может быть и надо их сменять на др. серию - но не стоит. Дело в том, что и так ИРки работают с превышением Кразв выхода раза так в 4 с хвостиком - от сюда ( может быть ) и вытекает гавнище с массовым выпадением инфы в ДОЗУ.
Было бы интересно на анализаторе оценить диаграммы доступа к ДОЗУ ( на мС1201.03 ) - причем все сигнальчики ( для анализатора ) следует на матери пропусить через ~КР1564АП6 - для исключения влияния шлейфа анализатора.

Vslav
20.04.2016, 15:12
Дело в том, что и так ИРки работают с превышением Кразв выхода раза так в 4 с хвостиком
А разве коэффициент разветвления считают не в пределах одной серии по соотношению входного и выходного токов? 565-ая серия, она же n-МОП, у нее входной ток очень небольшой, фактически это затворная утечка, поэтому, имхо, 1533 вполне справится, выходных токов для динамики тоже должно хватить. Проверим практически, есть надежда что потребление платы располовинится, оно менее критично к обдуву станет - я это все в корзинку еще хочу запихнуть с другими контроллерами.



~КР1564АП6 - для исключения влияния шлейфа анализатора.

Этим анализатором шина данных DDR2-400 напрямую спокойно отображалась, думаю, РУ5 тоже осилит :)
Конечно, все посмотрим, диаграммы 119-ой и памяти - это же самое любопытное. Для начала простые тестики прямо с пульта понабираю.

MM
20.04.2016, 16:49
А разве коэффициент разветвления считают не в пределах одной серии по соотношению входного и выходного токов? 565-ая серия, она же n-МОП, у нее входной ток очень небольшой, фактически это затворная утечка, поэтому, имхо, 1533 вполне справится, выходных токов для динамики тоже должно хватить. Проверим практически, есть надежда что потребление платы располовинится, оно менее критично к обдуву станет - я это все в корзинку еще хочу запихнуть с другими контроллерами....

В случае МС1201.03/04 чрезмерна емкостная и индуктивная нагрузка - что весьма критично при таких обстоятельствах.
Емкость 1 входа 565РУ5 - в районе 10 пф, что в массиве 44 БИС ДОЗУ ( в общей сложности ) выходит под 500 пф, из них порядка 100 пф - интерференция от соседних неопределенной фазы сигналов, в итоге для ~ 10 мгц сигналов выходит "кашка" .

Vslav
20.04.2016, 23:41
В случае МС1201.03/04 чрезмерна емкостная и индуктивная нагрузка - что весьма критично при таких обстоятельствах.
Емкость 1 входа 565РУ5 - в районе 10 пф, что в массиве 44 БИС ДОЗУ ( в общей сложности ) выходит под 500 пф, из них порядка 100 пф - интерференция от соседних неопределенной фазы сигналов, в итоге для ~ 10 мгц сигналов выходит "кашка" .
Хм, входную емкость адресных входов микросхем памяти стараются поменьше сделать, у 565РУ3 или аналогов 4164 на входе не более 5пф. Неужели РУ5 намного хуже по параметрам? Всего микросхем 44 штуки, но они разбиты на 2 банка, поэтому максимальная нагрузка на адресный выход - 22 входа. Погонная емкость типовой двухсторонней платы на FR-4 (эпсилон от 3.5 до 4), для ширины проводника 0.25мм и зазоре 0.25мм - от 0.5 до 0.8 пф/см, ну пусть проводник длиной 50 см, получим 40 пф. В-общем, если очень-очень не повезет - наберем по шине адреса 150-200пФ.
Реальные картинки с моей платы, линия адреса A0, вход самой дальней микросхемы (на краю платы):

Нарастающий фронт:
http://s018.radikal.ru/i511/1604/d2/72d25e9d9807t.jpg (http://s018.radikal.ru/i511/1604/d2/72d25e9d9807.png)

Ниспадающий фронт:
http://s017.radikal.ru/i410/1604/9b/19d6462a5a23t.jpg (http://s017.radikal.ru/i410/1604/9b/19d6462a5a23.png)

Тут, кстати, фронт очень резкий (от 48мА качают), линия несогласована, есть выраженный undershoot. Можно снять заряд плавнее, почти без потери быстродействия, 531 серия тут не очень хорошо подходит.
Снизу на картинках осциллограф измерил время фронтов - изменение сигнала от уровня 10 до уровня 90 процентов. Я начинаю думать что тут и 74HCT373 со своими симметричными 6мА на выходе может справиться.
И регистры неравноценную роль на плате играют, D15, D16 и D37 можно заменить вообще не раздумывая, очень высокая вероятность, что нормально заработают D28 и D29. К тому же уменьшится время конфликтов по выходу - старший адрес разрешается раньше чем запрещается младший, на время задержки на D20.3. И только насчет замены D30 и D31 надо подумать и поэкспериментировать.

- - - Добавлено - - -

Цикл записи DATO процессор ВМ3 не предваряет сигналом TA. "Тут играть, тут не играть, тут рыбу заворачивали" (c). О как.

- - - Добавлено - - -

Цикл записи слова в банк 0 DRAM, в момент записи возникает запрос на рефреш, цикл рефреша следует за циклом записи.
http://s008.radikal.ru/i306/1604/d8/e2d543a90983t.jpg (http://s008.radikal.ru/i306/1604/d8/e2d543a90983.png)
Легенда (на этой и последующих картинках):
Частота дискретизации 200МГц, точность всех временнЫх интервалов 5 нс.
CLK - тактовая на процессоре (на 119 она будет задержана и инвертирована)
REFCLK - тактовая запросов на рефреш (ножка 2 119-ой), по фронту фиксируется запрос на цикл рефреша
nTA - выход процессора, любопытно, что строб генерируется только для циклов DATI и DATIO
nRAS0, nRAS1, nCAS, nWE, nWEC - выходы 119-ой
nDRAS0, nDRAS1, nDCAS, nDWE, A0, A1 - входы микросхем DRAM 565РУ5
nEAR - разрешение регистров адреса рефреша (D26/D27)
nEAL - разрешение регистров выдачи младшего байта адреса (D28/D29)
nEAH - разрешение регистров выдачи старшего байта адреса (D30/D31)

С отреверсенной моделью все совпадает.
Процессор выставляет nWTBT, адрес, неактивный nTA и активирует nSYNC. ВП1-119 при этом никаких циклов внутри не запускает. Потом активируется nDOUT, при этом 119-ая внутри взводит триггер запроса на цикл доступа к DRAM, запрос будет обслужен по ниспадающему фронту CLK. К первому срезу CLK процессы внутри 119-ой завершится не успевают, и мы теряем целый такт на ожидании запуска. Особенность ли это данного конкретного экземпларя 119-ой или это характерно для всех мкиросхем - скзать сложно. На следующем срезе CLK запускается наконец цикл доступа, видим активированный nRAS0, далее управляются регистры мультиплексора адреса, активируется nCAS, затем выставляется nREPLY, и цикл записи завершается. Затем после паузы начинается цикл рефреша. 119-ая всегда генерирует рефреш по циклу CAS-before-RAS. Отдельная внешняя схема отслеживает это момент и для 1201.03 с мискросхемами РУ5 просто блокирует прохождение CAS на сами микросхемы DRAM. На диаграмме видно что схема отработала не совсем удачно, на выходном CAS есть всплеск длительностью 10-15 нс.

Фаза выдачи адреса подробнее:
http://s018.radikal.ru/i513/1604/8f/c9a6c12e112ct.jpg (http://s018.radikal.ru/i513/1604/8f/c9a6c12e112c.png)
Для микросхем 565РУ5Г требуются такие параметры:
- удержание адреса после среза RAS - мин 40 нс
- CAS после RAS не ранее 55 нс
- установка адреса перед срезом CAS - мин 0 нс
- удержание адреса посла среза CAS - мин 45 нс
- длительность неактивного RAS - мин 200 нс
- длительность RAS - мин 150 нс
- длительность СAS - мин 120 нс
Нарушений особо вроде нет, все с запасом, единственное что - маловато удерживается адрес после активации RAS (после переразрешения регистров проходит еще 25-30нс до установки адреса на входах РУ5), но это легко подкручивается цепочкой R1/C104. Времени между RAS-CAS на микросхемах DRAM более 200нс, вполне достаточно и для применения более слабых регистров 1533ИР22, вполне можно выкрутиться, и есть еще резерв для задержки CAS.

MM
21.04.2016, 01:11
Интересно видеть диаграммы с такими сигналами :
1. ТА
2. SYNC
3. DIN
4. DOUT
5. SSYNC
6. A0 DRAM
7. A1 DRAM
8. A2 DRAM
9. A3 DRAM
10. A5 DRAM
11. A6 DRAM
12. A7 DRAM
13. RAS
14. CAS
15. AD0
16. AD1
17. AD2
18. AD3
19. AD4
20. AD5
21. AD6
22. AD7
23. RPLY
24. СLC CPU
25. Сигнал записи в регистры фиксации данных из ДОЗУ

При съёме диаграмм можно выполнять такую программу с 1000 адреса :
001000 : 012701 000000 000775

Предложенная последовательность кода и сигналов М-ЭВМ позволит предположить корректность/некорректность работы с БИС ДОЗУ в части правильной последовательности выставления адресов и синхросигналов для 565РУх .
( Хотя, судя по всему, попался какой-то прято таки правильный образец МС1201.03, где все диаграммы как в ТО, а не как на большинстве плат... ).

Vslav
21.04.2016, 07:41
Интересно видеть диаграммы с такими сигналами :
Сделаю обязательно, но чуть позже (вероятно, на следующей неделе, пока плату убрал со стола).

Глядя на диаграммы разрешения регистров мультиплексора адреса, видно раcхождение в 15нс, это много для 531-ой серии. Наверняка там еще и кратковременный конфликт по выходам возникает, со сквозным током, особо хорошо для адресов типа 177400 и 000377 - максимальное количество выходных линий конфликтует при переключении. А с учетом немерянной дури выходных драйверов 531ИР22, помеха должна весьма приличная возникать, ну и в нагрев оно свой вклад вносит, вероятно. Планирую еще D20 на более быструю 1533ЛА3 заменить.

AFZ
22.04.2016, 21:23
С удивлением обнаружил, что ВМ2тоже имеет средства для построения многопроцессорных комплексов. Вроде-бы везде писали, что это было только у ВМ1, а тут и ВМ2, причем как 1801, так и 1806...

Vslav
22.04.2016, 21:48
С удивлением обнаружил, что ВМ2тоже имеет средства для построения многопроцессорных комплексов. Вроде-бы везде писали, что это было только у ВМ1, а тут и ВМ2, причем как 1801, так и 1806...
Эти средства разного порядка. У ВМ1 встроен арбитраж доступа к шине, а у ВМ2 просто есть запрос разрешения доступа к области памяти. В первом случае это определяет кто пользуется шиной, и понятно как работает, а вот какие задачи предполагали решать окном ВМ2 непонятно абсолютно. При условии, что операция DATIO атомарна, все межпроцессорные примитивы синхронизации реализуются без всяких дополнительных аппаратных возможностей.

AFZ
23.04.2016, 06:35
Эти средства разного порядка. У ВМ1 встроен арбитраж доступа к шине Вот это меня удивляло больше всего. Ведь шина в те времена, практически, и была самым узким местом. И, навесив не нее 4 процессора, можно получить ситуацию, когда они, в основном, будут ждать шину, а не работать. Впрочем, на сугубо специальных задачах польза может быть и будет. Например, когда каждая вторая-третья команда в основном цикле программы - умножение. (Не зря военные требовали команду умножения, без нее многопроцессорность вообще теряла смысл). Это сейчас можно поставить этим ВМ1 10-ns Static RAM, после чего они сействительно смогут работать параллельно. Но сейчас и процессоры намного быстрее, и все эти задачи решаются через многоуровневое кэширование и прочие средства, широко известные по писюкам.


а у ВМ2 просто есть запрос разрешения доступа к области памяти А это больше похоже на средства кластеризации. И, в отличие ВМ1, опять же, на сугубо специализированных задачах, может дать существенный выигрыш, вплоть до сложения быстродействий отдельных микрокомпьютеров. Допустим, если задача разделяется на несколько слоёв. Первый комп обсчитывает первый слой, результаты передает через окно второму, второй считает свой слой, первый в это время считает новую порцию данных, и т.д. И, похоже, такие задачи у военных были, иначе зачем бы делали два окна процессору 1806ВМ2 ? Поскольку более 4-8 процессоров, работая через одно окно, скорее всего, будут тормозить друг друга, а с двумя окнами цепочка этих "слоёв" не ограничена - первое окно принимает данные от предыдущего слоя, второе передает следующему и цепляй эти слои последовательно, хоть сотню.

Vslav
29.04.2016, 07:21
Утренняя, свежесобранная за ночь панорама металла 1801ВМ3:
полное разрешение (640МБ) (http://u.zeptobars.ru/yuot/1801/KM1801VM3-MET-HD.jpg)
четверть разрешение (60МБ) (http://u.zeptobars.ru/yuot/1801/KM1801VM3-MET-FD.jpg)

Надо сказать, что используемый для сборки панорам инструментарий подошел к технологическому пределу. Проектные нормы ВМ3 меньше чем ВМ2, к тому же на него нет заводской документации, поэтому детализации объектива x10/0.30 показалось недостаточно для нормального реверса и было принято решение снимать объективом x20/0.50. Кристалл у ВМ3 достаточно большой (9*7мм навскидку), плюс объектив с бОльшим увеличением (и, соответственно, меньшим полем), это привело к появлению 400 снимков, на 9 мегапикселей каждый, общим объемом 10ГБ.

На проекте панорамы из 400 снимков начал очень сильно тормозить Hugin, по любому действию, особенно долго ставились контрольные точки, секунды по 3 каждая (а их минимум надо было поставить руками 2700 штук). BarsMonster попытался расставить снимки и контрольные точки автоматически, но после двух дней загрузки компа матчер "зашел на второй круг", а сколько кругов понадобится мы не знали, поэтому этот энергозатратный процесс прекратили :)

В итоге я разбил панораму на два подпроекта по 200 снимков и расставил точки там, по 200 снимков Hugin как-то проекты переварил. Затем собрал две половинки панорамы и попытался их сшить, увы, это оказалось невозможно в различных панорманых инструментах, очень долго и со значительными искажениями по шву (пробовал ICE, PanoFactory, Hugin). Поэтому две половинки были слиты в один общий проект на 400 снимков и предпринята попытка сборки панорамы из него. Предварительная оптимизация и выравнивание снимков думала два дня и мне ждать надоело. Поэтому, увы, пришлось про панораму на 3 гигапикселя 60К*50К забыть, и снизить разрешение исходных снимков в 2 раза. Тут уже предварительная оптимизация часов за 8 смогла снимки расставить. Далее обнаружился очередной барьер - используемый блендер multiblend имеет приниципиальное ограничение в 255 файлов. У него там в переменных под поле номера изображения отведено 8 бит, остальные 24 бита от dword тоже используются, поэтому "в лоб" оно не расширяется. Пришлось долго играться с другими блендерами, были проблемы с совмещением снимков (пятнистые границы), в итоге пришлось вернуться к старому и очень медленному enblend-у. Тут снова (как и у multiblend) вылезло ограничение на размер выходного файла в 2ГБ. Это не файловая система, это ограничение где-то внутри используемых графических библиотек. В итоге разрешение панорамы пришлось еще урезать до 24*21К. В-общем, сплошные компромиссы. И то собиралось 14 часов, вот к утру появился результат :)

1Ж24Б
29.04.2016, 20:15
начал очень сильно тормозить Hugin
Так он с самого начала у вас работает ? Про ручную простановку меток всё понятно - как правильно сшиваются панорамы ОЗУ/ПЗУ.

Vslav
29.04.2016, 20:22
Так он с самого начала у вас работает ? Про ручную простановку меток всё понятно - как правильно сшиваются панорамы ОЗУ/ПЗУ.
Я раньше не пробовал проекты панорам с таким большим количеством снимков. С 200 все работает и собирается нормально, с 400 - тормозит сам Hugin и не работает сборщик.
Сборка раньше осуществлялась утилитой multiblend минут за 10 для 100 снимков. 400 снимков в эту утилиту "не влезли", пришлось использовать медленный enblend. Multiblend open-source и небольшой, надо с ним разобраться и перекомпилировать.

svinka
28.05.2016, 22:36
Добрый вечер, форумчане!

Сегодня стал обладателем КР1807ВМ1 (воронежская копия DEC T-11).

Хочу пожертвовать штучку на препарирование и фотографирование с целью реверса.

Vslav
29.05.2016, 01:28
Хочу пожертвовать штучку на препарирование и фотографирование с целью реверса.

yursav уже "пожертвовал" три штуки, две уже открыты, ждут фотографирования. Но там грязи много осталось на кристаллах, если не получится шлифовкой отчистить, придется еще кристаллы декапить. В-общем, прямо сейчас жертвовать не нужно, но есть небольшой шанс, что в будущем понадобятся еще кристаллы.

А пока радуемся фотографии диффузии 1801ВМ3. Фото получилось не очень, сначала я кристалл долго шлифовал, шлифовка не получилась нормально - очень толстое защитное стекло, начало протираться неравномерно, пришлось отдавать на травление в смеси плавиковой, соляной, ортофосфорной и уксусной кислоты. Стравилось все хорошо, но не видно где проходил полисиликон, придется подсматривать в микроскоп. Также есть артефакты сколов, похоже что при шлифовке переходные отверстия к уровню диффузии удалялись вместе с кусочком самого кремния. В-бщем, реверсить можно, но с трудностями.

полное разрешение (400 МБ) (http://u.zeptobars.ru/yuot/1801/KR1801VM3-DIF-HD.jpg)
четверть разрешение (32 МБ) (http://u.zeptobars.ru/yuot/1801/KR1801VM3-DIF-FD.jpg)

Vslav
04.06.2016, 23:27
Интересно было выяснить, развивалась ли технология на Ангстреме с 1985 по 1990 годы, для этого сравним снимки 1801ВМ1/ВМ2/ВМ3.

Эталонный микрометр:
http://s008.radikal.ru/i304/1606/09/3efd25378cc3t.jpg (http://s008.radikal.ru/i304/1606/09/3efd25378cc3.jpg)

КМ1801ВМ1 1985 года:
http://s018.radikal.ru/i511/1606/3f/756da3e12fcct.jpg (http://s018.radikal.ru/i511/1606/3f/756da3e12fcc.jpg)

КМ1801ВМ2 1988 года:
http://s019.radikal.ru/i640/1606/db/98fa712d4994t.jpg (http://s019.radikal.ru/i640/1606/db/98fa712d4994.jpg)

КМ1801ВМ3 1990 года:
http://s020.radikal.ru/i712/1606/95/dfcb09b521c8t.jpg (http://s020.radikal.ru/i712/1606/95/dfcb09b521c8.jpg)

Для каждой микросхемы была измерена характерная минимальная ширина затвора и металлического проводника.
От партии к партии ширина элементов может немного варьироваться, в пределах технологического допуска. Оказалось, что ВМ1 очень незначительно отличается от ВМ2, а ВМ3 практически сделан по тем же нормам что и ВМ2. Определенно технологические нормы у всех сфотографированных микросхем практически те же самые, да и неудивительно, серия одна и та же - 1801.

CodeMaster
05.06.2016, 10:14
Оказалось, что ВМ1 очень незначительно отличается от ВМ2, а ВМ3 практически сделан по тем же нормам что и ВМ2.

А за счёт чего частота ВМ2 в 2 раза выше ВМ1? Частота ВМ3 на уровне ВМ1 видимо уже из-за усложнения архитектуры кристалла?

Vslav, напомнил ты мне вопрос, который уже довольна давно хотел спросить у тебя. Вот на твой взгляд, после реверса 1801ВМх (а заодно ты, наверное, одним глазком смотрел и реверсы 580ВМ1, Z80 и т.д), с сегодняшних позиций разработчики этих процов вытянули всё (или почти всё) из тех технологий? Или если бы они владели некой современной методологией они из тех же технологий могли "выжать" в 2-, 5-, 10-раз больше производительности? Или могли и тогда, но производительность процессора ограничивалась существующей переферией: шиной, памятью и т.д.?

Vslav
05.06.2016, 13:01
А за счёт чего частота ВМ2 в 2 раза выше ВМ1? Частота ВМ3 на уровне ВМ1 видимо уже из-за усложнения архитектуры кристалла?
У ВМ2 частота внутри делится пополам, то есть 10МГц ВМ2 полностью эквивалентны 5МГц ВМ1. Другое дело, что ВМ2 архитектурно продвинутее, микропрограмма быстрее работает, у ВМ1 нужно два такта на извлечение микроинструкции, а ВМ2 справляется за два полутакта (два такта 10МГц), это не значит что MicROM стало быстрее, просто структура схем выборки поменялась. ВМ3 уже без внутреннего делителя частоты, его частота эквивалентна ВМ1, но он еще более архитектурно усовершенствован.



с сегодняшних позиций разработчики этих процов вытянули всё (или почти всё) из тех технологий?

Думаю, да, вытянули близко к максимальным возможностям. Технология в первую очередь ограничивает транзисторный бюджет. Вполне можно сделать однотактовую версию PDP-11, вопрос только в количестве блоков и транзисторов, нужных для их реализации. Тот же Z80 сделали версию Next, но в транзисторный бюджет оригинального Z80 оно не влезет в разы.



2-, 5-, 10-раз больше производительности?

Производительность грубо можно выразить как (частота)*(тактов на инструкцию). "Частота" определялась физическими параметрами транзисторов, а "тактов на инcтрукцию" - транзисторным бюджетом - сколько можно надежно и экономически выгодно разместить транзисторов на одном кристалле при данной технологии. Иногда бюджет упирается в ПВГ, иногда в максимальный размер кристалла, иногда в тепловые параметры - тот же ВМ3 имеет большой кристалл и транзисторы разнесены очень свободно, думаю из-за тепла. Сейчас же у нас есть FPGA, там и транзисторы получше (частоту того же ВМ1 нарастили на порядок), и их стало много (этим пока в репликах 1801ВМ1 не пользовались, но архитектуру можно переработать).



Или могли и тогда, но производительность процессора ограничивалась существующей переферией: шиной, памятью и т.д.?
Периферия развивается по таким же законам, происходит рост частоты и количества транзисторов, плюс учет уже физических параметров внешних схем (нужно учитывать параметры плат при больших частотах - проводники уже становяться важной частью схемы). Так что, процы и периферия всегда примерно друг другу соответствуют по частотам и архитектурам.

Nick Pastushok
06.06.2016, 23:23
тот же ВМ3 имеет большой кристалл и транзисторы разнесены очень свободно, думаю из-за тепла.

Мое мнение на этот счет другое.
Полтора и даже два W, это очень не много для такого роскошного керамического корпуса как у КМ1801ВМ3. Надеюсь, кристалл так же имеет отличную теплопередачу в керамический корпус, и препятствий там особых отвода тепла нет.

То фото, что мы можем видеть в интернете, такой вот процессор с приклеенным на весь корпус радиатором, так это таки и не факт, надписи не видно и в таком же или очень похожем корпусе еще были быстродействующие много-разрядные перемножители КМ1802ВР4 и К1518ВЖ1 - такие себе цифровые печки :-) Хотя их импортные отдаленные аналоги по докам TMC2009=TDC1009, TDS1010 жрали всего в пределах до 100-200мА - до 1W. Но у нас все было на порядок круче, так что токи возможно так же в пару раз круче.

573335733457335

Кроме того такой радиатор может был и нужен 1801ВМ3-му , но только вот не для ДВК-шки, не для обычных нормальных условий с хорошей вентиляцией корзины с платой процессора а для некоторого спецоборудования, в котором были тяжелые условия в виду или особой компактности или просто из за отсутствия нормальной вентиляции даже при нормальном объеме.

А свободность на кристалле не так уж и велика. Хоть и вентилей рединько, но они кучками сосредоточены, а между ними дороги достаточно плотно утыканы и валом их. Конечно же можно было бы и по плотнее и даже тех залысин не оставлять, но чип достаточно сложен и особенно для ручной разводки, потому, при проектировке, оставляли некоторый запас пространства, чтобы все гарантировано влезло и если что не так, чтоб не переразводить все а втиснуть при необходимости еще чего. Это очень сложный чип чтобы его в те времена в сроки могли вылизывать до идеала. Вот и не вылизывали, не оптимизировали а пекли чего сразу получилось "на быструю руку". Так что как не крути а при большей сложности и дорог много, а дорогам, и особенно шинам нужно свободное место без вентилей, и площади этого места нужны обширные, попробуй их точно рассчитай и сведи так точно все спроектированные узлы-куски во едино, чтобы сшилось идеально без залысин и плотненько.

Ну а регулярные структуры (регистры, поля ПЗУ и ПЛМ, счетчики, дешифраторы) как раз и компактно собраны (отдельно проэктировались или брались из библиотеки да прикручивались готовинькими), там в основном все место занимают вентили а не дороги, и при этой плотности ничего не перегревается, просто оно, регулярное, очень хорошо и компактно упаковывается, и при полтора Вт на кристалл при таком огромном керамическом корпусе вряд ли кто особо задумывался о перегревах локальных или кристалла вообще.

Ну это мое личное субъективное мнение а не истина, может быть я и не прав, а может мы оба правы по немногу :-)

MM
06.06.2016, 23:43
М1801ВМ3 всякие бывают ...
Первые ОП 1986 г. шли с алюминиевой пластинкой - как на АЦП ( на фото выше ).
Даже из одной партии одной даты, из 1 шт. заводской упаковочной коробки бывают экз с приблизительно одинаковым напряжением смещения подложки и в разы отличающиеся по термопакету ( при одинаковой частоте и напряжении питания ). Причем холодышки совсем не требуют обдува и исправно работают на 7.50 мгц при комнатной температуре +25 градусов часами ( в зацикленном тесте ОЗУ ), имея температуру корпуса в районе +35 градусов спустя час тестов. А вот горячие пироги - те норовят потребовать питания не менее +4.90 в. при 6 мгц и на отрез не гонятся свыше 6.75 мгц, требуя пассивного теплоотвода от П-3 - и тот при комнатных +25 градусах нагревается так до примерно 40 градусов за 1 час теста ОЗУ. В общем, разброс по потреблению получается в районе 200 ма ... ~ 600 ма.
Кстати, критически важно тестировать ВМ3 по полной программе RT-11 - т.к. отлавливаются экз с хранения, не знающие о VM: , до 5 % и более.

Nick Pastushok
07.06.2016, 01:09
Ах да , и как это я забыл еще и про АЦП в таком же корпусе 1108ПВ1 кажись или 3, да там у нее такой же корпус могу напутать , один из этой серии 6-битный в корпусе как у 1801ВМ1, а второй 8-битный в корпусе как у 1801ВМ3, и где то на теренах то ли интернета , то ли еще Фидо в 2000-ых, когда такие быстрые АЦП для оцифровки Видео были в СССР в диковинку, а на западе дороги, встречал о нем такое высказывание "Его горячество" вместо его величество, и с ним не советовали иметь дело а покупать импортные, например TDA8703 или TDA8708. Это говорит о том что коптило это 1108-ое АЦП не хило. Видел такие в корзинах ПАЛ-СЕКАМ транскодеров от стойки оборудования телевизионной аппаратной, когда работал на местном ТВ. Там он оцифровывал ПАЛ, заганял в ОЗУ 565РУ5 и потом от туда в СЕКАМ, а фишка в том что выход синхронен с отдельного входа синхронизации а вход синхронизируется по источнику сигнала (два разных клоковых домена). Работали эти корзина отлично и не глючили. В нашей стояли 6-битки а у соседней аппаратной была корзина по серьезней с 8-битными. Чего то тогда у меня интереса не было пальцем их пробовать на температуру.

MM
07.06.2016, 02:48
http://storage1.static.itmages.ru/i/16/0606/s_1465256781_7535767_d5df8700b7.jpg (http://itmages.ru/image/view/4369315/d5df8700)
Из коллекции господина Скорохода.

CodeMaster
07.06.2016, 07:03
Даже из одной партии одной даты, из 1 шт. заводской упаковочной коробки бывают экз с приблизительно одинаковым напряжением смещения подложки и в разы отличающиеся по термопакету ( при одинаковой частоте и напряжении питания )

Что интересно, эта формулировка не потеряла своей актуальности и для современных процессоров.

Vslav
07.06.2016, 09:02
чип достаточно сложен и особенно для ручной разводки, потому, при проектировке, оставляли некоторый запас пространства
Да, согласен, это тоже одна из причин почему трассировка ВМ3 выглядит такой неплотной. Хотя как минимум уже 1801ВМ2 трассировался в специализированной системе проектирования (15УТ-4-017, еще не совсем полноценный САПР, имхо, просто топологический редактор), но все равно топололия планировалась вручную. Вероятно, операции copy-paste уже были, поэтому оно не все так печально.

Vslav
12.06.2016, 21:10
Однако, "ничего не предвещало опасности" (с). 1801ВМ3, отрисовано примерно две трети, и уже 23 тысячи транзисторов. Хорошо бы оно за 30К не выбежало. КПДВ:

http://s017.radikal.ru/i415/1606/70/a8e3a19bfef3t.jpg (http://s017.radikal.ru/i415/1606/70/a8e3a19bfef3.png)

Titus
12.06.2016, 21:45
Однако, "ничего не предвещало опасности" (с). 1801ВМ3, отрисовано примерно две трети, и уже 23 тысячи транзисторов.
А что там с ВМ2? Он уже отстал от паровоза?

Vslav
12.06.2016, 21:59
А что там с ВМ2? Он уже отстал от паровоза?
Не, не отстал, просто сейчас работы много, устаю, а над ВМ2 думать надо. А понемножку рисовать можно в любом состоянии, вот потихоньку ВМ3 и векторизую.

Nick Pastushok
14.06.2016, 21:14
Вот какая картина:
1801ВМ1 - 5 Мгц , до 1.2 Вт (600-800мВт) , заявлено на кристалле 5х5 мм. 50 000 именно транзисторов или 100 000 структур , но на самом деле транзисторов около 16 800 (~ 5мкм).
1801ВМ2 - 5 Мгц , 1.75 Вт , заявлено на кристалле 5.3х5.45 мм. 120 000 элементов , примерно 18 500 транзисторов (~ 4мкм).
1801ВМ3 - 6 Мгц , 1.5 Вт , заявлено на кристалле около 200 000 вентилей , кристалл ~ 7х9 мм. и примерно до 30 000 транзисторов пока ожидается (~ 4мкм).

Вот пока мое мнение такое что кристалл 1801ВМ3 по площади больше чем в 2 раза крупней и даже сделав скидку на меньшую плотность и компактность разводки следует наверное ожидать и почти в 2 раза больше транзисторов а это 18 500 х 2 , потому, думаю, дотянет до 35 000, ну уж за 30 000 перевалит точно.
Если я правильно понимаю, узкое место в 30 000 в ПИКАДе ?

Vslav
22.06.2016, 13:33
за 30 000 перевалит точно.

Не, не перевалил. Примерно 28900 транзисторов получилось.

Картинка в GIF, ~12М, кликабельно:
http://s018.radikal.ru/i508/1606/46/31698018d275t.jpg (http://s018.radikal.ru/i508/1606/46/31698018d275.gif)



Если я правильно понимаю, узкое место в 30 000 в ПИКАДе ?

Да оно все уже тормозит, пикад не самый медленный еще.

Titus
22.06.2016, 14:10
Не, не перевалил. Примерно 28900 транзисторов получилось.
Когда же будет готова схема ВМ2?
Все эмуляторописатели сразу же (а может и не сразу) напишут 'честные' УКНЦ, ДВК и т.д.

Vslav
22.06.2016, 14:45
Когда же будет готова схема ВМ2?

Транзисторная схема давно готова, наверное модель имелась ввиду?
Я надеюсь что ВМ2 будет еще в этом году, надо хотя бы по одному процессору в год "выпускать" :)

Nick Pastushok
22.06.2016, 22:10
У Вас указано 39,40,41,42 как GND.
Я для своего макета тестером на одном из моих двух процов звонил, получалось что только 42, а 39-41 ни с чем ни как не звонились, то есть они не могут быть подключены на этот пятачок. Так же и указан проц в обозначении на многих схемах и в справочниках.

57453

Возможно есть разные варианты процов?

Я заметил что в Вашей отладочной плате Вы все эти контакты закоротили и все обозначили как GND, но там у меня это ни каких подозрений не вызвало , потому как нигде не указано что их нельзя использовать и реально они ни как ни с чем не звонятся. (если бы что то было звонились бы защитные диоды или просто сопротивление какое то было на землю или на плюс).

- - - Добавлено - - -

Да, и вот был вопрос , зачем отдельные две земли ?

Vslav
22.06.2016, 23:07
У Вас указано 39,40,41,42 как GND.
Я для своего макета тестером на одном из моих двух процов звонил, получалось что только 42, а 39-41 ни с чем ни как не звонились

Да, очень хороший вопрос.
Ответ определяется разваркой кристалла в корпус, то есть схемой тоненьких золотых проводничков, соединяющих контактные площадки на кристалле с контактными площадками внутри корпуса микросхемы. На площадку кристалла которая на фото обозначена как 39-42 приходит два проводничка, я сразу не разбирался откуда именно они идут, поэтому там надпись 39-42, сейчас проверил (на втором кристалле - первый кристалл сошлифован, там уже никаких проволочек нет, а на втором уже изрядно микроскопом помяты) - оба идут с корпусного вывода 42, а корпусные выводы 39-41 свободны, тут Вы правы. Точно так же сделаны дублированные соединения на контактах 32 и 64.

Контакты 40, 41, 42 подсоединены на землю на схеме МС1201.03 (там табличка есть, в ней указано), поэтому они и на экспериментальном модуле подсоединены. Зачем так сделано в исходной плате 1201.03 - сейчас пока непонятно.



Возможно есть разные варианты процов?

Маловероятно, имхо. Я поправлю надписи согласно обнаруженной разварки, 42 - земля, 39-41 - свободны.



Да, и вот был вопрос , зачем отдельные две земли ?

Думаю что для снижения перекрестных помех типа crosstalk по цепям питания. Как оказалось, ВМ3 отлично генерирует помехи (и 3064 на модуле также отлично их ловил), поэтому разработчики топологии выделили ядру процессора отдельную землю, изолированную от земли силовых каскадов внешних драйверов. 9 и 42 - земля силовых драйверов, 32 и 38 - земля внутренних схем процессора.

MM
23.06.2016, 00:20
39, 40, 41 - земля ВМ4 в бутербродном исполнении модуля ВМ3 + ВМ4. Конечно, весьма сомнительная затея так делать.

Vslav
27.06.2016, 18:16
Поставил старый Квартус 8.1 и пересобрал модель ВМ1 Qsync под Acex1K. Была идея сделать простую реплику 1801ВМ1 на одной микросхеме Acex1К и на маленькой платке, чтобы прямо можно было впаять, скажем в БК, вместо оригинального процессора. Ну как-то в EP1K50 оно влезло, можно еще покорячиться и впихнуть в EP1K30, но совсем-совсем впритык, без запаса и расширений. Но по скорости на старой архитектуре печалька, всего 20МГц вышло, да и асексы дорогие, альтеровский оригинал несколько десятков уе стоит, а качество более дешевых кетайских клонов мне пока неизвестно. В-общем, вариант на Acex1K отпадает, как медленный и дорогой. Остается только вариант на современном циклоне + внешние буфера, чтобы от 5-вольтовой платы хоста (БК или куда еще там реплику впаяют) защититься.

MM
27.06.2016, 20:15
Поставил старый Квартус 8.1 и пересобрал модель ВМ1 Qsync под Acex1K. Была идея сделать простую реплику 1801ВМ1 на одной микросхеме Acex1К и на маленькой платке, чтобы прямо можно было впаять, скажем в БК, вместо оригинального процессора. ... Остается только вариант на современном циклоне + внешние буфера, чтобы от 5-вольтовой платы хоста (БК или куда еще там реплику впаяют) защититься.
На 74F641 + НР1-4-9 2 ком организуйте внешнюю шину, т.к. Н530АП2 уже все раскупили, да и горячие они.
Не уверен, что купят много экз, но несколько шт. - точно.
И главное - надо или перемычками тайминги МПИ выставлять, или сделать программный конфигуратор, для Непрограммирующих пользователей ( типа блондинов ).
И ТО в части управления таймингами - очень важная весчь для такого новодела.
*
Лет 5 назад в присуствии неглупых конструкторов на А. поднял идею про разработку ОЭВМ на основе 1836ВМ3 и СОЗУ+ППЗУ+порты для гражданского применения ( на китайском изготовлении )- так не то что обсуждать перреспективы - троллить принялись, настолько современные разработчики *****м от Интел пропитались.

Nick Pastushok
28.06.2016, 22:38
Поставил старый Квартус 8.1 и пересобрал модель ВМ1 Qsync под Acex1K. Была идея сделать простую реплику 1801ВМ1 на одной микросхеме Acex1К ....... Но по скорости на старой архитектуре печалька, всего 20МГц вышло,

Да и совсем не плохо как для ВМ1-ого :-)
Кому нужен в системе, которая вряд ли сможет дотянуть к 15Мгц, проц на 100Мгц, так что 20МГц - самое то, и с огромным запасом:-)
Qsync - это синхронный вариант ?
Девятка Квартус уже не знает о Acex1К ?



В-общем, вариант на Acex1K отпадает, как медленный и дорогой. Остается только вариант на современном циклоне + внешние буфера, чтобы от 5-вольтовой платы хоста (БК или куда еще там реплику впаяют) защититься.
Циклон с буферами трансформирующими уровни - это совсем не фонтан, даже если 100Мгц.
Вы же сами упоминали что нужен именно размера такого чтоб можно было проц выпаять, впаять цанговики и этот на место проца вставить и все поместилось...
1К30 точно отпадает, в притирку - это очень плохо, лучше 1К50, даже если в 2 раза дороже.

То есть для Апгрейда, ну а для новодела отдельный такой проц на плате явно не годится, тогда однозначно Циклон и в нем не только проц, тогда и мегагерцы затребованы могут быть.

Лучше не сосредотачиваться на этих апгрейдах, вряд ли они могут быть затребованы, не много от них толку будет, лучше сосредоточится на новоделе, собрать все в один кулак и запроектировать на более менее современных компонентах.

Например вот такая конфигурация нарисовывается в моем воображении:

Проц 1801ВМ3 впихнут в Циклон второй или третий, он синхронен и работает на 100Мгц, емкости в ПЛДшке хватает и на FPU и на мелкие модернизации, например MMU. В нем и вся старая периферия - например 065-ый приемопередатчик, и еще может чего нужного.
На первое время вместо ВМ3 можно обойтись и моделью ВМ1-ого.

Память желательно на 100-Мгц-овых СОЗУ, например K6R4016V1D (512К = 16x256K 10nS = 100MHz 3v3) удобна в корпусе 44-SOJ-400, на плате 8 штук, но можно запаивать хоть и одну.
Ни каких ДОЗУ, это для 100Мгц-ового проца медленно а всякие КЕШ-и усложнят все до безобразия. То же и про SDRAM-ы и тем более DDR-ы. И контроллер нужен сложный и тупить 100МГц-овый проц начнет на ветвлениях при не линейном чтении адресов, то есть при многозадачности.

На борту 2 слота под SD карточки, которые в ПЛДшке можно оформить, ну например как эмулятор винта или дискет...

Еще имеется один разъем PIO штырьками, например как в DEO-Nano, чтобы можно было в проекте на него вывести или порты или Q-BUS или чего душе угодно для экспериментов...

Прошивка "Монитора" лежит в SPI EEPROM при Циклоне, Просто это EEPROM большей емкости чем нужно Циклону для загрузки, сначала грузится Циклон, а потом в нем строится "мост" в это ПЗУ и из него вычитывается нужный код для работы с ним проца. Такой финт (мост) хорошо описан в апнотах для загрузки конфига Циклонового в это EEPROM через JTAG при помощи моста внутри Циклона - AS to JTAG. Пример - где это вероятно востребовано, в МАХ-II внутри не так как в Циклонах SRAM а EEPROM, и оно так же больше чем нужно чипу, причем не просто так проектировали чип и случайно его запроектировали больше чем нужно, а больше оно специально, и его можно, легко и удобно использовать в проектах (UFM-ROM). В общем то с ПЗУ системе не нужно супер быстро работать, так что быстродействия моста с конвертером и всей автоматики управляющей процессом чтения хватит с избытком, так что переписывать в ОЗУ или использовать отдельное ПЗУ не целесообразно.

На плате, как не странно, место еще под один Циклон №-2, для жаждущих плотного расширения возможностей и реальной мощи ЭВМ в части обработки медиа. При жосткой экономии его можно и не устанавливать. Он подключен параллельно к ДОЗУ основного камешка, и зная дыры в таймингах ВМ3-его можно с ДОЗУ читать так, что это не будет мешать ВМ3-му и тормозить и отражаться на производительности, зато им можно будет вычитывать например из основной памяти ячейки отображаемые на экране SVGA или блоки сжатого файла RAR ZIP JPEG MP3 AVI... Этот Циклон №-2 на начальной стадии может представлять собой подобие КЦГД или хотя бы КСМ, но только с выходом на SVGA, и можно будет с конвертировать китайским конвертером и в HDMI при надобности уже отдельно. Его Видео ЦАП, например, ADV7123-KSTZ-140 , но и возможность собрать R2R 6-5-5 с резисторов.

У Этого второго Камня (Циклона) есть еще одна память, так же K6R4016V1D (512К = 16x256K 10nS = 100MHz 3v3), только ее 4 штуки (2Мб) и может быть впаяно 2 штуки (1Мб) или на крайняк 1 штука. Она подключена уже не как 16 бит а как 32 бит (В принципе при не экономии пинов в Циклоне №1 и у него шину памяти можно сделать так же 32-битной для большей гибкости проектирования всякой новизны, ибо в такую платформу можно будет впихнуть чего угодно душе, хоть на ВМ3-ем хоть на Z80 хоть на ARM-е) Ну а в Циклоне №-2 32-битка , так как это может быть удобнее для DSP или может быть даже жизнено-необходимо для него. Распараллеливание однозначно даст возможность поднять производительность такого узла который нацелен на такие задачи, математика которых хорошо распаралеливается.
При дальнейшем развитии проекта (прошивки а не аппаратуры) Циклон №-2 может превратится в мощный DSP применяемый для реалтайм комфортной работы с JPEG, MP3, AVI .... или например простенького 2D, 3D.

Для звука ЦАП типа AC97 или по проще , в втором Циклоне может быть Эмулятор например AY-3-8910. Вообще для этого Циклона №-2 можно сделать в будущем несколько альтернативных проектов с разной аппаратурой.

Дааааа , уже срочно нужна губозакаталка :-)))

Конечно же понятно что у паябельных на колене и не дорогих Циклонов мало ног для раскатывания губы , но над этим можно еще по думать , оптимизировать все и все может стать реальным.

Главный принципы:
1- Ни какой совместимости со старыми корзинами, нафига тот клад дома держать если это уже новодел, он весь 3,3 в и старье к нему нечего подключать.
2 - Везде статическая память, ни каких ДРАМ , это хоть и дорого и не много , но не на столько чтобы стать проблемой для PDP-11, к тому же максимальная производительность и простота проектирования внутренностей Циклона.
3 - Ни каких винтов и флопов, уже все давно считано, а эти все крупные девайсы с плохой совместимостью Маст Дай. В принципе и SD то не очень хорошо, там свои есть камни подводные , но похоже пока альтернативы нет, Не из РЕ-шек же собирать.
4 - Отсутствие усложняющих финтов типа чипов сетевых карт, ибо ПИО есть, туда при большом желании все же будет удобно прикрутить PHY или какой либо шелд с Ардуин типа W5000.
5 - DSP ускоритель , ибо даже при 100Мгц PDP-11 это вам не Спарк (К сожалению 30 МИПС мускулистостю в 16 бит сегодня это для современных задач, особенно Медиа, пшик и ничего собой не представляет) , а современных возможностей на новоделе ох как захочется, и кроме того он должен быть перспективным а не просто реинкарнацией.
6 - Нет ничего лишнего и ни каких Микроконтролеров, что собственно повторяет пункт 4.


Во понесло то как, поперло по полной программе.


Ну это типа мечта, а реальность пока что увы....
Каждый по своему это все представляет.
Читал тему про новодел в пол места в корзине , но от чужой мечты мне страшно стало пока что. Я совсем не так думаю и мысли у меня другие.

С уважение Николай

Titus
28.06.2016, 22:52
Зачем такой большой шрифт?

Vslav
28.06.2016, 23:32
Qsync - это синхронный вариант ?

Угу, асинхронный просто на альтере работать не будет, или ненадежно очень.


Девятка Квартус уже не знает о Acex1К ?[/B]

9.0 вроде еще знает, у меня был 9.1 - он уже нет.



Каждый по своему это все представляет.
Читал тему про новодел в пол места в корзине , но от чужой мечты мне страшно стало пока что. Я совсем не так думаю и мысли у меня другие.

Да, каждый по своему. Поэтому я хочу сосредоточится именно на реверсе и выкатывать максимально точные и переносимые рабочие модели, при этом открывая все материалы. С ВМ1 вроде неплохо получилось, Saar успешно даже на Xilinx перенес и сделал БК-шку на моей модели. А делать платы мне не очень интересно, у меня много относительно больших китов (SP-605, DE2-115, Sockit), могу и на них поиграться. Также есть нормальные ретроплаты типа Reverse-U16, вполне подходит для реализации той же БК.
Если я и буду делать реплику (пока думаю, стоит ли), то именно реплику ВМ1, в его габаритах. Пока рассматриваю 10M08 в корпусе FBGA169 и 6 микросхем сопряжения в TSSOP-20/24. Если получится по месту - добавлю слот под MicroSD и SDR SDRAM в VFBGA-54. Кетайцы вроде недорого прототипы плат делают, BGA с шагом 0.8 на сегодня тоже не очень большая проблема.

MM
29.06.2016, 00:04
Если в новоделе на ВМ3-100 мгц не делать выход на классическую МПИ с таймингами по ГОСТ МПИ - тогда зачем вообще новодел нужен ? Или что, ИБМ ЭВМ с частотой свыше 2 ггц ( с эмулем ДВК ) в сильном дефиците ? Весь интерес новодела - когда старая задача на старом железе не тарахтит по нескольку минут дисководом 5311, а выполняет команды почти что в реальном времени.
Кстати, сообщу так по секрету, что кодеров ассемблера PDP-11, которые согласятся писать дрова под RT-11 даже за мешок конфет - вроде как не наблюдается. Не говоря уже о переносе оптимизированных обработчиков JPG и т.п. Интел-Микрософт-вольностей.
Можно, в самом крайнем случае, на языке высокого уровня все новые расширения пристроить - но тормоза будут весьма существенные ( сравнимые с 386ДХ-40 или типа того ).
Пример - чип USB 1.1 SL811 на БКшке так никто и не осилил - платы есть в продаже по почте ( сажаются на МПИ ) , ТО на английском доступно на сайте Кипариса - но вот результат - 000000. По слухам, кто-то когда-то что-то подключал на таком чипе к Z80 - но вот хотя бы блок-схем текста программы никто так и не опубликовал, не говоря уже о софте на Бейсике или Фокале ( не смешно ). И фоток такого подключения - соответственно нетушки.

Nick Pastushok
29.06.2016, 00:29
Зря (предыдущее мое сообщение) я наверное это написал, только флейму развел да тему загаживаю.
Все и так понятно давно, так что наверно мне следует стереть там все не касающееся темы чтобы народ не мутить.

MM
29.06.2016, 00:56
Зря (предыдущее мое сообщение) я наверное это написал, только флейму развел да тему загаживаю.
Все и так понятно давно, так что наверно мне следует стереть там все не касающееся темы чтобы народ не мутить.
Нет, всё очень даже по теме. Такой конструктив проектируется. Господа разработчики пока не оглашаются ( как в мультфильме про Удава, Попугая и Слонёнка ).
А вот по поводу софта - там просто степь непаханная... И тракторов не предвидится. Да что там тракторов - даже вскопщика грядок пока нет...

Nick Pastushok
29.06.2016, 02:56
Нет, всё очень даже по теме. Такой конструктив проектируется. Господа разработчики пока не оглашаются ( как в мультфильме про Удава, Попугая и Слонёнка ).
А вот по поводу софта - там просто степь непаханная... И тракторов не предвидится. Да что там тракторов - даже вскопщика грядок пока нет...

Если я правильно понимаю то Вы про это ?
Тема: МС1201.04 Малогабаритная . Обсуждение новодела на классических логических ИС.

http://zx-pk.ru/threads/26217-ms1201-04-malogabaritnaya-obsuzhdenie-novodela-na-klassicheskikh-logicheskikh-is.html?highlight=%D0%9C%D0%A11201

Ну дык там и ничего нового и если они таки сделают эту плату и SD-шку подымут то все остальное будет штатно работать как любой ДВК, ни какого нового софта в принципе не нужно, нет ведь там ни какой новой периферии особенной чтоб для нее тракторами новый софт напахивать. Все скорее всего быстро запустят, прикрутят по минималке по быстрому Флешкарту и (или) Консоль по интернету, что то может и не доделают, и на этом дело и закончится. Пойдет дело лишь в случае бума спроса, что вряд ли предвидится. Почему ? потому что там нет ничего интересного и нового и все достаточно тупиково, хоть и практично и удобнее должно бы было быть согласно задумке авторов.
Ну Это лично Мои мысли про тот проект. Может я и ошибаюсь, время все расставит на свои места.
На счет Вашего предложения в той теме контролера дисковода, к которому не известно где брать нормальные дискеты, или IDE Винчестера, который уже так же лет 20 не выпускается, и 99,9999 % этих девайсов превратились в прах, то я уж точно к такой периферии на НОВОДЕЛЕ отношусь скептически, это называется - плодить проблему. Еще куда не шло такое допускать на копировании 1:1 платы с небольшими поправками, изменениями или мелочными апгредиками, де ска-ть, копия, она и есть копия, хоть и новодельная ...
Мне почему то кажется, что те не многие, кто купит такой дорогой новодел, достойны хоть немножечко большего чем древние дискеты и винчестера, которые туда никогда не подключат, или подключат но будут мучится с ними и с их доставанием и покупкой этого старья в 100-дорого.
Так что не нужен там ни 128-ой ни IDE и даже в том случае, если там и SD/MMC и Ethernet консоли не будет.
Пускай такие девайсы как 128-ые с дисководами и IDE Винчестера долго живут работают да здравствуют уже на существующих старых прекрасных и чудесных ретро железяках а вот в новодел пускай не сунутся , не место там им.
Может быть я и очень не прав и Вас есть веские аргументы для защиты предлагаемых девайсов ?
Я же говорю, каждый все понимает со своей колокольни, и если бы я сидел на вашей колокольне, тогда может быть я бы был полностью с Вами согласен.

Ну а вот на счет мною описанной гипотетической конструкции новодела, то с Вами согласен, там бы действительно целина была не паханая, и никто совсем бы не бежал и не спешил софт новый писать с новыми возможностями. А железо без софта - груда металлолома. Даже Была бы уже проблема что то во второй циклон впихнуть, не говоря уже про софт. Ну слава Богу, оно пока еще всего лишь гипотетическое и ни у кого проблем пока что с ним нет :-)

Уважаю мнение других и ни кого не хотел обижать. Просто Высказал свою точку зрения.

С уважением Николай

MM
29.06.2016, 03:14
Если я правильно понимаю то Вы про это ?
Тема: МС1201.04 Малогабаритная . Обсуждение новодела на классических логических ИС.
http://zx-pk.ru/threads/26217-ms1201-04-malogabaritnaya-obsuzhdenie-novodela-na-klassicheskikh-logicheskikh-is.html?highlight=%D0%9C%D0%A11201

Нет, совсем не про ту тему, т.к. в названии там указано про "ОТСУСТВИЕ ПЛИС в конструкции".
Тема скорее с др. форума - о изготовлении БКшки на ПЛИС и процессоре ВМ3-ххх мгц с обвесом, включающим в себя в т.ч. VGA - выход и далее по списку из ИБМ ЭВМ, включая Звук ( а не писк в 1...3 бит ). Разработка идет, по некотрым данным, не первый год.

Vslav
29.06.2016, 04:34
Если в новоделе на ВМ3-100 мгц не делать выход на классическую МПИ с таймингами по ГОСТ МПИ
Это другой новодел. Это не реплика процессора. Выход на "классический МПИ" проектируется (не мной, поэтому пока без подробностей) в виде стандартной полуплаты (или ее укороченного варианта). Делается оно совершенно для другого проекта, но позволит втыкать в МПИ платы типа DEx ну или какие другие низковольтные на ПЛИС, поэтому я такой адаптер жду, как появится - сделаю проект МС1201.01 (потому что пока у нас только модель ВМ1 есть) работающий через него с реальной МПИ.
Я же подумываю сделать крошечную платку, как РЕ-мулятор, чтобы заменяла бы только микросхему 1801ВМ1, но при этом работала на 100+ МГц. Если получится, то впихну на нее и SD-карточку и свою память. Тогда в БК (и не только) появится автоматически - диск на карте памяти, RAM-диск на десяток-другой мегабайт, консоль типа 065 и 100+ МГц процессор ВМ1 (с кешем и своей быстрой памятью, заменяющий родную память БК), и по мере появления моделей - ВМ2 и ВМ3 с опционально присобаченным таймером ВМ1.

Vslav
21.11.2016, 10:30
Все, PCAD на схеме 1801ВМ3 "приехал", с падениями и разрушением базы. Уперлось в ограничение 20000 символов в одной схеме, добавляешь 20001 транзистор и все умирает. Придется доставать бубен и с ним танцевать, есть идея вынести основную ПЛМ в отдельную схему, а на основной заменить ее одним большим компонентом, так 6500 транзисторов превратятся в один большой компонент. Ну и с регистрами РОН поступить так же, в итоге одна большая схема с 29000 транзисторами разбивается на три части, каждая менее 20000 деталюшек.

Raydac
21.11.2016, 10:36
а у KiCad тоже такие ограничения?

Vslav
21.11.2016, 10:45
а у KiCad тоже такие ограничения?
В KiCad нет полного функционала обратной аннотации, то есть нельзя просто накидать по картинке в плате транзисторов, потом автоматически выполнить генерацию цепей по новым накинутым деталям и импортировать добавленные результаты в схему.

Немного поковырялся в исполняемом файле sch.exe, там безнадега, похоже тупо массивы заданы на 20000, причем оно не проверяется на переполнение, и программа падает по разрушению памяти. То есть, нельзя просто так взять и пропатчить, чтобы ограничение снялось.

Жаль, хотелось топологию и схему одним файлом получить. Но не лезет оно, не лезет.

CodeMaster
21.11.2016, 16:50
Уперлось в ограничение 20000 символов в одной схеме

А какая версия PCAD'а?

Vslav
21.11.2016, 23:47
А какая версия PCAD'а?
2004 SP4. 2006 SP2 ведет себя точно также.
Там интересная деталь выяснилась еще, на самом деле оно падает не на 20000-ом транзисторе, а на 32768-ом компоненте (есть еще символы земли и питания, они тоже за компоненты считаются). В-общем, у них там short int (знаковое 16-битное) под количество компонентов в базе отведено, когда переполняется - меняет знак. Талантливые ребята.

- - - Добавлено - - -

Придумал еще небольшой трюк - сейчас в схеме 32767 компонента, но из них примерно 11 тысяч это символ "земли" и примерно 2 тысячи символов +5V. Транзисторы, которые подключены к земле можно заменить на схеме такими же, но со скрытым выводом типа "питание" и с именем GND, он на схеме не отображается, а в топологии подключается автоматически к цепи с именем вывода. Тогда символы компонента "земля" можно будет из схемы удалить без изменения собственно списка цепей, и получим нормальный такой запас 11К количества компонентов до лимита в 32К, осталось-то впихнуть всего 9.5К транзисторов.
И вместо удаленного символа земли нарисовать такой же в составе транзистора, у которого сам пин скрыт. Визуально будет выглядеть также, только вместо двух компонент "транзистор+земля" получим один модифицированный транзистор. "И чего только люди не придумают, лишь бы на картошку не ехать" (с).

- - - Добавлено - - -

Составил ручками .eco файлы для обновления всех транзисторов у которых вывод 1 сидит на земле, заменяется тип FET на тип FET-GND с просто нарисованной "землей". Примерно 12К таких оказалось. Судя по скорости - база топологии будет обновляться часа 3, сама схема - дня 3 (тормозит-с, 3 транзистора в минуту всего, чего оно там себе думает - неизвестно). Ну пусть жужжит, я поработаю пока :)

- - - Добавлено - - -

Посмотрел Process Монитором чего оно думает, а там оно шуршит по всем подключенным библиотекам компонентов. Остановил, отключил пока ненужные библиотеки, скорость обновления выросла с 3 транзисторов в минуту до 5, ну значит 300 в час, всего 40 часов на все-про-все. В среду закончит, будем надеяться. Топология уже успешно обновилась, а схему ждем в среду :)

Titus
21.11.2016, 23:56
Похоже, подобные CAD'ы делались в расчете на очень маааленькие схемы) Не сопоставимые с 20к элементов)

hobot
22.11.2016, 04:44
так 6500 транзисторов превратятся в один большой компонент.
Многоядерность ))) Что бы потом уже весь ВМ3 сделать 1 ядром, разогнать до макс. и таких ядер слепить
со сверхбыстрым кэшем матем. обоснованный позволительный максимум. Сколько бы ядер не получилось,
таких процессора нужно 2 (по принципу примерно УК-НЦ), и лепить к этому вычислителю нового поколения,
GLIDE видеокарточку с драйверами под RT-11 ?

- - - Добавлено - - -


Похоже, подобные CAD'ы делались в расчете
это защита для стратегических железочек ) и повод накрутки цены на "плаг ин" с отменой ограничения.

Titus
22.11.2016, 06:30
и повод накрутки цены на "плаг ин" с отменой ограничения.
В том-то и дело, что судя по всему нет) Просто не расчитано на большее)

hobot
22.11.2016, 07:12
В том-то и дело, что судя по всему нет) Просто не расчитано на большее)
100% уверенность, что нет более "профессиональной" версии без ограничения

CodeMaster
22.11.2016, 08:06
Просто не расчитано на большее)

Да, не думаю, что разработчики предполагали, что в нём будут разрабатывать/реверсить процессоры и думатцо сильно удивятся, что кто-то дошёл до этого предела. А обычную плату, даже SMD, трудно представить с 20К транзисторами, тут уже будут технологические ограничения на производство самой PCB.
Вообще, интересно отослать им этот файл, и под шланг закосить, типа не добавляется очередной элемент, посмотреть на взрыв моска ;-)

MacBuster
22.11.2016, 08:34
Не потому ли P-CAD прекратил свое существование? Думаю поменялось не только название, но и сам Altium Designer позволяет сделать куда больше.

Vslav
22.11.2016, 08:49
Вообще, интересно отослать им этот файл, и под шланг закосить, типа не добавляется очередной элемент, посмотреть на взрыв моска ;-)

PCAD давным-давно куплен компанией Altium, и куплен он был именно с целью чтобы прибить и освободить нишу для Altium Designer (переименованный и развитый Protel). Поэтому разработчики-поддержка PCAD были переведены сначала в Китай, а потом вообще тихо ликвидированы. Файл отослать можно, и получить ответ в стиле "старые продукты не поддерживаются, покупайте AD". Любопытно, что несмотря на такое отношение компании, PCAD на просторах xUSSR живее всех живых - у народа наработаны библиотеки и это ну очень надежно удерживает на продукте.

Raydac
22.11.2016, 09:38
если тебе надо какую то софтинку что бы работать с большим количеством каких то типовых элементов и делать над ними рутинные операции и после чего это дело экспортировать в нужные форматы. то просто написал бы тз, может наклепать можно на коленке

Vslav
22.11.2016, 10:20
может наклепать можно на коленке
Да, у PCAD есть отдельный SDK для разработки утилит, можно базы схем и плат загружать, обрабатывать и модифицировать и результат сохранять, все это неплохо документировано и есть примеры. Но в этом пока не возникало необходимости, базы можно сохранять в текстовом виде и я иногда пишу коротенькие скрипты на perl чтобы выполнять некоторые операции над базами в текстовом виде. В-общем, пока все что видно и понятно как - уже автоматизировано.

Vslav
23.11.2016, 19:41
Проблема временно победилась. Было 32К компонентов в схеме, осталось менее 21К (удалились символы "земли"). На 1801ВМ3 с его 29К транзисторов должно PCAD-а хватить.

Titus
24.11.2016, 02:05
А что там с прогрессом по ВМ2?

MaTocoB
24.11.2016, 06:48
А что там с прогрессом по ВМ2?
Судя по всему, с такими траблами по 1801ВМ3 было просто не до него.

Vslav
24.11.2016, 09:30
А что там с прогрессом по ВМ2?
Сорри, пока мозгов не хватает им заниматься, заканчиваю большой сложный проект, поэтому вечером от Verilog, Quartus и ModelSim тошнит немножко ("кругом станки, станки, станки", мда). А тупо порисовать, не напрягаясь, или потрассировать простые платы под свои хобби-проекты, или попаять - силы иногда находятся. Но я надеюсь, что скоро вернемся и к ВМ2 :)

Из интересного, до чего вчера докопался. В регистрах PDR диспетчера памяти есть бит W (в более поздних архитектурах он называется D - "грязная страница"). Он устанавливается автоматически, если в страницу была запись, потом программа по этому биту решит, менялась ли страница и надо ли ее сохранять на диске в процессе свопа. Так вот, при трансляции на самом деле только запоминается номер страницы (регистра), потом выполняется запись, и только потом, если запись была успешной, ставится это битик. Вроде бы банальность, а не слишком очевидно. Даже сразу не понял почему этот бит сделан отдельно и по более сложной схеме.

form
24.11.2016, 10:02
Так вот, при трансляции на самом деле только запоминается номер страницы (регистра), потом выполняется запись, и только потом, если запись была успешной, ставится это битик.
Ну как бы логично: попытка обращения к странице должна быть отмечена в любом случае (чтобы потом ошибку если что проанализировать), а запись в страницу должна отмечаться только успешная - зачем выгружать на диск страницу которую не удалось поменять :)

Titus
24.11.2016, 12:30
Сорри, пока мозгов не хватает им заниматься, заканчиваю большой сложный проект, поэтому вечером от Verilog, Quartus и ModelSim тошнит немножко ("кругом станки, станки, станки", мда). А тупо порисовать, не напрягаясь, или потрассировать простые платы под свои хобби-проекты, или попаять - силы иногда находятся. Но я надеюсь, что скоро вернемся и к ВМ2 :)
Эх) Это же все прогрессивное человечество в лице УКНЦ ждет этого волшебного момента)

Vslav
26.11.2016, 17:23
http://s019.radikal.ru/i612/1611/b4/ae775f3dae16t.jpg (http://s019.radikal.ru/i612/1611/b4/ae775f3dae16.png)

Процесс рисования схемы потихоньку продолжается. Всего в 1801ВМ3 примерно 28900 транзисторов, осталось нарисовать 7500 (зелененькие) - чуть больше четверти, но визуально кажется что осталось значительно больше.

MacBuster
26.11.2016, 17:51
Эх) Это же все прогрессивное человечество в лице УКНЦ ждет этого волшебного момента)
Эт, точно.

Vslav
26.11.2016, 19:32
Эт, точно.
Ладно, убедили. Раз 1801ВМ3 никто не ждет, то не буду им заниматься :)

CodeMaster
26.11.2016, 20:14
Всего в 1801ВМ3 примерно 28900 транзисторов

А как ты это оцениваешь "на глаз" до реверса? Ведь в ВМ1 заявленное количество не совпало с реальным.

Vslav
26.11.2016, 22:41
А как ты это оцениваешь "на глаз" до реверса? Ведь в ВМ1 заявленное количество не совпало с реальным.
"Вах, зачэм грызлы? Застрэлылы!" (с)
После того как сделана векторизация оно уже оценивается не "на глаз", просто в PCAD-е выбираю все компоненты - получаю в строке статуса число уже размещенных транзисторов, потом выбираю отдельно зеленые черточки - получаю число оставшихся. Запоминаю их с точностью до сотни, хотя можно и точное число. Но это как бы условность. Есть, например, силовые транзисторы прицепленные к внешним контактным площадкам - рулят выводами микросхемы. Они такие хитрые, "многопальцевые". Строго говоря, топологически это несколько параллельно соединенных отдельных транзисторов, а электрически это работает как единый мощный транзистор и смысла рисовать в схеме толпу маленьких параллельных немного. Тогда надо бы еще указывать геометрические размеры, тип канала, и степень легирования (на заводской схеме ВМ2, кстати, кое-где указано). Также еще бывает, что при векторизации я где-то пропустил транзистор, или наоборот, добавил лишний параллельный, тогда при разборе схемы транзистор добавляется или удаляется. Но таких случаев немного - единицы на весь проект, поэтому итоговое количество транзисторов вряд ли будет отличаться на десяток от первоначальной оценки. Цепи правятся гораздо чаще (ненужные замыкания или отсутствующие сегменты) - таких случаев сотни, но они очень легко обнаруживаются по смыслу и визуально.

Titus
26.11.2016, 23:23
Ладно, убедили. Раз 1801ВМ3 никто не ждет, то не буду им заниматься :)
Возможно, тоже нужен, но на нем нет актуальных платформ на столько интересных, как на ВМ2)
Т.е. ВМ2 приоритетнее для меня, например)

Vslav
26.11.2016, 23:41
ВМ3:
a) Быстрее чем ВМ2 и ВМ1 - тратит меньше тактов на инструкцию, есть подозрение что он даже F11 обойдет
b) Имеется MMU, на нем пойдет RSX-11М - это "приличная" ОС - вытесняющая многозадачность, права доступа, разделяемые динамические библиотеки, виртуальная память
Впрочем, не переживайте, порядок реверса ВМ1, ВМ2, ВМ3 я не планирую поменять.

MM
27.11.2016, 00:38
Ладно, убедили. Раз 1801ВМ3 никто не ждет, то не буду им заниматься
Ну может и не ждет, но модуль 100 мгц пин-то-пин совместмый с реальным М1801ВМ3 с плавными настройкой таймингов МПИ есть ожидающие.
Лучше озвучьте цену на конструктив до 8х12см. размером.

Vslav
27.11.2016, 10:40
Лучше озвучьте цену на конструктив до 8х12см. размером.

Да тут проще переходник сделать от платы DEx в цоколевку процессора. Собственно такие платы уже сделаны - те самые экспериментальные модули ВМ1/ВМ2/ВМ3, там же max3064 стоит, все обратимо, достаточно перепрограммировать.

MacBuster
27.11.2016, 11:15
Ладно, убедили. Раз 1801ВМ3 никто не ждет, то не буду им заниматься :)

Не стоит так сразу-то. Мы просто давно тут стоим, ВМ2 ждём :)

MaTocoB
01.12.2016, 15:47
Ладно, убедили. Раз 1801ВМ3 никто не ждет, то не буду им заниматься :)
Это ты так пошутил, да?! Я его жду, хоть и понимаю, что я здесь никто. Причём жду его в паре с 1801ВМ4.
Мне надо на этом собрать один хитрый девайс.

Vslav
01.12.2016, 16:09
Это ты так пошутил, да?!
Пошутил, пошутил. 4980 транзисторов осталось, самых шизоидных - в нерегулярных структурах. 50-100 штук в день таких выходит разобрать и нарисовать.


1801ВМ4
Такого у меня пока нету, все жду что кто-нибудь паленый пожертвует :) Покупать рановато, до завершения реверса ВМ3. А F11 тебя для девайса не устроит? Он проще (значит быстрее) реверсится.

MaTocoB
04.12.2016, 03:16
А F11 тебя для девайса не устроит?
Устроит, куда деваться, если сам реверсом не могу заниматься?

- - - Добавлено - - -


4980 транзисторов осталось, самых шизоидных - в нерегулярных структурах. 50-100 штук в день таких выходит разобрать и нарисовать.
Ну да, издержки ручного труда. Копи-паста кончилась, начались извращения

AlexG
13.12.2016, 23:38
несколько оффтоп
http://www.concept.de/products.html
что нибудь из этого поможет ? или оно совсем не применимо?

Vslav
14.12.2016, 01:05
что нибудь из этого поможет?
Надо изучать, так сразу точно не скажешь. Я там демки посмотрел, оно в-основном сверху идет, от верилога/RTL, инструментов для топологии я не увидел.
Да и маршрут реверса вряд ли какой новый у меня появится. Разве что хочу симулятор другой попробовать, говорят что Synopsys VCS в разы быстрее функциональную симуляцию выполняет.

PS. ВМ3 - осталось 3200 транзисторов. Какой-то дивный схемотехнический прием нарыл, триггер устанавливается мощным транзисторов вверх, а не вниз - глобальным сигналом CLK через ключ. И таких достаточно много, то есть это не ошибка, а сознательный схемотехнический прием.

Схема вот такая:

http://s017.radikal.ru/i424/1612/87/a2cc81f5005ct.jpg (http://s017.radikal.ru/i424/1612/87/a2cc81f5005c.png)

Триггер собран на Т10-Т13. T9 - это обычный сброс RS-триггера (установка делается аналогично, только подсоединяется к другому плечу).
А вот установка сделана интересно - через T8, который подключен к мощной цепи CLK. Сам T8 тоже является элементом хранения - запоминает сигнал на входе при высоком ~CLK. Также есть обратная связь, если триггер находится в высоком, то ключик T8 открываться не будет.

И тут уже работа схемы просто по ее структуре не определяется, тут уже важны физические характеристики. Допустим триггер находился в низком уровне и на затворе T8 при ~CLK=1 сформировался высокий уровень. CLK=0, NET00294 = 0, конфликта нет. Формируем переход тактового сигнала ~CLK=0, CLK=1. T8 открыт, мощный CLK утягивает триггер вверх. На входе T7 формируется низкий уровень. И вот тут возникает вопрос, насколько хорошо закрыт T7 и проходит ли через него сигнал на затвор T8. Также там вполне может быть встроен диод, который микроскопом не разглядеть.

Рассмотрим варианты:
- Т7 закрыт надежно, утечки с T8 нет, тогда приходит срез тактового сигнала CLK=0, ~CLK=1. При этом триггер сбросится. Тупость, получается на выходе всего лишь однократный импульс. Не соответствует работе схемы - на таких же триггерах собраны формирователи сигналов DIN, DOUT, SYNC и еще некоторые.

- T7 имеет просто повышенное сопротивление в закрытом состоянии или непроглядываемый диод, с затвора Т8 идет утечка на землю, он закрывается, CLK отсекается от триггера в фазе когда CLK еще высокий. Когда выходной импульс триггера потребуется завершить - подается MA_RST. В пользу этого варианта также говорит что аналогичные триггеры DIN, DOUT сбрасываются приходом RPLY.

MaTocoB
22.12.2016, 06:23
Кажется, кому-то надо освежить в памяти схемотехнику триггеров на проходных ключах...

Titus
22.12.2016, 11:30
Кому?)

hobot
22.12.2016, 17:51
схемотехнику триггеров на проходных ключах...
Шпаргалки есть http://www.chipinfo.ru/literature/chipnews/200301/4.html

Titus
22.12.2016, 21:35
Шпаргалки есть http://www.chipinfo.ru/literature/chipnews/200301/4.html

Жаль, я этой статьи тогда не видел) Пришлось разбираться самому по топологии)

MaTocoB
23.12.2016, 07:30
Шпаргалки есть http://www.chipinfo.ru/literature/chipnews/200301/4.html
Один нюанс: у нас n-МОП логика, и триггер имеет несколько иную структуру, в отличие от шпаргалки

- - - Добавлено - - -


Кому?)
Тому, кому есть что вспоминать :)

Titus
23.12.2016, 08:01
Один нюанс: у нас n-МОП логика, и триггер имеет несколько иную структуру, в отличие от шпаргалки
Смотря в какой микросхеме.
В ХМ2 - КМОП.

CodeMaster
23.12.2016, 09:21
Смотря в какой микросхеме.

Вопрос по триггерам начался с ВМ3, наверное же в ней.

hobot
23.12.2016, 16:26
Смотря в какой микросхеме.
В ХМ2 - КМОП.
MaTocoB,
можно в гугле запрос подкорректировать и получить вторую шпаргалку )

Vslav
23.12.2016, 18:16
Вижу народ в теме скучает уже чуток :)
Я сделал модельку 74ls630 у нас известная как 555ВЖ1. Хотел промоделировать ее вместе с ВП1-119, но там смысла немного в такой сложной модели. Это не совсем реверс, это "рядом", могу выложить для поддержания интереса, выкладывать?

hobot
23.12.2016, 18:27
Вижу народ в теме скучает уже чуток



https://www.youtube.com/watch?v=foN4L6yEzaY

Vslav
23.12.2016, 18:32
hobot, ролик ну очень в тему :v2_lol:

anasana
23.12.2016, 18:35
555ВЖ1 использовались в МС-1702, хотя и могли заменяться перемычками, так что, думаю, выкладывать :)

b_10101101
13.01.2017, 12:27
Господа, а на актуальной модели ВМ1 вер. 1.4е есть какой-нибудь проектик чтобы запустить - посмотреть что как работает, ну хоть с чего начать чтобы не с нуля. Конкретно DE1 интересует, ну либо соседние модели. Наверняка же БК-0010 или еще лучше 0011м кто-то реализовал на раскопанном материале ?

hobot
13.01.2017, 15:21
b_10101101, вам и тут несомненно ответят, но правильнее было бы в разделе БК задать вопрос, хотя ДВК младшенькая то же на ВМ1 )

Vslav
13.01.2017, 15:37
Да, была тема - человек перенес проект на плату с Xilinx. Я недавно прикупил бушную DE1, могу портировать текущий проект на нее.

CodeMaster
13.01.2017, 19:00
Я недавно прикупил бушную DE1, могу портировать текущий проект на нее.

Чисто проц или какой-нибудь комп соберёшь?

b_10101101
13.01.2017, 21:06
Было бы очень здорово ! Уже прилепил сверху на DE1 контроллер VGA c 8'' LVDS панелькой и динамиками для звука :v2_dizzy_roll:

hobot
14.01.2017, 03:19
Уже прилепил сверху на DE1 контроллер VGA c 8'' LVDS панелькой и динамиками для звука Просьба неспешная, сопроводить ваши сообщения фотками! Было бы наглядней и не мне одному интересно же как это чудо выглядит? ) Спасибо!

Vslav
14.01.2017, 10:24
Чисто проц или какой-нибудь комп соберёшь?
Да я там конструктор из параметризованных модулей хочу соорудить. Чтобы ДВК-(любая) за 15 минут из него набиралась. Но если сразу "по-быстрому", то только тестовый стенд, который сейчас на DE0 работает.

hobot
14.01.2017, 11:57
Чтобы ДВК-(любая) Графика будет? ;-)
(* даёшь ПИФ-ПАФ! (http://zx-pk.ru/threads/18027-emulyator-uknts-emustudio.html?p=540937&viewfull=1#post540937))

Vslav
14.01.2017, 12:46
Графика будет? ;-)
(* даёшь ПИФ-ПАФ! (http://zx-pk.ru/threads/18027-emulyator-uknts-emustudio.html?p=540937&viewfull=1#post540937))
КГД делается очень просто. КЦГД тоже несложен, но при условии что будет ВМ2.

hobot
14.01.2017, 13:54
КЦГД тоже несложен, но при условии что будет ВМ2.
Мне тут из зала подсказывают,
вопрос : А будет ВМ2 ? )))

- - - Добавлено - - -


делается очень просто.
Как в пространстве и времени эти\эту конструкцию оценить?
(баянистый анекдот про суперлайнер! (http://boot-from-cd.livejournal.com/77438.html))
Меня за мои посты по этой темы хейтеры уже прозвали неадекватным алкашом,
а админы даже отправили "просохнуть" на денёк. Но я просто обязан этот вопрос
задать - про режимы работы - будет ли возможно разгона? Системы в целом или
отдельно проц. и граф.проц.?

Vslav
14.01.2017, 14:32
вопрос : А будет ВМ2 ? )))

Должен быть, от планов полностью завершить линейку 1801 как матриц и процессоров я не отказываюсь.
На работе загружен, правда, до конца 2017 просвета не видно, но буду время для хобби искать.



будет ли возможно разгона?

Процессор точно будет разгоняться, например в ВМ1 средства разгона встроены собственно в модуль. А графический проц это что? ВМ2 в КЦГД? При желании тоже разгоним. И прошивку КЦГД, наверное, придется адаптировать.

b_10101101
14.01.2017, 19:56
Просьба неспешная, сопроводить ваши сообщения фотками! Было бы наглядней и не мне одному интересно же как это чудо выглядит? ) Спасибо!

Корректно-ли в этой тебе будет хвастать ... ? Ну я рискну :)

DE1 прикупил пару лет назад, но времени на исследования пока катастрофически не хватает. Есть конечно желание запробовать, есть опыт работы в железе, и было б неплохо хоть как-то разогнаться начальным проектом. Пока же собрал будущую платформу:

Основа: DE1 https://www.terasic.com.tw/cgi-bin/page/archive.pl?No=83
http://s19.radikal.ru/i192/1701/75/457cf45ef3ff.jpg (http://radikal.ru)
7" TFT панель AT070TNA2-V1 http://www.bdtic.com/datasheet/innolux/at070tna2-v1.pdf
из поломанного планшета Acer Iconia Tab A100 закреплена на листе полистирола мелкими шурупчиками. Пластик закреплен на стандартных стойках от DE1. Внизу плата клавиатуры от контроллера LCD
http://s019.radikal.ru/i603/1701/d7/8bb1f9124d0d.jpg (http://radikal.ru)
Вид на контроллер.
Синяя плата - LCD контроллер VS-TY2668-V1
http://www.vslcd.com/Specification/VS-TY2668-V1.pdf
https://www.aliexpress.com/item/HDMI-VGA-2AV-Audio-Control-board-VS-TY2668-V1-for-8inch-ZJ080NA-08A-7inch-AT070TNA2/1848417149.html?spm=2114.01010208.3.1.OaZj6n&ws_ab_test=searchweb0_0,searchweb201602_3_10065_10 068_10000009_10084_10000025_10083_10000029_10080_1 0082_10081_10000028_10110_10111_10112_10060_10113_ 10062_10114_10056_10055_10054_10059_10099_10078_10 079_10000022_10000012_10103_10073_10102_10000015_1 0096_10000018_10000019_10052_10108_10053_10107_100 50_10106_10051,searchweb201603_9,afswitch_5,single _sort_2_price_asc&btsid=dba967ed-e375-4747-9ebb-81acfc7fff1b
Контроллер держит развертку 50 Гц (проверен на ZX-Evo:v2_dizzy_keyboard:)
Ниже DC-DC преобразователь из 12 В в 8 В для питания DE1 от платы контроллера. Типа такого: https://www.aliexpress.com/item/Ultra-small-LM2596-DC-DC-Adjustable-Power-Step-down-Module-3A-Adjustable-Buck-Module-Ultra-LM2596/32353162146.html?spm=2114.01010208.3.27.cZJqd4&ws_ab_test=searchweb0_0,searchweb201602_3_10065_10 068_10000009_10084_10000025_10083_10000029_10080_1 0082_10081_10000028_10110_10111_10112_10060_10113_ 10062_10114_10056_10055_10054_10059_10099_10078_10 079_10000022_10000012_10103_10073_10102_10000015_1 0096_10000018_10000019_10052_10108_10053_10107_100 50_10106_10051,searchweb201603_9,afswitch_5,single _sort_2_price_asc&btsid=11480a88-4d96-4ebf-a7f9-284e577ef918
На плате контроллера присутствует усилитель звука, колонки (слева и справа от DC-DC) из старого ноутбука.
Провода пока не укорачивал на всякий случай, поэтому излишки в рабочем варианте скручены и спрятаны.
http://s019.radikal.ru/i611/1701/ea/bbbe30ab4605.jpg (http://radikal.ru)

http://s03.radikal.ru/i176/1701/30/a1b48d5672ff.jpg (http://radikal.ru)
Перед сборкойhttp://s012.radikal.ru/i320/1701/70/b921ffd898df.jpg (http://radikal.ru)
Собрано, вид со всех сторон. Доступ ко всем разъемам, кнопкам, переключателям, светодиодам не потерян (в т.ч. 2 х 40-pin GPIO), слегка перекрыт 7-сегментный индикатор, но в принципе всё видно.
http://i062.radikal.ru/1701/72/cbca2b496ce2.jpg (http://radikal.ru) http://s019.radikal.ru/i628/1701/16/8c331cf58e94.jpg (http://radikal.ru) http://s018.radikal.ru/i508/1701/38/777d8e9b7107.jpg (http://radikal.ru) http://s03.radikal.ru/i176/1701/bb/3c6f400d3ea4.jpg (http://radikal.ru)
Корпус от аптечки. Пульт ДУ от контроллера дисплея (дублирует кнопки). Справа в белом закрывающемся боксе шнурок USB, для шнурка в нижнем торце аптечки сделано отверстие. Блок питания и бокс лежат "в обнимочку", всё уместилось :)
http://s019.radikal.ru/i605/1701/0f/5406afa1c332.jpg (http://radikal.ru) http://s019.radikal.ru/i630/1701/d2/53ee1f73f3ef.jpg (http://radikal.ru) http://s018.radikal.ru/i523/1701/9f/d9ec245ceebc.jpg (http://radikal.ru)
Готово к заливке :) http://i013.radikal.ru/1701/25/541dd39fbb42.jpg (http://radikal.ru)

Vslav
14.01.2017, 21:12
Контроллер панели лишний только, имхо. Циклоны отлично сами умеют LVDS, получился бы цифровой выход напрямую c DE1 сразу на панель (питание VCOM только + питание подсветки сообразить). Отличный стимул поковыряться и реализовать :). Но для начала и так все очень хорошо.

b_10101101
14.01.2017, 21:31
Контроллер панели лишний только, имхо. Циклоны отлично сами умеют LVDS, получился бы цифровой выход напрямую c DE1 сразу на панель (питание VCOM только + питание подсветки сообразить). Отличный стимул поковыряться и реализовать :). Но для начала и так все очень хорошо.

Именно так и хотел, но для начала хотел прицепить VGA т.к. попроще, в перспективе есть желание сделать LVDS напрямую. И во-вторых на плате контроллера есть разъем под шлейф панели, питание для подсветки и звук :)

hobot
16.01.2017, 17:05
Vslav,
b_10101101, хотел ещё мнение от разработчиков-практиков, а вывод картинки мультимониторный вообще нужен, планируется (по примеру хотя бы той же УК-НЦ?).

- - - Добавлено - - -

b_10101101, фотки впечатлили - реально напомнило историю Apple )

cpg
02.02.2017, 08:34
- восстановление схемы с использованием механизма обратной аннотации, выполнено
Вопрос во ВМ1. Если технология с применением транзисторов со встроенным каналом (depletion mode), то почему на схеме верхних плечей они не отличаются от транзисторов enhanced mode?

Vslav
02.02.2017, 09:01
Вопрос во ВМ1. Если технология с применением транзисторов со встроенным каналом (depletion mode), то почему на схеме верхних плечей они не отличаются от транзисторов enhanced mode?
Потому что тогда надо вводить еще один тип транзисторов и постоянно следить какой тип вставлять. Трудоемкость процесса и так немалая, а при нескольких типах транзисторов она еще значительно возросла бы. У меня так сейчас с ВМ3 - два типа транзисторов, но там вынуждено введен транзистор с истоком на земле, из-за проблем пикада, реверсить схему стало немножко труднее и медленнее. А по схеме практически всегда и так понятно где встроенный канал - затвор и исток соединены, сток на питании, то есть затрачивать значительные усилия чтобы сделать схему всего лишь более строгой, смысла нет никакого - ничего это принципиально не даст. Можно было бы тип транзисторов поменять уже на готовой схеме, но это все равно потратить несколько дней при таких количествах. На всей серии 1801 был встречен единственный узел где транзисторы со встроенным каналом неочевидны из самой схемы - это мультиплексор данных в блоке РОН ВМ1. Еще на ВМ3 в схеме в некоторых местах подозреваются диоды, но по фотографии это явно не вычислить, хорошо хоть принцип работы блоков понять можно.

cpg
02.02.2017, 09:37
Потому что тогда надо вводить еще один тип транзисторов
Т.е. визуально с кристалла их не отличить?

Какой-то дивный схемотехнический прием нарыл, триггер
Просто в предыдущих сообщениях было сообщение о мутном триггере, так может ларчик просто открывается?

Кстати сейчас появилось время и я опять взялся за ВГ93. Через пару недель начну вакладывать схемы.

Vslav
02.02.2017, 13:25
Т.е. визуально с кристалла их не отличить?
Да, визуально по фото не отличить. Но по схемотехнике тип транзистора обычно очевиден, непонятки очень редки.



Просто в предыдущих сообщениях было сообщение о мутном триггере, так может ларчик просто открывается?

Не, там в этих "мутных" триггерах есть непонятная видимая структура, и это явно не транзистор со встроенными переходами. Логика работы вроде бы просматривается, моделирование покажет насколько правильно она проанализирована.



Кстати сейчас появилось время и я опять взялся за ВГ93. Через пару недель начну вакладывать схемы.

Это хорошее дело, пригодится.

Titus
02.02.2017, 13:28
Это хорошее дело, пригодится.
Это вам оно просто 'пригодится', а спектрумистам очень даже необходимо)

cpg
02.02.2017, 15:36
моделирование покажет насколько правильно она проанализирована
Чем моделируете если не секрет?

Vslav
02.02.2017, 18:36
Чем моделируете если не секрет?
ModelSim AE

Vslav
10.02.2017, 20:20
Дичаю я с этим ВМ3 - 550 тысяч всяких графических элементов в базе - транзисторов, межслойных переходов, сегментов.
97 процентов транзисторов (28+ тысяч) перенес в схему, осталось 3 процента (884 штуки). Это самые сложные, синхроблок, слабораспознаваемый набор разнообразной и неупорядоченной логики:

http://s019.radikal.ru/i618/1702/ab/8885928cea9et.jpg (http://s019.radikal.ru/i618/1702/ab/8885928cea9e.png)

Raydac
10.02.2017, 20:21
что бы не дичать, надо автоматизировать процесс, вручную то свихнуться можно и на меньшем

Vslav
10.02.2017, 20:25
Да тупо накидать транзисторов то несложно, надо же увязать их в осмысленную логику, понять что какой сигнал значит, выделить логические блоки. Анализ основное время занимает, за часок вечером получается 20-30 штук опознать и нарисовать. В-общем, на месяц еще возни где-то.

hobot
10.02.2017, 20:55
В-общем, на месяц еще возни где-то.

https://prikol-podarok.com/static/img/0000/0004/3112/43112314.gpsxx5ms21.jpg


Дичаю я

https://www.youtube.com/watch?v=TihIJTZBXUY - только 1 видео в 1 сообщении (это иногда не удобно)


https://www.youtube.com/watch?v=Ixod9CW19G4

Vslav
10.02.2017, 21:16
https://www.youtube.com/watch?v=TihIJTZBXUY - только 1 видео в 1 сообщении (это иногда не удобно)

Во-во, примерно так и дичаю :)

Vslav
13.02.2017, 22:46
Ну что, закидал все оставшиеся транзисторы в схему, начерно, без прорисовки. Провел первичную проверку по электрическим правилам, нашел еще три не присоединенные цепи. Всего в моей версии 1801ВМ3 (1991гв) вышло 28900 транзисторов ровно, исправлено пару сотен ошибок векторизации. На этом пока схему ВМ3 отложу, вернусь к проекту БК на реплике ВМ1.

b_10101101
14.02.2017, 09:30
...вернусь к проекту БК на реплике ВМ1.
УРА !!! :v2_dizzy_roll::v2_dizzy_roll::v2_dizzy_roll:

Titus
14.02.2017, 10:03
А как же проект ВМ2? Которого ждет все прогрессивное человечество в лице любителей УКНЦ?

Vslav
14.02.2017, 10:56
А как же проект ВМ2? Которого ждет все прогрессивное человечество в лице любителей УКНЦ?
"Хвосты" надо позакрывать. Сейчас не закрыто:
- 1801ВП1-119 - закончить моделирование, снять с "живой" микросхемы диаграммы, выяснить в чем проблема с памятью на 1201.03
- 580ВМ80А - сделать вариант с шиной wishbone, перевести на единую тактовую, опубликовать проект на Оpencores
- 1801ВМ1 - попробовать двухпроцессорную конфигурацию, закончить разборку микрокода и дописать документацию, опубликовать на Оpencores
- точная реплика БК на основе результатов реверса 1801ВМ1
Есть еще ряд мелких проектов, для них даже платы изготовлены, но я пока их не начинаю, и новые фотографии не делаю, надо закончить начатое. Тогда уже с чистой совестью за ВМ2 можно браться :) Где-то к лету наверное реально.

Titus
14.02.2017, 11:19
К лету... э...
Если уж на чистоту - все вышеперечисленное нужно узкому кругу ограниченных лиц)
А ВМ2 нужен всем, от мала до велика, от УКНЦ до ДВК. От Хобота до Титуса)

Vslav
14.02.2017, 12:27
Которого ждет все прогрессивное человечество в лице любителей УКНЦ?
А любители УКНЦ уже выполнили реверс соответствующих 1515ХМ1? :)
Со своей стороны УКНЦ-шные 1801ВП1-055/120 я честно отработал, хотя это немножко более простые микросхемы :)
Незавершенку таки надо закончить, а то именно она своим многобразием и тормозит - не знаешь за что хвататься. В перечисленных пунктах работы не очень много, за исключением разве что БК-шки.

hobot
14.02.2017, 12:39
Titus, профессор, мне думается, что если мастер действует по своему списку - это очень хороший фактор стабильности.
Второй момент - все проекты связанные с ВМ1 (опыт) в итоге применим будет в процессах и экспериментах со старшими
камнями. Так что можно и потерпеть, если уж (в моём ПКМ случае) я ничем не могу помочь в плане ускорения процесса.

- - - Добавлено - - -

к тому же все наверное знают переключиться с одного процесса на другой - зачастую привносит отдых нервам, снимает утомление и стресс, что неизбежно приводит к временному повышению производительности труда ! )

Titus
14.02.2017, 13:03
А любители УКНЦ уже выполнили реверс соответствующих 1515ХМ1? :)
Но мы-то любители, нам можно)

Vslav
14.02.2017, 13:23
Но мы-то любители, нам можно)
Да мы тоже любители. Значит можем провести межпланетный шахматный турнир :)
ВМ2 то рано или поздно будет, но ведь без 1515 УКНЦ не взлетит же.

Titus
14.02.2017, 13:36
Да мы тоже любители. Значит можем провести межпланетный шахматный турнир :)
ВМ2 то рано или поздно будет, но ведь без 1515 УКНЦ не взлетит же.
Они могут взлетать попутно, на разных аэродромах)

Alex_K
14.02.2017, 19:51
Со своей стороны УКНЦ-шные 1801ВП1-055/120 я честно отработал
А вот в архиве на 1801ВП1-120 нету pdf-ки со схемой. Можно сделать?

Vslav
14.02.2017, 20:41
А вот в архиве на 1801ВП1-120 нету pdf-ки со схемой. Можно сделать?
Добавил pdf со схемой в архив 120.rar

Vslav
18.02.2017, 21:27
Разобрано взаимодействие блока обработки прерываний с блоком микропрограммного управления в 1801ВМ1. Нарисовано устройство блока прерываний, написана документация по имеющимся прерываниям, упорядочены по приоритетам. Вопреки расхожей документации IOT/EMT/TRAP имеют наинизший приоритет, эти инструкции обрабатываются только если нет активных аппаратных прерываний или исключений. Также в деталях выяснено как Т-бит не вызывает исключения в режиме ожидания по WAIT, и как в этом случае отрабатывают аппаратные прерывания. Также полностью документировано влияние битов PSW[11], PSW[10] и PSW[7] на различные прерывания.
Главу документа временно выложил тут (http://u.zeptobars.ru/yuot/MISC/1801vm1-07.pdf), буду рад замечаниям и исправлением неточностей/непоняток/ошибок.

form
18.02.2017, 22:35
Вопреки расхожей документации IOT/EMT/TRAP имеют наинизший приоритет, эти инструкции обрабатываются только если нет активных аппаратных прерываний или исключений.
А можно ссылку на документацию на эту тему? По идее если есть готовые асинхронные прерывания, то они выполняются перед выполнением команды, синхронные же (к каковым и относятся IOT/EMT/TRAP) по определению между собой конкурировать не могут.
Или я не так понял о чем речь?

Vslav
18.02.2017, 23:17
А можно ссылку на документацию на эту тему?
Да нету нигде нормальной и полной документации на ВМ1 в открытом доступе. Я имел ввиду книжку 2 из серии МикроЭВМ под редакцией Преснухина, там программные исключения имеют более высокий приоритет в табличке, ну и мелкие опечатки есть. В моем собственноручном конспекте 1988 года по PDP-11 тоже записано что инструкции исключений имеют приоритет. Вот я почему-то и полагал что если такая инструкция загружена в регистр команд, то это может повлиять на обработку возникших внешних прерываний. Однако это не так, да и реализация такого получилась бы сложной. Хотя было бы прикольно, при возврате из прерывания не дергать стек, с восстановлением/пересохранением регистров, а сразу переходить на обработчик нового исключения, если таковое есть. Cortex-ы так умеют, например.



По идее если есть готовые асинхронные прерывания, то они выполняются перед выполнением команды, синхронные же (к каковым и относятся IOT/EMT/TRAP) по определению между собой конкурировать не могут.

Да, именно так и происходит. Загружается код инструкции IOT/EMT/TRAP в регистр команд, в первой декодирующей микроинструкции происходит опрос блока прерыаваний, и если есть готовое асинхронное событие, то загруженная инструкция выбрасывается и начинается обработка события.

form
18.02.2017, 23:44
там программные исключения имеют более высокий приоритет
Это скорее всего локальное понимание. Приоритет же тут как таковой, пожалуй, неуместен: синхронное прерывание немедленно возникает в момент наступления причины независимо от приоритета процессора.
То есть если процессор принял команду прерывания к выполнению - она немедленно отработает независимо от приоритета, если же в момент когда он ее должен принять (или выполнить - не важно как назвать) есть готовое асинхронное прерывание - то оно отработает (или нет - в зависимости от приоритета) до принятия инструкции.
Есть процессоры у которых прерывание может вклиниться в инструкцию, но это касается инструкций EIS/FPP...

- - - Добавлено - - -

Есть один вариант неоднозначности с T-bit - это тоже синхронное прерывание, но здесь как раз возможны варианты как поведет себя процессор после установки бита T командой RTI. В старых процессорах (где не было команды RTT) наличие готового прерывания приводило к его выполнению. В более поздних в случае RTI с установкой бита T немедленно возникает синхронное прерывание, а по RTT дается возможность отработать асинхронное. Ну и разумеется, никто не мешает сделать свою реализацию когда делается что-то по мотивам :)
Есть проц или два на которых T-bit можно установить прямой записью в PSW, но как и что там при этом получается - фиг знает :)

Vslav
19.02.2017, 00:25
Есть один вариант неоднозначности с T-bit - это тоже синхронное прерывание

Это уже следующий этап - разбор микрокода, похоже там RTT принудительно запускает instruction fetch, дожидается окончания и загрузки регистра инструкций, а потом специальным образом подавляет опрос блока прерывания в первой микроинструкции декодирования первой команды после возврата из прерывания/исключения. То есть, одна команда до прерывания после RTT должна отработать в любом случае, посмотрим, так ли это. По RTI я пока специальных мер не вижу, первая команда после возврата может обрабатываться обычным способом.

Сам микрокод нечитаемый, но уже есть ясность, написал утилитку для анализа, ковыряюсь потихоньку. Там матрица с 31 входом и 34 выходами. Из входов - 16 бит это инструкция, 7 бит адрес микрооперации (всего 128 микрокоманд в блоке получается, часть не используется, как показал анализ графов), 5 бит PSW[4:0], и 3 бита с блока прерываний, вот с ними была морока, разобрались, дальше веселее.

gid
20.02.2017, 10:01
Кстати, по поводу микрокода, я по мотивам Vslavовской проги mcode попробовал написать прогу, которая более подробно и развёрнуто даёт результаты. Но это понимания не добавило, да и что когда в точности означает в выходной 34 битной матрице не понимаю, на чём всё и застопорилось.
59810
результат работы - три вида логов.

[0x00](xxxxxxxx xxxxxxxxxxxxxxxx) -> [0x01](1111111110111101111110111110111010)

[0x01](000xxxxx xxxxxxxxxxxxxxxx) -> [0x01](1111111110111101111110111110111010)
[0x01](000xxxxx 0000000001000xxx) -> [0x01](1111111110111101011110111110111010)
[0x01](000xxxxx 0000100xxx000xxx) -> [0x01](1111111110111100011110111110111010)
[0x01](000xxxxx 10001000xxxxxxxx) -> [0x01](1111111110110100111110111110111010)
[0x01](001xxxxx 0000000000000000) -> [0x01](1111111110100101011110111110111100)
[0x01](001xxxxx 0000000000000001) -> [0x37](0001100111111111001000110000011100)
[0x01](001xxxxx 0000000000000x10) -> [0x38](1001000110011101000010010100010100)
[0x01](001xxxxx 0000000000000011) -> [0x01](1111111110100100001010111110111100)
[0x01](001xxxxx 0000000000000100) -> [0x01](1111111110101100001010111110111100)
[0x01](001xxxxx 0000000000000101) -> [0x37](1111111111111111111110100110011100)
[0x01](001xxxxx xxxxxxxxxx000xxx) -> [0x47](1111111111111011111111111111111111)
[0x01](001xxxxx 0000000000001xxx) -> [0x2f](1111110101111011100000111000011100)
[0x01](001xxxxx xxxxxxxxxxxxxxxx) -> [0x47](1111111111111111111111111111111111)
[0x01](001xxxxx 0000x00xxx000xxx) -> [0x01](1111111110111000001010111110111100)
[0x01](001xxxxx 0000000001xxxxxx) -> [0x45](1111111110111010101010111110111101)
[0x01](001xxxxx 0000000010000xxx) -> [0x50](1111011110111101011110110110111101)
[0x01](001xxxxx 0000000010000111) -> [0x50](1111011110111001011110110110111101)
[0x01](001xxxxx 00000000101xxxxx) -> [0x37](0001100111011111001010010100011000)
[0x01](001xxxxx x000xx0x11000xxx) -> [0x50](0001000110011101001010010100111001)
[0x01](001xxxxx x000xx0xxx000xxx) -> [0x50](0001000110011001001010010100111001)
[0x01](001xxxxx x000xxxxxxxxxxxx) -> [0x45](0001111110111111011010111110111101)
[0x01](001xxxxx x0000xxxxxxxxxxx) -> [0x7b](1111111111111101110110110110011101)
[0x01](001xxxxx x0000xxxxx000xxx) -> [0x7b](1111111111111001110110110110011101)
[0x01](001xxxxx 0000100xxxxxxxxx) -> [0x45](1111111110111011101010111110111101)
[0x01](001xxxxx x0001xxxxx000xxx) -> [0x31](0001100110011101001010010100011000)
[0x01](001xxxxx x0001xxxxx000111) -> [0x31](0001100110011001001010010100011000)
[0x01](001xxxxx x000101111xxxxxx) -> [0x45](0001111110111111001010111110111101)
[0x01](001xxxxx 0000110100xxxxxx) -> [0x37](0001101001011011001000110000011100)
[0x01](001xxxxx xxxxx00xxx000xxx) -> [0x58](0001000110011101000010010100111001)
[0x01](001xxxxx xxxxx00xxx000xxx) -> [0x58](0001000110011001000010010100111001)
[0x01](001xxxxx xx0xxxxxxxxxxxxx) -> [0x47](0001111111111111011110111110111101)
[0x01](001xxxxx xx0xxxxxxx000xxx) -> [0x47](0001111111111011011110111110111101)
[0x01](001xxxxx x01xxxxxxxxxxxxx) -> [0x47](0001111111111111001110111110111101)
[0x01](001xxxxx x01xxxxxxx000xxx) -> [0x47](0001111111111011001110111110111101)
[0x01](001xxxxx x110xxxxxxxxxxxx) -> [0x47](0001111111111111111110111110111101)
[0x01](001xxxxx x110xxxxxx000xxx) -> [0x47](0001111111111011111110111110111101)
[0x01](001xxxxx xxxxxx0xxx000xxx) -> [0x52](1111000111011101101111010101111011)
[0x01](001xxxxx xxxxxx0xxx000111) -> [0x52](1111000111011001101111010101111011)
[0x01](001xxxxx 0111100xxxxxxxxx) -> [0x5a](0001011111111101010110110110111101)
[0x01](001xxxxx 0111111xxxxxxxxx) -> [0x27](1111111111111111011110111110011100)
[0x01](001xxxxx 0111111xxx000111) -> [0x27](1111111111111011011110111110011100)
[0x01](001xxxxx 10001000xxxxxxxx) -> [0x01](1111111110110000001010111110111100)
[0x01](001xxxxx 10001001xxxxxxxx) -> [0x01](1111111110111001001010111110111100)
[0x01](001xxxxx 1000110100xxxxxx) -> [0x45](0001111110111011001010111110111101)
[0x01](01xxxxxx xxxxxxxxxxxxxxxx) -> [0x1d](1111101010011011100000110110110100)
[0x01](10xxxxxx xxxxxxxxxxxxxxxx) -> [0x13](1001100111011101111000110010111100)
[0x01](11xxxxxx xxxxxxxxxxxxxxxx) -> [0x21](1111100100011001101000111100010100)
где
[src addr](mr ir) -> [dst addr](plm)
src addr - текущий адрес ячейки микрокода,
dst addr - куда делается переход с текущего адреса
mr - то, что в верилоге зовётся mj, но без адреса ячейки



[0x00](xxxxxxxx xxxxxxxxxxxxxxxx) -> [0x01](1111111110111101111110111110111010)
matches:16777216
[000-377]:[000000-177777]

------------------------------------------------
[0x01](000xxxxx xxxxxxxxxxxxxxxx) -> [0x01](1111111110111101111110111110111010)
matches:2086656
[000-037]:[000000-000077][000110-003777][004010-004077][004110-004177]
[004210-004277][004310-004377][004410-004477][004510-004577]
[004610-004677][004710-103777][104400-177777]

[0x01](000xxxxx 0000000001000xxx) -> [0x01](1111111110111101011110111110111010)
matches:256
[000-037]:[000100-000107]

[0x01](000xxxxx 0000100xxx000xxx) -> [0x01](1111111110111100011110111110111010)
matches:2048
[000-037]:[004000-004007][004100-004107][004200-004207][004300-004307]
[004400-004407][004500-004507][004600-004607][004700-004707]


[0x01](000xxxxx 10001000xxxxxxxx) -> [0x01](1111111110110100111110111110111010)
matches:8192
[000-037]:[104000-104377]

[0x01](001xxxxx 0000000000000000) -> [0x01](1111111110100101011110111110111100)
matches:32
[040-077]:[000000]

[0x01](001xxxxx 0000000000000001) -> [0x37](0001100111111111001000110000011100)
matches:32
[040-077]:[000001]

[0x01](001xxxxx 0000000000000x10) -> [0x38](1001000110011101000010010100010100)
matches:64
[040-077]:[000002][000006]

[0x01](001xxxxx 0000000000000011) -> [0x01](1111111110100100001010111110111100)
matches:32
[040-077]:[000003]

[0x01](001xxxxx 0000000000000100) -> [0x01](1111111110101100001010111110111100)
matches:32
[040-077]:[000004]

[0x01](001xxxxx 0000000000000101) -> [0x37](1111111111111111111110100110011100)
matches:32
[040-077]:[000005]

[0x01](001xxxxx xxxxxxxxxx000xxx) -> [0x47](1111111111111011111111111111111111)
matches:4832
[040-077]:[000007][006507][006607][007007][007107][007207][007307][007407]
[007507][007607][007707][070007][070107][070207][070407][070507]
[070607][070700-070707][071007][071107][071207][071307][071407]
[071507][071607][071707][072007][072107][072207][072307][072407]
[072507][072607][072707][073007][073107][073207][073307][073407]
[073507][073607][073707][075007][075107][075207][075307][075407]
[075507][075607][075707][076007][076107][076207][076307][076407]
[076507][076607][076707][107007][107107][107207][107307][107407]
[107507][107607][107707][170007][170107][170207][170307][170407]
[170507][170607][170700-170707][171007][171107][171207][171307]
[171407][171507][171607][171707][172007][172107][172207][172307]
[172407][172507][172607][172707][173007][173107][173207][173307]
[173407][173507][173607][173707][174007][174107][174207][174307]
[174407][174507][174607][174700-174707][175007][175107][175207]
[175307][175407][175507][175607][175707][176007][176107][176207]
[176307][176407][176507][176607][176707][177007][177107][177207]
[177307][177407][177507][177607][177707]

[0x01](001xxxxx 0000000000001xxx) -> [0x2f](1111110101111011100000111000011100)
matches:256
[040-077]:[000010-000017]

где в квадратных скобках перечисляются диапазоны входных кодов, по которым происходит переход.
[mr]:[ir]...[ir]

третий лог - скорее всего недостоверен, поэтому не привожу.

Вдруг пригодится.

Забыл добавить: адреса ячеек микрокода - инверсные относительно верилога, так гораздо понятнее.

Vslav
20.02.2017, 10:21
что когда в точности означает в выходной 34 битной матрице
Это я буду документировать насколько возможно подробно, а также работу микроавтомата. На сейчас очень краткое описание выходов матрицы есть в vm1_plm.v, но оно ну очень краткое. Также хочу разобраться как на уровне микрокода обрабатываются различные ситуации. В принципе декодирование команд уже разобрал, некоторые команды тоже разобрал, там по факту всего несколько цепочек получается. Всего используется примерно 70 микрокоманд из 128 теоретически возможных (адрес микрокоманды 7-битный). Моменты запуска обращения к внешней шине и установки вспомогательных битов типа WAIT/INIT и прочих тоже задокументирую, так что можно будет написать по-тактовый эмулятор базирующийся на микропрограммном автомате. Имхо, это был бы вполне точный, но гораздо менее прожорливый компромисс (чем симуляция полного HDL-описания процессора). Собственно для этого и разбираюсь и пишу документацию. Ну еще хотелось бы научится осмысленно вносить патчи в микрокод, но это очень желательно восстановить применяемую разработчиками форму записи, а чисто реверсом это сложно сделать (увы, никакой информации и исходников тех времен пока не всплыло). А просто пропатчить какую-то конкретную инструкцию уже сейчас проблем нет, при желании можно будет убрать фантомные циклы и прочие странности.

gid
20.02.2017, 13:43
На сейчас очень краткое описание выходов матрицы есть в vm1_plm.v, но оно ну очень краткое
Этого недостаточно. Я как раз по этому описанию пытался анализировать результат, он как раз в третьем логе получается, он с моей точки зрения - получается полная ерунда.

Ну еще хотелось бы научится осмысленно вносить патчи в микрокод
А уж мне то как хочется такую штуку.

А вот насчёт лёгкости пропатчить, у меня есть сомнения. Я, глядя на логи, долго думал, и пришёл к выводу, что там применялись оптимизации, что-то типа карты карно, и обратный реверс функций уже невозможен. А ещё как мне кажется там делались какие-то компромиссные решения, может чтобы в транзисторный бюджет уложиться или в 34-х битный выход, не знаю. Потому что когда прослеживаешь цепочку микрокоманд, происходят какие-то с моей точки зрения не совсем логичные действия, типа переходов, которые как мне кажется ничего не делают, и можно было бы сделать проще, но тогда наверное бы не так хорошо матрица бы оптимизировалась.

Vslav
20.02.2017, 16:17
оптимизации, что-то типа карты карно, и обратный реверс функций уже невозможен
Ну это типа как дизассемблировать бинарник, только мнемоники команд неизвестны, придется свои придумывать. Поэтому да, оригинальный текстовый вид не восстановим, но функциональность ясна. Я составил карту используемых адресов, список графов, соответствующих переходами между ними, и проанализировал условия, при которых переходы происходят. Там достаточно четко видны этапы декодирования команд и различные стадии их исполнения, поэтому где и что на каком микроадресе исполняется - вроде бы понятно.


А ещё как мне кажется там делались какие-то компромиссные решения, может чтобы в
На ПЛИС или в эмуляторе транзисторный бюджет нас ограничивает слабо, создать новые p-термы и добавить их в нужные выходные суммы матрицы просто, поэтому небольшие изменения типа подавления фантомных циклов сделать несложно. В идеале хотелось бы восстановить исходник для всей матрицы и утилиту компиляции, но это немало времени может занять, поэтому не знаю, стоит ли уж так закапываться. Наверняка при разработке оригинального ВМ1 тоже была похожая утилита, алгоритмы оптимизации по тем же картам Карно несложные, автоматизация напрашивается сама собой.

Vslav
21.02.2017, 20:11
Дописал утилитку и ей перекинул матрицы ВМ2 из схемы в верилог (http://u.zeptobars.ru/yuot/1801/VM2/), создал проект, буду верифицировать и разбирать. Матрички размножаются в геометрической прогрессии, в ВМ1 было всего две (основная микрокода и приоритетный шифратор прерываний), в ВМ2 уже четыре (основная микрокода, шифратор прерываний, предварительный декодер команд и блок ветвления), а в ВМ3 уже восемь и есть еще мелкие, которые я не считал. Вошли люди во вкус, однако.

Vamos
21.02.2017, 21:04
Vslav, Здравствуйте!

тут случайно подвернулось https://yadi.sk/i/rZvtpM223EMHy3 https://yadi.sk/i/k0QjBTJM3EMHzr
извините могу ошибаться, Вы интересовались подобным оборудованием, если интересно скину контакты, правда человек еще сам не знает сколько за это хочет.

Vslav
21.02.2017, 21:22
тут случайно подвернулось

Спасибо за ссылки, но смысла покупать еще один оптический микроскоп немного. Правда там столик интересный, но много возни его адаптировать для своего мс, поэтому думаю что-то попроще разработать и напечатать в 3D.

Vslav
22.02.2017, 16:45
Вопрос такой к знатокам - чем 1801ВМ2 тестировать, тоже 791401 и 791404 использовать?

hobot
22.02.2017, 16:57
Вопрос такой к знатокам - чем 1801ВМ2 тестировать
Весь софт про который я пишу это под RT-11:
1.Надо тесты Патрона гонять - я по запросу гонял на живой УК-НЦ, они в соотв. теме выложены
2.Тест процессора КР1801ВМ2 для УКНЦ Версия 0.3a (c) dr.Titus 2012 (http://archive.pdp-11.org.ru/ukdwk_archive/ukncbtlwebcomplekt/Other/titus_vm2testUKNC/)

Vslav
22.02.2017, 17:10
Весь софт про который я пишу это под RT-11
До RT-11 еще дожить надо :). Но да, когда доживем - этот софт пригодится.

hobot
22.02.2017, 17:42
До RT-11 еще дожить надо
вот я понимаю, что это не совсем то )
в архиве диск ukdwk_archive\dwkwebcomplekt\FODOS_TMOS\FODOSTM1.D SK
и вот тут вроде бы подробности чем можно ВМ2 конкретно прогнать
(внутреннее содержимое CCC файлов) http://www.emuverse.ru/downloads/computers/DVK/docs/test0505.htm

- - - Добавлено - - -


VM2PRO.CCC 1 27-Dec-1988 512
VM2A .CCC 2 27-Dec-1988 1'024
VM2 .CCC 3 27-Dec-1988 1'536
VM2MY .CCC 3 27-Dec-1988 1'536

на соседнем образе там же )

Vslav
22.02.2017, 17:54
на соседнем образе там же )
ОбразА пока не нужны :) Мне в ПЗУ что-нить прошить надо. Ну да 401-ый для начала подойдет, если 401-ый будет проходить, то вероятность что загрузиться RT-11 высокая, а там уже все специфические тесты ВМ1/ВМ2 можно будет прогнать.

Alex_K
22.02.2017, 19:40
Вопрос такой к знатокам - чем 1801ВМ2 тестировать, тоже 791401 и 791404 использовать?
791401 - основной тест команд;
791402 - тест команд расширенной арифметики;
691404 - тест прерываний.

Vslav
06.03.2017, 14:22
Написал полное HDL-описание 1801ВМ2. Все 18 листов схемы обработаны :). Теперь у нас есть асинхронная модель процессора на Верилоге и тестбенч к ней. Тесты пока не взлетают, где-то есть ошибки, но думаю что отладить посильно.

Titus
06.03.2017, 14:24
Написал полное HDL-описание 1801ВМ2. Все 18 листов схемы обработаны :). Теперь у нас есть асинхронная модель процессора на Верилоге и тестбенч к ней. Тесты пока не взлетают, где-то есть ошибки, но думаю что отладить посильно.
А как быть людям, которые умеют понимать только схемы? )

MiX
06.03.2017, 14:39
Написал полное HDL-описание 1801ВМ2.
А в эмуляторе (http://zx-pk.ru/threads/25252-adapter-shiny-mpi-dlya-emulyatora-dvk-1.html) не пробовали прогнать модель? И вообще реально это.

dk_spb
06.03.2017, 14:53
А нет ли у кого-нибудь посадочного места для н1806вм2 (корпус Н18.64-1В) в Sprint Layout ?

Vslav
06.03.2017, 15:23
А как быть людям, которые умеют понимать только схемы? )
О-о-о-о, этим людям можно только люто завидовать - у них выбор особенно богат:
- понимать по-транзисторную схему процессора
- понимать заводскую схему в логических вентилях
- и, та-да-а-ам!!!, насладиться изучением Верилога и понимать текстовое описание
:)

- - - Добавлено - - -


А в эмуляторе (http://zx-pk.ru/threads/25252-adapter-shiny-mpi-dlya-emulyatora-dvk-1.html) не пробовали прогнать модель? И вообще реально это.
Не, это немножко другой эмулятор.

- - - Добавлено - - -


А нет ли у кого-нибудь посадочного места для н1806вм2 (корпус Н18.64-1В) в Sprint Layout ?
Делился для PCAD (http://u.zeptobars.ru/yuot/MISC/), но на реальной плате компонент 1806ВМ2 не проверялся еще.

MiX
06.03.2017, 15:28
dk_spb, kiсad устроит? Если устроит - здесь. (http://www.phantom.sannata.ru/forum/index.php?t=18989&a=stdforum_view&o=&st=0)

dk_spb
06.03.2017, 15:43
Спасибо!
Кикад не подходит, пикад попробую.

Vslav
06.03.2017, 16:09
А какие существуют тесты для EIS инструкций деления и умножения? Блок расширенной арифметики в ВМ2 достаточно навороченный, особо невменяемые схемы формирования признаков, ошибиться очень легко, следовательно - надо хорошенько тестировать.

MiX
06.03.2017, 18:28
Vslav, Тест расширенной арифметики 791402.

ТМОС (http://emuverse.ru/downloads/computers/DVK/docs/test0505.htm)

Ещё есть тест TSTVM2. (http://archive.pdp-11.org.ru/ukdwk_archive/ukncbtlwebcomplekt/Other/titus_vm2testUKNC/)

Titus
06.03.2017, 19:14
О-о-о-о, этим людям можно только люто завидовать - у них выбор особенно богат:
- понимать по-транзисторную схему процессора
- понимать заводскую схему в логических вентилях
- и, та-да-а-ам!!!, насладиться изучением Верилога и понимать текстовое описание

А в виде простых логических элементов - типа триггер, инвертор, регистр и т.д. - не?

- - - Добавлено - - -


понимать заводскую схему в логических вентилях
Заводская схема наверняка изрядно отличается от полученной.

Vslav
06.03.2017, 19:47
А в виде простых логических элементов - типа триггер, инвертор, регистр и т.д. - не?

Не. Я уже отвечал на этот вопрос - не вижу смысла тратить пару месяцев своей жизни на абсолютно бесполезное перерисовывание схемы в такой формат. Практического выхода никакого полезного не будет. И не просто так HardwareMan до сих пор не перерисовал в таком виде 580ВМ80А - возни много, смысла не очень.



Заводская схема наверняка изрядно отличается от полученной.
Крайне незначительно, там в readme.txt описаны немногие найденные отличия. И то не факт что это не отличия новой ревизии силикона.

Vslav
07.03.2017, 08:23
Vslav, Тест расширенной арифметики 791402.

Такой нескромный вопрос - исходники 691404 и 791402 нигде случайно не пробегали?

Alex_K
07.03.2017, 10:43
Такой нескромный вопрос - исходники 691404 и 791402 нигде случайно не пробегали?
691404 это тоже самое, что и 791404, отличается только одним словом настройки, при проверке TRAP10 на командах EIS соответственно TRAP10 не должно быть.
А вот 791402 исходников нигде не видел.

Titus
07.03.2017, 11:28
Написал полное HDL-описание 1801ВМ2. Все 18 листов схемы обработаны :). Теперь у нас есть асинхронная модель процессора на Верилоге и тестбенч к ней. Тесты пока не взлетают, где-то есть ошибки, но думаю что отладить посильно.
А где сама модель-то?

Кстати, ссылка на схему ВМ2 в первом посте не работает.

Vslav
07.03.2017, 14:29
Спасибо, ссылки в первом посте поправил. Если что не качается, то можно просто браузером ходить в каталог (u.zeptobars.ru/yuot) и смотреть актуальные файлы. Собственно я этот FTP как бекап использую, часто там даже промежуточные результаты хранятся.

Titus
07.03.2017, 17:10
Мда... похоже, меня заставляет это учить HDL.

Вопрос - какова была технология перевода транзисторной схемы в HDL?

Vslav
07.03.2017, 17:41
Вопрос - какова была технология перевода транзисторной схемы в HDL?

Тут нет никакой технологии. Видим комбинационную схему - пишем assign, видим защелку - пишем always. Нужно всего лишь знать эти два волшебных слова :). Узнать про эти волшебные слова можно из кучи хороших книжек. Лично я их узнал из "The Verilog® Hardware Description Language" Thomas & Moorby, в ней все толково изложено, с примерами и простыми практическими заданиями.
А если серьезно - то текстовая форма описания схем сильно выигрывает у схемотехнической, пока эти все проводочки на схеме отследишь и в кучку соберешь. А так - сразу прочитал формулу - и усе.

Titus
07.03.2017, 18:24
Но это так и не раскрыло, как был осуществлен перевод?
Просто потранзисторно описывая все в VHD?

Vslav
07.03.2017, 19:36
Просто потранзисторно описывая все в VHD?

"Вах, зачэм грызлы? Застрэлылы!" (c)

Рассмотрим фрагмент схемы (картинки сохранены на форуме, в аттаче можно покликать):

http://zx-pk.ru/attachment.php?attachmentid=59978

По факту это функция 3ИЛИ-НЕ. Фрагмент можно описать так, "в лоб":

wire syn_set;
wire bus_free;
wire adr_req;
wire wrq;

assign sync_set = ~(~adr_req | wrq | ~bus_free);
Или так:


assign sync_set = adr_req & bus_free & ~wrq;

Формулы равнозначны, но мне вторая форма записи нравится больше.

Или такой фрагмент:

http://zx-pk.ru/attachment.php?attachmentid=59979

Превращается:



reg out;
wire rcmd_set;
wire io_cmdr;

always @(*)
begin
if (rcmd_set)
out <= 1'b0;
else
if (io_cmdr)
out <= 1'b1;
end

Это описание не слишком точное, оно не совсем корректно отображает работу RS-триггера когда оба входа активны (надо было бы писать два отдельных уравнения для out и ~out), но для наших целей сойдет, поскольку данное сочетание считаем запрещенным. Два крайних правых транзистора к триггеру отношения не имеют - это буфер.

D-триггер:

http://zx-pk.ru/attachment.php?attachmentid=59980

Превращается:



reg out;
wire ir_stb;
wire [1:1] b;

always @(*)
begin
if (ir_stb) out <= b[1];
end

Тут тоже два крайних транзистора справа просто буферные.
Вот так и живем, пару недель по паре часов вечером и все 18 страниц невпихуемой схемы превращаются во вменяемый текстовый файл :)

Titus
07.03.2017, 21:22
Рекомендация - пока вопрос к руководству форума об уменьшении картинок в делопроизводстве, выложить картинки на сторонний ресурс, чтобы люди могли их видеть)

- - - Добавлено - - -


Тут тоже два крайних транзистора справа просто буферные.
Вот так и живем, пару недель по паре часов вечером и все 18 страниц невпихуемой схемы превращаются во вменяемый текстовый файл
Т.е. фактически это вручную описание схемы, без какой-либо автоматики.
Хм... тут и ошибиться недолго)
Или, говоря иначе, потранзисторная схема максимально близка к оригиналу, а HDL версия пропущена через изрядный человеческий фактор. И если хочется сохранить максимальную аутентичность, переводя схему, скажем в логические блоки, то лучше обращаться к потранзисторной.

Vslav
07.03.2017, 21:56
Т.е. фактически это вручную описание схемы, без какой-либо автоматики.

Ну матрицы я перевел автоматически утилитой, это примерно 7 страниц из 18. Ошибки в матрицах ловить очень сложно, там логика слабо проглядывается, вон микрокод ВМ1 сколько анализируется, даже специальный инструментарий пишется.



переводя схему, скажем в логические блоки, то лучше обращаться к потранзисторной.

Тут такое дело - изначально разработчики рисовали процессор в логических вентилях (и у нас даже есть эта оригинальная схема), потом перевели схему в транзисторы по стандартным схемотехническим приемам (прообраз библиотеки), потом потюнинговали кое-где задержки (обычно буферы/инверторы добавляли), и усе. Мы восстановили транзисторную схему (она тоже с оговорками), распознали эти схемотехнические приемы, перевели в исходные вентили и написали их на HDL. Очень точно, это же цифра, логические функции задаются полностью однозначно, функцию типа 2И-НЕ испортить сложно. Современное HDL-описание ничуть не хуже схемы и полностью повторяет изначальный функциональный замысел разработчиков процессора. Угу, есть некоторая неэквивалентность описания схеме, типа работы RS-триггера в запрещенных комбинациях, но в критичных местах, где это (хотя и мало)вероятно - тоже учитывалось в описании. Но основная логика повторена очень точно. Кстати, по оригинальной схеме в логических вентилях сразу тоже сложно сказать как она будет работать при запрещенных комбинациях, тут только на транзисторы смотреть. Вот я смотрел и писал HDL-описание с учетом поведения именно транзисторов, а не вентилей.

Оригинальный процессор уже не повторить полностью. Даже если иметь фабрику. Нужно использовать старый техпроцесс и линейку оборудования тех лет, со всеми его технологическими особенностями. Даже если взять старые оригинальные фотошаблоны и новый техпроцесс - уже не факт, что получится идентичный рабочий процессор. ОК, берем новый техпроцесс - под него нужны новые шаблоны. А их уже так просто не сделать на основе транзисторной схемы - топология собирается из HDL-описания при помощи фабричных библиотек, в которых транзисторы уже объединены в свои проверенные и протестированные группы. В-общем, HDL-описание по отреверсенной схеме - это на сегодня максимально приближенная к оригинальной задумке инкарнация. Если оставаться реалистом, то круче уже не сделать.

MM
07.03.2017, 23:17
Когда делали Китайский 1836ВМ3 в 1997 г.- по ТО и Э3 1806ВМ3, по китайским библиотекам рисовали года так 2 коллектив человек так 5.
Потом, т.к. камень нужен был вовсе не для школоты и ЧПУ - цикнули, "делайте только 100% совковое". К 2005 г. сделали ОП, тираж наладили к 2007 г.
Т.е., видимо, лет так 5 рисовали библиотеки и отлаживали процесс, потом 2 года патчили результат под техпроцесс.
Для тех, кто в теме - 5 лет хитрить с 1-2 транзисторами и поссорится со всеми возможными поставщиками ПМК -это норма...

Titus
08.03.2017, 00:03
она тоже с оговорками
Что за оговорки?

Vslav
08.03.2017, 00:07
Что за оговорки?
Транзисторы встречаются разные, они топологически отличаются, соответственно у них параметры разные, это опущено. На оригинальной схеме типы транзисторов указаны. Кое-где встроенные конденсаторы не нарисованы. На схеме ВМ3 явно есть скрытые диоды, которые по фото просто не вытащить. Но на понимание логики работы все эти элементы не влияют, поэтому меня это не парит. Как выше написал - точно повторить оригинал малореально, поэтому я ограничиваюсь функционалом.

MiX
19.03.2017, 16:03
Давно искал описание контроллера К1801ВЕ1.

И нашел - здесь. (http://www.ic-info.ru/upload/iblock/89e/К1801ВЕ1%20Однокристальная%20м кро-ЭВМ.pdf)

Источник. (http://www.ic-info.ru/mikroskhemy/14768/?sphrase_id=26736)

Sergei Frolov
19.03.2017, 16:20
Доки к КА1801ВМ3 и КА1801ВМ4
http://www.leningrad.su/temp/ka1801bm3.pdf
http://www.leningrad.su/temp/ka1801bm3_4.pdf
http://www.leningrad.su/temp/ka1801bm4.pdf

Mixa64
02.04.2017, 17:22
1801ВП1-030 Актуальный архив
На схеме ошибку нашел, на H35.6 A9 должен приходить прямой, не инверсный. А в верилоговской модели все правильно тут.
(выявил в процессе изучения, при каких обстоятельствах окно ОЗУ 1776XX открыто)
И по результатам изучения, не могу сформулировать простую логику работы DCLO для этой ВПшки. Ну то есть она простая сама по себе, но нет простого человеческого смысла у этой логики.
Логика:
1. Активный (низкий на ножке) DCLO, и только он, запрещает открытие окна ОЗУ 17776XX.
2. Активный DCLO вместе с активным RSEL (оба низкие на ножках) сбрасывают счетчик, отсчитывающий таймаут регенерации.

Препятствия для формирования простого человеческого смысла:
1. При активном DCLO процессор и так стоит, зачем ему запрещать доступ к окну?
2. Опять же, процессор стоит, кто может выставить активный RSEL? Ну и, нафига сбрасывать, если он и так в режиме свободного счета?

Vslav
02.04.2017, 17:55
на H35.6 A9 должен приходить прямой, не инверсный.

Почему? RAM разве не назначена на 177600-177677? При этом A15-A7 должны быть в единице, A6 - нулевой. H35 сформирует активный низкий именно при единичном A9 (и нулевом ~A9).



Активный (низкий на ножке) DCLO, и только он, запрещает открытие окна ОЗУ 17776XX

Сложно сказать точно, можно предположить что это защита от переходных процессов на шине в момент сброса процессора.



2. Активный DCLO вместе с активным RSEL (оба низкие на ножках) сбрасывают счетчик, отсчитывающий таймаут регенерации.
Ну и, нафига сбрасывать, если он и так в режиме свободного счета?

Как вариант - привод счетчика в исходное состояние в целях тестирования. Вне системы, конечно, на стенде. Хотя, возможно просто рудимент остался от какого-то промежуточного варианта.

Mixa64
02.04.2017, 18:37
Да, точно .. Глаз замылился. Сначала по верилогу рисовал в логических элементах, карандашом перенес не nA9, а как будто A9, уж потом заметил разницу со схемой. И почему-то решил, что получившееся 1766XX это правильно, хотя знал, что 1776XX. Глюк-с. :)

С окном 1776XX было бы логичнее поступить, закрыв его при обоих нулевых битах 2 и 3 в SEL1. Была надежда, что из "user моды" процессора ОЗУ там не видно, но оно есть. Ну и ладно, назовем это окно служебной областью режима останова, без сохранения состояния. Каждый вход в HALT - словно никогда там раньше и не были.

Vslav
02.04.2017, 19:53
Была надежда, что из "user моды" процессора ОЗУ там не видно, но оно есть.
По смещению 177674 ВМ1 сохраняет текущие PC/PSW при исключениях, переводящих его в пультовой режим. Судя по микропрограмме 3-й бит в 177716 (режим пульта) устанавливается ДО сохранения, поэтому можно было бы эту память сделать недоступной.


Каждый вход в HALT - словно никогда там раньше и не были
Интересно, возможно ли вложение исключений HALT. А то адрес 177674 фиксирован, это не организация в виде стека.

Update: временный документ (http://u.zeptobars.ru/yuot/MISC/1801vm1-08.pdf), добавлена глава по блоку прерываний и исключений 1801ВМ1

cpg
06.04.2017, 11:02
и у нас даже есть эта оригинальная схема
А откуда Вы её умудрились накопать? Как? Расскажите. Жуть как интересно.

Vslav
06.04.2017, 11:53
А откуда Вы её умудрились накопать? Как? Расскажите. Жуть как интересно.
Я имел ввиду заводскую документацию на 1801ВМ2, в ее составе есть документ со схемой на уровне логических вентилей. Это Titus добыл, у него спрашивать надо. На ВМ1/ВМ3 в открытом доступе заводской документации нет.

cpg
06.04.2017, 12:00
Это Titus добыл
Вот народ! Я фигею... Где они добывают секретные документы...
А откуда инфа, что Titus добыл?
Кстати, Vslav, а Вы случайно не в Крисале или в Квазаре работать не имели "счастья"?

Vslav
06.04.2017, 12:18
А откуда инфа, что Titus добыл?

Есть такая тема (http://zx-pk.ru/threads/17284-km1801vm2-tekhnicheskoe-opisanie.html)



Кстати, Vslav, а Вы случайно не в Кристалле или в Квазаре работать не имели "счастья"?

Не-а, но с удовольствием пообщался бы с теми кто там работал. Они и сейчас декларируют что могут 1810ВМ86 изготовить, хорошо бы шаблоны и/или документацию выпросить. Также, возможно, и на 580ВМ1 что-то сохранилось.

Titus
06.04.2017, 13:05
Вот народ! Я фигею... Где они добывают секретные документы...
А откуда инфа, что Titus добыл?
Кстати, Vslav, а Вы случайно не в Крисале или в Квазаре работать не имели "счастья"?
Добыл лет 15-10 назад, работая вместе с теми людьми, кто делали ВМ1, 2.

cpg
06.04.2017, 13:48
Добыл лет 15-10 назад
А не могли-бы Вы привести маалекнький кусочек той схемы в качестве примера? Просто интересна как схемы первоисточник рисовал.

- - - Добавлено - - -


и на 580ВМ1 что-то сохранилось.
У Сергея Фролова есть экземпляры. Если уболтать его - может и поделится.

Titus
06.04.2017, 14:06
А не могли-бы Вы привести маалекнький кусочек той схемы в качестве примера? Просто интересна как схемы первоисточник рисовал.
Скачайте доки по приведенной выше ссылке, там все есть)

cpg
06.04.2017, 16:41
Извеняюсь, слепой.

Скачайте доки по приведенной выше ссылке, там все есть)
Я думал, что у Вас потранзисторный вариант есть.

cpg
07.04.2017, 11:57
Есть вопрос по PCAD2004.
Если я хочу удалить все NETs, то почему он автоматом удаляет часть дорожек, причем произвольно, а большинство не трогает? Вот если мне надо удалить пару цепей, например в которых есть закоротка, то как быть? Мне проще удалить все цепи и по новой прогрузить нетлист.

Vslav
07.04.2017, 13:00
Есть вопрос по PCAD2004.
Если я хочу удалить все NETs, то почему он автоматом удаляет часть дорожек, причем произвольно, а большинство не трогает?

Я так понимаю вопросы касаются редактора печатных плат pcb (потому что в пакете PCAD есть еще схемный редактор sch).
Что понимается под NETs? Если это редактор плат, то там есть три типа объектов, подпадающих под это определение - line, connection, wire.

Line - это просто графика, нарисованная отрезком в каком-либо слое. Когда мы импортировали герберы с прорисованной по фотографии топологии мы получили именно кучки lines

Connection - это тонкая условная линия, показывает что между какими-либо объектами должно быть электрическое соединение через wires, но его в данный момент нет. Имеет имя цепи и включено в нетлист. Если это объект удалить, то нетлист будет изменен - существующая цепь будет разбита на две. Тут надо очень аккуратно удалять, только ПРИ ПОЛНОЙ УВЕРЕННОСТИ что цепь возникла из-за ошибки распознавания топологии

Wire - это Line включенный в цепь. То есть графический объект в слое проводников и уже имеющий электрическое подключение, а не просто картинка.



Мне проще удалить все цепи и по новой прогрузить нетлист

Насчет "прогрузить нетлист" непонятно, это вообще против хода маршрута. Мы по достоверной топологии pcb восстанавливаем нетлист, а не наоборот, когда корявый нетлист накладывается на достоверную топологию.

cpg
07.04.2017, 13:56
Насчет "прогрузить нетлист" непонятно, это вообще против хода маршрута.
именно
А как ещё проверить, что схема соответствует топологии?

Я так понимаю вопросы касаются редактора печатных плат pcb
если только сравнивать нетлисты каждый раз.

Vslav
07.04.2017, 14:01
если только сравнивать нетлисты каждый раз.

"Прогрузить нетлист" - это Utils->Load Netlist - база удаляет свой внутренний список и берет вместо него внешний
"Сравнить нетлист" - это Utils->Compare Netlist - база сравнивает свой внутренний список с внешним
Немного разные операции как бы.
Почему Вы утверждаете, что "прогрузить" проще (чем что?) и зачем вообще "прогружать" - нипанятна.

- - - Добавлено - - -



А как ещё проверить, что схема соответствует топологии?

В схемном редакторе делаем generate netlist, в редакторе плат делаем compare netlist. Если чего-то не совпадает - редактируем схему. Если ошибки топологии - редактируем плату, и никакой прогрузки.

cpg
07.04.2017, 14:19
делаем compare netlist
Да, наверное надо так действовать... Просто с пикадом не каждый день работаю, вот и подзабыл уже. Но всё-равно не понятно, зачем пикад удаляет дорожки при удалении нетлиста (connections)?

Vslav
07.04.2017, 17:00
при удалении нетлиста (connections)?
Что понимается под "удалением нетлиста" ? В редакторе pcb нет операции Utils->Delete Netlist.

cpg
10.04.2017, 08:12
Что понимается под "удалением нетлиста" ?
Это когда заходишь в Edit->Nets...-> в фреме "Nets" жмем Set all, затем во фреме "Net Nodes" тоже жмем Set all и Remove nodes.
И такой вопрос: В альбоме схем к ВМ2 если есть единичные транзисторы, то справа от них в скобках указаны цифры (например 40x60) это длина x ширина канала или что-то другое?

Vslav
10.04.2017, 08:19
Это когда заходишь в Edit->Nets...-> в фреме "Nets" жмем Set all, затем во фреме "Net Nodes" тоже жмем Set all и Remove nodes.

Ну это нормально, node - это, грубо говоря, контакт компонента к которому имеется электрическое соединение (connection) и (обычно, но необязательно) нарисован проводник (wire), принадлежащий той же цепи. Указанная операция удаления фактически удаляет connection, а, поскольку имеется проводник той же цепи, то его надо удалить чтобы не было нарушения правил топологии, т.е. чтобы появился зазор между новым освобожденным пином и проводниками цепи, которой он принадлежал ранее, до операции.



И такой вопрос: В альбоме схем к ВМ2 если есть единичные транзисторы, то справа от них в скобках указаны цифры (например 40x60) это длина x ширина канала или что-то другое?

Я думаю что это размер поля диффузии, фактически так задается тип транзистора и его максимальный ток.

cpg
10.04.2017, 08:26
Я думаю что это размер поля диффузии
А вы можете в реале в пикаде померять линейкой - соответствует ли оно?
В Pspice есть модель монолитного n канального полевика, вот изучаю свойства различные, но там параметров чего-то многовато. Вот и хотелось-бы знать, какие параметры для разработчиков топологии являлись наиболее важными.

Vslav
10.04.2017, 11:43
А вы можете в реале в пикаде померять линейкой - соответствует ли оно?
В пикаде мерять бесполезно, это надо фото смотреть.
Похоже я ошибся, на схеме ВМ2 около транзисторов стоит одна цифра, поэтому это не размер области диффузии, скорее - да, это длина затвора. В каких единицах - непонятно, могут быть как микрометры, так и лямбда.


В Pspice есть модель монолитного n канального полевика, вот изучаю свойства различные
Для построения цифрового аналога это не нужно, я вообще в свойствах транзисторов не разбирался особо, тип понятен, depletion load mode тоже понятно, а больше ничего для создания реплики не нужно.

cpg
10.04.2017, 12:31
Похоже я ошибся, на схеме ВМ2 около транзисторов стоит одна цифра
Нет, там есть транзисторы и depletion mode и enhancement mode. Они графически изображены по-разному.
60583
Вот слева нарисован похоже depletion mode (транзистор со встроенным каналом) и та м 2 цифры, а справа enhancement mode (с индуцированным каналом) и там одна цифра. Можно попробывать сравнить 2 транзистора (пропорциональные размеры).

Для построения цифрового аналога это не нужно
Согласен, но всё-же интересно.

Кстати в литературе говорится, что транзисторы со встроенным каналом могут работать в режиме как с индуцированным каналом, что окончательно запутало.

Vslav
10.04.2017, 12:39
Нет, там есть транзисторы и depletion mode и enhancement mode. Они графически изображены по-разному.

Разумеется. Только для восстановления цифровой схемы нет смысла их по-разному рисовать. n-МОП логика понятно как работает, а времени реверс жрет ОЧЕНЬ много, мне лениво практически удваивать затраченное время на бесполезное разрисовывание различных типов транзисторов. Лучше время потратить на реверс еще одной микросхемы. Вот Вы что бы выбрали - ОДНУ схему ВМ1 где нарисованы все транзисторы нужных типов "честно", или ДВЕ схемы ВМ1 + ВМ2, где транзисторы нарисованы условно (но схема тем не менее позволяет восстановить логику)? У меня хобби в жизни периодами 3-5 лет. Сделаю еще ВМ3, и может быть, серии 581/1811, и с реверсом завяжу. Так что время - оно ограничено :) Меньше детализация - больше микросхем успею разобрать, пока хобби не надоест :)



Вот слева нарисован похоже depletion mode (транзистор со встроенным каналом)

Их еще в топологии найти надо. Если скажете номера Txxxx по моей схеме ВМ2, то посмотрю на топологии.

Mixa64
18.04.2017, 13:53
Как-то медленно, но очень уверенно пришло осознание того, что 1801ВМ1 это всего лишь основа для построения процессора, но еще не процессор целиком. Это к тому же определено особенностями ее (микросхемы) поведения, к ней крепко привязана необходимость иметь наружний SEL1 с битом 2, который управляет подключением ПЗУ, которое при подключении должно откликаться на адреса в районе 160000, а также должен быть кусок ОЗУ, откликающийся в районе 177674. И чтобы IRQ1 на кнопку HALT шло, самый естественный вариант. В общем, достаточно определенные рамки очерчены как для карты памяти, так и для способа переключения конфигураций памяти.

AFZ
19.04.2017, 04:47
Как-то медленно, но очень уверенно пришло осознание того, что 1801ВМ1 это всего лишь основа для построения процессора, но еще не процессор целиком. Ну почему же? ИМХО, тут почти полная аналогия с не самым свежим писюком. Процессор х86, конечно, может работать и так, в минимально-упрощенной конфигурации, но для получения полноценной микро-ЭВМ ему необходим северный мост, который обеспечивает подключение динамического ОЗУ, ПЗУ БИОСа, системной шины и т.д. Так и у 1801-х. БИОСа (то есть набора подпрограмм, которые можно вызывать из программы пользователя) там, правда, нет, но остальное - POST и загрузчики, как раз, присутствуют. А то, что у 1801-х HALT-Mode не стали делать микропрограммно, а сэмулировали программой из того-же ПЗУ - ну и что? Не используйте в программах команду HALT и не рассчитывайте на микро-ODT, и можете сделать систему без "северного моста" (ВП1-030, да?). Тот же контроллер MY. Еще чаще применяли "голый" ВМ2 - я видел несколько контроллеров "сторонних" разработчиков, на которых стоял ВМ2, ПЗУ-ха, пара м/с статического ОЗУ и какая-то самопальная периферия, для управления каким-либо прибором или объектом.

А нужна полноценная микро-ЭВМ - собираем полный комплект, и вот она, МС1201-хх.

bigral
19.04.2017, 20:59
Думаю сложность в "понимании" pdp11 (а как следствие и признание его чем-то "из другого мира") произростает именно от момента с ODT и протокола шины QBUS. Дело в том что ранее (до средины 70х) все компы шли с этой самой "programmer console", функцией которой было контроль\управление процессором и памятью. Потом сия консоль плавно перешла в ODT внутри проца, ну а в 1801 стала опять внейшней фичей. В момент выхода всех основных процов (6800,8080,z80,6502) PROM стал чем-то совсем обыденным, потому лепить "консоль" в сам процессор было экономически не выгодно (предпологалось что те кому она нужна слепят нужные схемы снаружи), а производителям самой выч. техники консоль была менее важна чем скажем bios или basic дающие возможность быстрого старта. Про QBUS тут вообще разговора нет, ясное дело что это не S100 и не ZXBUS, проектировалось оно не для микроконтроллера собранного в одном небольшом корпусе а для пачки корзин соединенных метровыми шлейфами.

Таким образом человек для которого естественным образом первый процессор был скажем 8080,z80 или 6502 недоумевает\ и офигевает глядя на 1801... что за зверь с двумя режимами работы? Это шоли для супервизора и многозадачности? Нафик эти стартовые регистры? Нафик эти DCLO ACLO вместо одного /rst как обычно... и вообще что такой сложный и тормозной этот QBUS?

AFZ
20.04.2017, 05:07
Да нет, думаю, Q-Bus здесь ни при чем, шина, как шина. Внешняя, для соединения нескольких блоков не самыми короткими кабелями. Их было много разных, с примерно одинаковой скоростью (2-3 млн транзакций в секунду), когда быстродействие микропроцессоров превысило этот порог, внешние шины просто вышли из употребления.

А вот остальное - да, удивляет...

Впрочем, у меня гораздо бОльшее недоумение вызвал 8080. Вот уж точно "заготовка" для процессора. Это же надо додуматься совместить шину данных и управления? Особенно в наших условиях, когда 8080 содрали, а 8224 и 8228/38 - нет!

form
20.04.2017, 06:26
Особенно в наших условиях, когда 8080 содрали, а 8224 и 8228/38 - нет!
а ГФ24, ВК28/38 - это не они?

AFZ
20.04.2017, 07:39
а ГФ24, ВК28/38 - это не они? Они, только их содрали намного позже. Года три у нас выпускались только ВМ80, ВВ51 и ВВ55. И буквы там, кажется, были ИК, а не ВМ/ВВ. И только потом наша электронная промышленность разродилась остальными БИС комплекта.

A074MO
25.08.2017, 19:45
Vslav, я долго стеснялся показать свое невежество, но рискну.
Не могли-бы Вы написать "Краткое руководство пользователя" к проекту "Верилог 1801ВМ1А/Г (версия 1.4e)".
Назначение кнопок, переключателей , индикаторов.
У меня китайская платка на EP4CE10 https://www.aliexpress.com/store/product/EP4CE10-altera-fpga-board-fpga-altera-board-fpga-development-board-USB-Blaster-fpga-kit-altera-kit/620372_32812945851.html?spm=2114.12010612.0.0.5bda df47rF6XKO

Vslav
25.08.2017, 21:19
Vslav, я долго стеснялся показать свое невежество, но рискну
Та я сам не помню что там и как на стенде DE0, для выполнения Вашей просьбы пришлось открывать de0_top.v и вспоминать что к чему. Так что стесняться нечего, мне даже приятно что кто-то заглянул внутрь проекта :)

Переключатели (сигналы de0_sw[]):
- используется только один, нулевой, управляет генерацией прерываний таймера 50Гц, фактически аналог клавиши "ТАЙМЕР" на ДВК
- когда таймер включен зажигается нулевой светодиод, таймер выключен - светодиод не горит

Кнопки (сигналы de0_button[]):
- кнопка номер 2 отвечает за сброс процессора. Программа записывается при загрузке FPGA во внутреннее ОЗУ на М9К, если она в ходе предыдущих исполнений разрушена - может не стартануть. Стартовый адрес - нулевой.

7-сегментные индикаторы - отображают записанное значение в регистры:
- 177714 - младшие два индикатора
- 177715 - старшие два индикатора (обращение словное всегда, по A0 идет различие регистров)

Периферия:
- стандартный консольный порт на скорости 115200, по 177560/177564 c векторами 64/60.
- таймер 50 Гц, на IRQ2, маскируется нулевым переключателем при необходимости
- 8К*16 ОЗУ, с изначально загруженной программой

Ну, в-общем-то, и все. Если есть конкретные вопросы - спрашивайте.

A074MO
25.08.2017, 23:15
7-сегментные индикаторы - отображают записанное значение в регистры:
- 177714 - младшие два индикатора
- 177715 - старшие два индикатора (обращение словное всегда, по A0 идет различие регистров)
Это младший и старший байты регистра 177714 ?

Для подключения к терминальной программе через FTDI FT232RL достаточно будет соответственно подключить RX и TX ?

Какая реакция будет на команду HALT ?

Vslav
26.08.2017, 00:03
Это младший и старший байты регистра 177714 ?
Нет, 4 индикатора по 8 сегментов в каждом - 32 бита всего.
Слово, записанное по 177714 отображается в младших 16 битах, а записанное в 177715 - в старших 16 битах.

Пример подпрограммы (из ztest/test.mac), выводящей в 16-ричном виде значение из R0:

outhex: mov R1, -(SP) ;
mov R0, -(SP) ;
;
bic #177760, R0 ;
movb 1$(R0), R1 ;
mov (SP), R0 ;
asr R0 ;
asr R0 ;
asr R0 ;
asr R0 ;
bic #177760, R0 ;
movb 1$(R0), R0 ;
swab R0 ;
bis R0, R1 ;
mov R1, @#177714 ;
;
mov (SP), R0 ;
swab R0 ;
bic #177760, R0 ;
movb 1$(R0), R1 ;
movb 1(SP), R0 ;
asr R0 ;
asr R0 ;
asr R0 ;
asr R0 ;
bic #177760, R0 ;
movb 1$(R0), R0 ;
swab R0 ;
bis R0, R1 ;
mov R1, @#177715 ;
;
mov (SP)+, R0 ;
mov (SP)+, R1 ;
rts PC ;
;
1$: .byte 077, 006, 133, 117 ;
.byte 146, 155, 175, 007 ;
.byte 177, 157, 167, 174 ;
.byte 071, 136, 171, 161 ;



Для подключения к терминальной программе через FTDI FT232RL достаточно будет соответственно подключить RX и TX ?

Моя сборка использует RTS/CTS хенд-шейк. Их тоже желательно подключить. Можно попробовать отказаться, но при объявлении модуля uart надо будет подать 0 на вход tx_cts_i.


Какая реакция будет на команду HALT ?

Такая же как у обычного 1801ВМ1 - переход в пульт (установка 10 в 177716 и переход по вектору 160002)

A074MO
26.08.2017, 01:19
Пример подпрограммы (из ztest/test.mac), выводящей в 16-ричном виде значение из R0:
Спасибо, не сразу, со скрипом, но въехал. Я бы сделал это аппаратно - отправил в регистр 177714 и вывел на индикатор с MAX7219 https://www.aliexpress.com/item/FreeShipping-1PCS-LOT-MAX7219-Led-Module-8-Digit-7-Segment-Digital-LED-Display-Tube-For-Arduino/32221286629.html?spm=2114.search0104.3.9.7Z6kVw&ws_ab_test=searchweb0_0,searchweb201602_5_10152_10 065_10151_10068_10209_5400015_10307_10301_10137_10 060_439_10155_10154_10333_10334_10056_10335_10055_ 10054_5370015_10059_10332_100031_10099_10103_10102 _5410015_10169_5430015_10052_10053_10107_10050_101 42_10051_10326_10084_10083_10080_10082_10081_53900 15_10110_10111_10112_10113_10114_10312_10313_10314 _10315_10078_10079_10210_10073_5420015,searchweb20 1603_20,ppcSwitch_5&btsid=8179dcd0-6f46-4f7b-875f-f279d0b85ed7&algo_expid=08c2d9c3-b36a-4996-8329-7ad66aeb204a-4&algo_pvid=08c2d9c3-b36a-4996-8329-7ad66aeb204a&transAbTest=ae803_1, это бы заняло 40LE.
Меня здорово смутил нечетный адрес 177715.

С UARTом понятно, нужно пробовать.
HALT тоже ясно.

Мой последний контакт с PDP был 25 лет назад.

Vslav
29.08.2017, 22:16
Искал-искал темы по сбоям памяти МС1201.03, так и не нашел, спрошу здесь, так как касается напрямую ВП1-119.
Вопрос такой - а что делает на плате перемычка S4, которая между выводами 9 и 39 ВП1-119? Вывод 39 - это "честный" nRPLY, выдается после окончания операций записи и чтения с коррекцией или без. А вот 9 - это "быстрый" nRPLY, выдается примерно через 100 нс после активации выхода nCAS при операциях чтения. Фактически на такт CLK раньше чем на ножке 39. Если коррекции нет, то все нормально, память DRAM успевает выдать данные на шину. А вот если коррекция есть, то nCAS снимается и сразу активируется S1, разрешая 555ВЖ1 выдать скорректированный код. Но это происходит по факту после 100 нс после активного Fast RPLY. И корректированный код может не успеть попасть на шину. Может быть кто видел описание или документацию когда эта перемычка S4 ставится/снимается? Это может влиять на устойчивость чтения из памяти.

- - - Добавлено - - -

Еще замечательное - 9 ножка всегда генерирует ответ, даже если возникла некорректируемая ошибка чтения (фронт на DEF).
Кто-нибудь смотрел исходники теста памяти в РЕ2-134? Двойные ошибки по зависанию шины ловятся или как? Потому что, похоже, что зависания шины при установленной перемычке S4 не будет.

- - - Добавлено - - -

Если со стороны процессора поступил запрос на запись слова в DRAM, то активируется выход nWE, который поступает без изменений через буфер на входы nWE микросхем памяти. Но, если в этот момент поступает запрос на рефреш, то будет выполнен цикл рефреша с соответствующим адресом страницы. Сигнал nWE при этом остается активным. Рефреш выполняется ВП1-119 по схеме CAS-before-RAS и рассчитан на микросхемы 565РУ7. Для микросхем 565РУ5 на плате МС1201.03 используется отдельная схема, подавляющая при рефреше nCAS. Но работает она не всегда идеально, появляются иголки. Итого - выполнение рефреша при активном nWE может приводить к нежелательной записи выставленных данных по адресу рефреша, а не по адресу выставленному процессором. Это может объяснять порчу других ячеек в тесте когда процессор долбит какой-то один адрес, а разрушаются другие адреса.

bigral
30.08.2017, 01:24
Для микросхем 565РУ5 на плате МС1201.03 используется отдельная схема, подавляющая при рефреше nCAS. Но работает она не всегда идеально, появляются иголки. Итого - выполнение рефреша при активном nWE может приводить к нежелательной записи выставленных данных по адресу рефреша, а не по адресу выставленному процессором. Это может объяснять порчу других ячеек в тесте когда процессор долбит какой-то один адрес, а разрушаются другие адреса.

А эти nCAS иголки случайно не RC цепочкой должны гаситься?

MM
30.08.2017, 05:48
mov R1, @#177715
И что, нет матерных сообщений от MACRO.SAV ?