PDA

Просмотр полной версии : РЕ-мулятор - внутрисхемный эмулятор 1801РЕ2/1801РР1



Vslav
28.06.2013, 07:55
РЕ-мулятор представляет собой печатную плату в габаритах корпуса DIP-24 и предназначен для непосредственной замены микросхем типа 1801РЕ2 и 1801РР1 в различных устройствах.

С использованием дополнительных внешних входов РЕ-мулятор способен заменить до четырех отдельных независимых микросхем типа 1801РЕ2/РР1. Например, возможна одновременная замена одним эмулятором шести микросхем 1801РЕ2 на основной плате БК-0010 плюс плата модуля МСТД/Фокал. Для БК-0011М один эмулятор способен заменить до семи микросхем (на основной плате и дополнительно на плате Бейсика)

РЕ-мулятор построен на основе недорогого и распространенного микроконтроллера STM32F205, работающего на частоте 120МГц. Допускается замена программного обеспечения микроконтроллера без отключения РЕ-мулятора от платы для которой осуществляется эмуляция. Таким образом можно быстро изменять "прошивку" эмулируемой микросхемы без вынимания РЕ-мулятора из панельки.

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

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

Программирование микроконтроллера может осуществляться с использованием полного JTAG, "укороченного" SWJ или по последовательному интерфейсу UART (с иcпользованием внешнего преобразователя уровней RS-232 и предварительно запрограммированного загрузчика). Программирование по UART и SWJ допускается без отключения РЕ-мулятора от схемы. При использовании JTAG без отключения от схемы следует обеспечить размыкание цепей проходящих через R4 и R5. Для программирования по JTAG/SWJ можно использовать стандартные программаторы/отладчики типа JLink, ST-Link, MT-Link. Или (если будет интерес и необходимость) - с использованием Altera ByteBlaster (простая схема на одной 74HCT244, подключаемая к параллельному порту PC) и моей утилиты.

http://s56.radikal.ru/i152/1306/09/c9941ec1ea18t.jpg (http://radikal.ru/fp/ce9716117c4e41a5b1f47ac4cf467eb7)
http://s45.radikal.ru/i109/1306/c4/12ea795848a8t.jpg (http://radikal.ru/fp/3259c4b9531a4a3b8fccc94d59138e98)
http://i074.radikal.ru/1306/54/af0c718724a6t.jpg (http://radikal.ru/fp/66b9f5c9027044f384971fa0417de504)
http://s020.radikal.ru/i716/1306/45/28c113235541t.jpg (http://radikal.ru/fp/8dbc88f49e9d40faba075d67f0445bf3)
http://s020.radikal.ru/i713/1306/71/2e7202bb6e68t.jpg (http://radikal.ru/fp/b59aac1cac594474a0c8e1975cb9aa67)

Vslav
28.06.2013, 08:13
На данный момент эмулятор проверен в работе на плате БК-0010, работающей на частоте 3МГц в качестве замены одной 1801РЕ2-017. Программное обеспечение сейчас "вычищается" и готовится к публикации, включая исходники.

Приглашаю всех желающих к обсуждению режимов работы РЕ-мулятора.
На данный момент предполагается реализация следующих прошивок и режимов:

- простая эмуляция одной микросхемы 1801РЕ2. Требуемое содержимое прошивки РЕ2 будет располагаться в прошивке микросконтроллера по фиксированному адресу, будет написан простой скрипт, и желающие при необходимости смогут сами вставлять нужное содержимое РЕ2 в файл прошивки микроконтроллера без перекомпиляции. То есть - готовим нужный файл для РЕ2 в требуемом формате (предлагаю формат программатора Стерх - intel-hex, в конце два байта адресного кода микросхемы), берем уже подготовленный файл прошивки микроконтроллера (будет выложен тут), запускаем простой скрипт (батник, скорее всего будет одна использоваться только утилита srec_cat) и получаем на выходе сразу (без компиляции - не надо разбираться с компилятором для ARM - инсталлировать, настраивать и тд) готовый файл для прошивки в микроконтроллер, которая будет эмулировать РЕ2 с заданным содержимым.

- Прошивка БК-0010. Содержит образы РЕ2-017, -106, -107, -108, -018, -019. Устанавливается на место D25(РЕ2-108, чтобы фильтровать обращение к регистрам по сигналу CS в данном посадочном месте) и заменяет все четыре микросхемы плюс модуль Фокала/МСТД. В зависимости от установленных конфигурационных перемычек РЕ-мулятор будет заменять или просто микросхемы на основной плате, или режим подключенного модуля МСТД.

- Прошивка для БК-0011М. Аналогично - со всеми РЕ2, которые применяются в данном компьютере.

Я с БК не очень много работал, поэтому предлагайте варианты, которые могут быть полезны и интересны.

Ал-р
29.06.2013, 04:48
Очень круто - 32-битный ARM на 120МГц для реализации простейшего алгоритма по эмуляции ПЗУ (в соответствии с адресом на входе выдавать содержимое внутренней Flash) ...

Vslav
29.06.2013, 23:02
А чем плохо? Всего одна микросхема за 120 российских рублей в розницу (стабилизатор +3.3V не в счет). Свои функции выполняет и ладно. А делать на отдельной микросхеме флеша плюс CPLD или дискретная логика - это очевидное (скучно-банальное) и более громоздкое(и дорогое) решение, имхо.

Vslav
28.07.2013, 17:19
Новости проекта:
- посылка с платами пришла на "место вручения" в Москве
- написана штатная программа и опробована конфигурация БК-0010 - замена до 4-х микросхем -017, -106, -107, -108

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

Сборка исходников осуществляется GCC (пробовал готовые сборки CodeSourcery и ARM toolchain) или IAR (размер кода прошивки менее 8К, есть бесплатная лицензия типа KickStarter от IAR) - кому что нравится, для тех кто захочет поэкспериментировать поглубже.

Вот так сейчас выглядит стендик с БК-0010:
http://s020.radikal.ru/i702/1307/d9/4ca4cc82a8b5t.jpg (http://radikal.ru/fp/47c4d10c5ceb45f18474fae2636cb8fa)

Кстати трассировка системной платы (пресловутой "переразведенки") не очень, когда сначала запустил РЕ-мулятор на видео начали строчки подергиваться (зазхватываю через ТВ-тюнер). Со штатными РЕ-шками помех на видео нету. В итоге ограничил скорость нарастания сигнала на выходах AD (есть такая фича у STM32) полосой 25МГц (сначала стояли аттрибуты на 50МГц) и помехи ушли.

Прелесть РЕ-мулятора еще и в том что он позволяет по последовательному порту сразу перешивать прошивку "на лету", то есть скорость написания, кросс-компиляции и прогона коротких тестов значительно увеличилась, теперь это просто стало удобно.

Слева там фото лежат аккуратно выпаянные оригинальные РЕ-шки, пришлось слегка повозиться, также сделал удлинитель клавы, и прочее. В-общем, постарался чтобы хобби выглядело красиво :)

Сейчас прочитаю еще (этим же РЕ-мулятором прямо на плате БК) прошивки -018 и -019 (МСТД на фото слева) и буду готовить программу к релизу - повычищаю все хвосты и на днях выложу.

PS. Также готовлюсь тестироваться на чуть более быстрой БК-0011М и ищу прошивки -327, -329 - микросхемы на плату Бейсика БК-0011М. Оно как бы необязательно, но было бы приятно сразу 5 чипов РЕ-мулировать.

Vslav
29.07.2013, 09:32
Пооптимизировал основную процедуру ремулятора (обработка сигналов МПИ), в итоге получилось время выборки в пределах 250-300нс. По крайней мере не хуже чем у оригинальной 1801РЕ2А с ее паспортными 300нс. Картинка с осциллографа (Желтый сигнал - ~DIN, голубой - ~RPLY):

http://zx-pk.ru/attachment.php?attachmentid=42569&stc=1&d=1375082797

Если кому надо быстрее, то можно применить STM32F407 - они до 168МГц штатно работают. Или STM32F205 также вполне хорошо оверклочится (на 168МГц работали все экземпляры что я пробовал). Ниже картинка с оверклоченного до 144МГц 205-го - ориентировочно время выборки 200-250нс. До параметров СОЗУ не дотягивает, конечно, но параметры эмулируемых микросхем перекрывает надежно.

http://zx-pk.ru/attachment.php?attachmentid=42570&stc=1&d=1375082797

Vslav
29.07.2013, 12:35
Сделал считыватель прошивок - в одну панельку на системной плате БК-0010 вставляется считываемая 1801РЕ2/РР1 и далее РЕ-мулятор устанавливает системный сброс ( можно подключить на запрос захвата шины, вместо сброса, но тогда не прочитать микросхемы с чип-кодами 4-7 - будет вылазить -037 на шину) и рулит DIN/SYNC. Результаты чтения попадают в формате ihex в лог-файл отладчика, из которого несложно сделать результирующий файл.

Update:
Вычитал -018 и -019, сделал дополнительную конфигурацию с МСТД. Забавно вышло - выбираем на РЕ-муляторе перемычками конфигурацию 0 (эмуляция -017, -106, -107, -108), включаем питание, видим заставку Бейсика БК-0010. Выключаемся, на РЕ-муляторе выбираем перемычками конфигурацию 1 (эмуляция -017, -018, -019), включаемся - видим Фокал. То есть, РЕ-мулятор легко и просто заменяет модуль МСТД.

Vslav
05.08.2013, 21:24
В первом посте добавлены:
- архив с исходниками
- архив с начальным загрузчиком и утилитой для прошивки по UART (задействован такой механизм потому что полный JTAG не позволяет делать это в устройстве не вынимая из панельки (часть ног JTAG совмещена с AD-шиной), а Cortex SWD поддерживается только относительно новыми адаптерами). Также в этом архиве утилита-препроцессор локальных меток - нужна для компилиции исходников.

Сейчас пишу документ, где описывается РЕ-мулятор и как с ним работать. Ну чтобы я мог потом всегда гордо сказать - RTFM, да. :)

BYTEMAN
05.08.2013, 21:51
Vslav, а почему не используете StdPeriph_Driver?

Vslav
05.08.2013, 22:31
Vslav, а почему не используете StdPeriph_Driver?
Не использую так как:
- было быстро найдено несколько глюков в библиотеке от ST, то есть качество банально не удовлетворило - все равно надо вникать и делать ревью кода. А мусора там...
- пришел на STM32 с другого Cortex (LPC17 и SAM3) и уже было очень много своих наработок (проект РЕ-мулятора на самом деле сначала был "по-быстрому" сделан на моей коммерческой модульной системе, а потом уже низведен до опубликованного состояния. Там много чего было - HAL, RTOS, стеки, все следы от этого были вычищены - да и не надо это все в РЕ-муляторе)
- не факт что буду очень долго на STM32 оставаться - нет смысла привыкать к проприетарной библиотеке
- не нравится что библиотека очень серьезно замыливает сущности, взамен давая только относительно простую миграцию на другие STM, в полезности чего у меня есть сомнения. Банальный принцип Окама - не умножай сущности сверх необходимого

Vslav
06.08.2013, 17:36
К сожалению форум позволяет прикреплять к сообщению максимум 5 файлов, поэтому архивы с техническим описанием и прекомпилированными прошивками пока размещаю в этом сообщении. Возможно модераторы/админы смогут предложить какое-то решение - например создать пустое второе сообщение, чтобы можно было прикрепить файлы к нему или что-то в этом роде.
PS. Не сложно сделать сам проект, намного сложнее его оформить чтобы мог пользоваться кто-то еще кроме автора :)

Vslav
10.08.2013, 22:24
Посмотрел что есть из кросс-средств для PDP-11 под Windows - бедненько. Ну МАСRО-11 есть... Без линкера... Ну еще можно портануть (начал, полдня потратил и надоело) PCC из проекта BK-Unix... Но возможности у того компилятора все равно скромные.
В-общем, пришлось ставить MinGW и собирать самостоятельно "промышленные" binutils/GCC 4.6.2 для PDP-11 под Windows.
Теперь красота - редактирую все в привычном MSVC, компилю GCC и мгновенно вливаю в РЕ-мулятор - написание тестов по освоению БК-шки значительно ускорилось :)
Пришлось написать также утилиту для инверсии адреса/данных - переводит hex-файлы из формата "как видит процессор" в формат "программатора/РЕ-мулятора" и обратно.
Самый простой проект (просто чистит экран) и сама утилита - во вложении.

Ал-р
11.08.2013, 13:20
.start
MOV #40000, R0
1R: CLR (R0)+
BPL 1R
.end
-
(amontest.mac)
br это перевод строки в HTML :)
в Ассемблере "пустой" команды BR не бывает
BR metka

Vslav
11.08.2013, 15:22
.start
MOV #40000, R0
1R: CLR (R0)+
BPL 1R
.end

Ну-у-у.... От гуру PDP-11 я такого не ожидал - "и на старуху бывает порнуха" (с)
Команда CLR всегда четко выставляет флажки (Z=1, C=N=V=0) по операнду-результату (который у CLR всегда нулевой). Так что фрагмент кода - не очень. И команда BR(anch) у меня не пустая, там такая себе крошечная точка стоит. ИМХО, она там не просто так ;)

kapitan-u
16.02.2015, 16:07
а кто нибудь продает собранные ре-муляторы ?

Woland
16.02.2015, 22:08
Я продаю, но Вы вроде мне уже в почту написали nimamov@mail.ru

Ал-р
24.02.2015, 18:30
(Vslav)
А не могли бы Вы нарисовать алгоритм в виде блок-схемы как уделать 120 МГц 32х-битного ARM-микроконтроллера (100-ног с шагом 0.5мм) в 3(4)Мгц старинной ПЗУ КР1801РЕ2 c 24-ногами ???

Vslav
24.02.2015, 19:53
//__________________________________________________ ___________________________
//
// Процедура реализации алгоритма работы ROM 1801РЕ2
// - не осуществляет возврат (работает постоянно)
// - выполняется с запрещенными прерываниями (не используются)
// - код позиционно-независимый - работает перемещенным в RAM
//
// Входные параметры:
// R0 - адрес таблицы ссылок на банки ROM
// R1 - адрес порта шины данных
// R2 - адрес порта сигналов управления
//
#define PIO_IDR 0x10 // смещение регистра входных данных
#define PIO_ODR 0x14 // смещение регистра выходных данных
#define PIO_BSR 0x18 // смещение регситра сброса и установки
//
#define RPLY_BIT 0 //
#define SYNC_BIT 3 //
#define DIN_BIT 13 //
#define SEL0_BIT 9 //
#define SEL1_BIT 4 //
#define SEL2_BIT 5 //
#define SEL3_BIT 7 //
//
#define RPLY_MSK (1<<RPLY_BIT) //
#define SYNC_MSK (1<<SYNC_BIT) //
#define DIN_MSK (1<<DIN_BIT) //
#define SEL0_MSK (1<<SEL0_BIT) //
#define SEL1_MSK (1<<SEL1_BIT) //
#define SEL2_MSK (1<<SEL2_BIT) //
#define SEL3_MSK (1<<SEL3_BIT) //
#define SELX_MSK ((1<<SEL0_BIT) | (1<<SEL1_BIT) | (1<<SEL2_BIT) | (1<<SEL3_BIT))

_sect(.text, CODE, "ax", 2) //
_global app_rom_loop //
_global app_end_loop //
_thumb //
_thumb_func //
//
app_rom_loop: mov R12, R0 // R12 - таблица ссылок
movs R5, #RPLY_MSK // вспомогательная константа
//
// Для начала цикла ожидаем высокий уровень SYNC (неактивный)
//
@@SyncHigh: ldr R0, [R2, #PIO_IDR] // загружаем управляющие
movs R0, R0, lsr #(SYNC_BIT+1) // сигналы и проверяем
bcc.n @@SyncHigh // сигнал SYNC
//
// Теперь ожидаем низкий уровень SYNC (ниспадающий фронт)
//
@@SyncFall: ldr R7, [R1, #PIO_IDR] // R7 предполагаемый адрес
ldr R4, [R2, #PIO_IDR] // для предварительной фиксации
movs R0, R4, lsr #(SYNC_BIT+1) //
bcs.n @@SyncFall //
//
// Выполняем подготовку обращения к таблице ссылок
// Выделяем старшие три бита chipcode и вычисляем
// элемент таблицы
//
movs R0, R7, lsr #13 // в R6 указатель на элемент
add R6, R12, R0, lsl #8 // таблицы соответствующей
ubfx R7, R7, #1, #12 // зафиксированному chipcode
movs R7, R7, lsl #1 //
//
// Обнаружен ниспадающий фронт SYNC, теперь будем проверять
// устойчивой комбинации SYNC=0, DIN=0, и некоторых активных
// сигналов выборки
//
// Как оказалось если в качестве сигнала CS используется выход
// с микросхем 1801ВП1 (в частности -037) то к моменту ниспадающего
// SYNC матрица еще не успевает декодировать адрес и РЕ-мулятор
// не получает устойчивой комбинации сигналов на входе. Поэтому
// выполняем ожидание
//
@@WaitSel: ldr R4, [R2, #PIO_IDR] // загружаем управляющие
movs R0, R4, lsr #(SYNC_BIT+1) // сигналы и проверяем
bcs.n @@SyncFall // сигнал SYNC
movs R0, R4, lsr #(DIN_BIT+1) // проверим активность
bcs.n @@WaitSel // сигнала DIN
ubfx R0, R4, #SEL1_BIT, #6 //
ldr R3, [R6, R0, lsl #2] //
tst R3, R3 // при данной комбинации
beq.n @@WaitSel // нет доступа к ROM
//
// Более быстрый вариант, но требует чтобы комбинация CS была
// устойчивой в момент ниспадающего SYNC
//
// ubfx R0, R4, #SEL1_BIT, #6 //
// ldr R3, [R6, R0, lsl #2] //
// tst R3, R3 // при данной комбинации
// beq.n @@SyncHigh // нет доступа к ROM
//
ldrh R0, [R3, R7] // выполняем загрузку
// данных из массива
@@WaitDin: ldr R4, [R2, #PIO_IDR] // теперь ждем активного DIN
movs R3, R4, lsr #(DIN_BIT+1) //
ittt cc //
movcc R4, R5, lsl #16 //
strcc R4, [R2, #PIO_BSR] // активируем сигнал RPLY
strcc R0, [R1, #PIO_ODR] // выводим данные на шину
bcc.n @@SetupWait //
movs R3, R4, lsr #(SYNC_BIT+1) //
bcc.n @@WaitDin //
b.n @@SyncFall //
//
@@SetupWait: movs R3, #0xFFFFFFFF //
movs R3, R3, lsr #16 //
//
@@WaitDone: ldr R0, [R2, #PIO_IDR] // проверим активность DIN
movs R4, R0, lsr #(DIN_BIT+1) // как только DIN неактивен
bcc.n @@WaitDone // сразу снимаем RPLY и
str R5, [R2, #PIO_BSR] // освобождаем шину
strh R3, [R1, #PIO_ODR] //
b.n @@SyncHigh //
//
app_end_loop: //
//
//__________________________________________________ ___________________________
//

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

Ал-р
24.02.2015, 21:37
(Vslav)
Я нисколько не сомневаюсь в вашем профессионализме - Вы супер и даже в разных областях - но Вы не БК-шник. И не обижайтесь - некоторые ваши решения для БК соответствуют убийству мух кирпичём ...
Да, приведён хороший ассемблерный текст с комментами (даже я вижу некоторые почти БК-шные команды) - может попробуем всё это сместить в меньшие мегагерцы с некоторым изменением алгоритма и вдруг дотумкаем до чё-нибудь меньше-разрядного и микросхемно меньше-ногого?

perestoronin
24.02.2015, 22:44
Ал-р - не получится в принципе и не получится дешевле.

PS. Правильное приложение усилий - сделать подобие БК на 1806ВМ2, попутно выкинув всю 1801.

Vslav
24.02.2015, 23:35
всё это сместить в меньшие мегагерцы с некоторым изменением алгоритма и вдруг дотумкаем до чё-нибудь меньше-разрядного и микросхемно меньше-ногого?

Так "кирпич" простой и дешевый. Кстати, в нем не 100 ножек, а 64. Сам процессор можно взять с памятью 128К, такие оптом покупаются менее чем за $2. Да и в самой схеме РЕ-мулятора всего две микросхемы, одна из которых стабилизатор питания. То есть "смысловая" микросхема всего одна, уменьшать число корпусов дальше некуда.

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

kapitan-u
22.04.2015, 06:20
Vslav, возник интересный вопрос: если вход CE pin 23 будет постоянно посажен на землю, то будет ли РЕ-мулятор корректно работать?

Vslav
22.04.2015, 07:23
Vslav, возник интересный вопрос: если вход CE pin 23 будет постоянно посажен на землю, то будет ли РЕ-мулятор корректно работать?
Да. В БК-0010 вce CS 1801PE2 постоянно притянуты к земле (ну не считая случаев когда их явно отключают) и все работает.

Vslav
26.04.2015, 08:49
Хочу поблагодарить kapitan-u за помощь в поиске ошибок прошивки РЕ-мулятора, а также за указание на неточности в документации.

Архив с иходниками в первом посте обновлен:
- исправлена ошибка с CS, вывод непреднамеренно настраивался как выход и туда выдавался низкий уровень, что могло приводить к конфликту по выходам и влиять на работу всего устройства. На БК не проявлялось потому что данная цепь (ножка 23 в панельке 1801РЕ2) обычно и так притянута к "земле".
- добавлена опциональная возможность дополнительного декодера адреса, РЕмулятор теперь может отвечать только в пределах указанного при компиляции диапазона адресов. Такая возможность была использована например для загрузчка dwboot.bin, размещенного в 173000...173777.
- исправлено пару байт в образе 1801РЕ2-019, по результатам более корректного считывания

PS. На форуме pk-fpga все материалы также обновлены - включая документацию.

Vslav
20.09.2015, 22:17
Появился вопрос - клон вот такой ерунды (http://www.eetools.com/index.cfm/product/314/eprom-emulator.cfm) уже никакого интереса не представляет? В-принципе, можно его сделать реконфигурируемым, чтобы 1801РЕ2 тоже понимал. Стоимость самостоятельной сборки, конечно, в разы ниже чем указанная цена.

MM
21.09.2015, 10:02
Появился вопрос - клон вот такой ерунды (http://www.eetools.com/index.cfm/product/314/eprom-emulator.cfm) уже никакого интереса не представляет? В-принципе, можно его сделать реконфигурируемым, чтобы 1801РЕ2 тоже понимал. Стоимость самостоятельной сборки, конечно, в разы ниже чем указанная цена.
Может, конечно, кого-то и заинтересует ( в основном разработчиков М-ЭВМ ), но те, кто реально рисует - давно уже или купили поделку, или сами собрали нечто похожее ( знаю некотрых таких ).
Пока что интерес общественности видится в платке-клоне чипа 1801ВМ1-(много мгц), в перреспективе - в платке-клоне 1801ВМ3-(много мгц).
Предполагаю, на них можно сделать небольшой бусинесс.

perestoronin
21.09.2015, 10:43
Бизнес вряд ли, хотя кто-то и на семечках живет.

А вот платочка с которой можно утилизировать встречающиеся ВМ3 и даже ВМ4,5 было бы интересно, а вот РЕшк на новоделе видеть бы не хотелось. Речь о существенно модернизированных репликах ДВК4 и выше но уже в современных факторах и современной обвязкой - при использовании современных ПЛИС и современных микроконтроллеров можно все затолкать в них (проэмулировать), кроме самого процессора, его нужно оставить живым, а виртуальный в многомегагерц сделать бонусной неотемлемой опцией если место останется в ПЛИС подобранную под эмуляцию видеоконтроллера с выходом по DVI, hdmi...

Vslav
21.09.2015, 10:47
Пока что интерес общественности видится в платке-клоне чипа 1801ВМ1-(много мгц), в перреспективе - в платке-клоне 1801ВМ3-(много мгц).

Чтобы оно в габариты корпуса ВМ1 придется применить ACEX1К50 в БГА256. Получится всего три микросхемы (ПЛИС, генератор, флешка конфигурации), и печатная платка 4 слоя, но с нормами 0.150/0.150, сделать такую в кетае - примерно $100-150. Если наберется желающих на такую сумму - можно попробовать.

perestoronin
21.09.2015, 10:49
с более чем двумя слоями смириться можно, а вот с БГА этого лучше избежать, в паучих вариантах ничего не приглянулось ?

Vslav
21.09.2015, 11:01
с более чем двумя слоями смириться можно, а вот с БГА этого лучше избежать, в паучих вариантах ничего не приглянулось ?
Тут условия очень простые - нужна 5В-совместимая ПЛИС. Последнее такое 5-вольтовое семейство у Альтеры - ACEX1K. Существующая реплика 1801ВМ1 влазит с большим трудом в 1K30, вообще без запаса и возможности расширения. Значит надо брать 1K50. А там самый мелкий корпус TQFP-144, только с размахом ног 22 мм, в плату с габаритами корпуса 429-42 (1801ВМ1) оно не влезет никак.

БГА паяются на самом деле просто, кто не уверен в своих силах - ремонтники мобильников запросто припаяют за скромное вознаграждение.

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

Update: есть корейские (китайские?) рабочие клоны (http://www.utsource.net/ic-datasheet/EP1K50FC256-3-1119291.html) ACEX-ов, поэтому цена за 50/100 килогейтов на уровне $10-15, отнюдь не сотни, как за оригинальную альтерку.

MM
21.09.2015, 15:34
Чтобы оно в габариты корпуса ВМ1 придется применить ACEX1К50 в БГА256. Получится всего три микросхемы (ПЛИС, генератор, флешка конфигурации), и печатная платка 4 слоя, но с нормами 0.150/0.150, сделать такую в кетае - примерно $100-150. Если наберется желающих на такую сумму - можно попробовать.
Соответсьвие габаритам оригинального 1801ВМ1 - совсем необязательно.
Главное - соответствие посадки, что бы можно было на разъем приделывать на настоящую МС1201.01 или БК11М ( хотя там и имеются некотрые вопросы с трекингом посадки ).
ИМХО - абсолютно нормально МПП 5х5 см или даже больше, но с набором Н530АП2 - т.к. их аналоги дороже и худосочнее.
Шарик надо гнать подальше из любительских конструкций.

AlecV
22.09.2015, 15:09
На самом деле ACEX1K 3.3-вольтовая, просто 5V-Tolerant. Последняя "настоящая" 5V - это FLEX10K.


P.S. Забавные платки
https://ldm-systems.ru/catalog/altera
сюда просто просится ВМ3...

Vslav
22.09.2015, 15:54
На самом деле ACEX1K 3.3-вольтовая, просто 5V-Tolerant. Последняя "настоящая" 5V - это FLEX10K.

Угу, я с асексами работал, 30-ок с десяток до сих пор валяется где-то. Какое напряжения питания там у ядра и I/O - всем фиолетово, главное что не горят от 5 вольт на входах, в отличие от Циклонов.



P.S. Забавные платки
https://ldm-systems.ru/catalog/altera
сюда просто просится ВМ3...

Отлично, желающие поиметь эмулятор ВМ1 могут купить такое (https://ldm-systems.ru/product/14013) и соорудить нужный переходник. Но ВМ3 в EP1K50 (это старшая микросхема в предлагаемой линейке плат) не влезет с вероятностью 90 процентов, там сложнее микропрограмма и еще диспетчер памяти.

AlecV
22.09.2015, 16:33
Насколько я понимаю, тут коллеги запрашивают два разных вещи:

1. Реализацию процессора в FPGA, которая бы втыкалась в стандартные пины
Типа
http://www.ht-lab.com/commercial/htl8088/htl8088.html

2. "Одночиповую" FPGA обвязку, к которой можно было бы подключить реальный процессор
Типа
http://geektimes.ru/post/255494/

Vslav
22.09.2015, 16:51
1. Реализацию процессора в FPGA, которая бы втыкалась в стандартные пины
Типа
http://www.ht-lab.com/commercial/htl8088/htl8088.html

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



2. "Одночиповую" FPGA обвязку, к которой можно было бы подключить реальный процессор
Типа
http://geektimes.ru/post/255494/
Такие платы тоже есть (http://zx-pk.ru/showthread.php?t=21192) - для ВМ1/ВМ2/ВМ3. До запуска модуля 2xВМ1 у меня как раз руки дошли. Эту же плату можно взять за основу для пункта 1, чтобы "колхоз" выглядел красиво, с разъемчиками и шлейфами. Тогда даже плату на ACEX покупать необязательно - любая DEx подойдет.

Vslav
22.09.2015, 17:06
В-принципе, "колхоз" по пункту 1, если не на БГА, получается такой:

53521

Еще я нашел вот такие разъемы (http://www.brownbear.ru/goods/4976.html), так что отверстий не будет. Правда припаять такое в два ряда очень сложно :(. Несильно проще чем БГА :)

MM
22.09.2015, 22:06
В-принципе, "колхоз" по пункту 1, если не на БГА, получается такой:

53521

Еще я нашел вот такие разъемы (http://www.brownbear.ru/goods/4976.html), так что отверстий не будет. Правда припаять такое в два ряда очень сложно :(. Несильно проще чем БГА :)
Платочку можно в несколько раз увеличить.
*
По ссылке на набор штырей - непойдет, т.к. там "шахматная " система, а нужна обыкновенная ( плосская ) :
http://storage3.static.itmages.ru/i/15/0922/h_1442951453_2659787_14bdb43741.jpg (http://itmages.ru/image/view/3024829/14bdb437)
Думается, обычные штыри, напаянные поверх контактных площадок, вполне сгодятся. Я в таких случаях использую новые разъемы СНП58-64 ( мама ) - просто форумую ножки, запаиваю, отламываю лишнее ( но насечке ).

---------- Post added 23.09.2015 at 00:06 ---------- Previous post was 22.09.2015 at 23:54 ----------

А еще лучше - не экономить миллиметры и не извращаться с редкосными штырями, а увеличить платку - сбоку приделать ПЛИС, а по центру - шинные формирователи-усилители. Кстати, будет нелишним сделать площадки под НР1-4-9М 2.2 к ( ориентировочно ) - нагрузить ими двунаправленные выходы с АП2 на внешнюю шину . Внутреннюю нагрузку можно организовать и на более мелких наборах резисторов - т.к. она несмення будет ( и нужна ли она ? ).

BYTEMAN
12.07.2018, 12:27
Друзи, а платки РЕмулятора (либо уже готовые изделия) где-нибудь приобрести можно?

Vslav
12.07.2018, 19:11
Друзи, а платки РЕмулятора (либо уже готовые изделия) где-нибудь приобрести можно?
К Воланду стучаться надо - он вроде партию платок запустил, может и готовые есть.