Speccy - наш выбор!

Speccy - наш выбор! (http://zx-pk.ru/index.php)
-   БК-0010/0011 (http://zx-pk.ru/forumdisplay.php?f=59)
-   -   Экспериментальные процессорные модули 2х1801ВМ1 и 1801ВМ2 (http://zx-pk.ru/showthread.php?t=21192)

Vslav 26th April 2013 01:11

Экспериментальные процессорные модули 2х1801ВМ1 и 1801ВМ2
 
2 Attachment(s)
Загорелся я сделать проект "ево-БК" по типу ZX-evo - то есть берем ретро-процессор и делаем к нему обвязку ПЛИС. Поскольку сейчас достаточно много недорогих отладочных ПЛИС-плат, то на первом этапе решил не возиться с повторением ПЛИС-части, а сделать простой и недорогой съемный процессорный модуль, подключаемый к такой готовой отладочной плате.

На модуле размещается собственно оригинальный процессор и схема сопряжения с 3-вольтовыми уровнями ПЛИС отладочной платы. Для начала предполагается разработка двух экспериментальных ретро-процессорных модулей:

1) на 1801ВМ1. Чтобы было веселее и интереснее этим заниматься, на модуле устанавливается два процессора с задействованием механизма конкуренции за шину. Поскольку память и реализованная на современной ПЛИС шина МПИ предполагаются быстрыми (относительно даже работающего на 6МГц процессора ВМ1), то будет любопытно посмотреть как оно работает;

2) на 1801ВМ2, тут банально предполагается один микропроцессор на модуле;

В качестве базовых ПЛИС-китов выбраны киты от Terasic на основе микросхем Altera, подключение модуля осуществляется к стандартизованному 40-пиновому разъему "GPIO" на плате кита. Сейчас у меня есть DE2-115, и заказан более дешевый DE0 (не nano), аналогичный разъем имеет и кит DE1. На базе ожидаемого DE0 планируется повторение БК-001x с оригинальным процессором ВМ1 и "апгрейды" - 2xВМ1 и на базе ВМ2. Также не исключается повторение MC1202.01/02. На упомянутых китах имеется SDRAM-память, VGA-выход, SD-карта и PS-2 разъем.

В данном сообщении я хотел бы представить первый вариант схемы модуля 2xВМ1. Второй процессор может быть отключен (отсоединением перемычками от общих DMR/SACK и подачей нулевого уровня) для реализации однопроцессорного варианта.

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

Также предполагается режим когда внешняя (по отношению к модулю) схема осуществляет доступ к внутренним регистрам процессоров (через общий DMR/DMGO/SACK) и/или процессор осуществляет доступ к внутренним регистрам парного процессора.

Vslav 26th April 2013 11:36

Схема модуля на основе 1801ВМ2
 
2 Attachment(s)
Схема модуля на 1801ВМ2 выглядит чуть-чуть попроще. Сигналы WAKI/WRQ совместного доступа к окну старших адресов для многопроцессорной системы просто заведены на коммутатор на EPM3064, пока их использование никак не планируется.

Vslav 26th April 2013 13:33

Схема модуля на основе 1801ВМ3
 
2 Attachment(s)
1801ВМ3 имеет несколько больше сигналов чем ВМ1/2. Чтобы их все "утолкать" в 40-пиновый разъем предполагается использовать быстрый синхронный интерфейс а-ля SPI - MISOx, MOSIx, MSPI - с передачей нескольких значений по параллельной шине (4 ввод с модуля, 2 вывод на модуль) и тактированием учертверенной частотой процессора. Таким образом за каждый такт можно будет получать обновление 16 сигналов с процессора (A16-A21, UMAP, SEL, HLTM и выдавать обновление 8 сигналов (IRQx, HALT, EVNT, DCLO, ACLO).

bigral 26th April 2013 14:01

Quote:

Originally Posted by Vslav (Post 596371)
1801ВМ3 имеет несколько больше сигналов чем ВМ1/2. Чтобы их все "утолкать" в 40-пиновый разъем предполагается использовать быстрый синхронный интерфейс а-ля SPI - MISOx, MOSIx, MSPI - с передачей нескольких значений по параллельной шине (4 ввод с модуля, 2 вывод на модуль) и тактированием учертверенной частотой процессора. Таким образом за каждый такт можно будет получать обновление 16 сигналов с процессора (A16-A21, UMAP, SEL, HLTM и выдавать обновление 8 сигналов (IRQx, HALT, EVNT, DCLO, ACLO).

На этих же платах 2 разьема по 40 pin, может всетаки отказаться от этих SPI до момента когда уже система будет запущенна\отлаженна? А потом уже начать отдельный проект - "адаптер процессора ВМ1 ВМ2 ВМ3 для serial интерфейсов".

Без этого дополнительного CPLD никак нельзя обойтись?

И опять встает вопрос про правильное согласование ВМx с Cyclone-ами, не хотелось бы чтоб скорость была ограниченна преобразователем уровней а также не хотелось бы чтоб этот преобразователь много потреблял. Вот тут доку интересную нашел по этому поводу: http://www.ti.com/lit/ml/scyb018e/scyb018e.pdf но она достаточно мутная для моего понимания и наполненная маркетинговым мусором. Кто-то может детально разобрать сильные и слабые стороны предлагаемых в ней решений?

Vslav 26th April 2013 14:43

Quote:

Originally Posted by bigral (Post 596374)
На этих же платах 2 разьема по 40 pin, может всетаки отказаться от этих SPI до момента когда уже система будет запущенна\отлаженна?

Второй 40-пиновый разъем на ките хочется использовать для подключения ретро-дисковода и CompactFlash или IDE-диска или кто там чего еще пожелает. Сразу занять его под ВМ3 - имхо, грустно как-то.
Если оно все пойдет нормально - то позже можно будет и модуль на 1810ВМ86/88 сделать - и получить допустим "Поиск-1/2" или скажем "Винницу".
Quote:

Originally Posted by bigral (Post 596374)
А потом уже начать отдельный проект - "адаптер процессора ВМ1 ВМ2 ВМ3 для serial интерфейсов".

Я думаю что все нормально с этим "SPI" будет, на самом деле там много сигналов не особо нужны - TA например, SSYNC тоже под вопросом, BS.
Адреса старшие вообще стабильны должны быть все время цикла обмена. Ну и SPI будет привязан к частоте проца, фазу потом уже подобрать можно, то есть - каждый такт процессора в нужной фазе можно получать состояние этих сигналов процессора на "материнской плате" кита. Ну если уж во что-то упремся (пока я не вижу во что можно), то недолго ведь сделать новый модуль, имея опыт-то с первой версией.

Quote:

Originally Posted by bigral (Post 596374)
И опять встает вопрос про правильное согласование ВМx с Cyclone-ами, не хотелось бы чтоб скорость была ограниченна преобразователем

Судя по документации - входные уровни "высокого" у ВМx вполне доступны для формирования Max-омт - >= 2.4В. Выходные драйверы у Max достаточно мощные (8mA), не говоря уже про 74LVC245, будем надеяться что все выйдет OK.

Quote:

Originally Posted by bigral (Post 596374)
Вот тут доку интересную нашел по этому поводу: http://www.ti.com/lit/ml/scyb018e/scyb018e.pdf

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

---------- Post added at 12:43 ---------- Previous post was at 12:21 ----------

Quote:

Originally Posted by bigral (Post 596374)
Без этого дополнительного CPLD никак нельзя обойтись?

Пока мне MAX представляется самым оптимальным вариантом - задержка на нем по сравнению с обычной логикой типа 74LVC/ABT незначительно больше, также предоставляет возможность быстрой перекоммутации сигналов без массированного применения паяльника, ну и какую быструю локальную (то есть на самой плате модуля) логику на нем можно реализовать. Надеюсь что однотактовый RPLY получится реализовать (смотря как контроллер SDRAM сделать - надо чтобы страницы умел держать открытыми). Для ВМ1/ВМ3 на 6МГц особых сложностей быть не должно, для оверклоченного ВМ2 @ 10МГц - посмотрим.

Модули - экспериментальные, опыты на них и должны ответить на эти вопросы. Если потом возникнет желание/интерес - можно будет сделать "начисто" плату БК на младшем подходящем Асеx1К (нужные ресурсы уже оценены будут, HDL-код откатан), например. Он 5V напрямую переживает, согласующая CPLD уйдет.

bigral 26th April 2013 21:22

Чето мне кажеться было бы лучше вот эти всякие FDD и IDE covox-ы вешать на SPI (тем более что тогда они будут универсальными контроллерами подходящими и к UEXT разьему olimex-a и к другим MCU их навесить можно будет при желании). А процессор это самый быстрый в системе кристалл и самый главный обьект исследований в этой конструкции для него не жалко пожервовать и GPI/O-шки.

5V CPLD по-моему уже неактуальны, при такой-то их цене? На aliexpress уже появилось много "minimal FPGA" плат по нормальной цене готовых к программированию и подключению в свои устройства (есть модели подороже и с паматью сразу), так что если проблема с преобразованием уровней будет решена (именно "доступным" для аматора способом, DIP микрухой(?) или платкой с MOSFET преобразователями) то популярность такого новодела побьет все рекорды. Напоминаю что цена на б.у. плату процессора ДВК стартует с ~100$, а тут можно будет спаять самому за те же деньги.

SDRAM там действительно нужен? В новых FPGA есть RAM да и внешний SRAM не проблема сейчас.

MM 27th April 2013 00:57

Хочется напомнить, что в 1801-й серии нет открытых коллекторов,
втекающий ток в выход может быть до 10 ма динамический, вытекающий с выхода при высоком электрическом уровне на нем - тип. 1 ма., может быть
до 5 ма реально. Согласователи единственные и неповторимые - КР531АП2 -
хорошо работают даже с 1.8 вольт ИС. Правда, вытекающий ток входа у них - 3.2 ма. Зато постоянный ток электрич. 0 выхода - 96 ма по ТУ.

Vslav 27th April 2013 02:25

Quote:

Originally Posted by bigral (Post 596451)
Чето мне кажеться было бы лучше вот эти всякие FDD и IDE covox-ы вешать на SPI (тем более что тогда они будут

Речь шла не про Covox-ы. Я планирую сделать простой дешевый переходник на CompactFlash или IDE HDD, для подключения его во второй 40-пиновый разъем кита DE0 (или DE1). Если получится (хватит ножек) на тот же переходник будет впихнута "физика" интерфейса к FDD - получится простой и дешевый переходник от кита к HDD/FDD.

Quote:

Originally Posted by bigral (Post 596451)
А процессор это самый быстрый в системе кристалл и самый главный обьект исследований в этой конструкции для него не жалко пожервовать и GPI/O-шки.

А зачем жертвовать если по прикидкам и так все получается? Фаза выдачи адреса длится у ВМ3 не менее такта, все успеет пройти через мультиплексор (то что в предыдущих постах я не совсем удачно назвал SPI) даже на максимальной частоте. Тем более там еще есть возможности расширения этого мультиплексора скажем до 6 линий - весь адрес можно будет получить в основной ПЛИС (на материнке) в течение первой половины адресного такта, даже видится вариант просто тупо мултиплексирования по SYNC - пока SYNC неактивен CPLD транслирует старшие разряда адреса на выход мультиплексора, при активизации SYNC - остальные сигналы - SEL, HLTM, BS, UMAP, TA, INS. На SSYNC при этом вполне можно сразу постоянно выдавать низкий уровень, то есть фаза адреса выходит максимально короткой. OK, я заложу еще один резервный разъем и выведу туда немультиплексированные сигналы. Но не думаю что оно реально понадобится.

По документации процессор ВМ3A работает максимум на 6МГц. Ну пусть будет пробоваться оверклок до 10МГц (что сомнительно, но вдруг будет работать), при этом задержка передачи данных на примененном в моей схеме CPLD при наихудшей speed grade чипа -10N, составит всего 10нс. При этом не проблема чуть дороже купить CPLD со speed grade -7N и получить уже гарантированную задержку не более 7нс. Для схемы работающей на частоте 10МГц (время цикла 100нс) такие задержки вполне приемлемы и маловероятно что они станут причиной замедления работы всей системы. К тому же EPM3064ATC100 бывает в версии -4N (еще дороже и надо поискать, но решаемо) и имеет Tpd не более 4нс.

Кстати, 40-пиновый GPIO на DE2-115 только один - для меня это еще одна причина "втискиваться" в единый разъем. А дальше рядом на DE2 стоит мезонинный высокоскоростной разъем, к которому я не нашел в доступной продаже дешевой "ответки".

Quote:

Originally Posted by bigral (Post 596451)
5V CPLD по-моему уже неактуальны, при такой-то их цене?

Да, 5V-толерантные CPLD/FPGA - все старых серий и дорогие. Последний альтеровский FPGA, который принимал непосредственно 5 вольт - это был Acex1K, цены на младшие EP1K10 и EP1K30 вполне приемлемые сейчас, но таки заметно повыше чем на последние Циклоны. Надо искать баланс - дороговатый Acex1K или недорогой Циклон+схема сопряжения. Имхо, пока рановато об этом думать - это чисто проблема следующего этапа (если он вообще будет кому-нибудь интересен).

Quote:

Originally Posted by bigral (Post 596451)
преобразованием уровней будет решена (именно "доступным" для аматора способом, DIP микрухой(?) или платкой с MOSFET преобразователями) то
популярность такого новодела побьет все рекорды. Напоминаю что цена на б.у. плату процессора ДВК стартует с ~100$, а тут можно будет спаять самому за те же деньги.

Примененный мной в обсуждаемых процессорных модулях EPM3064ATC100 стоит в розницу около $3-4. Мне не кажется это заоблачной ценой. Файлы для изготовления печатных плат я выложу в открытый доступ, если у общественности будет интерес - то, думаю, найдутся люди, которые предложат такую плату как конструктор. В итоге детали и материалы для изготовления процессорного модуля на основе ВМ3 обойдутся аматору в цену не более $10 (без учета стоимости самого ВМ3) - CPLD + плата + мелочовка. Имхо, вполне доступно. К тому же платы не ожидаются особо сложными, планирую разработать максимум по 3-ему классу - при сильном желании такие можно изготовить по "лазерно-утюжной" технологии.

Quote:

Originally Posted by bigral (Post 596451)
SDRAM там действительно нужен? В новых FPGA есть RAM да и внешний SRAM не проблема сейчас.

Посмотрим, на DE2-115 у меня есть и SRAM и SDRAM - можно будет опробовать систему на обоих типах памяти. SDRAM память - очень дешевая, имеет большой объем, поддерживает пакетный режим (полезно если на ней реализована также и видеопамять) и занимает меньше ножек ПЛИС, поэтому вполне есть резоны для ее применения. На недорогом ките DE0 - стоит только SDRAM, там вообще без вариантов.

---------- Post added at 00:25 ---------- Previous post was at 00:11 ----------

Quote:

Originally Posted by MM (Post 596476)
Хочется напомнить, что в 1801-й серии нет открытых коллекторов,

У ВМ1 - вход-выходы DMR, SACK разве не открытый коллектор? Они в шину должны же объединяться в многопроцессорке?

Quote:

Originally Posted by MM (Post 596476)
Согласователи единственные и неповторимые - КР531АП2 -

Они неповторимые для реализации "настоящего" МПИ в реальной корзине. А тут немного другая задача. Еще момент, 531-ая даст задержку рапространения Tpd порядка 3-4нс, при этом изрядно нашумит и пожрет. На обсуждаемых модулях аналогичный результат, только с меньшим шумом и жором, можно получить на CPLD с грейдом -4N, но я пока думаю что это не понадобится.

AlecV 29th April 2013 01:49

А нафига железный процессор нужен ? Есть же HDL реализация ВМ1 достаточно полная.

https://code.google.com/p/bk0010/

Vslav 29th April 2013 02:24

Quote:

Originally Posted by AlecV (Post 597027)
А нафига железный процессор нужен ? Есть же HDL реализация ВМ1 достаточно полная.

Ну вот.. Пришел поручик и опошлил все мероприятие :)
Хобби такое - бессмысленное и беспощадное - прикрутить железный процессор и иметь кусочек настоящего ретро в системе. Кстати, при желании можно будет в паралель запустить HDL-имплементацию и попытаться "допилить" ее до потактовой аутентичности, сравнивая в реал-тайме с оригинальным процессором.

P.S. Сегодня за вечер двухпроцессорник начерно оттрасировал. Вероятно на праздниках закончу первый модуль на 2хВМ1, а он самый сложный - дальше веселее.


All times are GMT +4. The time now is 02:33.

Powered by vBulletin® Version 3.8.3
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.