Вход

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



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

nzeemin
06.11.2019, 21:40
Ероглифами написать? ;) Арабскими :)

Кстати да, а эмодзи в именах файлов норм?
❌️✨✨✨.MAC

(как выяснилось, форумный движок многие эмодзи искажает)

Hunta
06.11.2019, 22:50
эмодзи в именах файлов норм
С одной стороны - эмодзи есть в Unicode. С другой стороны - в Windows Unicode двухбайтный. С третей стороны - есть эмодзи, являющие комбинацией двух или более символов. Так что не всё зависит от операционки сервера - от клиентского софта тоже зависит - что будет видно

hobot
07.11.2019, 16:45
hobot, с появлением юникода кириллицу в именах файлов стало можно

Там уже физически файлы, там где они хранятся, такие имена имеют, так что поправлять поздно.
Я помню после сбоя американский релиз 98 окошек долго восстанавливал "потерянные файлы" в итоге у меня на корне C:\ несколько сотен _________ файлов с именами из "поджопников" появилось. урок я усвоил.

Titus
19.11.2019, 13:14
Новости из смежной темы - реверс 1515ХМ2-001 (https://zx-pk.ru/threads/30964-revers-inzhiniring-bmk-1515khm1-2.html?p=1035133&viewfull=1#post1035133) завершен! )

Даешь фотки всех остальных чипов! )

Vslav
19.11.2019, 14:07
1515XM2: фотки есть 001 и 003, их делать не нужно.
1515XM1: у меня есть в наличии только XM1-032, остальных нет.

PS. Для микроскопа приехал контроллер, буду запускать, скорее всего в декабре - у меня отпуск будет.

Titus
19.11.2019, 14:18
1515XM2: фотки есть 001 и 003, их делать не нужно.
ХМ2-001 я уже сделал.
ХМ2-003 - да, есть.

Остальные народ пришлет, если кинем клич.

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

Повторяю свой призыв:


Люди! Срочно присылаем чипы от УКНЦ Vslav'у на фотографирование!

КА1515ХМ1-031 (таймер, клавиатура)
КА1515ХМ1-032 (ОЗУ ПП)
КА1515ХМ1-033 (видео) (от прототипа УКНЦ)
КА1515ХМ1-036 (видео)
КА1515ХМ1-039 (ОЗУ ЦП)
1515ХМ1-136 (видео)
1515ХМ2-002 (ОЗУ ПП)

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

Особенно это касается ХМ2-002:

У меня есть 1515ХМ2-002, штук несколько.

AFZ
21.11.2019, 16:35
Особенно это касается ХМ2-002:Куда посылать? Пришлите адрес (в личку).

Titus
21.11.2019, 16:58
Куда посылать? Пришлите адрес (в личку).
Надеюсь, Vslav это прочитает, и пришлет адрес.

Titus
25.11.2019, 01:16
В ХМ2-003 встретилось чудо. Элемент 2И-НЕ с одним неподключенным входом. Тогда он будет шуметь и нещадно глючить. Либо же, что гораздо менее вероятно, он подключен к выходу, что тоже лишено смысла.

https://pic.maxiol.com/images2/1574633640.1504841820.01.png

Vslav
25.11.2019, 09:53
Да вроде же подключен к питанию.

Titus
25.11.2019, 09:54
А слона-то я и не заметил. Этот вход посажен на плюс) ну дают)

Titus
10.12.2019, 23:30
Реверс 1515ХМ2-003 тоже завершен.

Что там с фотографированием остальных чипов?
Договорились о пересылке ХМ2-002?

Titus
12.12.2019, 21:33
Что там с фотографированием остальных чипов?
Договорились о пересылке ХМ2-002?

В тему призываются покинувшие ее Vslav и AFZ для фотографирования ХМ2-002, и всех остальных чипов 1515ХМ1.

AFZ
12.12.2019, 22:00
У меня есть 4 шт ХМ1-032, 3 шт ХМ1-039 и по коробке всех трех ХМ2. ХМ2-001 и 003 уже есть, -002 нужны. Что надо еще?

Titus
12.12.2019, 22:30
У меня есть 4 шт ХМ1-032, 3 шт ХМ1-039 и по коробке всех трех ХМ2. ХМ2-001 и 003 уже есть, -002 нужны. Что надо еще?
Нужны все, кроме ХМ2-001 и ХМ2-003.
Если по нескольку штук, то наверное по 2-3 экземпляра каждой штуки. Но это лучше пусть Vslav скажет, сколько штук оптимально, чтобы был запас в случае раскола кристалла и т.д.

Vslav
12.12.2019, 23:36
Нужны все, кроме ХМ2-001 и ХМ2-003.
сколько штук оптимально, чтобы был запас в случае раскола кристалла и т.д.
Желательно хотя бы два экземпляра.
1515ХМ1-032 у меня есть штук 5, их присылать не надо. Также есть одна 1515ХМ1-031.

Titus
12.12.2019, 23:37
Желательно хотя бы два экземпляра.
Что на счет микроскопа? Уже работает? Можешь фоткать те чипы, которые уже есть?

Vslav
13.12.2019, 11:22
Что на счет микроскопа? Уже работает? Можешь фоткать те чипы, которые уже есть?
Пока нет. Сейчас отпуск будет, если на моря не поеду, то микроскопом займусь, все комплектующие приехали. И тут очередь - дюжина других чипов лежит-ждет.

Titus
13.12.2019, 11:33
Пока нет. Сейчас отпуск будет, если на моря не поеду, то микроскопом займусь, все комплектующие приехали. И тут очередь - дюжина других чипов лежит-ждет.
Держи в курсе, люди ждут)

Titus
15.12.2019, 19:57
В схеме реверса 1801ВП1-120 нашел небольшую неточность. Надписи регистра приемника-0 и приемника-1 перепутаны местами.

https://pic.maxiol.com/images2/1576426185.1504841820.01.png

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

И еще я не вижу, чтобы сигнал DIS_CH0 как-то выводился на порт ADP2, хотя в документации написано, что в регистре ПП 177076 бит 2 - R/W (т.е. доступен не только на запись, но и на чтение).

Alex_K
15.12.2019, 21:02
И еще я не вижу, чтобы сигнал DIS_CH0 как-то выводился на порт ADP2, хотя в документации написано, что в регистре ПП 177076 бит 2 - R/W (т.е. доступен не только на запись, но и на чтение).
Он реально не выводится на порт ADP2, его можно установить, а считываться всегда будет ноль. Так что если понадобится запретить канал 0 со стороны ЦП, то для сброса/установки остальных битов не рекомендуется использовать BIC/BIS, а то первая команда сразу же сбросит бит 2 и канал 0 будет разрешен.

Titus
15.12.2019, 21:10
Он реально не выводится на порт ADP2, его можно установить, а считываться всегда будет ноль. Так что если понадобится запретить канал 0 со стороны ЦП, то для сброса/установки остальных битов не рекомендуется использовать BIC/BIS, а то первая команда сразу же сбросит бит 2 и канал 0 будет разрешен.
Океюшки. Значит в документации ошибка.

Titus
16.12.2019, 00:00
И еще в добавку - EP (29 ножка) - это инверсный выход, а на реверсе он так не обозначен.

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

Кстати, и ARC тоже по идее должен быть инверсным.

svinka
24.12.2019, 07:44
В техническом описании на устройство ВЧС УЧПУ МС2101.05 содержится описание следующих БИС БМК

К1801ВП1-013 Контроллер динамического ОЗУ
К1801ВП1-028 Схема коррекции ошибок по коду Хэмминга
К1801ВП1-031 Контроллер прерываний
К1801ВП1-038 Программируемый таймер
К1801ВП1-065 Последовательный интерфейс

документация на каждую БИС включает УГО, назначение выводов, структурные схемы, временные диаграммы и описание регистров для программиста

Кто не найдет на форумах станочников - тому наложу в мыльницу (с)

Кто желает пожертвовать на тополога - дам в личку реквизит

Titus
26.12.2019, 16:44
Я так понимаю, что в ВМ1, ВМ2, а так же в чипах от Dendy применяется н-МОП технология, в которой присутствуют, как транзисторы работающие в режиме обеднения, так и обычные. Как их можно различить визуально?

Vslav
26.12.2019, 18:17
Я так понимаю, что в ВМ1, ВМ2, а так же в чипах от Dendy применяется н-МОП технология, в которой присутствуют, как транзисторы работающие в режиме обеднения, так и обычные. Как их можно различить визуально?
99+ процентов транзисторов с обедненным каналом имеют соединенные затвор и исток, и сток подключенный на питание. Поэтому в 1801 серии проблем не возникало. 580ВМ80 с его +12 был тоже несложным.

Titus
26.12.2019, 18:35
99+ процентов транзисторов с обедненным каналом имеют соединенные затвор и исток, и сток подключенный на питание. Поэтому в 1801 серии проблем не возникало.
Я уже сам примерно разобрался, анализируя кусочек 6538 от Dendy.
Я так понимаю, что там все транзисторы одинаковые, и могут работать в режиме обеднения и обогащения. Иными словами, логическая единица открывает любой транзистор, на плюс он стоит, или на минус - не важно. Таким образом, транзисторы, у которых затвор посажен на исток, работают как самоотключающиеся нагрузочные транзисторы верхнего каскада. А те транзисторы, которые идут на плюс, но затвор управляется каким-то сигналом, открываются если на затворе тоже плюс.

Vslav
26.12.2019, 19:32
Таким образом, транзисторы, у которых затвор посажен на исток, работают как самоотключающиеся нагрузочные транзисторы верхнего каскада.
Там все просто, надо погуглить "nmos depletion mode", и посмотреть на ВАХ (https://en.wikipedia.org/wiki/Depletion-load_NMOS_logic#/media/File:MOSFET_depletion-mode_n-channel_en.svg)

Titus
26.12.2019, 20:03
Там все просто, надо погуглить "nmos depletion mode", и посмотреть на ВАХ
Уже смотрел) В обоих режимах может работать.

http://hightolow.ru/wp-content/uploads/2018/06/OutputChar2.png


Вот для примера, нарисовал два разных порта для 6538. Совсем другие принципы, чем те, к которым я привык в К-МОП.

https://pic.maxiol.com/images2/1577379792.1504841820.porto.png

https://pic.maxiol.com/images2/1577379813.1504841820.portio.png

svinka
03.01.2020, 12:41
нашел этикетку на к1801вм1 времен отмены госпремки (1988год)

Максимальные тактовые частоты отличаются от тех что принято считать от ОБС

к1801вм1А к1801вм1Г = 4.7МГц
к1801вм1Б = 3.5МГц

https://drive.google.com/open?id=167oJojrf7Ast7USDIrUbv6qtISUDWT2n


Правьте википедии....

Vslav
03.01.2020, 12:53
Максимальные тактовые частоты отличаются от тех что принято считать от ОБС

Там диапазон температурный указан -10C..+70C, поэтому может быть разница. А реально у меня два экземпляра 90гв (которые на стенде пробовал) тест вычисления Пи на 7.5МГц спокойно проходят при питании 4.75В и комнатной температуре.

SuperMax
04.01.2020, 15:53
сходу не нашел какие требуются
нашел в запасах
XM2-001
XM2-003
XM1-136
надо ?

AFZ
04.01.2020, 16:05
-001 и -003 уже вскрыли. Надо -002 (есть у меня, вскорости отправлю) и все остальные, в частности, -136 (у меня их нет).

Vslav
04.01.2020, 19:34
нашел в запасах
XM1-136
надо ?
XM1-136 надо.

Обновил немножко проект ВМ1, в частности доисследовал и документировал ошибку в микрокоде с неверным переходом по флагу C после инструкций MOVB/MFPS.
- SXT не подвержена ошибке
- SWAB всегда сбрасывает флаг С (по документации на PDP-11), поэтому ошибка не проявляется
- MOVB с режимом адресации 0 приемника всегда ходит через микроадрес 0x51 (отсутствовало в млей документации) и это не зависит от режима адресации источника, вызывает ошибку
- MFPS с режимом адресации 0 приемника всегда ходит через микроадрес 0x51, вызывает ошибку
- 1801ВМ1Г тоже содержит эту ошибку, но микроадрес там другой

Hunta
15.01.2020, 10:37
Добрый день, Vslav.
Вопрос по ВМ3, наверное, сможете ответить.
Ноги микросхемы 39-40-41 куда-нибудь подключены на кристалле или они действительно свободные?

Vslav
15.01.2020, 13:52
Ноги микросхемы 39-40-41 куда-нибудь подключены на кристалле или они действительно свободные?
По контуру кристалла ВМ3 идет широкая полоса металлизации - это выделенная мощная "земля" для выходных драйверов внешних выводов.
Куда подключены 39-40-41 - зависит от разварки. На моих кристаллах 41 подключена целыми двумя проволочками к этой выделенной земле, 39 и 40 не разварены вообще.

Hunta
15.01.2020, 14:15
Куда подключены 39-40-41 - зависит от разварки
Понятно, спасибо!

xolod
27.01.2020, 17:39
Может кому будет интересна книжонка..
https://ideafix.name/wp-content/uploads/stuff/book99.pdf
В.Г.ДОМРАЧЕВ П. П. МАЛЬЦЕВ И. В. НОВАЧЕНКО С. Н. ПОНОМАРЕВ
Базовые матричные кристаллы и матричные БИС
и
https://ideafix.name/wp-content/uploads/stuff/book96.pdf
С.И.БАРАНОВ, В.А.СКЛЯРОВ
Цифровые устройства на программируемых БИС с матричной структурой

Hunta
27.01.2020, 18:09
Может кому будет интересна книжонка.
Обязательно!! Спасибо!

Vslav
27.01.2020, 22:21
Книжки по тематике я складываю тут (http://www.1801bm1.com/files/retro/BOOK/)

Titus
29.02.2020, 22:17
Vslav, ну как там прогресс с фотографированием УКНЦ-шных чипов?

Vslav
29.02.2020, 23:13
Vslav, ну как там прогресс с фотографированием УКНЦ-шных чипов?
Своей очереди ждет. Пока определенный срок назвать не могу, увы.

Titus
01.03.2020, 00:28
Своей очереди ждет. Пока определенный срок назвать не могу, увы.
Ну хотя бы в пределах общих масштабов. Это месяцы, годы?

Vslav
01.03.2020, 11:47
Ну хотя бы в пределах общих масштабов. Это месяцы, годы?
До лета надеюсь все вопросы позакрывать.

Vslav
08.03.2020, 01:44
Сегодня впервые запустился шаговичок с управлением от TMC2130, пока корявенько, но уже крутит. TMC2130 - это просто адский драйвер шагового двигателя, пока там по SPI все эти регистры пропишешь и оно начнет хоть как-то крутить... Зато - полный контроль и очень мелкое дробление шагов до 1/256, по предварительным прикидкам 2-4 микрона дискретность позиционирования выходит (при дроблении 1/32).

S_V_B
08.03.2020, 07:09
В прошивке Marlin для 3D принтера есть готовые решения по управлению этими драйверами.
Как-то тоже заморочился чтобы принтер меньше шумел.

Vslav
08.03.2020, 10:26
В прошивке Marlin для 3D принтера
Да, я для начала и взял готовую плату от Marlin на stm32. Но софт весь свой, добавляются энкодеры, экранчик, WiFi. Позже оттрасирую свой контроллер вместо колхоза.

S_V_B
08.03.2020, 14:08
Было бы интересно глянуть что получится.
После долгих поисков остановился на плате MKS (стабильная быстрая) работает уже несколько лет без нареканий.
Для ЧПУ взял DDCSV2.1 (стандэлон).. на этом эксперименты закончил.. работает стабильно, точно быстро и ладно.
Разве что шаговики на серво поменять.. но это накладно.

Vslav
09.03.2020, 10:22
Порезал все детальки, сегодня буду фрезеровать, сверлить и нарезать резьбу.

http://www.1801bm1.com/files/images/stage/stage_step1.jpg

S_V_B
09.03.2020, 11:20
Я брал заводские направляющие и ходовые винты. На самопальных трудно избавится от возникающих люфтов.

https://pic.maxiol.com/thumbs2/1583741888.630666996.cnc.png (https://pic.maxiol.com/?v=1583741888.630666996.cnc.png&dp=2)

Vslav
09.03.2020, 12:12
Я брал заводские направляющие и ходовые винты. На самопальных трудно избавится от возникающих люфтов.

Я тоже взял моторчики со встроенными направляющими, и одну дополнительную выпилил из DVD.
Люфт не важен, это же не обработка, тут можно откалибровать.

PS. Даже дендрофекальный ЧПУ типа СNC-1610 - вещь, дырки вертит достаточно точно, все встает на свои места, но фрезеровку пойду делать в гараж у умельцам, на нормальном станке.

Vslav
14.03.2020, 23:49
Собрал механическую часть столика. Самое сложное оказалось нарезать резьбу М1.6 в алюминии толщиной 5 мм, сломал два сверла и три метчика - пока высверливал вот это все.
http://www.1801bm1.com/files/images/stage/stage_2.jpg
http://www.1801bm1.com/files/images/stage/stage_3.jpg

MM
15.03.2020, 00:08
механическую часть столика.
Сколько в общем обошлись материалы и работа в $ ?

Vslav
15.03.2020, 00:29
Сколько в общем обошлись материалы и работа в $ ?
Да я особо не считал, двигатели с направляющими готовые на али купил по $30 за штуку, да $10 заплатил чтобы кое-что на нормальном станке обработали. Остальное пилил, сверлил, фрезеровал, нарезал резьбу - своими руками и на китайском CNC-1610.

Vslav
15.03.2020, 16:48
Развел колхоз, однако:
http://www.1801bm1.com/files/images/stage/stage_6_preview.jpg (http://www.1801bm1.com/files/images/stage/stage_6.jpg)

Вблизи уже не так ужасно:
http://www.1801bm1.com/files/images/stage/stage_9_preview.jpg (http://www.1801bm1.com/files/images/stage/stage_9.jpg)

Техническое задание на моторизованный столик было примерно такое:
- двухкоординатный (X/Y)
- ограничение по высоте - не более 35мм (чтобы можно было добавить юстируемую наклонную площадку и образцы до 15 мм высотой смотреть)
- ограничение по массе - не более 800 грамм (столько весил родной стол, не хочется дополнительной нагрузки на фокусный винт)
- шаг не более 25 мкм (сейчас такой, попробую полушаги - может быть выйдет вдвое меньше)
- поле 40х40мм (реально вышло 50x50)
- воспроизводимость не хуже 10 мкм (посмотрел - иногда лучше, надо играться еще с шаговиками)

В планах: (плату контроллера рисую пор это, но это неспешно, уже можно возобновлять фотографирование)
- индикатор координат (типа измерительный микроскоп начального уровня)
- ручки энкодеры (не всегда удобно с компьютера рулить, локальные ручки нужны)
- управление светодиодной подсветкой (сейчас лампа накаливания стоит)
- управление из браузера по сети (USB/RNDIS и WiFi, ethernet лень добавлять)

Плоскость стола ходит на удивление ровно, почти весь столик в фокальной плоскости оказался.

Hunta
15.03.2020, 17:17
Развел колхоз, однако:
Зверь-машина! :) Просто терминатор микросхем :D

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

Периодически забираюсь в верилог-описание ВМ1 и ВМ2... Пока не даётся :D Как то на VHDL пока попроще :) Ну, я, собственно, особых усилий к пониманию ВМ1 и ВМ2 ещё не прикладывал и даже, как с PDP-2011 - не возился с попыткой что то сделать и залить в FPGA. Когда сильно понадобится - появится этот самый стимул :)

Vslav
15.03.2020, 17:29
Как то на VHDL пока попроще :)
Да там разница между Verilog и VHDL примерно как между Си и Паскалем :)

Hunta
15.03.2020, 18:02
Да там разница между Verilog и VHDL примерно как между Си и Паскалем
Да я понимаю, просто некоторые вестчи в синтаксисе-семантике - описание не читал (ну те самые не особые усилия), поэтому некоторые моменты просто не понимаю, а попытаться логически понять - пока не получается :)

Когда сильно припрёт - полезу читать описание - не думаю, что долго буду въезжать, всё таки опыт написания на разных языка - более, чем есть (а читаю исходники - ещё на большем количестве). Основной момент, на котором я хорошо сидел вначале - это принципиальные отличия написания на VHDL (Verilog) от классического программирования. После того, как хорошо повозился с прошивкой для .2018 - более менее дошло. Уже бывает, что с первого раза код работает :D

Vslav
20.03.2020, 13:57
580BM1 preview (http://www.1801bm1.com/files/images/580vm1_preview.jpg)
580ВМ1 (highres - 184MB) (http://www.1801bm1.com/files/retro/580/images/580vm1_x10.jpg)

Технормы у 580ВМ1 поменьше чем у 580ВМ80А, раза в полтора, сам кристалл меньше по размеру и умеет в 5МГц.
Топологически имеет такую структуру как восьмидесятый.

Titus
20.03.2020, 21:59
Стар я уже за девками микросхемами бегать - везите их сюда. (с)

Граждане! Не ленимся, присылаем недостающие микросхемы товарищу Vslav'у!

А это: 031, 033, 036, 039, ХМ2-002.

Vslav
21.03.2020, 02:26
Бонус - 580ВМ1 (http://www.1801bm1.com/files/retro/580/images/580vm1_x20.jpg), 662МБ, в супервысоком разрешении, панорама ~1 гигапиксель. Снималось на x20, кристалл маленький, сшито 169 снимков, все детали теперь видно хорошо.

Titus
21.03.2020, 22:03
Дорогой товарищ AFZ, а так же остальные владельцы ХМ1 и ХМ2, присылаем их на вскрытие товарищу Vslav'у!

Vslav
25.03.2020, 10:02
Вопрос такой - чем тестировать процессор LSI-11? Искать что-то оригинальное дековское в XXDP?

Hunta
25.03.2020, 10:13
чем тестировать процессор LSI-11? Искать что-то оригинальное дековское в XXDP?
Ну если это что то оригинальное или наш клон оригинального, то, наверное, да

AFZ
25.03.2020, 10:22
Дорогой товарищ AFZ, а так же остальные владельцы ХМ1 и ХМ2, присылаем их на вскрытие товарищу Vslav'у!
А почта работает? Карантины ведь везде...

Vslav
25.03.2020, 10:32
Ну если это что то оригинальное или наш клон оригинального, то, наверное, да

581 серия, цельнотянутый LSI-11, пока реверсится и пишется моделька в Modelsim. Насколько я понимаю, нужны тесты BIS, EIS, FIS, исключений и прерываний. В "PDP-11 Diagnostics Handbook" нашел тесты для 11/04:

- GKAAAO - 11/04 BASIC CPU TEST
- GKABCO - 11/04 CPU TRAP TEST

Должны и для 11/03 подойти, ловушку нечетного адреса возможно надо будет пофиксить.
Где искать остальное, есть ли где исходники?

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


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

Hunta
25.03.2020, 10:34
Где искать остальное, есть ли где исходники?
Вечером пошерстю доки, посмотрю, что из XXDP у меня есть.
Сильно подозреваю, что основная масса исходников будет в виде pdf распечаток листингов..

Vslav
25.03.2020, 10:43
Нашел еще такое:

- VKAAC0 - LSI-11 BASIC INSTRUCTION TEST
- VKAAB0 - LSI-11 EIS INSTRUCTION TEST
- VKACC1 - LSI-11 FIS INSTRUCTION TEST
- VKADC1 - LSI-11 TRAP TEST

Подозреваю что советские тесты 741xxx на этом базировались

Hunta
25.03.2020, 10:43
Да лучше подождать, китайские посылки по три месяца висят.
Я заказывал шинники в 18 января (вроде тогда про короновирус ещё ничего не было) - китаяса телилась с отправкой аж до 29 февраля (принято к обработке в сортировочном центре), 4 марта отправлено из Китая, 12 марта передано перевозчику, 14 марта - посылка прибыла в страну назначения, 17 марта - прибыло в страну назначения, 18 марта - начато таможенное оформление, 23 марта - прибыло в местную почту и было забрано.

Кстати, количество мелкосхем было приличное (намного больше 10-ти :) ), второй раз большое количество заказываю - проблем с таможкой не было

Vslav
26.03.2020, 01:41
Нашел (http://www.retrocmp.com/tools/pdp-11-diagnostic-database/202-pdp-11-diagnostics-database) я сканы всех тестов в хорошем качестве, OCR-ится более-менее, можно попробовать режим с обучением, но для набора исходников и так сойдет.

xolod
26.03.2020, 10:01
Кто интересуется decapом, посмотриете на проекты @furrtek он занимался реверсом Neo-Geo.
https://twitter.com/furrtek/status/1241489394504216577?s=19
https://twitter.com/furrtek/status/1242832784605024257?s=09
http://furrtek.free.fr/?a=fujiga
https://siliconpr0n.org/

Vslav
26.03.2020, 10:36
Кто интересуется decapом, посмотриете на проекты @furrtek он занимался реверсом Neo-Geo.
Его шворц самодельный моторизованный стол гораздо круче чем мой :)

xolod
26.03.2020, 11:19
Ну я и написал что-бы сравнили, что делаю другие.

CodeMaster
26.03.2020, 11:50
он занимался реверсом Neo-Geo.
У нас, наверное, производственной документации на 1801 уже не осталось, но почему западным конторам, у которых с архивами всё норм, не открывать доступ к нутрянке кристалов спустя 20-30 лет? Неужели там ещё осталась коммерческая тайна или это для поддержания спортивного интереса декаперов?

Titus
26.03.2020, 12:00
А почта работает? Карантины ведь везде...
Пока работает. Надо скорее брать и отправлять, пока не закрылась)

А китай ждать по 3 месяца - потому что короновирус у них эпицентровый, потому что весь февраль праздники новогодние.

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


http://furrtek.free.fr/?a=fujiga


CG10 are 0.8µm CMOS channelled gate arrays with dual columns. This means the whole structure is made of alternating transistor-filled and empty columns for routing. Each transistor column is made of many rows of two Basic Cells ("BC", a group of 4 transistors) set side by side.

For example, LSPC2-A2 uses the CG10103 master slice, which is one of the largest in the series. It has 21 columns and 291 rows of BC pairs, so 12222 BCs in total. Fujitsu gives a maximum of 11080 usable gates as an estimation for a real, functional design.

У нас фактически тоже самое. Тока фотки цветные)
В том же ХМ1, который я сейчас реверсю, этих транзисторов 12144. Практически один в один, как в этой самой CG10.
Только какие нормы в микронах у нас я не знаю. Это Vslav знает.

Vslav
26.03.2020, 12:43
У нас, наверное, производственной документации на 1801 уже не осталось, но почему западным конторам, у которых с архивами всё норм, не открывать доступ к нутрянке кристалов спустя 20-30 лет?
Не факт что архивы остались - они же бумажные, хранить где-то надо, микроклимат поддерживать, денег это стоит. И время очень дорогое - только энтузиасты и оцифровывают. Я Супнику писал насчет шаблонов J11 - ответил что найти нереально. С другой стороны, тот же LSI-11 уже моделировался на предыдущих PDP-11, могли ленты остаться, но опять-таки - искать, считывать....

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



Только какие нормы в микронах у нас я не знаю1. Это Vslav знает.
1515XM1 примерно 3-микронные, это я по ширине затвора меряю. Я сомневаюсь, что GC10 0.8 микронная в этой же терминологии. 386DX16 сделанный по 1.5u выглядит уже значительно поменьше. 486DX33 по 1u уже почти на пределе на x40. Так что, настоящие 0.8u разобрать в оптический микроскоп достаточно сложно уже, критерий Релея никто не отменял.

AFZ
27.03.2020, 23:45
Нашел (http://www.retrocmp.com/tools/pdp-11-diagnostic-database/202-pdp-11-diagnostics-database) я сканы всех тестов в хорошем качестве, OCR-ится более-менее, можно попробовать режим с обучением, но для набора исходников и так сойдет.А где-то, вроде-бы, были копии перфолент Э-60, там все эти тесты есть (в LDA). А еще где-то точно есть копии оригинальных перфолент от DEC, не вникал, но там они тоже должны быть.

Vslav
28.03.2020, 02:58
А где-то, вроде-бы, были копии перфолент Э-60, там все эти тесты есть (в LDA). А еще где-то точно есть копии оригинальных перфолент от DEC, не вникал, но там они тоже должны быть.
Было бы хорошо найти, а то перевод OCR в исходник времени много кушает, а его (времени) всегда очень мало :(

MiX
28.03.2020, 13:59
Было бы хорошо найти
Здесь. (https://github.com/jeffpar/pcjs/tree/master/apps/pdp11/tapes)

Vslav
28.03.2020, 14:51
Здесь. (https://github.com/jeffpar/pcjs/tree/master/apps/pdp11/tapes)

Исходников тестов VKAxxx там найти не удалось :(

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

Vslav
29.03.2020, 20:56
Такой вопрос - а кто заполняет ловушки векторов в LDA файле для тестов VKAxxx?
Вот мой vkaac0.mac (https://github.com/1801BM1/cpu11/blob/next/lsi/tst/org/vkaac0.mac), результат компиляции в RT-11 (в эмуляторе) сейчас полностью совпадает с исходным бинарником, собирается так:

@echo off


rem
rem Setup variables for temp directory and path to PDP-11 simulator
rem
rem set cpu11_tmp=R:\TEMP
rem set cpu11_sim=D:\ECC\PDP11
if "%~1"=="" goto blank
if "%cpu11_tmp%"=="" goto blank_tmp
if "%cpu11_sim%"=="" goto blank_sim

copy %1.mac %cpu11_tmp%\%1.mac >>NUL
echo macro hd2:%1.mac /list:hd2:%1.lst /object:hd2:%1.obj >%cpu11_tmp%\build.com
echo link hd2:%1.obj /execute:hd2:%1.lda /lda >>%cpu11_tmp%\build.com
%cpu11_sim%\pdp11.exe @hd2:build.com

srec_cat %cpu11_tmp%\%1.lda -dec_binary -o %cpu11_tmp%\%1.bin -binary
move vt52.log %cpu11_tmp%\vt52.log >>NUL
fc /b %cpu11_tmp%\%1.bin %1.bin

@echo on
exit

:blank
echo.
echo Batch file to compile and copy built images to project folders
echo PDP-11 Simulator and original MACRO-11 on RT-11 is used to compile
echo.
echo Environment variables should be set:
echo cpu11_tmp=%cpu11_tmp%
echo cpu11_sim=%cpu11_sim%
echo.
echo Usage: built filename_without_extension
echo Example: build t401
exit

:blank_tmp
echo.
echo Environment variable cpu11_tmp should be set to temorary folder
exit

:blank_tmp
echo.
echo Environment variable cpu11_sim should be set to RT11 simulator folder
exit



Но область векторов заполнена явно моим макросом:



;_________________________________________________ ____________________________
;
.macro vect, offset, adr, val ;
. = offset ;
.if nb, <adr> ;
.word adr ;
.iff ;
.word .+2 ;
.endc ;
.if nb, <val> ;
.word val ;
.iff ;
.word 0 ;
.endc ;
.endm ;
;_________________________________________________ ____________________________
;
vect 0 ;
vect 4 ;
vect 10 ;
vect 14 ;
vect 20, type ; type out the message
vect 24, 200 ; power fail entry
vect 30 ;
vect 34 ;
vect 40 ;
vect 44, $apthd, $endad ;
vect 50 ;
vect 54 ;
vect 60 ;
vect 64 ;
vect 70 ;



В оригинальном DEC-овском файле этот кусок отсутствует, в связи с чем и вопрос, как выбросить эту мою добавку и собрать оригинальный DEC-овский файл

Hunta
29.03.2020, 21:07
С учётом того, что доступен листинг, а не исходник - подозреваю что заполнение векторов заглушками могли просто выключить из листинга, типа


.NLIST
.ASECT
.=0
.REPT 1000/4
.WORD .+2, 0
.ENDR
.LIST


По листингу в общем случае невозможно получить исходный файл. Максимум - добиться что листинг восстановленного файла будет совпадать с исходным листингом...

Vslav
29.03.2020, 21:17
С учётом того, что доступен листинг, а не исходник
Выходная кодогенерация не отключается - в листинге все равно были бы видны генерируемые вектора. По крайней мере, только что проверил - MACRO-11 с директивой .nlist все равно показывает что на выходе сгенерировано.


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

Hunta
29.03.2020, 21:29
Выходная кодогенерация не отключается - в листинге все равно были бы видны генерируемые вектора.
Не знаю, как в твоем MACRO, но вот в моем:


.TITLE TEST

.NLIST
.ASECT
.=0
.REPT 1000/4
.WORD .+2, 0
.ENDR
.LIST

.END





TEST MACRO V05.06R Sunday 29-Mar-20 Page 1


1 .TITLE TEST
2
10
11 000001 .END
TEST MACRO V05.06R Sunday 29-Mar-20 Page 1-1
Symbol table



. ABS. 001000 000 (RW,I,GBL,ABS,OVR)
000000 001 (RW,I,LCL,REL,CON)
Errors detected: 0

*** Assembler statistics


Work file reads: 0
Work file writes: 0
Size of work file: 57 Words ( 1 Pages)
Size of core pool: 13056 Words ( 51 Pages)
Operating system: RT-11

Elapsed time: Unknown
DK:T,DK:T=DK:T

Vslav
29.03.2020, 21:40
Не знаю, как в твоем MACRO, но вот в моем:
Да, действительно, не туда в в своем листинге посмотрел, выключается листинг полностью.
Но - нумерация строк исходника остается, и в дековском листинге разрывов нумерации я не нашел.

Hunta
29.03.2020, 21:49
в дековском листинге разрывов нумерации я не нашел.

Позже гляну, но как вариант - линковка из двух файлов, один из которых как раз и заполняет вектора

Vslav
29.03.2020, 22:26
Позже гляну, но как вариант - линковка из двух файлов, один из которых как раз и заполняет вектора
Обрати внимание на вектор 74 - там с 76 начинается блок параметров и частично перекрывает это вектор.
Причем в этом блоке указаны явно внешние адреса, без комментирования оно не линкуется, очень вероятно что был еще какой-то файл.

AFZ
31.03.2020, 11:17
Vslav, вот здесь (https://www.phantom.sannata.org/viewtopic.php?t=26398) смотрел?

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

Поразглядывал, очень похоже на правду. По крайней мере, абс. загрузчик начинается, как и положено, примерно сотней пробивок с кодом 0хE9 (0351), лента 8.842.006-02 Тест команд П3 начинается стандартными для LDA-ленты 001 000 ...

Да, перед собственно LDA-ленточкой идет ее децимальный номер, т.е.набор кодов, которые, будучи отперфорированными на ленточку, образуют своими дырочками контуры цифр децимального номера, это, естественно, надо убрать. Допустим, перебить в нули хекс-редактором. Не знаю, у всех лент, или нет, но в тех, что я посмотрел, децимальный номер есть. Кромме абс. загрузчика, естественно, но он и не LDA ни разу.

Книжка про ПЛОС у тебя есть?

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

Да, если что, я просто спросил у Яндекса "перфолента электроника 60" (без кавычек). Вторая ссылка.

Vslav
31.03.2020, 12:11
Vslav, вот здесь (https://www.phantom.sannata.org/viewtopic.php?t=26398) смотрел?
Да бинарники найти не проблема, хоть Э60, хоть оригинальные дековские.
Хочется исходников, адаптировать под свою плату, пересобрать.
VKAAC0 уже "переработал", собирается вв оригинальный бинарник, остальное в процессе, текущая рабочая копия лежит тут (https://github.com/1801BM1/cpu11/tree/next/lsi/tst/org).



Книжка про ПЛОС у тебя есть?

Нету. В дековских листингах все расписано хорошо, что куда и как запускать. Преобразовать из формата загрузчика в плоский бинарник - это мой любимый srec_cat умеет влёт. А больше ничего и не надо.

Vslav
05.04.2020, 20:27
Микропроцессорный комплект Western Digital MCP-1600 (в варианте для PDP-11 у нас известный как 581-ая серия) достаточно тяжело реверсится, несмотря на хорошую документацию.
Старая технология, это ровесник 8080, нет генератора смещения подложки, два питания, те же самые высоковольтные тактовые сигналы, подаваемые непосредственно на затворы транзисторов, да еще четыре отдельные фазы. В итоге на четырех транзисторах может быть собрать флип-флоп, и очень похожий на обычную комбинационную логику - иногда сложно различить. Но потихоньку движется - изучаю Питон - написал утилиту извлечения матриц из схемы, микROMы прочитал, управляющий чип уже написан на Верилоге, написана внешняя обвязка с платы М2 (там заметная часть процессора), остался собственно процессор данных и можно будет моделировать. В принципе, можно было бы забить на все эти фазы и сразу писать синхронную модель, но хочется именно посмотреть как оно по фазам раскладывается в оригинальной модели и это немного удлиняет процесс.

Vslav
17.04.2020, 18:46
Выложил на github (https://github.com/1801BM1/cpu11) предварительную версию LSI-11:


написан Верилог отреверсенного чипсета MCP-1600, физически фотографировался клон в виде 581-ой серии
сделана обертка на основе платы M2, итоговые сигналы совместимы с серией 1801, можно втыкать в тот же тестбенч, дальше по похожему принципу пойдет в SoC
выложен весь прочитанный микрокод
выложена утилита разбора списка цепей и вытаскивания матриц в Верилог, это мой "Hello, world" на Питоне
OCR-ены и переведены в исходники заводские тесты DEC VKAxxx, компилируются MACRO-11 в оригинальные бинарники
Файлы схем и топологии лежат в отдельном репозитории (https://github.com/1801BM1/cad11)

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

Vslav
17.04.2020, 23:53
Запустил моделирование - естественно, не работает:


смотрю, MicROM не выдает в фазе С1 код микроинструкции
потому что в фазе C4 ИК2 выдает подавление чтения микрокода
а потому что сигнал m16_out внутри ИК2 ошибочно инвертирован, чиним
все равно не выдаются опкоды, а потому что предзарядка m[15]/m[16] в MicROM не снимается на следующей фазе
мусор читается, блин, файл с микроинструкциями записался в big-endian, фиксим
теперь первая микроинструкция читается, но забивается m[15] (красным - симулятор не знает что там), дальше затык
это ИК1 вроде пытается сообщить ИК2 свое внутренне условие перехода по флагам
о, найден еще один ошибочно инвертированный сигнал внутри ИК1
тыгдык-тыгдык - поскакала микрошина, осмысленно, первый джамп точно выполнился
оно даже что-то прочитать с Q-bus попыталось, но ответа нет, вроде адрес левый, да и таймер на плате М2 должен отработать
сегодня можно идти спать :)


Все это можно было бы упростить - выкинуть предзаряды, сделать выделенную шину микроинструкций и прочее, но хочется полноценную модель,
со всеми раскладками по фазам, поэтому добиваем.
Узнал новый элемент Верилога - tri1 - это басхолдер, как раз для шины микроинструкций сгодился, со всеми ее предзарядами.

Update: а вот так смотрятся изменения, что поменялось в ходе отладки:
https://github.com/1801BM1/cpu11/commit/0209b5532b364ba1dbc240a5d790fac6c7110c6c

MiX
18.04.2020, 01:24
выложен весь прочитанный микрокод
Совпадает ли он с оригиналом?


физически фотографировался клон в виде 581-ой серии
Ну отличии то есть. Например ИК2 возле 4 пина (снизу) нет продолжения 2х дорожек, на MCP-1621 есть. Может конечно вытравлена перемычка, но я не в курсе.

Vslav
18.04.2020, 09:09
Совпадает ли он с оригиналом?
У меня нет оригинала, и в сети прошивки DEC-овские никто не выкладывал, есть дизассемблированные листинги, вроде бы оно, но за полное совпадение ручаться нельзя. Я написал автору дизассемблера, жду ответа, может быть поделится и название скажет откуда считывал, тогда точнее определим откуда 581 драли. Пока я предполагаю 1611/1621 и -07/-10/-15 версии MicROM.

У самого дека было несколько вариантов микросхем - http://www.cpushack.com/2017/11/22/cpu-of-the-day-dec-lsi-11-chipset/
Помимо того, что были отдельные ветки для Pascal и Dibol, собственно для LSI-11 были разные ревизии с исправлением ошибок, ускорением обработки инструкций и поддержки разных ревизий печатных плат (схемы платы процессора немного менялись - наиболее известны ревизии KD11F/KD11J). И взаимоменяемости может не быть вообще, поэтому надо брать рабочий комплект (каковым является цельнотянутая 581 серия с платой М2) и делать реверс с него.



Ну отличии то есть. Например ИК2 возле 4 пина (снизу) нет продолжения 2х дорожек, на MCP-1621 есть. Может конечно вытравлена перемычка, но я не в курсе.
А какой именно MCP-1621? Я видел фотографии только MCP-1621B, он отличается от MCP-1621, и логика у него отличается, в документации встречается, например, отсутствие флага Q для запуска транзакций Read-Modify-Write (581ИК1 флаг Q имеет), микрокод ему нужен, соответственно, другой. И матрицы, скорее всего, тоже имеют отличия.

MiX
18.04.2020, 10:52
есть дизассемблированные листинги
Так же дизассемблировать прошивки РУ* возможно?
В книге Захарова есть код начального старта.



А какой именно MCP-1621?
Тот что в вики (https://en.wikipedia.org/wiki/MCP-1600).

Vslav
18.04.2020, 12:10
Так же дизассемблировать прошивки РУ* возможно?
Конечно. Сложно сравнить с имеющимся комментированным листингом, надо удалять из него комментарии и украшения. Я бегло посмотрел - оно, точно не сравнивал, просто попросил у Эрика сырые дампы.



В книге Захарова есть код начального старта.

Да, спасибо, я сейчас как раз по нему отлаживаюсь.



Тот что в вики (https://en.wikipedia.org/wiki/MCP-1600).

И какой точно версии эта фотография?
У меня есть фотография получше (66 мегабайт!) (http://www.1801bm1.com/files/retro/581/images/wdc_cp1621b.jpg), про нее точно известно что это 1621B.

MiX
18.04.2020, 12:48
И какой точно версии эта фотография?
В верхнем левом углу "2007", на Вашей "2004".

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


Выложил на github

581 series is the Soviet clone of MCP-1600 chipset,
produced by VFSD ("Voronezh Factory of Semiconductor Devices"
- "Воронежский Завод Полупроводниковых Приборов") behind the Iron Curtain in the 1980th. На чипах возле МИКРО 4,5,7 логотип ВЗПП-Микрон (по другим данным "Алиот")

Производство в 1978г судя по фото.
https://rd.chuguev.info/image/data/mikroshemi/k581ru1_0.jpg

Sergei Frolov
18.04.2020, 13:39
Интересно, не менялось ли содержимое РУ с годами

Vslav
18.04.2020, 15:44
Поправил еще несколько ошибок/опечаток:

- 1611: опечатка в индексах psw_c2[6] и psw_c2[7]
- 1611: опечатка в кодах операций в матрице микроинструкций условного перехода
- 1611: исправлено управление битами 0/4 микроинструкции для 16-битных 2-х цикловых операций
- 1611: исправлена опечатка в индексах r[2x][3:0]

- 1621: переделана схема сброса в более простой вид
- 1621: счетчик микроинструкций устанавливается по сбросу в 1 вместо 0
- 1621: подавлен сброс lrr_c4 по c3 & m[16] из-за помех моделирования
- 1621: исправлена инверсия m[15] при проверке условия перехода от ИК1, условие было инвертировано
- 1621: sy_t0798 переименован в syn_clr, исправлено условие сброса, теперь syn снимается

Уже обрабатывает сброс, делает внутренний ввод, делает INIT, работают внутренние циклы dec R8/jzbf,
пытается что-то читать с Q-bus, накопленные изменения тут (https://github.com/1801BM1/cpu11/commit/0209b5532b364ba1dbc240a5d790fac6c7110c6c)

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


Интересно, не менялось ли содержимое РУ с годами
Надо собирать разные микросхемы и вычитывать. Считывалка там нетривиальная (1801bm1.com/files/images/lsi-11-pcb-07-07-2019.jpg), но если кто хочет заняться - могу пару пустых плат выслать. Но, судя по 1988 году выпуска, скорее всего везде будет одно и то же.

Hunta
18.04.2020, 16:23
Считывалка там нетривиальная
Хотел предложить свои услуги (у меня есть некоторые количества 581РУx), но посмотрел на считывалку и только вырвалось - Ядрён батон :D
Посмотрю по годам, какие есть

Titus
18.04.2020, 16:38
Нашел у себя такую платку. Не относится ли она тоже к PDP-шным компам советским?

https://pic.maxiol.com/images2/1587217067.1504841820.z815clfp1ai.jpg

Vslav
18.04.2020, 22:01
http://www.1801bm1.com/files/images/missed_alu_c8.jpg

Красиво провтыканный транзистор. Приводил к тому что при инкременте регистровой пары (2 по 8 бит) всегда был перенос в старший байт, в итоге стартовый вектор читался по адресам {24, 426}

Titus
18.04.2020, 22:08
Красиво провтыканный транзистор.
С кем не бывает)

Это хорошо, если схема с ошибкой сразу не работает) А если работает, и только где-нибудь, когда-нибудь глюкнет. Вот это самое западло)

Vslav
18.04.2020, 22:36
Это хорошо, если схема с ошибкой сразу не работает) А если работает, и только где-нибудь, когда-нибудь глюкнет. Вот это самое западло)
То же самое может быть и с реальной микросхемой, транзистор может работать, но при каком-то напряжении питания или температуре глючить.
Но тут мы все видим глазками, все глюки можно выловить. Главное, что я со схемой разобрался, долго искал ошибку в Верилоге, потом решил-таки что пропущена где-то цепь, подсветил две подозреваемые, на топологии они высветились - опа, а вот тут перекресток у них есть, смотрим фотку - а там нет транзистора, бинго.

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

Исправлена новая порция ошибок (https://github.com/1801BM1/cpu11/commit/67af13599bf71dc53cc25fde94a72630b9cf8831):

- 1611: старшие биты регистров r[x][7:4] записывались с игнорированием фазы с1, была пропущена пара скобок begin/end
- 1611: неверное была написана цепь переноса для младшего разряда ALU
- 1611: регистры r[c:f] неверно шарились при адресации посредством G-индекса
- 1611: был пропущен транзистор в матрице управления вносимым битов переноса, в итоге для некоторых инструкций старший байт в регистровой паре всегда инкрементировался
- lsi: таймер Q-bus не снимал запрос по аборту зависшего цикла, в итоге ИК1 оставался всегда в сбросе после события зависания шины

Сейчас читает вектор 24, но не переходит, в итоге выводит что-то в консоль при выпадении в ODT.

hobot
18.04.2020, 23:33
А если работает, и только где-нибудь, когда-нибудь глюкнет. Вот это самое западло)
при военном ОТК такое не возможно.

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


Исправлена новая порци
отладка самый вкусный процесс ? зато как заработает так заработает!

Titus
18.04.2020, 23:55
при военном ОТК такое не возможно.
Я говорю о реверсе, а не о производстве.

hobot
19.04.2020, 00:02
Я говорю о реверсе, а не о производстве.


и только где-нибудь, когда-нибудь глюкнет. Вот это самое западло)

ОТК военный контроль на всех уровнях, над тобой всегда нависает баба в пилотке )

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

Vslav, интересно увидеть этот же участок исправленным - но я не настаиваю... просто картинка красивая же!!!

Titus
19.04.2020, 00:06
ОТК военный контроль на всех уровнях, над тобой всегда нависает баба в пилотке )
Я не знаю, какие там у кого пилотки) Но мне кажется, мы говорим на разных языках)

Реверсом занимается Vslav, и вряд ли какая-то ОТК'шная 'баба' за всем это следит)

Vslav
19.04.2020, 01:05
Vslav, интересно увидеть этот же участок исправленным - но я не настаиваю... просто картинка красивая же!!!
http://www.1801bm1.com/files/images/missed_alu_c8.jpg http://www.1801bm1.com/files/images/restored_alu_c8.jpg

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

Нашел еще ошибку в формировании строба записи в регистр трансляции. И очевидно не отрабатывается сигнал RNI (Read Next Instruction). Там этот микрокод умеет упрыгивать неожиданно по контрольным точкам. То есть ты смотришь в листинг - там какие-то команды написаны, и думаешь что они обычно одна за другой будут выполняться. Но тут в PLA срабатывает компаратор адреса и неожиданно случается локальный писец - оно упрыгивает в слабопредсказуемое место - адрес назначения зависит от кучи параметров - собственно адреса точки, регистра трансляции, статуса регистра трансляции, входов прерываний. Надо полный листинг нарабатывать, с указанием таких адресов точек, без этого листинг не анализируемый.

CodeMaster
19.04.2020, 06:02
А вот здесь же тоже должны быть проводники?
72268

Vslav
19.04.2020, 08:50
А вот здесь же тоже должны быть проводники?
Да, должны и есть, просто слой выключен в редакторе. Полная картинка, 1МБ (http://www.1801bm1.com/files/images/sp6_1611.jpg)

Сегодня вдруг понял что этот MCP-1600 сильно напоминает AVR, та же гарвардская архитектура, 1-2 цикла на инструкцию, 16-битные микрокоманды, ну регистров поменьше, стек одноуровневый, зато есть киллер-фича - аппаратная трансляция кодов.

Update: Эрик подтвердил что прочитанные прошивки с 581РУ2 и 581РУ1 полностью соответствуют тому что он прочитал из 1631-10 и 1631-07.

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


Реверсом занимается Vslav, и вряд ли какая-то ОТК'шная 'баба' за всем это следит)
ОТК он и есть ОТК - Отдел Технического Контроля. Применяется при производстве, для обеспечения соответствия результата каким-то установленным критериям.
Для R&D применим слабо, потому что результатов еще часто нет и какие они будут - никто не знает. Но при реверсе у нас много чего есть для проверки - много софта, и реальные микросхемы, если есть подозрение на несоответствие, то всегда можно сравнить с эталоном. Пока реверсный подход себя показывает неплохо, он отлично повторяет даже найденные ошибки ВМ1/ВМ2, и, с большой вероятностью - даже еще не найденные :)

MiX
19.04.2020, 18:43
16-битные микрокоманды
Дык вроде как 8-битные. Да и внутренняя шина 18-бит, остальные 4 линии это расширение на USER TTL ROM BITS. В случае с платой М2 это РУ3.



Update: Эрик подтвердил что прочитанные прошивки с 581РУ2 и 581РУ1 полностью соответствуют тому что он прочитал из 1631-10 и 1631-07.
А РУ3?

Vslav
19.04.2020, 19:46
Дык вроде как 8-битные. Да и внутренняя шина 18-бит, остальные 4 линии это расширение на USER TTL ROM BITS. В случае с платой М2 это РУ3.
М-м-м... 8-битные? Код каждой микроинструкции занимает одно слово 16-бит. Плюс специальный бит управляет записью текущего LC в регистр адреса возврата (любая инструкция перехода может превратиться в вызов подпрограммы, особенно прикольно выглядят условные переходы, или можно забавно строить циклы вообще на любую инструкцию), плюс один специальный бит инициирует специальную последовательность RNI (Read Next Instruction), эти биты не записываются в текущий регистр микроинструкции, поэтому относятся к опкоду очень условно. То есть, регистр MIR и шина 16-битные, и если открыть любую книжку по MCP-1600 - везде расписаны 16-разрядные опкоды.

Старшие разряды, 21-18, которые "USER TTL", они используются для специальных целей - сброс-установка INIT, сброс-установка признака FDIN (быстрый ввод, аналог безадресного у серии 1801), сброс флагов ошибок и прочее, эти схемы расположены собственно на плате M2, в микрокоде редки - ЕМНИП, всего 9 локаций их содержат. Серия 1801, кстати, использует подобную технику управления этими сигналами, только расположено это уже все внутри микросхемы.



А РУ3?
Он написал FIS/EIS тоже, но номер я не уверен что он читал -15.

Vslav
20.04.2020, 00:58
Чем дальше в лес - тем толще партизаны сложнее исправлять ошибки.
В сумме накопилось более трех десятков (https://github.com/1801BM1/cpu11/commit/c88714b6ec2a4704364545c6d5142cc108f2c271).

Сегодня отлаживал трансляцию команд PDP-11, поисправлял проблемы в матрице трансляции и связанных схемах. Пришлось изучать микроассемблер, стартовая последовательность выглядит вот так:


;_________________________________________________ ________________________
;
; Entry point after harware reset or bus timeout
;
reset: jsr rfdin,SRUN ; 33b: 25014d
tl BERR,rirl ; 33c: 005048
jzbf busto ; 33d: 00102c bus timeout flag set
ri i4|i5|i6 ; 33e: 007070 disable interrupts
;
L33f: jsr sinit ; 33f: 010022 system reset (INIT)
mw pcl,spl ; 340: 0082ec
ll 0x88,rpswl ; 341: 00688a
1$: ltr rpswl,rpswl,,0x1C ; 342: 00eeaa <1C> TR = 104210 (emt 210), REF
jsr rfast ; 343: 01014d
tl PFAIL,rirl ; 344: 005088
jzbf 1$ ; 345: 001042
;
ll 0,rpswl,PFCLR ; 346: 38600a
nl 3,rirl,TFCLR ; 347: 3c4038
ll 0,pcl ; 348: 00600e
mi pcl,rirl ; 349: 00ece8
jmp L34c ; 34a: 00034c boot mode selector
L34b: jmp L3fa ; 34b: 000136
L34c: jmp boot0 ; 34c: 000602
jmp boot1 ; 34d: 000054
jmp boot2 ; 34e: 000103
;_________________________________________________ ________________________
;
boot3: ll 24,rsrcl ; 34f: 006144
ll 0,rsrch ; 350: 006005 load vector 24
jmp L311 ; 351: 000311

Вот то что со значком <1C> - если в этот момент выставлен запрос на регенерацию, то оно неожиданно свалит в процедуру регенерации памяти. Неожиданно - потому что этого кода <1C> в MicROM нет, а сидит оно в PLA в ИК2, и в тот момент когда адрес микроинструкции совпадает с 0x342 выполняется эта проверка, вообще невидимо от потока микроинструкций. По адресу 0x342 можно записать что угодно, но оно будет проверять запрос на регенерацию и переход. Такой себе еще один невидимый слой управления. Пришлось допиливать дизассемблер и все эти мины помечать флажками.

Update:
- генерирует системный сброс (INIT)
- дожидается питания (ACLO)
- выбирает режим загрузки
- читает вектор 24/26
- выполняет первые команды PDP-11
- помирает на записи в ячейку mov #const, addr - неверный адрес генерирует, при том что перед этим mov #const, @#addr выполнился корректно
- нашел ошибку в сумматоре, теперь добегает до mtps и на нем виснет

MiX
20.04.2020, 03:54
стартовая последовательность выглядит вот так:
Если сравнить с книгой то адреса сдвинуты на единицу.



выполняет первые команды PDP-11
Откуда команды? Если после 173000 какая то программа то это 2й режим старта, но там нет вектора 24.



- дожидается питания (ACLO)
Может DCLO?

Vslav
20.04.2020, 12:06
Если сравнить с книгой то адреса сдвинуты на единицу.
Просто в книге так написали - попытались отобразить работу конвейера. Пока какой-то адрес считывается на шине микроинструкций выполняется предыдущая микрокоманда, считанная циклом ранее. Вот в книжке при старте по адресу 0x001 было прочитано 0x0033B, но выполнятся эта инструкция будет в момент когда читается адрес 0x002.



Откуда команды? Если после 173000 какая то программа то это 2й режим старта, но там нет вектора 24.

Выбран режим старта 3 - чтение вектора 24 и переход по нему. Там находится моделируемое ОЗУ и программа записана:


54 000024 vect 24, entry ; вектор начального пуска
000024 001576 .word entry ;
000026 000340 .word 340 ;
...
258 ;_________________________________________________ ____________________________
259 ;
260 001576 012737 037406 177714 entry: mov #037406, @#177714 ;
261 001604 012737 003177 177715 mov #003177, @#177715 ;
262 001612 012706 000710 mov #$stack, SP ;
263 ;
264 001616 012767 001122 177274 mov #$rxbuf, $rxend ;
265 001624 012767 001122 177264 mov #$rxbuf, $rxbeg ;
266 001632 012767 000716 177054 mov #$txbuf, $txend ;
267 001640 012767 000716 177044 mov #$txbuf, $txbeg ;
268 ;
269 001646 012737 000100 177560 mov #100, @#RXCSR ;
270 001654 012737 000000 177564 mov #000, @#TXCSR ;
271 001662 005000 clr R0 ;
272 001664 106400 mtps R0 ;




Может DCLO?
По DCLO формируется сразу сброс. Происходит ожидание ACLO, пока питание станет нормальным. Это вот тот самый фронт nACLO запускающий работу, в приведенном фрагменте микрокода этот цикл ожидания явно прописан:

1$: ltr rpswl,rpswl,,0x1C ; 342: 00eeaa <1C> TR = 104210 (emt 210), REF
jsr rfdin ; 343: 01014d
tl PFAIL,rirl ; 344: 005088
jzbf 1$ ; 345: 001042
- выполнили регенерацию если есть запрос
- прочитали флажки операцией Fast DIN (или Внутрениий Ввод по терминологии документации M2)
- PFAIL это когнстанта, заданная как PFAIL = 8
- это бит 3 регистра FDIN, отображает состояние ACLO и прерывания по нему
- если бит не равен 0 - новый цикл с регенерацией и проверкой

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

- нашел еще одну ошибку в стробе регистра трансляции
- CLR R0 сделан как swf - вычитание регистра из самого себя. При симуляции я начально не задавал никакие значения регистров, чтобы посмотреть как по схеме будет распространятся Undefined, так вот оно swf пережило, не смогло вычесть Undefined из Undefined и дать 0 на выходе, пришлось в начале симуляции регистры принудительно установить в определенные значения. Для реальной схемы или FPGA это значения не имеет, потому что вычитание любого числа из самого себя дает 0.
- добежало до прерываний от консольного терминала, помирает уже при попытке обработать прерывание

Hunta
20.04.2020, 12:21
При симуляции я начально не задавал никакие значения регистров, чтобы посмотреть как по схеме будет распространятся Undefined, так вот оно swf пережило, не смогло вычесть Undefined из Undefined и дать 0
Ну это как null в программировании.. Не равно ничему, даже самому себе :)


Для реальной схемы или FPGA это значения не имеет, потому что вычитание любого числа из самого себя дает 0
Там просто не будет undefined, будет 0 :)

Vslav
20.04.2020, 13:20
- прерывания работают, входит в обработчик и возвращается корректно
- не работает Read-Modify-Write

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

- чтение-модификация запись заработала
- теперь видно две следующие проблемы: movb R0, (R1)+ выполняет левое чтение данных, и не работает ветвление:


188 001342 putch: ;
189 ; tstb @#TXCSR ;
190 ; bpl putch ;
191 ; movb R0, @#TXDAT ;
192 ; rts PC ;
193 ; ;
194 001342 010146 mov R1, -(SP) ; Read @ 001342 (010146)
; Write @ 000704 (000000)
195 001344 016701 177342 mov $txbeg, R1 ; Read @ 001344 (016701)
; Read @ 001346 (177342)
; Read @ 000712 (000716)
196 001350 110021 movb R0, (R1)+ ; Read @ 001350 (110021)
; *Read @ 000716 (000015)
; Write @ 000716 (000000)
;
197 001352 020127 001116 cmp R1, #$txbuf+TXSIZE ; Read @ 001352 (020127)
; Read @ 001354 (001116)
198 001356 103402 blo 1$ ; Read @ 001356 (103402)
199 001360 012701 000716 mov #$txbuf, R1 ; Read @ 001360 (012701)
; Read @ 001362 (000716)
200 001364 020167 177324 1$: cmp R1, $txend ; Read @ 001364 (020167)
; Read @ 001366 (177324)
201 001370 001775 beq 1$ ; Read @ 001370 (001775)
202 001372 010167 177314 mov R1, $txbeg ; Read @ 001372 (010167)
; Read @ 001374 (177314)
; Write @ 000712 (000716)
203 001376 052737 000100 177564 bis #100, @#TXCSR ; Read @ 001376 (052737)
; Read @ 001400 (000100)
; Read @ 001402 (177564)
; Read @ 177564 (000200)
; Write @ 177564 (000300)
204 001404 012601 mov (SP)+, R1 ; Read @ 001404 (012601)
; Read @ 000704 (000000)
; Read @ Vector 64
205 001406 000207 rts PC ;

Vslav
20.04.2020, 18:37
"Ура!! Заработало!!" (с)

Мой тест "Hello, world" - выводит в консоль строчку по прерываниям.
Все изменения по начальному запуску на github (https://github.com/1801BM1/cpu11/commit/8f8090bdbcd245278d9d6bddc28cf91706e41798)
Помещено в основную ветку репозитория, можно скачивать. На этом начальный пуск можно считать успешным, переходим к оригинальным тестам DEC VKAxxx.


# Processor ACLO and DCLO deasserted
# tty: 000015 (*)
# tty: 000012 (*)
# tty: 000015 (*)
# tty: 000012 (*)
# tty: 000114 (L)
# tty: 000123 (S)
# tty: 000111 (I)
# tty: 000055 (-)
# tty: 000061 (1)
# tty: 000061 (1)
# tty: 000040 ( )
# tty: 000163 (s)
# tty: 000164 (t)
# tty: 000141 (a)
# tty: 000162 (r)
# tty: 000164 (t)
# tty: 000145 (e)
# tty: 000144 (d)

В-общей сложности исправлено 37 ошибок, отсортированные по частоте:
- пропущена/вставлена инверсия
- опечатки с индексами
- неверная интерпретация правильной схемы
- пропущены латчи или другие фазовые проблемы
- некорректная работа симулятора
- один!, и только один пропущенный тразистор

Схема составлена правильно, ошибок собственно реверса очень мало.
Посмотрим что будет с заводскими тестами.

Кстати, movb R0, (память) выполняется через чтение-модификация-запись. Память напрасно читается, видимо, сделали для унификации микрокода с другими двух-операндными инструкциями.

Alex_K
20.04.2020, 19:03
Кстати, movb R0, (память) выполняется через чтение-модификация-запись. Память напрасно читается, видимо, сделали для унификации микрокода с другими двух-операндными инструкциями.
Вот откуда и у 1801ВМ2 эта особенность. Надо проверить ещё CLRB и MFPS.

Titus
20.04.2020, 19:06
В каких советский компьютерах применялся этот процессор?

Vslav
20.04.2020, 19:10
А вот так у нас работает заводской тест VKAAC0:



# Processor ACLO and DCLO deasserted
# tty: 000015 (*)
# tty: 000012 (*)
# tty: 000040 ( )
# tty: 000105 (E)
# tty: 000116 (N)
# tty: 000104 (D)
# tty: 000040 ( )
# tty: 000120 (P)
# tty: 000101 (A)
# tty: 000123 (S)
# tty: 000123 (S)


Успешно завершен! Хорошо поработали над начальным пуском, тест проходит, что называется влет :)

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


В каких советский компьютерах применялся этот процессор?
Какой именно? М2 ? Это плата на которой установлен комплект 581-серии (LSI-11), дралось с ранних версий DEC M7264, применялось в Электронике-60.

Hunta
20.04.2020, 19:26
В каких советский компьютерах применялся этот процессор
Электроника-60. Процессоры М1 и М2

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

Занимательно.

M7264

DIS Instructions optional 1,3
EIS Instructions optional 5
FIS Instructions optional 6

1 Requires the KEV11-CA 23-004B5 & 23-005B5 DIBOL chip set.

2 The DIS and EIS/FIS chipsets are mutually exclusive.

3 Requires etch Rev E or F.

5 Etch Rev C requires the KEV11 23-091A5-01 EIS/FIS processor chip.
Etch Rev D requires the KEV11 23-091A5-01 EIS/FIS processor chip, or the KEV11-B 12-090A5-01 EIS-only processor chip.
Etch Revs E & F require the KEV11-A 23-003B5 EIS/FIS processor chip.

6 Etch Revs C & D require the KEV11 23-091A5-01 EIS/FIS processor chip.
Etch Revs E & F require the KEV11-A 23-003B5 EIS/FIS processor chip.

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

M7264-BB

DIS Instructions yes

Vslav
20.04.2020, 19:33
Вы, наверное, будете смеяться, но тест VKABB0 - тест EIS, модель тоже успешно проходит.:biggrin:

Hunta
20.04.2020, 19:51
но тест VKABB0 - тест EIS, модель тоже успешно проходит
Ну значит осталось мало косяков :)

MiX
20.04.2020, 20:30
модель тоже успешно проходит.
Интересно, тест Титуса как проходит :)

Vslav
20.04.2020, 20:40
Интересно, тест Титуса как проходит :)
Это какой?

Update:
- исправил мелкий баг в lsi - ошибка тайм-аута шины оказывается еще сигналом SRUN сбрасывается, не только EFCLR.
- тест FIS и тест прерываний пока не проходит, почему-то по тайм-ауту шины считает что там power-fail, и переходит по вектору 24. А, это он на рестарт уходит.

MiX
20.04.2020, 21:31
Это какой?
Вот - этот. (http://archive.pdp-11.org.ru/ukdwk_archive/ukncbtlwebcomplekt/Other/titus_vm2testUKNC/)

hobot
20.04.2020, 22:07
Это какой?
и прогонялся ли тест ВМ1 на ВМ1 ? )))

Vslav
20.04.2020, 22:18
и прогонялся ли тест ВМ1 на ВМ1 ? )))
По ссылке написано "Тест для 1801ВМ2" :)
Нет, не прогонялся, на моих стендах нет операционной системы.

hobot
20.04.2020, 23:39
Нет, не прогонялся, на моих стендах нет операционной системы.
это обсуждение я помню и да оба теста Титуса требуют RT-11, я уточнил - ситуация могла измениться, я мог пропустить пласт обсуждений (что бывало уже)
Спасибо.

Vslav
20.04.2020, 23:49
это обсуждение я помню и да оба теста Титуса требуют RT-11, я уточнил - ситуация могла измениться, я мог пропустить пласт обсуждений (что бывало уже)
Спасибо.
Надеюсь, скоро прикручу SDRAM и соберем унифицированный SoC под уже имеющиеся отреверсенные процессоры, тогда черех HX поднимем RT-11 и погоняем.

MiX
21.04.2020, 12:22
Надеюсь, скоро прикручу SDRAM и соберем унифицированный SoC под уже имеющиеся отреверсенные процессоры, тогда черех HX поднимем RT-11 и погоняем.
Это Вы про живые процессоры подключенные к DE0? На плате DE0 разве не выделить 64Кб под подключенный процессор от набортной памяти?
...
Я то про тесты модели процессора. Мне интересно как модель процессора проходит тест.
Впрочем, модель процессора не должна отличатся от прохождении теста платы М2.

Vslav
21.04.2020, 12:29
Это Вы про живые процессоры подключенные к DE0? На плате DE0 разве не выделить 64Кб под подключенный процессор от набортной памяти?
...
Я то про тесты модели процессора. Мне интересно как модель процессора проходит тест.
Впрочем, модель процессора не должна отличатся от прохождении теста платы М2.
Я тоже про модели. В DE0 нет свободных 64К набортной памяти, и не только в памяти дело - надо прицепить ROM, надо эмулировать ВП1-030 и прочее.
Те отладочные платы которые я подбираю и собираюсь поддерживать на них проект ДВК-на-ПЛИС - все имеют SDRAM, вот поэтому оно и должно быть с контроллером динамической памяти и унифицировано - как внутри, чтобы можно было брать любую модель процессора и периферии, так и снаружи - чтобы работало на любой плате из списка.

Vslav
23.04.2020, 00:10
Найдено еще пару мелких ошибок, незначительно исправлен тестбенч и тест "Прерывания и исключения" тоже успешно пройден.
Отлично, приступаем к тесту плавающей точки, и тест как бы проходит, ну почти... Падает на последнем подтесте - прерывания во время плавающих инструкций.
Начинаю разбираться, а там в итоге происходит прерывание во время FMUL и указатель стека в этот момент оказывается нечетным :v2_jawdr:
Полез в микрокод, дизассемблировал кусочки, потом нашел исходники FIS от DEC, а там интересно. При выполнении FMUL/FDIV в стеке сохраняется PC чтобы освободить временно место, и в младшем бите SP сохраняется знак первого операнда, о как. При этом есть чекпойнты на проверку запроса на прерывание в кодах посреди циклов инструкции. Вот так оно работает, грузит аргументы, выгружает PC, начинает крутить цикл и тут, если вдруг прерывания - то бросай все, вокзал отходит, вся подготовка и промежуточные результаты пропадают, оно бросается обслуживать прерывание, о как. Но все не так однозначно - при абортировании инструкции по прерыванию состояние восстанавливается - PC загружается из памяти обратно (ага, чтобы сохранить PSW и потом снова PC выгрузить, просто скоростной экспресс, да) и младший бит указателя стека обнуляется. И вот смотришь на это дело - PC вгрузилось, а бит SP вот не очистился. И все микроинструкции есть, на месте.

Как оказалось в итоге, нарисован был лишний транзистор, вот он, во всей красе:

http://www.1801bm1.com/files/images/fii_int_test.jpg

Просто по чекпойнту оно попадало на адрес 0x593, а должно было на 0x592, на котором собственно и есть инструкция сброса младшего бита SP :)
В-общем, тест плавучки тоже успешно пройден, все заводские тесты модель проходит. А тесты у DEC очень неглупые написаны, раз такое ловят.

AFZ
23.04.2020, 00:39
все заводские тесты модель проходит. А тесты у DEC очень неглупые написаны, раз такое ловят.А вот 1201.02 тест плавучки не проходит - у ВМ2 операция по прерыванию не сбрасывается, а приостанавливается.

Hunta
23.04.2020, 14:21
;_________________________________________________ ________________________


;
; Entry point after harware reset or bus timeout
;
reset: jsr rfdin,SRUN ; 33b: 25014d
tl BERR,rirl ; 33c: 005048
jzbf busto ; 33d: 00102c bus timeout flag set
ri i4|i5|i6 ; 33e: 007070 disable interrupts
;
L33f: jsr sinit ; 33f: 010022 system reset (INIT)
mw pcl,spl ; 340: 0082ec
ll 0x88,rpswl ; 341: 00688a
1$: ltr rpswl,rpswl,,0x1C ; 342: 00eeaa <1C> TR = 104210 (emt 210), REF
jsr rfast ; 343: 01014d
tl PFAIL,rirl ; 344: 005088
jzbf 1$ ; 345: 001042
;
ll 0,rpswl,PFCLR ; 346: 38600a
nl 3,rirl,TFCLR ; 347: 3c4038
ll 0,pcl ; 348: 00600e
mi pcl,rirl ; 349: 00ece8
jmp L34c ; 34a: 00034c boot mode selector
L34b: jmp L3fa ; 34b: 000136
L34c: jmp boot0 ; 34c: 000602
jmp boot1 ; 34d: 000054
jmp boot2 ; 34e: 000103



Вот он - эмулятор в чистом виде :) Борцуны с "резиновыми женщинами" - добро пожаловать в реальный мир :)

Alex_K
23.04.2020, 19:30
А вот 1201.02 тест плавучки не проходит - у ВМ2 операция по прерыванию не сбрасывается, а приостанавливается.
А на ВМ2 FIS организован на программном уровне, а не на микропрограммном. Там в стеке при прерывании оказывается адрес эмулятора FIS со значением большим 0160000, а также в сохраненном PSW установлен восьмой бит, чтобы возвратиться обратно в режим HALT. Из-за этой особенности некорректно работала RT11SJ без поддержки таймера. Описано это в МПСС № 05/1989 в статье "Ошибка в операционной системе для ДВК3" стр. 92-93.

AFZ
24.04.2020, 10:12
Откуда на ДВК адрес больше 0160000 ? Теневое ПЗУ у 1201.02 располагается по адресам 0140000-0157776, а в странице ввода-вывода лежит теневое ОЗУ. Или у FIS-программы в этом теневом ОЗУ лежит стек? Зачем? FIS ведь работает с реальным стеком...

А вообще, грустно, что в нашей любимой RT-11 обнаружилась такая ошибка.

Alex
24.04.2020, 11:24
Тут не ошибка в RT-11. Я не думаю, что писавшие RT-11 знали, что существует такая вещь как 1801ВМ2...
Если бы авторы 1801ВМ2 реализовали FIS микропрограммно, как на "Электронике-60М", то тест исполнялся бы :)
Однако реализовали, как смогли:v2_dizzy_coder:... Большая часть п/о работала :) , пусть и медленно :(

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

Хотя по-хорошему, надо было думать насчёт FPU. FIS уже устарел. Если бы FPU пошёл бы в массы... Эх...
И ведь образец для передирания был - F11. Выпускался же массово. Немного работы напильником и ву-а-ля :v2_dizzy_roll:
КЖД же ведь передрали и никакие межведомственные склоки не помешали :) (я понимаю, что уровень разный). Но лёгких путей не искали - городили своё. 1801ВМ3 - получился не плохим. Но это было без 1801ВМ4 слабо... :(

Hunta
24.04.2020, 11:33
надо было думать насчёт FPU. FIS уже устарел.
Ну, он несколько сложнее, чем FIS


Если бы FPU пошёл бы в массы
Он и пошёл в массы - вместе с J-11 (1831ВМ1). Массы только разные были :) А для J-11 ещё и FPA забацали :)

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


Я не думаю, что писавшие RT-11 знали, что существует такая вещь как 1801ВМ2...
Думаю, начиная с какого то момента знали (не зря же самолюбие взыграла в каком то микроваксе), только.. Проблемы шерифа индейцев не волновали :)

Alex
24.04.2020, 13:40
J-11 это в то время ну почти хайтек был :)
Вот F-11 рылом попроще, и был изрядно в производстве. Электроника-85 была распространена. При правильном подходе можно было FPU от туда прикрутить :)

Hunta
24.04.2020, 13:52
Вот F-11 рылом попроще, и был изрядно в производстве.
Нуууу.. Возможно там у них и действительно с F-11 началось. Просто вопрос - когда сделали 581 серию и когда появился F-11? А то может 581-ая у нас уже вовсю была. А поскольку FPU был задолго до них (PDP-11/70) - достаточно старая машинка - технически и с нею можно было содрать. Вопрос только в том - скоко транзисторов для этого надо было и какой величины кристалл был бы. Во времена 581-ой.

Alex
24.04.2020, 14:14
Ну 581 - изделие довольно старое... И мало того, оно предназначалось как самое недорогое и массовое решение.
Как всегда, промышленности не хватало времени. Одно дело разрабатывать совершенно новый FPU, совсем иное - подправить то, что уже производится.
F11 более-менее успешно производился, правда в соседнем министерстве. Скорее всего с 11/70 и драли 1801ВМ4...Результат известен :(
Но массово их делать не смогли :(
Я только в своей жизни раз видел ДВК, где стоял 1801ВМ4. По крайней мере мне так утверждали. Я не видел платы процессора :(

Hunta
24.04.2020, 14:48
Я только в своей жизни раз видел ДВК, где стоял 1801ВМ4. По крайней мере мне так утверждали.
Штатно плат с местом под него не было вроде как. Но народные умельцы сажали поверх ВМ3.
У меня есть один, всё думаю - на .2018 припаять али подождать :) Но скорее всего на ту, которую щас мучаю - припаяю :)

Alex
24.04.2020, 17:06
Я видел фото модуля ВМ3 + ВМ4, с первого взгляда ВМ3, а потом видишь, что кристалла два. В общем сборка. Аналогично сделано было как 1811(F11) на ранних два кристалла.
Возможно, что такая сборка и втыкалась вместо ВМ3

Hunta
24.04.2020, 17:14
Я видел фото модуля ВМ3 + ВМ4, с первого взгляда ВМ3
Те, фото которых я видел - они хорошо отличались. Ну, примерно это я и имел ввиду

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

Вопрос только - как оно по высоте впишется - в Квант-е, скажем, платы достаточно плотно сидят...

Alex
24.04.2020, 17:42
Ну если плата стоит верхней, то скорее всего всё хорошо будет :)
Хотя нужно знать геометрические размеры сборок. Я их увы не ведаю, по фото точно сказать не могу(про ВМ3+ВМ4):(

Hunta
24.04.2020, 17:52
Ну если плата стоит верхней, то всё хорошо
На самом деле - относительно хорошо и, если брать Квант, то процессорная плата стоит третьей сверху (второй снизу) - ибо кабеля для винтов и флопов. То есть хороший риск достать до второй - расстояние между платами - 16 мм плюс минус миллиметр на болтанку

Alex
24.04.2020, 17:58
Увы, Кванты я только со стороны видел... Внутрь не лазил. :(
Хотя в курсе закольцованности некоторых сигналов корзины от Кванта.
Теперь понял причину, почему закольцевали :)

Hunta
24.04.2020, 18:11
Увы, Кванты я только со стороны видел
Как раз его я хорошо знаю :) Даже сделал на своём возможность подключения двух винтов - так что один диск был под систему, второй под разный мой хлам :)
Вот только - или два винта или винт и флопы :)

Alex_K
24.04.2020, 19:13
Откуда на ДВК адрес больше 0160000 ? Теневое ПЗУ у 1201.02 располагается по адресам 0140000-0157776, а в странице ввода-вывода лежит теневое ОЗУ. Или у FIS-программы в этом теневом ОЗУ лежит стек? Зачем? FIS ведь работает с реальным стеком...
Эмулятор FIS в прошивке -055 копируется из теневого ПЗУ в теневое ОЗУ по адресу 0171000. Если команда FIS была вызвана с разрешенными прерываниями, то и эмулятор FIS их также разрешает. Соответственно при любом прерывании в происходит переход из режима HALT в режим USER и в стек ложится PC и PSW прерванного эмулятора. Соответственно адрес возврата больше 0171000 и в сохраненном PSW установлен восьмой бит. Адрес больший 0160000 нужен, чтобы по RTI возвратится обратно в режим HALT. Так что используется стек прерванной программы, сам эмулятор FIS стека не использует.

AFZ
25.04.2020, 06:29
Адрес больший 0160000 нужен, чтобы по RTI возвратится обратно в режим HALT.Зачем? Разве 8-го бита PSW недостаточно? Ведь ходит же способ запустить свою программу в HALT-mode (Полетаев в свое время выдал), она же точно в основном ОЗУ располагается, не в теневом.

Alex_K
25.04.2020, 20:33
Зачем? Разве 8-го бита PSW недостаточно? Ведь ходит же способ запустить свою программу в HALT-mode (Полетаев в свое время выдал), она же точно в основном ОЗУ располагается, не в теневом.
Для возврата из USER в HALT по RTI нужен не только установленный 8-й бит в сохраненном PSW, но и адрес возврата должен быть большим или равным 0160000.
С методом Полетаева знаком. По его методу программа перекачивается в теневое ОЗУ, там же и исполняется. А используется для этого выполнение команды FIS. Эмулятор FIS сохраняет в буфере регистры с R0 по R6, адрес буфера 0173002. Это и используется - программа перекачки располагается в регистрах с R0 по R5, делается левый FADD, а далее переходим на начало буфера через RTI, потом докачиваем, что надо.
Собственно его программа:
Программа, скачивающая в основное ОЗУ содержимое ОЗУ HALT-режима в плате набазе 1801ВМ2.

.TITLE VM2
; команды 1801ВМ2
GO =: 12 ; G
STEP =: 16 ; P
RSEL =: 20 ; R0:=SEL
MFUS =: 21 ; R0:=(R5)+
RCPC =: 22 ; R0:=CPC
RCPS =: 24 ; R0:=CPS
MTUS =: 31 ; -(R5):=R0
WCPC =: 32 ; CPC:=R0
WCPS =: 34 ; CPS:=R0
START::
MOV #PROG,R5
MOV (R5)+,R0
MOV (R5)+,R1
MOV (R5)+,R2
MOV (R5)+,R3
MOV (R5)+,R4
MOV (R5)+,R5
CLR -(SP)
CLR -(SP)
CLR -(SP)
CLR -(SP)
FADD SP
CMP (SP)+,(SP)+
MOV #740,-(SP)
MOV #173002,R1
MOV R1,-(SP)
MOV #PROG,R5
MOV #PLEN,R2
RTI
PROG: MFUS
MOV R0,(R1)+
SOB R2,PROG
MOV #160000,R1
MOV #10000,R2
MOV #10000+20000,R5
10$: MOV -(R1),R0
MTUS
SOB R2,10$
MOV #NEXT,R0
WCPC
CLR R0
WCPS
STEP
PLEN=.-PROG/2
NEXT: HALT
EMT 350
.END START

Hunta
25.04.2020, 21:19
Собственно его программа
Занимательно :)

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

Но при условии, что есть эмулятор FIS :)

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

И она работает так, как предполагается :)

AFZ
26.04.2020, 14:37
Это конкретно для 1201.02 с 055-й ПЗУ-хой. Неизвестно, пойдет ли с 279-й и, тем более, на УКНЦ. На УКНЦ, скорее всего, не пойдет - у нее нет теневого ПЗУ, вместо него используется теневое ОЗУ в странице ввода-вывода, программу туда загоняет ПП из своей ПЗУ-хи. Вероятность того, что регистры сохраняются в том же месте - около нуля. С другой стороны, конечно, никто не мешает посмотреть, где эти программы сохраняют регистры и подправить код...

Alex_K
26.04.2020, 15:11
Это конкретно для 1201.02 с 055-й ПЗУ-хой. Неизвестно, пойдет ли с 279-й и, тем более, на УКНЦ. На УКНЦ, скорее всего, не пойдет - у нее нет теневого ПЗУ, вместо него используется теневое ОЗУ в странице ввода-вывода, программу туда загоняет ПП из своей ПЗУ-хи. Вероятность того, что регистры сохраняются в том же месте - около нуля. С другой стороны, конечно, никто не мешает посмотреть, где эти программы сохраняют регистры и подправить код...
На 279-й пойдёт, посмотрел. Там эмулятор FIS естественно в другом месте ПЗУ, но копируется он в теневое ОЗУ по тому же адресу 0171000, эмулятор такой же, соответственно и буфер там же.
На УКНЦ и эмулятор FIS, и его буфер, естественно расположены в другом месте, адрес буфера 0167506. Но на УКНЦ таких сложностей не надо. Системное ОЗУ спокойно доступно через регистры адреса и данных (0176640/0176642), адрес через РА от 070000 до 077777. Так что спокойно закачивайте через РА и РД что надо, ну и вызывайте через RTI. На УКНЦ системное ОЗУ свободно с адреса 172724. К тому же на УКНЦ методом Полетаева лучше не пользоваться, т.к. после эмулятора FIS там идут разные загрузчики и подпрограммы тестирования, а самое главное - подпрограммы взаимодействия с терминалом, которые использует пульт.

Vslav
26.04.2020, 15:21
Для возврата из USER в HALT по RTI нужен не только установленный 8-й бит в сохраненном PSW, но и адрес возврата должен быть большим или равным 0160000.

Разве ВМ2 проверяет старшие биты адреса возврата при RTI?

Alex_K
26.04.2020, 15:26
Разве ВМ2 проверяет старшие биты адреса возврата при RTI?
Vslav, на вашем сайте документация по 1801ВМ2 (http://www.1801bm1.com/files/retro/1801/vm2/Doc/1801BM2_description_vol1.djvu), которую когда-то выкладывал Titus. Страница 65, таблица 4.

Vslav
02.05.2020, 14:45
Написал на Питоне ассемблер (https://github.com/1801BM1/cpu11/tree/master/lsi/rom/tools) для микрокода LSI-11:


понимает стандартные мнемоники для Western Digital MCP-1600, которые были реализованы в DEC MICASM
поддерживает radix 8/10, понимает 0xnnn, 0nnnn, nnnnn., 0nnnn, и radix
поддерживает локальные метки n$
поддерживает арифметические выражения "()+-/*|&^~", выполняет символьные подстановки
ассемблирует множество входных файлов в единую прошивку
выводит заданные адреса трансляции и дополнительных ttl в файл - можно будет обновлять PLA и делать свои трансляции
портируемый, написано для Phyton 3.x, будет работать Windows/Linux


PS. Этот учебный условно-полезный проект написан вечерами этой недели + полный день вчера. Мое текущее мнение - Питон это бомба. Вторая бомба это VS code. Дальше по жизни буду пользоваться обеими :)
PPS. Отдельное спасибо Юре yu.zxpk за дельные советы и ревью моего нупского кода.

Hunta
02.05.2020, 14:48
Мое текущее мнение - Питон это бомба
Нуу... на C# тоже можно ваять :)


Вторая бомба это VS code
Это крайне расширяемая бомба :) Плюс с возможностью взаимодействовать с git-ом, в том числе - на базе TFS :)

Vslav
02.05.2020, 19:52
Дизассемблировал прошивку программой Эрика, затем немного пропатчил и собрал исходник своим ассемблером обратно, и оригинальный и полученный бинарный файлы совпали. Кое-что в ассемблере пришлось пофиксить.

Hunta
02.05.2020, 20:37
Дизассемблировал прошивку программой Эрика, затем немного пропатчил и собрал исходник своим ассемблером обратно, и оригинальный и полученный бинарный файлы совпали.

Вот примерно так же - со 134-ой, КЦГД и ПЗУ с MXV11-B :) Только MACRO-11, а не питон :)

Vslav
08.05.2020, 10:42
Обновил LSI-11:
- добавлена документация (на микроассемблер, на микрокоды, на микромашину)
- добавлен законченные исходники микрокода, сейчас понятно когда и куда оно переходит по трансляции
- добавлена утилита для анализа перехода трансляций
- обновлен микроассемблер
Вся подготовительная работа закончена , можно заниматься синхронными моделями

Hunta
08.05.2020, 12:29
Блин, надо с Verilog-ом повозится, а то чё то пока нихрена в твоих файлам не понятно...

Э... нихрена - это я всё таки загнул :) Большая часть непонятна - так будет точнее :)

Vslav
09.05.2020, 19:40
Выложил синхронную (https://github.com/1801BM1/cpu11/tree/master/lsi/hdl/syn) модель, избавился от всех латчей, шина пока Q-bus.
Буду дальше оптимизировать под FPGA:
- выкину архаичный рефреш динамической памяти, встроенный в процессор
- выкину арбитраж шины Q-bus
- попробую сжать 4 фазы в одну, чтобы за один такт исполнялась одна микрокоманда, сейчас это требует четыре такта
- ну и стандартный Wishbone для системной шины и приема прерываний

Vslav
15.05.2020, 20:38
Закончил оптимизацию и переход на Wishbone для LSI-11:

- теперь осталась только одна фаза на весь процессор, микроинструкция выполняется один или два такта
- запущено на реальной плате DE0
- 80 МГц, 1490 ячеек на Cyclone-III
- проходит все заводские тесты на реальной FPGA
- считает число Пи

Как будет настроение - добавлю порты на другие платы и добавлю еще новых семейств FPGA.

Насчет вычисления 1000 знаков Пи - прогнал тест на всех ядрах, с одинаковой конфигурацией системы -
8К статической памяти без ожидания (и для LSI-11 пересчитано из 80МГц в 100МГц чтобы привести все числа
к общему знаментелю). Тесты выполнялись с разными комбинациями инструкций EIS.

http://www.1801bm1.com/files/images/pi-perf.png


Надо также учесть что у реального LSI-11 максимальная частота была 3МГц против 5МГц серии 1801.
Из таблички видно что ВМ1 без EIS быстрее чем LSI-11, но при задействовании умножения картинка меняется.
Также помним что LSI-11 поддерживает FIS "из коробки", это была полезная опция, поскольку на этих машинах
очень много чего моделировали.

Vslav
16.05.2020, 11:37
Xilinx меня со своим ISE утомил, мягко говоря. 14.7 просто перестал запускаться под Windows7x64. Переинсталляция не помогает. Версия 12.4 вообще молча не иснталлируется. Дропнуть что-ли поддержку Spartan-6.

Titus
16.05.2020, 11:48
Xilinx меня со своим ISE утомил, мягко говоря. 14.7 просто перестал запускаться под Windows7x64. Переинсталляция не помогает. Версия 12.4 вообще молча не иснталлируется. Дропнуть что-ли поддержку Spartan-6.
Переведи на популярный человеческий язык)

Hunta
16.05.2020, 11:50
Если по человечески - фирмА перестаёт поддерживать старые FPGA, выпиливая их из среды разработки, а среда разработки - просто Г :)

Vslav
16.05.2020, 12:20
Если по человечески - фирмА перестаёт поддерживать старые FPGA, выпиливая их из среды разработки, а среда разработки - просто Г :)
Именно так. У них есть еще образ виртуальной машины с ISE-14.7 для Win10. На Win7 не заработало - требует разрешить виртуализацию в BIOS, а она и так разрешена. В VirtualPC оно тоже не ставится. Дивные люди - Vivado Spartan-6 не поддерживает, ISE заброшено и на ровном месте перестало работать. Полдня на убил на попытки запустить софт... Ну в сад - так в сад.

Hunta
16.05.2020, 12:30
На Win7 не заработало - требует разрешить виртуализацию в BIOS, а она и так разрешена.
Немного не так - требуется разрешение виртуализации в биос И ПОДДДЕРЖКА Hyper-V в Windows, а второе в клиентских системах появилось.. э... вроде в Windows 8. Если хочется в системе а-ля Windows-7 - ставить Windows Server 2008 r2 - его легко донастроить (штатными средствами) до уровня семёрки. Но возможны проблемы с драйверами, по крайне мере с драйверами на (десктоп) сетевухами от Intel налетал - по логике оной - десктоп сетевухи можно ставить только на десктоп компы, на которые можно ставить только декстоп Windows. В принципе - легко обходится, но обход как бы делает дырку в системе защиты Windows - MS решил, что начиная с Windows Vista и Windows Server 2008 драйвера для установки на x64 ДОЛЖНЫ иметь цифровую подпись от MS, а если подшаманить с inf файлами драйверов - цифровая подпись слетает - вот эту проверку МОЖНО выключить, но для ВСЕХ драйверов. Так что после этого у "плохого" софта появляется возможность ставить "плохие" драйвера :) Технически при соблюдении гигиены - не страшно, но все же..

Vslav
16.05.2020, 12:54
Немного не так - требуется разрешение виртуализации в биос И ПОДДДЕРЖКА Hyper-V в Windows
Да оно вроде Oracle VirtualBox использует, не HyperV. Сам VirtualBox у меня установлен и работает нормально, это поделка от Xilinx выеживается.



цифровая подпись слетает - вот эту проверку МОЖНО выключить, но для ВСЕХ драйверов. Так что после этого у "плохого" софта появляется возможность ставить "плохие" драйвера :) Технически при соблюдении гигиены - не страшно, но все же..
У меня был период когда драйвера для Windows разрабатывал, жил с отключенной подписью несколько лет без особых последствий.

Hunta
16.05.2020, 13:09
Да оно вроде Oracle VirtualBox использует, не HyperV
А, ясно, ну, тут не подскажу, VirtualBox у меня из разряда - видел, трогал, плотно не юзал :)


У меня был период когда драйвера для Windows разрабатывал
Тогда вышесказанное можно стереть :) Привычка препода - не предполагать, что слушатель знает всё :D

Vslav
16.05.2020, 13:18
В-общем, Xilinx отправляется в сад. Будет у меня время и желание - попробую поднять ISE еще на ноутбуке.
А пока у меня такое:

http://www.1801bm1.com/files/images/TangLogo.png

Будем пробовать, вроде установилось и даже запускается.

Titus
16.05.2020, 13:26
В-общем, Xilinx отправляется в сад.
Не совсем понял. Не поддерживаются старые модели, или же вообще софт для разработки под Xilinx стал плохой?
Почему весь Xilinx идет в сад, а не только старые модели?

Hunta
16.05.2020, 13:33
Почему весь Xilinx идет в сад, а не только старые модели?
Пример из другой оперы. В силу характеристик, цены и доступности на 1201.2018 стоит MAX3000. Последняя версия Квартуса, которая его поддерживает - 13.0, в более новых поддержка выпилина. Если бы эта версия Квартуса была бы глючная, на выбор было бы - заменить max на плате (и перейти на более новую версию Квартуса) или оставить max на плате и искать что то на замену Квартуса. Минус первого - max толерантен к 5 в, что то более новое у альтеры - нет, нужны были бы преобразователи, минус второго - ещё не известно, какого оно качества.

Vslav выбрал второй подход - поддержка старых моделей и поиск другого софта

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


Не поддерживаются старые модели, или же вообще софт для разработки под Xilinx стал плохой?
В старом софте, который плохой - поддерживается старые модели, новые версии, которые хорошие, старые модели не поддерживают

Vslav
16.05.2020, 13:41
Не совсем понял. Не поддерживаются старые модели, или же вообще софт для разработки под Xilinx стал плохой?
Почему весь Xilinx идет в сад, а не только старые модели?
У меня есть плата на Spartan-6. Я делал на нее порты отреверсенных процессоров, запускал на реальном спартане, потом выкладывал как референсный проект. Так получилось с ВМ1 и ВМ2, а вчера я попытался сделать порт на S6 для нового процессора LSI-11. При этом среда для разработки от Xilinx (называется ПИСЕ ISE, S6 поддерживается только в ней) запускаться на моем десктопе с лицензионной Windows7x64 отказалась. После нескольких часов попыток переустановки, отката на ранние версии, виртуализации - ничего не получилось. Поэтому поддержки S6 в репозитории cpu11 больше не будет. Spartan-6 это как бы не очень старая модель, на уровне Циклон3/4, недорогая и ходовая. После испорченного настроения мне как-то Vivado (это среда от Xilinx для более новых чипов, и у меня есть еще плата на Artix из этих серий) не очень хочется ставить, надо остыть.

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

Интересно, я недавно ставил VS code и оно захотело PowerShell.
А теперь я печатаю ise в командной строке и попадаю в консоль.
Ну нет цензурных слов.

Hunta
16.05.2020, 13:56
ise
powershell-овская ISE (Integrated Script Environment, вроде так) :) Всё (для Windows и MS) логично :)

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


У меня есть плата на Spartan-6
Я вообще не ориентируюсь на конкретные платы - делаю модули, которые потом где угодно можно будет использовать :)
Кроме top модуля, который уже на реальные сигналы выходит.
Но даже здесь - связка сигналов top модуля и конкретного кристалла у Квартуса - в описании проекта - можно там ручками поправить - и всё.
Именно таким образом модули проекта PDP-2011 в первый раз были перенесены на мою плату :)
Главное, что она тоже на кристалле Альтеры, как и часть проектов автора PDP-2011
Ну и перенос даже между разными семействами кристаллов Альтеры крайне прост - поправить связь сигналов top модуля с пинами кристалла :)

Xilinx кристаллов нет - не могу сказать, как оно там :)

xolod
16.05.2020, 14:04
У меня ISE стоит на отдельном компьютере с Win XP работает нормально.
Можно попробовать постав в VirtualBox Win XP и в ней ISE, нюансы могут быть только с проборосом USB blastera (программатора JTAG). Насколько я помню виртуалка с ISE для Win 10 сделана на Linuxе и работает она мягко говоря криво.

Hunta
16.05.2020, 14:10
Интересно будет попробовать проброс программатора Квартуса из виртулки по RDP на jtag МИПК, подключенной к моему компу :) А то забибикало держать кучу софта на нём - люблю всё в виртуалки упрятывать - они ещё и на более мощных компах крутятся :)

Похожий фокус с EVE-3 для жены делал - там софт для программирования переваривает только Win7, а у ней на ноуте 2012 r2 стоит, сделал виртуалку, поставил Win7, пробросил - и быстро и работает :)

Vslav
16.05.2020, 14:12
powershell-овская ISE (Integrated Script Environment, вроде так) :) Всё (для Windows и MS) логично :)

Вроде бы powershell ни причем. PlanAhead 14.7 запускается. Но тупо падает сам компилятор (XST - Xilinx Synthesis Tool) и программатор Impact, так что работать с S6 на моей машине хотя бы из командной строки - без шансов.



Я вообще не ориентируюсь на конкретные платы - делаю модули, которые потом где угодно можно будет использовать :)

Платы нужны для проверки конкретного семейства FPGA, конечно, есть изоляция топ-модулем и внутренняя часть там везде одинаковая.
Но при переносе на другую архитектуру вылазят нюансы. Например, при тесте на S6 был интересный фикс с целыми числами в делителе UART.

И если ты хочешь достичь нормальной частоты и чтобы модуль не жрал ресурсы - то надо делать адаптацию. Например, 1801ВМ1 имеет адаптацию регистрового файла на блочной памяти. Да, это библиотечный геморрой, но частота и компактность лучше чем дженерик имплементация. В LSI-11 можно сделать оптимизацию MicROM, там сейчас используется 2Kx18 бит, блоки памяти (и у альтеры и у зайлинкса) поддерживают такую ширину нативно, но им на используемых семействах не хватает глубины (1K), в итоге дженерик описание синтезируется в 5 блоков, вместо 4-х которые можно достичь кастомизацией.

И порты модулей на конкретное семейство реально нужны, cpu11 это библиотечный проект, вот буквально на форуме человек прошел мимо отреверсенного ВМ1 потому что не было порта на M10, а с включенной по дефолту кастомизацией оно просто так не портанулось.

Hunta
16.05.2020, 14:24
Ну не знай, у меня (в модуле памяти) память описана так


type mem_type is array (2**(addr_width-1)-1 downto 0) of typeWord;
signal mem : mem_type; attribute ram_init_file of mem : signal is init_file;

И синтезатор отлично понимает (главное - с работой с ней не напортачить, тут как раз нужно шаблона придерживаться) - и кладёт как надо, причём, видя, что идут байтовые операции - раскладывает на два блока, причём mif файл расписан словами, а не байтами :)

А когда делал UMR - очень похожем образом были расписаны регистры, потом потрахался с операциями с ними - но тоже всё отлично легло - на два блока (пока так сделано специально, что бы проще отрабатывать операции со стороны проца) памяти - один пятибитный, второй пятнадцатибитный :)

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


Вроде бы powershell ни причем
Он может и не причём, но раз поставился (с VS code) - увы - получите и распишитесь...

Vslav
16.05.2020, 14:25
Ну не знай, у меня (в модуле памяти) память описана так

Вот задай блок 2Kx18bit, выбери ключик синтезатора "оптимизация по скорости или сбалансировано" и посмотри сколько блоков оно у тебя возьмет :)

zebest
16.05.2020, 14:34
У них есть еще образ виртуальной машины с ISE-14.7 для Win10
Под десяткой говорят самая обычная ISE работает, без извращений специально для. Не проверял - тут саму 10-ку в сад. Под хр и семеркой - нормально.

Hunta
16.05.2020, 14:36
и посмотри
Э... Тяжело будет - слова у PDP-11 16-ти битные, надо в эти два лишних бита что то писать, а то вумный оптимизатор (если писать одно и тоже) их легко откусывает - у меня так было, когда был блок не 15 бит, а 16 и я писал всегда 0 в этот лишний бит - он сделал блок пятнадцатибитным, а при чтении просто ноль подставлял :) Но я подумаю, как сделать :)

Vslav
16.05.2020, 14:45
Ну не знай, у меня (в модуле памяти) память описана так
....
И синтезатор отлично понимает
Когда делался ВМ1 я очень хорошо познакомился с этим "отлично понимает".
Для регистрового файла нужно было сделать двух-портовую RAM 48x16bits с начальной инициализацией из файла - там совмещены генераторы констант с собственно регистрами.
Ничего сложного, правда? У Q даже есть фишка - жмешь в редакторе ПКМ и выбираешь "Insert template" и оно тебе красиво вставляет заказанное. Ну чтобы синтезатор потом "отлично понял", ага.
Так вот, каких только результатов синтеза я не насмотрелся - оно сильно зависело от версии квартуса и настроек. Но при определенном везении можно было утолкать таки в блоки. Про ПИСЕ промолчу - там был рекорд маразма, оно младший байт ухитрилось сделать в блочной памяти, а старший сделало на рассыпухе, и при этом угробило Fmax, игрища с констрейнами на очень помогли. Понимаешь, если бы это был home-brew проект на какой-то конкретной плате - я бы на все эти "ужасы" забил. Запинал бы ногами конкретными опциями и все. Но хочется библиотеку, чтобы пришел человек, взял с гитхаба проект и у него оно сразу стартануло. Поэтому приходится всем этим заниматься.

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


Э... Тяжело будет - слова у PDP-11 16-ти битные, надо в эти два лишних бита что то писать
Прицепи парочку "лишних" бит к внешним неиспользуемым пинами каким и никто никого не выкинет.

Hunta
16.05.2020, 15:09
Ничего сложного, правда?
Ничё не могу сказать, пока не попробую - но вот тот циклон, который у меня щас под рукой - что то там квартус говорил по поводу двухпортовки, типа - не может (не помню точно, надо воспроизвести, что бы точнее сказать) и когда я пробовал - одна запись - два чтения - он генерировала блок в два раза большего объёма. Потом я почесал почесуемое - и сообразил, что востребованность регистров UMR двоякая - когда проц их пишет читает и когда устройство ПДП (косвенно) их читает для трансляции 18->22 и что эти два чтения НИКОГДА не совпадут по времени. Так что там щас одна запись - одно чтение.


У Q даже есть фишка - жмешь в редакторе ПКМ и выбираешь "Insert template" и оно тебе красиво вставляет заказанное. Ну чтобы синтезатор потом "отлично понял", ага.
Я пробовал эти темплэйты. Короче - теперь я их использую, что бы понять принцип, а потом сам рисую :) Ну и сравниваю с ними, что бы понять, где накосячил.


Прицепи парочку "лишних" бит к внешним неиспользуемым пинами
Технически - можно, но учитывая, что это PDP, которая с наружкой контактирует только парой проводов уарта и четырьмя SD - через несколько (три вроде) придётся пробрасывать. Мне проще, скажем, от адреса взять пару :)


Так вот, каких только результатов синтеза я не насмотрелся - оно сильно зависело от версии квартуса и настроек. Но при определенном везении можно было утолкать таки в блоки.
Насчёт версий и настроек пока не скажу - в свойствах проджекта стоит - по скорости, а версия одна - ибо второй Циклон :) Но я наблюдал пока только три варианта - оптимизатор выкинул всё или часть, сделал всё блоками памяти (см так же выше) или на рассыпухе :)


Про ПИСЕ промолчу - там был рекорд маразма, оно младший байт ухитрилось сделать в блочной памяти, а старший сделало на рассыпухе, и при этом угробило Fmax, игрища с констрейнами на очень помогли.
Шо-то мне всё меньше хочется связываться с Xilinx-ом :):) Такого в Квартусе я пока не наблюдЭ :)

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

Но вообще на написанном мной (или когда я коснулся с переделками) сильно сказывается то, что я программист :D Хотя сейчас мой способ мышления всё таки отдаёт и электроникой :) Не люблю длинные цепочки, особенно мультиплексоров :)

AlexG
16.05.2020, 17:02
Насколь я помню - ise 14.7 для вин7х64 нужно поставить заплатки. Надо ? Могу поискать неспешно...
ПС: кажется соврал. "обычный ise 14.7 для вин7х64 " замечательно работает - был поставлен как только "вышел" и до "вчерашнего" дня работал. По крайней мере "синтезировал прошивки". Заплатки были - но я напрочъ забыл для чего. Или мож всёж я их ставил и забыл?

мне "надо" 12.4 под 10ку, ещё не ставил - если не получится, буду виртуалкой пользоваться.

версия "ise 14.7" ТОЛЬКО под вин10 - официально устанавливается в виртуалбокс (раздают сразу образ виртуалки - не проверял). и если для этой virtualbox нужен hyper-v то будут ньюансы. Вчера пытался "поднять" виртулку вин10х64 на вин10х64 получил "облом" - MS начудило в 1903/1909 и virtualbox не дружит со включённым режимом hyper-v. Но - вполне возможно что если "поднимать" вин7х32 на вин10х64 может и заработает.

Vivado/Vitis в полне приличное создание. Наверно Вы не умеете готовить (пирожки с котятами). Но только для 7-го и новее семейств.
Фирма не перестаёт поддерживать старые ФПГА. Есть софт (конкретной версии), он работает. Если надо доработать проект - используй туже среду разработки. Для новых разработок - используй новый софт. Такова официальная политика Xilinx.
ps:Altera в этом плане "не лучше" - ровно так же выпиливает старые плисы из новых сред разработки.
2019.1 последняя в своём семействе для Вин7х64/32. А 2019.2 это уже новое семейство сред разработок (добавлено "интерактива" с разарботчиками в виде github и ИИ) под Вин10. Следующие версии Vivado будут только для 64бит.

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

Лично я предпочитаю 7 семейство и далее... просто у меня есть отладки на "новых" плисах, да и systemverilog в vivado довольно не дурён. Плюс редактор поумнел - на ходу ошибки синтаксиса показывает. итд итп.

ПС: Если по каким-то причинам ise работало а потом престало - рекомендуется вспомнить что было поставлено апосля. Обычно помогает. Ну если совсем никак не "устанавливается" - то ставим виртуалбокс на 7х64 и запускаем виртулаку на 7х32. Поставить в оную стандартную(оригинальную) версию 14.7.
impact может быть можно будет пробросить "наружу" - я не пробывал. Я компилил в виртуалке, а шил из под хост-виндовс.
А ещё есть вариант компилить на одном компе, а impact можно подцеплять на другой комп (в соседнем помещении) и по сети ethernet соединяться. (кривое пояснение). Это же самое можно делать и на одном компе из виртуалки по сетке к внешнему impact-у.

impact можно устанавливать отдельно от ise - но размер инсталяшки не сильно радует.

Hunta
16.05.2020, 17:39
MS начудило в 1903/1909 и virtualbox не дружит со включённым режимом hyper-v
Это не включённый режим Hyper-V, это - запускаемый гипервизор Hyper-V, который, кстати, начинает работать первым, после чего, фактически, даже экземпляр Windows, который типа работает на физической машине - на самом деле тоже начинает работать в виртуальной среде, просто имеет доступ и к реальному железу. И вот в этой, фактически виртуалке, и идёт попытка запуска VirtualBox. Никогда и не работала. Как и с продуктами VMWare типа Workstation Player.

Что то такое VMWare начало пилить и даже показало прошлым летом - в состоянии предрелиза, но выпустили ли они это дело или нет - не в курсе.

Теоретически, запуск сред виртуализации при запущенном Hyper-V может пройти (фифти-фифти), если у них вырубить поддержку аппаратной виртуализации - что то подобное вроде я делал в VirtualPC, но.. давно было, не помню. Сейчас, когда мне вдруг нужен VirtualPC - делаю виртуалку с Win2003 - и в ней запускаю VirtualPC

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


Но - вполне возможно что если "поднимать" вин7х32 на вин10х64 может и заработает.
Если под VirtualBox - не должен заработать и такой вариант

Vslav
16.05.2020, 18:02
Насколь я помню - ise 14.7 для вин7х64 нужно поставить заплатки. Надо ? Могу поискать неспешно...
Пока не надо - я запустил 14.7 в виртуалке. Пришлось взять чистый имадж от MS и доставить туда ISE. Запустилось вроде.


ПС: кажется соврал. "обычный ise 14.7 для вин7х64 " замечательно работает - был поставлен как только "вышел" и до "вчерашнего" дня работал.
Да у меня тожа работал. И тоже до вчерашнего дня. С чем-то оно конфликтует.


версия "ise 14.7" ТОЛЬКО под вин10 - официально устанавливается в виртуалбокс (раздают сразу образ виртуалки - не проверял).
Дают какой-то образ под Oracle VirtualBox и к нему еще куча мусора в инсталляторе. Но у меня на 7x64 не заработала их виртуализация - инсталятор обламывается, хотят Win10 наверное.


Vivado/Vitis в полне приличное создание. Наверно Вы не умеете готовить (пирожки с котятами).
Вполне может быть, не пробовал еще.


ps:Altera в этом плане "не лучше"
Лучше. S6 выпилены в 14 году, аналогичные циклоны С4 (и часто битстрим от которых можно грузить в C3) - только в 2019.


Лично я предпочитаю 7 семейство и далее... просто у меня есть отладки на "новых" плисах, да и systemverilog в vivado довольно не дурён.
Если работа связана с FPGA, то возможно. У меня это эпизодическое хобби, поэтому беру что доступно. S7 еще год назад широко не попадалось, сейчас эпизодически, Artix относительно дорогой до сих пор . В наших краях и на Ali - Альтера намного более доступна и демократична по цене. У Зайлинкса в этой ценовой и технической нише только совсем старые S3 и S6. С ПИСЕй и всеми вытекающими (мда :))



ПС: Если по каким-то причинам ise работало а потом престало - рекомендуется вспомнить что было поставлено апосля. Обычно помогает. Ну если совсем никак не "устанавливается" - то ставим виртуалбокс на 7х64 и запускаем виртулаку на 7х32. Поставить в оную стандартную(оригинальную) рию 14ю7impact может быть можно будет пробросить "наружу" - я не пробывал. Я компилил в виртуалке, а шил из под хост-виндовс.
Я в итоге так и сделал... Ну я все понимаю, концепция другая, кнопочки и воркфлоу немного другой, это нормально. Но когда на ровном месте перестает работать и это диагностируется вообще никак - это таки ПИСЕ. В итоге Xilinx украл у меня эквивалентный рабочий день, да еще из моего личного времени. Как-то за 10 лет с Q не было такого ни разу.

PS. Синтезирую ISEй в виртуалке, польза есть - найдены всякие помарки в LSI-11, посмотрим как Impact из виртуалки зажужжит. Потому что в реале Impact крашится.

Hunta
16.05.2020, 18:16
Лучше
Ключевые версии 13.0 sp1, 13.1, 14.1, 15.0, 19.1 - если ориентироваться на lite и web :)

AlexG
16.05.2020, 18:35
Мысли вслух:
Мож рунтайм свеже установленной программы мешает ise-хе ?

На xilinx раздают:
ISE® Virtual Machine (VM) for Windows 10 extends the ISE Design Suite 14.7 products for the latest Microsoft Windows offering. This solution is enabled for all Xilinx® ISE 14.7 devices.
НО
Following are the list of exceptions.
•Design entry is supported via Project Navigator only. The PlanAhead™ tool as a design entry environment is not supported in this release.
•Synplify, ModelSim and Mentor Graphics Questa Advanced Simulator integration are not supported.
•SmartXplorer and System Generator are not supported.
•All ISE 14.7 devices are supported.
ISE runs in a Linux environment,

и ещё
Because only one hypervisor can be enabled on a system, you must disable/uninstall any other hypervisor, such as Microsoft Hyper-V, prior installation.
Другими словами НУЖНО отключать совсем Microsoft Hyper-V.
Так что лучше использовать стандартную версию ise 14.7 и не заморачиваться с "этой версией под виртуалку".

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

Про Алтеру: Ну чуть позже - но суть то не меняется - то же выпиливают.

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


Это не включённый режим Hyper-V, это - запускаемый гипервизор Hyper-V, который, кстати, начинает работать первым, после чего, фактически, даже экземпляр Windows, который типа работает на физической машине - на самом деле тоже начинает работать в виртуальной среде, просто имеет доступ и к реальному железу. И вот в этой, фактически виртуалке, и идёт попытка запуска VirtualBox. Никогда и не работала. Как и с продуктами VMWare типа Workstation Player.

Что то такое VMWare начало пилить и даже показало прошлым летом - в состоянии предрелиза, но выпустили ли они это дело или нет - не в курсе.

Теоретически, запуск сред виртуализации при запущенном Hyper-V может пройти (фифти-фифти), если у них вырубить поддержку аппаратной виртуализации - что то подобное вроде я делал в VirtualPC, но.. давно было, не помню. Сейчас, когда мне вдруг нужен VirtualPC - делаю виртуалку с Win2003 - и в ней запускаю VirtualPC

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


Если под VirtualBox - не должен заработать и такой вариант

Про "теорию" hyper-v я в курсе.
По слухам работало - но потом MS сломало что то у себя - так глаголет форум виртуалбокса. (это то как я смог прочитать по диагонали 20 страниц).
VMWare - на днях где-то "пролетало" что работает под hyper-v" - не проверял.
Лично для себя я не выбрал что лучше VirtualBox or MS Hyper-V. Первый более универсален, второй более родной для windows.

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


Как-то за 10 лет с Q не было такого ни разу.
Совокупность факторов - не повезло ise, в другой раз не повезёт Альтере. При дальнейшей проверке может статься что "драйвер коврика для мышки совершил недопустимую операцию и будет свернут" , а xilinx окажется ни причём... :v2_dizzy_vodka:
ПС: и вообще эта тема про археологию, а не про кривизну рук/ОСов/IDE - так что это злостный оффтоп. Может Вынести в отдельную тему ?

Hunta
16.05.2020, 18:35
По слухам работало
Наверняка не скажу - мне пока хватало Hyper-V, в основном сталкивался, когда нужно было в классе провести курс, у которого виртуалки на VirtualBox - сколько помню, всегда начиналось с выключения Hyper-V.


но потом MS сломало что то у себя
Более вероятно, что стали использовать аппаратную поддержку виртуализации - и вот тут точно капец котику


VMWare - на днях где-то "пролетало" что работает под hyper-v" - не проверял.
Вспомнил, что с Workstation Player я делал финт ушами, но это возможно только с Windows Server 2016 или выше и только (на тот момент, щас не знаю) с процами интел. Поднимается виртуалка с Win2016 на Hyper-V от Win2016, после чего для этой виртуалки разрешается вложенная виртуализация. Вот тогда Player начинает работать. Но, поелику это было больше трёх лет назад - детали не помню, надо проверять. Да и смысл в этом в нашем случае как бы - нулевой.

Vslav
16.05.2020, 19:51
В-общем, поставил в виртуалку, оно как-то синтезирует. Пришло время залить в плату. Подключаем USB кабель. Естественно - оно его не видит. Долго страдаем всякой хренью, отключаем поддержку USB3, перенакатываем везде драйвера. Итог - в Device Manager внутри виртуалки видно Xilinx USB Cable, драйверы из инсталляции ISE. А вот уродский iMPACT его не видит, открывает через Jungo Driver USB порт, потом что-то ему не нравится и на это все. В завершение эта дрянь умудрилась и виртуалку прибить - запускаешь на хосте VirtualPC, открывается папка, тыцаешь на нужной машине "Parameters" или "Open" и эксплорер уходит в края вечной охоты - висит тупо и все. Перезагрузка не помогает. Сплошная Долорес Ебарури, я теперь даже открыть виртуалку и посмотреть результаты синтеза не могу.

Titus
16.05.2020, 20:23
Сплошная Долорес Ебарури, я теперь даже открыть виртуалку и посмотреть результаты синтеза не могу.
Может это знак свыше переходить на что-то другое? )

Vslav
16.05.2020, 21:14
В-общем, виртуалку я починил грохнув vmc файл и создав новый. Но кабель из виртуалки не работает (наивно было бы ожидать от ПИСЕ чего-то иного). Там по-ходу два устройства, еще есть Firmware Loader, он используется для загрузки софта в кабель при его обнаружении, вот его никак запустить не получается, он идет как скрытое неизвестное устройство, флажки DevManager его увидеть не помогают. В-общем, запишем минус кабель, я теперь не уверен что этот кабель и Vivado позже увидит. Проект собрался, мелочи поправлю, статистику (ячейки/частоту) напишу и - в сад.

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


, а xilinx окажется ни причём...
Xilinx причем. Он ведь не отказался от моих денег когда недавно продал мне S6? И не собирается отказываться минимум до 2027 года. А собрать и отладить прошивку мне нечем....

Hunta
16.05.2020, 21:20
Собирать под виртуалкой, копировать прошивку на физическую и прошивать на физической?

У Квартуса, кстати, есть интересный фокус - удалённая прошивка - то есть собирается прошивка на одном компе, а дальше в прошивальщике указываешь, что устройство у тебя находится на удалённом компе, на котором запущено типа сервера jtag. Пару раз даже побаловался - с соединением через инет :)

Vslav
16.05.2020, 21:23
Собирать под виртуалкой, копировать прошивку на физическую и прошивать на физической?
Так на физической iMPACT (программатор) тупо крашится.


У Квартуса, кстати, есть интересный фокус - удалённая прошивка
iMPACT тоже так умеет. Умел...

Hunta
16.05.2020, 21:30
Так на физической iMPACT (программатор) тупо крашится.

А, да... Ну, ещё вариант (не помню, пробовал ты или нет) - снести устройства из Dev Manager-а и заново поставить драйвера. По хорошему, найдя копии их файлов в каталоге Windows и удалив. Но как показывает практика, часто такие проблемы можно решить только переустановкой Windows. Почему и люблю виртуалки - можно создать под конкретную программу :)

Vslav
16.05.2020, 22:06
В-общем, на Spartan-6 оно просто синтезировано и собрана статистика, проверить на реальной плате не удалось, о чем и написано в коммите.
Выложено обновление:
- исправлены мелкие ошибки
- добавлена поддержка DE1 (Cyclone II)
- добавлена поддержка DE2-115 (Cyclone IV)
- "добавлена" поддержка AX309 (Spartan 6) **not tested on real HW

Если бы не ПИСЕ, то сегодня были бы MAX10 и вероятно что-то из Ц5/Ц10, а так - вероятно только на следующих выходных.

yu.zxpk
16.05.2020, 22:39
Ох, я пропустил все веселье с виртуалками под Windows :)
У меня под VMware ISE был поставлен в RHEL 6.10. Impact работает с реальным железом на S6

Vslav
16.05.2020, 22:46
Ох, я пропустил все веселье с виртуалками под Windows :)
У меня под VMware ISE был поставлен в RHEL 6.10. Impact работает с реальным железом на S6
Ото мне еще ESXi не хватает :)

А вообще... Если Винда у меня начинает доходить - то хороший повод обновить машинку перед установкой системы. ТриТриппер там присмотреть :)

AlexG
17.05.2020, 00:43
В-общем, виртуалку я починил грохнув vmc файл и создав новый. Но кабель из виртуалки не работает (наивно было бы ожидать от ПИСЕ чего-то иного). Там по-ходу два устройства, еще есть Firmware Loader, он используется для загрузки софта в кабель при его обнаружении, вот его никак запустить не получается, он идет как скрытое неизвестное устройство, флажки DevManager его увидеть не помогают. В-общем, запишем минус кабель, я теперь не уверен что этот кабель и Vivado позже увидит. Проект собрался, мелочи поправлю, статистику (ячейки/частоту) напишу и - в сад.

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


Xilinx причем. Он ведь не отказался от моих денег когда недавно продал мне S6? И не собирается отказываться минимум до 2027 года. А собрать и отладить прошивку мне нечем....
Совсем не при делах... Судя по всему к Вам в гости на компьютер пришёл пушистый сибирский зверёк. Надо что то делать с компом: аль железо начало дурить (протереть контакты, про пылесосить, прогнать мемтест) аль ОС навернулась и требует кардинальной переустановки. Лет пять (примерно) работал комп под вин7х64 с ise 12.4 14.7 и парочкой вивад. Пока по домам не загнали.

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


Собирать под виртуалкой, копировать прошивку на физическую и прошивать на физической?

У Квартуса, кстати, есть интересный фокус - удалённая прошивка - то есть собирается прошивка на одном компе, а дальше в прошивальщике указываешь, что устройство у тебя находится на удалённом компе, на котором запущено типа сервера jtag. Пару раз даже побаловался - с соединением через инет :)

Дык у вивады есть оное уже хз сколько времени. см выше - писал об этом.

Vslav
17.05.2020, 00:50
Судя по всему к Вам в гости на компьютер пришёл пушистый сибирский зверёк.
"По всему" - это по поведению ПИСЕ? Ну.... ОК :)
Но я не думаю что "попылесосить" и "протереть контакты" тут поможет :)

Hunta
17.05.2020, 00:56
Дык у вивады есть оное уже хз сколько времени. см выше - писал об этом.
Я не знаком с Vivado, поэтому не знаю - сколько это - хз :) А на Квартусе могу сказать, что в версии 13.0, с которой сейчас работаю - это уже есть и она от 2013 года. Более ранних установленных версий, так что - может и раньше.

Так что если фокус с пробросом usb через rdp не пройдёт - у меня всегда есть вариант сервера для прошивки. Но самое главное, что эта хрень (сервер для Квартуса) работает и с сигналтапом.


ОС навернулась и требует кардинальной переустановки.
Как показывает опыт - Win можно навернуть и очень быстро - если поставить на неё много прог или слишком увлекаться установкой и сносом. Именно поэтому на рабочем компе стоит мало программ и буду ставить новые, только если не удастся загнать в (очередную) виртуалку. Благо компы, купленные во времена, когда я активно курсы проводил - под виртуалки - позволяют их создать - по необходимости - много :) Ну а так же по мере выхода новых версий Win - перехожу на них :)

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


прогнать мемтест
Аха. Сильно поможет. Если начала дурить память - глючить будут не прога, а сам винда. Наблюдал такое.


Но я не думаю что "попылесосить" и "протереть контакты" тут поможет
Если это десктоп комп - проверить блок питания - сколько он реально под нагрузкой выдаёт. Но по симптомам - не оно. Скорей - Win

Vslav
17.05.2020, 01:24
Если это десктоп комп - проверить блок питания - сколько он реально под нагрузкой выдаёт. Но по симптомам - не оно. Скорей - Win

Я не понимаю почему из-за одной программки надо проверять железо? С ним никаких проблем нет, вообще.
Собрано из качественных компонентов, все бралось в нормальных местах новым, не экономил. Раз в год чистится кулер, раз в три года меняются все накопители,
обновляется монитор и клавиатура. Вот 4770 уже не але на сегодня, но вроде как мне хватает. Ничего не виснет, BSOD-ов не бывает. Windows 7
Ultimate как встала в 13-ом году - так и живет (и дважды переползала на разные SSD). А ПИСЕ... Ну, в семье всякое случается, да.
У меня кстати есть архив точек восстановления, но наверное не буду этим заниматься, проще уже обновится до десятки и под это дело сменить платформу.

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



Если это десктоп комп - проверить блок питания

Ну как бы это сказать... Там BlueStorm на 700Вт, как-то часов по 10 хугина при сборке двухгигапиксельных панорам оно переваривает. А вот секунду запуска iMPACT - никак, да?

Hunta
17.05.2020, 01:59
Ну как бы это сказать... Там BlueStorm на 700Вт, как-то часов по 10 хугина при сборке двухгигапиксельных панорам оно переваривает. А вот секунду запуска iMPACT - никак, да?
Я и написал - по симптома больше похоже на проблемы у Win, чем в железе.

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

Кстати, с автоматической генерацией блоков памяти я погорячился. Нет, они там действительно генерировались и даже работали, но.. как это работает и действительно ли выделен запрошенный блок памяти - вот в этом я перестал быть уверен - ибо в RTL Viewer-е - нечто странное.

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

AlexG
17.05.2020, 10:44
Я не знаком с Vivado, поэтому не знаю - сколько это - хз :) А на Квартусе могу сказать, что в версии 13.0, с которой сейчас работаю - это уже есть и она от 2013 года. Более ранних установленных версий, так что - может и раньше.

Так что если фокус с пробросом usb через rdp не пройдёт - у меня всегда есть вариант сервера для прошивки. Но самое главное, что эта хрень (сервер для Квартуса) работает и с сигналтапом.

Ну дык я тоже "по сетке" смотрел содержимое плисы zynq (тамошний чипскоп). До кучи: относительно недавно появились "программаторы"
https://www.xilinx.com/products/boards-and-kits/smartlynq-data-cable.html
в него сразу сетевой кабель можно втыкать. Но "редиска" денег стоит.

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


Я не понимаю почему из-за одной программки надо проверять железо? С ним никаких проблем нет, вообще.
....
Ну как бы это сказать... Там BlueStorm на 700Вт, как-то часов по 10 хугина при сборке двухгигапиксельных панорам оно переваривает. А вот секунду запуска iMPACT - никак, да?
Не стоит быть таким категоричным. Вот сталкивался с "чудом" всё работает только wifi интернет отваливался, усё делал: дрова менял, контроллеры, фары протирал... Запустил тест памяти - а мне говорят "еггог хаммер" (хитрая ошибка когда частое чтение ячейки сбивает значение соседней), и до кучи на видео карте обнаружил вздувшиеся электролиты. "Долечить" не успел - разогнали на удалёнку.
ПС:конкретно вивадо 2019.1 можно "поставить" простым копированием, при условии что уже был установлен другая вивадо (у меня 2019.2) (рунтам от микрософта установлен заранее).

AFZ
17.05.2020, 10:59
14.7 просто перестал запускаться под Windows7x64. Переинсталляция не помогает.Вероятно, результат обновления винды. У меня в одной подопечной конторе начал падать Акробат 11.0.0 (новее 11-го им не годится). Причем ставишь на свежеустановленную и свежеобновленную винду этого Акробаста 11.0.0 с дистрибутива, и он сразу же валится при попытке открыть любой документ. Помогло обновление до 11.0.23.

А под виндой 8 или 10 не пробовал?

Vslav
17.05.2020, 13:07
Не стоит быть таким категоричным.

Стоит. Потому что к железу никаких претензий не было и нет. А вот iMPACT/ISE и прочие валятся в одном и том же месте - call trace везде одинаковый, где-то в менеджере лицензий. При том что я честно бесплатный Webpack выбирал.

AlexG
17.05.2020, 13:15
Хммм... мож "ктото" поставил несовместимую версию сервера лицензий ? или dll (для сервера лицензий) в пути появились не совместимые ?
lmanager - универсальная "скотинка", её используют разные сапры. Менторс к примеру. За Альтеру не скажу - но может тоже использует.
А "отдельно" "Manage Xilinx Licenses 2019.2" умеет запускаться ? Что говорит ? или то же падает ? файл лицензий "правильный"? мусором не забит ?

в догонку до кучи https://www.xilinx.com/support/answers/62380.html

Vslav
17.05.2020, 13:23
Хммм... мож "ктото" поставил несовместимую версию сервера лицензий ?
А разве "кто-то", продолжающий продавать S6, не должен проверить при инсталляции совместимость?

AlexG
17.05.2020, 13:29
Вы видели живьём "Идеального Программиста" ?
Кто кому должен тут должен? Возможно проверяется по минимуму...
Ну так "отдельно" "Manage Xilinx Licenses 2019.2" умеет запускаться ?

Vslav
17.05.2020, 13:32
Поставил ISE на ноутбуке с W7x64.
Запускается, синтезирует, кабель работает, LSI-11 на S6 тоже работает.

А Xilinx - редиски, тут двух мнений быть не может. Ладно был бы discontinued product. Но - нет. Денежки нам нужны, продаем S6 и будем продавать, а на саппорт ресурсы тратить мы не хотим. Вы уж там сами как-нибудь потрахайтесь с лицензиями и виртуалками.

AlexG
17.05.2020, 13:39
Уважаемый. Ну не надо злиться на xilinx. Да он не без грешен. Бывают глюки - но где их нет ? В альтере наши спецы тоже находили глюки. В компиляторах с языка С тоже встречались глюки. Я с ним "знаком" ещё когда он под стол пешком ходил - тоесть когда он был досовским вариантом XACT (вроде такое название). Потом был Foundation c 1 по 3. Потом ISE (с PlanHeadom - не помню как пишется). и до совремеенных версий.
Проблема с установкой была только раз. В Foundation c 3.1i (кажется) и то по причине что новый копьютер оказался очень быстрым для той версии java, что использовалась в этом сапре. Лечилось заменой dll в жабе. И всё - других проблем с установкой не было (если конечно соблюдать рекондации по установки программы).
ОФФТОП s6 пока находятся ИМХО в текущем статусе "продакшен" по причине существования особо крупных заказчиков, иначе давно бы снесли в матуре. Всё что делалось до 7-го семейства это "предыдущая эра плис" LUT были насколь помню 4 входовые, а 7-е семейство уже 6 входов (если не склероз попутал). Есть ещё "пучёк" отличий. Вот и получается что смысла нет в S6 в поддержке в новом сапре. Поддерживать два "компилятора" сложнее чем один. А тот компилер что был в ise 14.7 вполне адекватен , но надо и "правильную" версию виндов подавать (ну никак не 10-ку примеру).

Vslav
17.05.2020, 13:51
А тот компилер что был в ise 14.7 вполне адекватен , но надо и "правильную" версию виндов подавать (ну никак не 10-ку примеру).
Что делает "компилер" с точки зрения ОС? Да ничего нового за последние 50 лет - читает файлы на входе, да записывает на выходе. С таким RT-11 на раз справляется, какая тут может быть "правильная версия виндов". Я думаю что собственно к ISE синтезатору претензий нет. А вот весь этот "пакет" - инсталлятор, гуй, лицензии, рюшечки-хрюшечки - это шлак. Я честно попытался работать с ISE с консоли, но там меня тоже ждал болт.

AlexG
17.05.2020, 13:57
Повторю вопрос: Ну так "отдельно" "Manage Xilinx Licenses из ISE" умеет запускаться ?

Vslav
17.05.2020, 14:26
"предыдущая эра плис" LUT были насколь помню 4 входовые, а 7-е семейство уже 6 входов (если не склероз попутал).

Э-э-э? Сейчас специально перепроверил - в Spartan-6 - 6 входовые LUT-ы, как и в 7-ых семействах. Я же говорю - редиски, чисто из маркетинговых соображений дропнули S6 из нового САПРа, обеспечив нас надолго качественным геморроем.


Поддерживать два "компилятора" сложнее чем один.

Конечно. Стоит денег. Но раз продукт продается, то надо бы саппортить.
А вот болт - в новом САПРе продукта нет, а старый САПР - "живите с ним как хотите".



Ну так "отдельно" "Manage Xilinx Licenses из ISE" умеет запускаться ?

На моей машине - не умеет. Падает там же где и все.

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

Все падают в одном и том же месте в strncpy, никак не могу точку останова на входе поставить и посмотреть что-же за строка копируется.

AlexG
17.05.2020, 15:02
Э-э-э? Сейчас специально перепроверил - в Spartan-6 - 6 входовые LUT-ы, как и в 7-ых семействах. Я же говорю - редиски, чисто из маркетинговых соображений дропнули S6 из нового САПРа, обеспечив нас надолго качественным геморроем.

Конечно. Стоит денег. Но раз продукт продается, то надо бы саппортить.
А вот болт - в новом САПРе продукта нет, а старый САПР - "живите с ним как хотите".


На моей машине - не умеет. Падает там же где и все.

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

Все падают в одном и том же месте в strncpy, никак не могу точку останова на входе поставить и посмотреть что-же за строка копируется.

LUT Ну значит склероз... сорри.

старый САПР - "живите с ним как хотите" - альтера поддерживает в части саппорта старые версии сапра ?

Точно никакого софта не ставили перед началом глюков ise ? Изменяли настройки других программ ? Что нибудь переустанавливали ?
А если тупо скопировать с рабочей машины на глючную ? и все ярлыки проверить на правильность.
Eclips SDK кстати не запускается к примеру когда по тем или иным причинам аварийно завершает работу - надо искать и удалять файл типо "lock.prj" (признак что иде "работает")

Vslav
17.05.2020, 15:30
старый САПР - "живите с ним как хотите" - альтера поддерживает в части саппорта старые версии сапра ?

Так себе отмазка - "а посмотрите что у конкурентов".
У конкурентов Cyclone-IV поддерживался до 19.1 включительно, да и дерево исходников там одно, если какое обновление Windows вызывает проблемы у Quartus то очень вероятно причину быстро найдут, можно почитать и попробовать обойти.



Точно никакого софта не ставили перед началом глюков ise ? Изменяли настройки других программ ? Что нибудь переустанавливали ?

Да ISE запускался полгода назад, не вспомнить всего. Ну и ладно, работу LSI-11 я на живой микросхеме проверил, можно тему закрыть. Я сейчас на Q19.1 переключаюсь, а потом и на "Династию Тан", это интереснее.

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

Кстати, попробовал под другим пользователем - запускается. "Это какой-то позор" (c)

AlexG
17.05.2020, 16:23
Так себе отмазка - "а посмотрите что у конкурентов".
Кстати, попробовал под другим пользователем - запускается. "Это какой-то позор" (c)
- да фиговая отмазка. но это право любого производителя решать как продвигать свою продукцию. и я не сильно жалею что не смотрю в сторону 6-го семейства. в масс продакшен нынче закладываются 7-ки и еже с ними. Ну а для хобби и "дос 6.22" кому-то достаточно.
- а это собственно и говорит о конфликте "свежеустановленного корявого софта" и "старого рабочего". и как бы xilinx тут не при делах.
- по факту: "обидно" что опять из-за "третьих" причин забивают на xilinx - а он вполне "достойный" продукт.

ivagor
19.05.2020, 13:43
Vslav, можете предположить, почему так (https://zx-pk.ru/threads/31143-soprotsessor-k-orionu-am9511(c8231a).html?p=1064091&viewfull=1#post1064091)?

Vslav
19.05.2020, 19:56
Vslav, можете предположить, почему так (https://zx-pk.ru/threads/31143-soprotsessor-k-orionu-am9511(c8231a).html?p=1064091&viewfull=1#post1064091)?
Насколько я понял из даташита на C8231, с точки зрения шины, это обычная периферия. Как оно подключалось в Орион я из темы не очень понял. Странно что от процессора зависит, не должно. Может быть все что угодно - от особенностей времянки схемы подключения до помех по питанию.

ivagor
19.05.2020, 20:35
Как я понял, здесь (https://zx-pk.ru/threads/31143-soprotsessor-k-orionu-am9511(c8231a).html?p=1037974&viewfull=1#post1037974) речь о подключении к системному разъему, (на схеме (http://www.emuverse.ru/downloads/computers/Orion-128/docs/schemes/Scheme_corrected.png) в нижнем левом углу, только или автор подключения или автор схемы перепутали некоторые сигналы).
Тогда другой вопрос - сравнивали ли кристаллы i8080 и ВМ80, и если да, то запомнились ли какие-то различия?

Vslav
19.05.2020, 21:35
Тогда другой вопрос - сравнивали ли кристаллы i8080 и ВМ80, и если да, то запомнились ли какие-то различия?
Не сравнивали. Но я не думаю что времянка как-то отличается, это бы давно заметили. Мое частное мнение - причина в чем-то другом.
Чтобы вопрос закрыть - надо прицепить логический анализатор, посмотреть и сравнить.

Vslav
02.06.2020, 16:57
Сделан порт всех процессоров на плату DE10-lite, то есть, добавлена поддержка еще одного семейства FPGA - MAX10.

SuperMax
05.06.2020, 20:05
Закончил оптимизацию и переход на Wishbone для LSI-11:

- теперь осталась только одна фаза на весь процессор, микроинструкция выполняется один или два такта
- запущено на реальной плате DE0
- 80 МГц, 1490 ячеек на Cyclone-III
- проходит все заводские тесты на реальной FPGA
- считает число Пи

я правильно понимаю, что хватит даже Cyclone-II EP2C5 ?
или такой макетки на EP4CE6E22C8N https://forum.maxiol.com/index.php?showtopic=5332 ?

Vslav
05.06.2020, 20:07
я правильно понимаю, что хватит даже Cyclone-II EP2C5 ?
или такой макетки на EP4CE6E22C8N https://forum.maxiol.com/index.php?showtopic=5332 ?
Да, собственно на процессор хватит.
Но я прикидываю проект ДВК, с КСМ, КГД, MY, пока получается что желательно хотя бы 3C16.

hobot
05.06.2020, 23:11
КГД идеально по выбору стартовать с ним или КЦГД, ДВК на ВМ2 не 4-ка же?

Vslav
05.06.2020, 23:42
ДВК на ВМ2 не 4-ка же?
Пока да, на ВМ2. Но то такое, процессор сменный будет. Сейчас делаю М4, а там больше пока заделов нету - только ВМ3 остался.

Vslav
06.06.2020, 19:52
Формат слова микрокоманды процессора М4, построенного на секционнике Am2900 (AKA советская серия 1804):

http://www.1801bm1.com/files/images/m4_cheat.png

Реверс интересно идет очень, приходится одновременно писать:
- дизассемблер (чтобы понимать что происходит)
- файл определения архитектуры (.def), потому что иначе дизассемблер не выведет ничего осмысленного
- верилог (потому что определения полей берутся из схемы/верилога)
- мета-ассемблер (чтобы проверять что все определено и собирается правильно)

Мета-ассемблер, позволяющий писать код для секционников, вообще крышесносная вещь, возможно позже подумаю как на нем переписать микрокод для серии 1801.
Ну и, по ходу реверса, прокачиваю свой навык питониста, тоже фан приносит.

MiX
06.06.2020, 21:03
Vslav, При ремонте RX02 не вижу активности на Am2900. Должен ли процессор (на секциях) что то крутить в цикле или микропрограмма проходит только при приходе внешнего события?
В секционниках не силен.

hobot
06.06.2020, 21:15
Но то такое, процессор сменный будет
тогда тем более логично иметь возможность при возможности смены процессора на старший (ВМ3 подразумевается ведь?) иметь возможность выбора видеорежима КГД\КЦГД. Но это я так. Просто рассуждаю, мне "грезится" из былых обсуждений стартовое меню для выбора конфигурации, на примере
эмулятора Титуса только в железе...Как это будет реализовано вами конечно решать вам, поскольку есть наверняка и много чисто технических моментов
которые я не учитываю, но вам хорошо понятны и известны.

Спасибо.

Vslav
06.06.2020, 22:22
Vslav, При ремонте RX02 не вижу активности на Am2900. Должен ли процессор (на секциях) что то крутить в цикле или микропрограмма проходит только при приходе внешнего события?
В секционниках не силен.
Это от реализации архитектуры зависит, например, в М4 клок на секциях может останавливаться когда происходит обмен на Q-bus. Надо смотреть как клок RX02 сделан, если там гейт от разряда микропрограммы есть - то скорее всего тоже останавливается. Надо посмотреть осциллографом что там на TCLK - сплошной клок или останов.

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


тогда тем более логично иметь возможность при возможности смены процессора на старший (ВМ3 подразумевается ведь?) иметь возможность выбора видеорежима КГД\КЦГД
Спасибо.
Выбор процессора и набор периферии будет определяться файлом конфигурации во время сборки, а режимы работы настройками ран-тайм. ВМ3 - вероятно будет после М4, больше у меня никаких других заделов нет, доделываем потихоньку.

MiX
06.06.2020, 22:49
Надо посмотреть осциллографом что там на TCLK - сплошной клок или останов.
На 15 ноге SYS CLK клок есть. Может ли заперта микропроцессорная секция каким то сигналом или ром по любому должен читать?

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

Вроде как 40 нога может запирать секцию.

Vslav
06.06.2020, 22:53
На 15 ноге SYS CLK клок есть. Может ли заперта микропроцессорная секция каким то сигналом или ром по любому должен читать?
Надо смотреть не на 2901 (ALU), а на 29811 (или что там стоит в качестве управляющего микросеквенсора), теоретически оно может на каком-то одном адресе висеть и ожидать условия (вход TST у 29811). Можно попробовать на этот вход разное поподавать и посмотреть куда пойдет.

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


На 15 ноге SYS CLK клок есть. Может ли заперта микропроцессорная секция каким то сигналом или ром по любому должен читать?
Вроде как 40 нога может запирать секцию.
ALU ROM (с микропрограммой) не читает. Там секвенсор должен быть, на 29811 или другой какой, с расширением на 2909/10/11, вот они дают адрес на MicROM, ALU только исполняет. Нога 40 просто выход ALU разрешает.

MiX
06.06.2020, 23:47
вход TST у 29811
Стоит 2909, но там нет такого входа (и у 29811 тоже не нашёл).

Vslav
06.06.2020, 23:48
Стоит 2909, но там нет такого входа (и у 29811 тоже не нашёл).
Есть ссылка на схему? Гляну что там.

MiX
06.06.2020, 23:51
Схема RX02. (http://doc.pdp-11.org.ru/DEC/DEC_RX02_Sh.pdf)

Vslav
07.06.2020, 01:26
В RX02 секвенсор собран на рассыпухе, страница 23, нету интегрального 29811. За ветвление отвечает цепь SUC BRAN. За выдачу микроадреса отвечают 2909, проверить что у них нормальный OE, и какой там адрес выдается, меняется ли он.

MiX
07.06.2020, 09:20
За ветвление отвечает цепь SUC BRAN.
Активность при перезапуске есть, при простое меандр.


проверить что у них нормальный OE
Нормальный.


и какой там адрес выдается, меняется ли он.
При простое на ногах 16,17,25 высокий уровень, на остальных низкий (посмотрел только одну из 3х 2909)
На 27 клок.

Похоже что 25 ногой заперта.

Vslav
07.06.2020, 10:31
При простое на ногах 16,17,25 высокий уровень, на остальных низкий (посмотрел только одну из 3х 2909)
На 27 клок.
Похоже что 25 ногой заперта.
25 ножка Am2909? Это "File Enable", разрешает операции со стеком (вызов и возврат из подпрограмм микрокода) внутри 2909.
Я бы посмотрел какой таки полный адрес на выходах 2909, меняется ли он. Если адрес фиксирован, то надо слово на выходе ROM.
Ну и декодировать его и пытаться понять что оно делает. На SUC BRAN меандра по-идее быть не должно, надо проследить что оно выбрало на BRAN MUX, возможно там с источником сигнала что-то не то.

MiX
07.06.2020, 11:14
Я бы посмотрел какой таки полный адрес на выходах 2909
На ногах 18-21 ноль соответственно адрес 0000 0000 0000. Если включить PDPшку то появляется активность, на Е47 меандр на ногах 18-21.
При инициализации пробегают импульсы и опять меандр.


Ну и декодировать его и пытаться понять что оно делает.
Анализатор нужен.


На SUC BRAN меандра по-идее быть не должно
Только при включенной PDPшке.

MiX
07.06.2020, 14:06
Ну и декодировать его и пытаться понять что оно делает.
Код из ром, если что.

здесь (http://www.chdickman.com/rx02/rx02_microcode.lst) и здесь. (www.chdickman.com/rx02/rx02dis.c)

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

Регистры контроллера.
177170/004044
177172/000004

Vslav
07.06.2020, 15:05
Код из ром, если что.
Да уж, тут надо разбирать программу и смотреть что оно делает.
И надо цеплять анализатор и захватывать последовательность адресов цикла который оно пробегает. Только так можно понять что оно ждет и чего ему не хватает.

MiX
07.06.2020, 16:33
построенного на секционнике Am2900 (AKA советская серия 1804)
Не знаю в тему или нет, фотки двух плат.
https://pic.maxiol.com/thumbs2/1591535901.3170014816.1004057.jpg (https://pic.maxiol.com/?v=1591535901.3170014816.1004057.jpg&dp=2)

https://pic.maxiol.com/thumbs2/1591535502.3170014816.1004058.jpg (https://pic.maxiol.com/?v=1591535502.3170014816.1004058.jpg&dp=2)

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


И надо цеплять анализатор и захватывать последовательность адресов цикла который оно пробегает.
Я так понял что процессор гоняет микрокод только при при приходе какого либо сигнала (команды).
Анализатора нет.

Vslav
07.06.2020, 20:09
Я так понял что процессор гоняет микрокод только при при приходе какого либо сигнала (команды).
Анализатора нет.
Скорее всего, он на события реагирует - поступление команды, например. И, раз клок не останавливается, то исполнение микрокода не прерывается. Оно может в цикле на одном микроадресе висеть и ждать SUC BRAN, но раз на адресах какое-то шевеление - то перебирает какой-то набор адресов. Для понимания принципов работы достаточно описание 2909 почитать, все остальное уже некритично.

dk_spb
10.06.2020, 10:33
MiX, Могу дать анализатор на время и платы неизвестной рабочести для сравнения.

AFZ
13.06.2020, 04:55
Закончил оптимизацию и переход на Wishbone для LSI-11:Это LSI-11/03, то, что наши цельноутянули под названием Э-60, да? Блин, а мне почему-то все время казалось, что это LSI-11/23, я уже прикидывал, как я залью это дело в свою вот такую (https://forum.maxiol.com/index.php?showtopic=5332) плату и поразвлекаюсь. И только сегодня, почитав внезапно вспыхнувший флейм в теме про 1515ХМ1/2 и встретив там замечание, что вскрытые 1811 ждут своей очереди, понял, что что-то не так. :(

Ну что же, будем ждать. Еще и плату другую ппокупать придется, в эту-то, скорее всего, 11/23 не влезет...