PDA

Просмотр полной версии : Специалист_МХ2 ПЛМ



HardWareMan
26.08.2014, 16:20
Пилю МХ^2 на китайской CycloneII борде и мелком 800х600 мониторчике с использованием потактовой корки ВМ80:
http://savepic.ru/5689180m.jpg (http://savepic.ru/5689180.jpg)http://savepic.ru/5687132m.jpg (http://savepic.ru/5687132.jpg)

HardWareMan
27.08.2014, 00:16
Оно ожило!
http://savepic.ru/5695123m.jpg (http://savepic.ru/5695123.jpg)http://savepic.ru/5700243m.jpg (http://savepic.ru/5700243.jpg)

balu_dark
27.08.2014, 00:47
Плата смахивает чем то визуально на мою Terrasic DE2.
А проект можно стырить ? охота спец запустить - посмотреть хоть на него.

zx_
27.08.2014, 11:33
спец-это По-2 в мире компов,
только TTL у кузнеца

HardWareMan
14.09.2014, 20:46
В виду того, что у нас есть полностью рабочая корка ВМ80 решил в свой МХ2 на CPLD этот самый ВМ80 не ставить, не смотря на его теплую ламповость. У китайцев закупил EPM1270T144C5N. Этого чипа хватает на ВМ80 и всю необходимую обвязку МХ2. Снаружи только память (еще не определился с типом и объемом) и кое-какие порты.

HardWareMan
18.09.2014, 07:51
Определился с памятью, это IS61LV5128AL-10TLI (http://www.aliexpress.com/snapshot/6243209528.html) в корпусе TSOP-44. 512КБ хватит всем. (с) Причем, ее скорость позволяет не ставить вторую банку параллельно для чтения цвета: буду читать последовательно, как в Спектруме. Так же, будет реализована задумка, озвученная пяток лет назад на Недопц: память общая для всех, поэтому она разделена на банки по 64КБ. При этом, последняя и предпоследняя банки используются для базовой памяти и атрибутов. Да, атрибуты можно будет считывать и вообще там будет ОЗУ ОС для работы с SD/MMC. При этом, запуск программ для стандарта или МХа будет возможен без каких-либо костылей, как обычно.

zx_
18.09.2014, 12:12
а о людях подумать?)
да, требую плату расширения для обычного Спеца до Спеца МХ 512 с SD

без проводов!

тоесть как нашлепку, проц вынул -вставил плату расширения до МХ
на ней же контроллеры и сам проц

HardWareMan
18.09.2014, 18:32
Ради людей можно поставить ДРАМ. Если использовать SVGA режим, то нужна память, способная работать на частоте 10МГц (время доступа ~75нс между началом RAS и завершением CAS). Под эти характеристики подходят SIMM модули на 60нс или 70нс, например. При этом, каждые 8 точек будет 4 обращения к памяти: 2 к синхрогенератору, 1 к процессору и один для регенерации. При использовании CPLD можно использовать регенерацию RAS-only, либо сразу забабахать CAS-before-RAS. При телевизионных частотах развертки требования к памяти понижаются до 4МГц и 180нс соответственно. Период регенерации по 9 битам адреса (512 адресов для 256К памяти) будет производиться за 204мкс при SVGA развертке и 512мкс при телевизионной развертке. Это время удвоится при использовании 1М чипов памяти. Сделать так?

PS Естественно это все для безвейтовой схемы доступа к памяти на штатной частоте процессора для Специалиста: 2МГц.

HardWareMan
19.09.2014, 11:34
Вот какая память у меня есть (спаяна с SIMM72 модулей): HYB5117805BSJ-60 (http://pdf.datasheetcatalog.com/datasheet/siemens/HYB5117805BSJ-60.pdf). 2M x 8 - Bit Dynamic RAM, 2048 refresh cycles / 32 ms (2k-Refresh). 32мс это даже больше, чем 1 кадр телевизионной развертки (20мс). По моим расчетам выше, эта память будет регенерироваться за 819мкс при SVGA развертке и 2048мкс при телевизионной развертке. Этого более, чем достаточно. А объема 2Мбайта точно хватит всем. Это 32 страницы по 64Кбайт.

PS В виду особой организации экрана Специалиста (и Ориона), можно использовать Hyper Page или EDO режим. Тогда обращений будет 2 а не 4 а регенерацию сделать CAS-before-RAS и делать ее в области гашения. Это дает нам 16 циклов в строке и 4992 цикла в кадре, что более, чем достаточно. При этом, схема не будет привязана конкретно к этой модели памяти, а можно будет использовать любую EDO DRAM вплоть до 8МБайт.

HardWareMan
21.09.2014, 12:05
От EDO придется отказаться. Потому как атрибуты должны одновременно записываться. Придется брать 16ти битную DRAM. Для этого есть у меня GM71V65163C (http://www.htmldatasheet.ru/pdf/hynix/gm71v65163c.pdf), так же снятые с SIMM72. Это 4Мбит х 16 бит, т.е. 8Мбайт в сумме.

Таким образом, получается следующая растактовка арбитра для телевизионной развертки:
http://savepic.ru/5922975.png
32M - Тактовая частота, выбрал потому, что у меня есть такой кварц, допускается 16МГц с небольшой корректировкой схемы.
PIX - 8МГц тактовая пикселей экрана, немного сдвинута для надежности записи данных.
ALD - Строб режима записи/сдвига для регистров видеовыхода, вырабатывается 1 раз в 8 точек.
RAS - Сигнал выбора строки DRAM.
R/C - Сигнал для мультиплексора адреса RAS/CAS, это немного задержанный сигнал RAS что дает надежность в переключении адреса.
CAS - Сигнал выбора колонки и активации DRAM.
S/C - Сигнал для мультиплексора адреса SYN/CPU, указывает, чей адрес нужно подать на DRAM.
F1 - Синхронизирующая последовательность F1 для ВМ80.
F2 - Синхронизирующая последовательность F2 для ВМ80.
Основные моменты. На каждые 8 точек растра формируется 4 обращения к DRAM. 2 из них, когда F2 = 0, забирает процессор. Таким образом, нам не нужно анализировать сигнал SYN процессора для арбитража а сам процессор получает доступ всегда, когда ему это нужно без торможений. Из оставшихся 2 обращений к DRAM одно занимает непосредственно чтение видеоинформации из DRAM для вывода, а второе модифицированно в режим CAS-before-RAS, что дает автоматическую регенерацию DRAM согласно ее глубине. Т.е., можно ставить DRAM любого разумного объема - она вся будет корректно регенерироваться. Указанная выше DRAM требует 4096 циклов для полной регенерации за не более чем 64мс. Т.к. каждые 8 точек происходит 1 цикл регенерации, то частота регенераций получается 1МГц, что дает время 1мкс. 4096 циклов займут 4096мкс или 4,096мс что в 16 раз меньше максимального, что дает запас на установку чипа большего объема.

Задавайте свои вопросы.

Andrey_Korabelev
21.09.2014, 17:05
А ты не думаешь, что раз ВМ80 тоже внутри ПЛИС, то нет смысла выдерживать времянку по чтению и записию Ну, т.е. для реального проца память должна держать данные от сих до сих в течение такта, чтобы проц их успел считать. Но теперь этого не требуется!

HardWareMan
21.09.2014, 18:09
У нас максимально точная модель, все условия остаются.

Andrey_Korabelev
21.09.2014, 19:28
Дак пусть она и будет точная! Захлапывать по переднему фронту Ф2. От него сколько там? Плюс минус десяток наносекунд. Остальное время в такте свободно! Короче, смысл в том что мы гарантированно можем сузить окно ввода, для вывода все зависит от памяти(но тоже можем сузить). Мысли шире!

fifan
21.09.2014, 20:05
А как насчёт ПО, где оно будет сидеть и откуда считываться? Будет параллельное ПЗУ или последовательное Flash?

HardWareMan
21.09.2014, 20:13
"Плоско мыслишь!" говорил игральный кубик доминошке. Поконкретнее изложите свою мысль и, желательно, эпюр пристегните к ответу, чтобы понятнее было.

А как насчёт ПО, где оно будет сидеть и откуда считываться? Будет параллельное ПЗУ или последовательное Flash?
ПО должно работать уже написанное стандартное. Где будет храниться - второй вопрос. Теоретически, я могу поставить SPI FLASH, откуда будет загружаться в ОЗУ при запуске. Или даже NAND чип поставить можно. Там нужно хранить минимум, который обеспечит запуск и работу. Все хранить не обязательно, для этого есть карта.

PS Можно бут положить в SPI FLASH и исполнять его прямо оттуда, останавливая процессор сигналом READY. Таким образом, бут будет работать несколько медленнее, но зато мало проводов и простой чип.

Andrey_Korabelev
21.09.2014, 22:46
Ну, хорошо, спустимся на землю и забудем. Но если интересно, у меня от твоего проекта всплыла своя идея, вот и вырвалось. Но то моя идея, и если ты не видишь смысла воткнуть четыре(!) обращения к DRAM в один такт процессора, значит оно тебе не нужно.

HardWareMan
21.09.2014, 23:33
4 обращения за 1 такт процессора? Процессор у нас работает на 2МГц, 4 обращения это 2*4=8МГц. Т.е., нужна память, способная работать на такой частоте. Период 8МГц частоты это 125нс. В текущем проекте память работает на 4МГц. Данная схема легко переносится на SVGA развертку, которую я хочу опционально запихать в CPLD (как детектить нужный режим - я уже знаю). В SVGA режиме на текущей развертке память будет работать на 10МГц, что уже близко к ее теоретическому пределу (мы все еще говорим за простые EDO DRAM со временем доступа 50/60/70 нс).
Объясни мне, зачем тебе 4 обращения на каждый такт процессора?

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

HardWareMan
22.09.2014, 16:48
Т.е., ты хочешь "ZX Spectrum с ZXM-VideoCard"? Но тогда это уже не будет "ZX Spectrum" как таковой. Тогда предложи свой список хотелок, быть может не все они расходятся с моим мировозрением.

HardWareMan
22.09.2014, 18:10
Хорошо, тогда я оставлю это просто вариантом МХ2 на ПЛМ с виртуальным но все же тактово правильным ВМ80 в небольшом корпусе.

HardWareMan
25.09.2014, 20:41
Нашел у себя K6R4008V1D (http://pdf.datasheetcatalog.com/datasheets/270/264221_DS.pdf). 512КБит х 8 шустрая SRAM (до 10нс). 2шт. Она 3.3в, что хорошо для моей CPLD (но не обязательно).

HardWareMan
07.10.2014, 22:31
У меня есть хитрый план: не ставить ПЗУ вообще. Я уже почти отладил свой "хитрый" SD/MMC контроллер, который инициализирует карту сам. Он вполне способен предоставить любой сектор сам. Если выгорит - то это будет компьютер полностью без ПЗУ.

b2m
08.10.2014, 11:25
Я уже почти отладил свой "хитрый" SD/MMC контроллер, который инициализирует карту сам.
Круто. А сможешь потом допилить его до эмуляции ВГ93? Для начала, чтобы работал с дефрагментированными файлами-образами, лежащими в корневом каталоге? Хотя бы с первым файлом, тогда не надо лезть в каталог и искать начало файла. Но чтобы начало можно было менять через порты ВГ93 какой-нибудь ничего не значащей для самого ВГ93 команды (например прыгнуть на дорожку 255 после чего послать в порт данных специальную последовательность с указанием адреса первого сектора).

HardWareMan
08.10.2014, 14:55
Ну можно. Только когда дойдет дело до реализации ВГшки, нужна будет твоя консультация. Ибо я программировал свой ВГ93 в Орионе строго по журналу Радио за 94 (вроде) год по статьям о корвете. Т.е. информация о контроллере чисто общая.

HardWareMan
13.10.2014, 12:42
В общем, идея такая: т.к. у нас проц все равно внутри CPLD, то его можно останавливать, например, сигналом READY и использовать его слот времени для пересылки данных. Такой неполный DMA. Адрес начала и размер задавать в регистрах управления контроллером. Причем, он для карты будет формировать полные 512 циклов чтения сектора, чтобы не сбить логику ее работы, а в память писать ровно столько, сколько надо. Это позволит загружать файлы прямо по месту байт в байт, не затрагивая лишние. Это в нативном режиме. В режиме эмуляции ВГ93 можно сделать останов при чтении из регистра данных ВГ93, как это сделано в контроллере дисковода для Специалиста (чтобы тот софт так же мог работать без изменений).
Касаемо полноценной эмуляции ВГ93, то было бы здорово установить размер кластера кратный 1 сектору дискеты (1КБ же, так?). Т.е., придется форматировать карту памяти с особыми параметрами (лучше если написать специальную программку). В пользу программки говорит и факт ROMless загрузки: чтобы контроллер всегда знал откуда брать загрузчик. Хотя, я думаю с SD/MMC карты никто грузиться не будет и поэтому загрузчик можно положить вместо PCшного, оставив остальные структуры как есть. Карта будет признаваться компьютером и одновременно быть загрузочной для Специалиста.

PS Нечто подобное, я думаю, можно будет сделать и для Спектрума 48К/128К.

HardWareMan
27.10.2014, 10:59
Возможно все-таки использование одной 8ми битной SRAM не лишено смысла. Если прикинуть на стандартные тайминги, то можно сделать так:
http://savepic.org/6352115.png
PixClk щелкает пиксели. PixLd загружает следующий байт для сдвига самих пикселей. AtrLd загружает значение атрибутов, их "догоняют" пиксели, задержанные на 2 точки (в спектруме, например, задержка на 4 пикселя). Страница атрибутов выбирается сигналом AtrPage, который участвует в формировании адреса синхрогенератора и процессора. В первой половине активного полупериода сигнала VM80F2 формируется сигнал обращения к ОЗУ, который активируется сигналом Screen. Таким образом обращение формируется только при обращении к экрану. Это возможно потому, что процессор гарантировано удерживает шины (адреса, данных и управления) весь активный полутакт, поэтому атрибуты из регистра цвета четко попадают в экранную область страницы атрибутов. Осталось проверить, как эта идея ляжет на тайминги SVGA. Если от памяти не потребуется сверхскорости, то я сделают так и с 16ти битным ОЗУ будет покончено раз и навсегда.

HardWareMan
27.10.2014, 13:06
Ну, похоже, что все взлетит.
http://savepic.org/6325260.png
В режиме SVGA пиксельклок равен 20МГц. Обращение к памяти равно периоду пиксельклоку или 50нс. Частота процессора при этом равна 2,5МГц, но используется уже проверенный в железе МХ2 финт с 4/5 такта, что дает эффективную скорость на уровне 2МГц. В режиме телевизионной развертки пиксельклок равен 8МГц а обращение к памяти равно половине такта пиксельклока или 62,5нс. При этом, задержка атрибута на 1 пиксель от сдвигаемого видео (в режиме SVGA 2 пикселя). Частота процессора в этом режиме строго 2МГц, за 8 точек отрабатывается 2 полноценных обращения. Сигнал обращения к экрану вырабатывает дополнительное обращение, как уже это было описано в предыдущем посте, вместе с сигналом страницы атрибутов используется для записи атрибутов. Более того, этот же сигнал позволяет реализовать автоматическое чтение атрибута из видеопамяти в регистр цвета, что было бы неплохой плюшкой. Закупленные у китайцев специально для этого проекта IS61LV5128AL-10TLI способны выдать (или принять) данные за 10нс и имеют на борту 512Кбайт. Это в 5 раз превышает требования, так что можно продолжать проект. Кварцевый генератор используется один на 80МГц. Из него легко получаются как 20МГц, так и 8МГц.

Т.к. проект предполагается реализовать на одном чипе памяти и быть максимально совместимым с МХ2, то я предлагаю следующий "распил" памяти: страницы с 0 по 5 будут обычные страницы памяти MXа, страница 6 будет выполнять роль основной страницы памяти а страница 7 - ее атрибутной части. При этом, она будет доступна целиком, как у Ориона, нижняя и верхняя (относительно экрана) части будут эмулировать ПЗУ МХа и стандарта и будут снабжены защитой от записи. Пока все, задавайте свои вопросы.

HardWareMan
16.11.2014, 20:57
Сегодня закончил клавиатуру. Я ее уже показывал, покажу еще раз:
http://savepic.org/6433427.jpg
Да, она способна передать нажатие на все кнопки сразу. :3 Да, для сброса надо нажать все 5 клавиш 'СБРОС'. :3 Да, курсорные кнопки дублируются и есть еще 4 дополнительные кнопки. В качестве интерфейса я выбрал I2C (частный случай TWI). Почему? Потому что клавка была USB и двунаправленный интерфейс не требуется. А I2C ведомый легко реализуется в CPLD как простейший конечный автомат. Старт, стоп:
http://savepic.org/6462099.png
http://savepic.org/6460051.png
Всего передается 79 бит информации: 72 кнопки оригинальной клавиатуры, 4 дополнительные кнопки, шифт, сброс и четность. По четности CPLD будет принимать решение записывать принятое в регистр или нет - простейший контроль. Битрейт я особо не рассчитывал, но получилось приемлиемо: примерно 20Кбод. Полная посылка с небольшой задержкой между пакетами занимает примерно 4мс, что дает FPS интерфейса на уровне 248Гц, что более чем достаточно:
http://savepic.org/6456979.png
Пока по прерыванию таймера происходит выталкивание текущих данных в интерфейс, прошивка параллельно опрашивает новое состояние кнопок. Неправильная матрица корректируется специальными константами, так что кнопки в пакете идут по порядку: сначала слева направо верхний ряд, потом второй и т.д. согласно схемы. В конце добавляются 4 расширенные кнопки, шифт и сброс.

Немного о контроллере. Я наконец-то перешел к АТХМегам. Здесь - 32А4.
http://savepic.org/6440597.jpg
Однако, как же мало ему надо! Работает от встроенного 32МГц RC генератора (сильная стабильность тут не нужна), кондеры только по питанию. Хочет 3.3в, которые есть у моего CPLD Специалиста. В общем, я доволен как слон. Теперь уже точно можно заняться самим компьютером.

Vslav
16.11.2014, 22:26
Осциллограф прикольный, еще такой Rigol не видел, из новых серий?
Клавиатурка красивая :)

Titus
17.11.2014, 02:39
Сегодня закончил клавиатуру. Я ее уже показывал, покажу еще раз:

Клаву из чего делал и как?

HardWareMan
17.11.2014, 04:07
Клавка серийная, пленочная. Как-то раз проходил мимо, увидел, прикинул что кнопок хватает и купил сразу 2:
http://savepic.org/6458038.jpg
http://savepic.org/6459062.jpg
http://savepic.org/6455990.jpg
Она USBшная, я использовал ее шнурок для подключения. Контроллер внутри вот такой родной:
http://savepic.org/6463158.jpg
Потом нарисовал в кореле кнопки и распечатал на самоклейке:
http://savepic.org/6452918.jpg
Вот как-то так.
PS Нижняя кнопка "Х_Х" это "ПС".

zx_
23.11.2014, 16:05
о
а файлик с кнопками для корела дай плз

а какбы матрицу этой клавки в матрицу специалиста перестроить без хирургии

HardWareMan
23.11.2014, 16:21
Вот, попутно исправил кнопку перевода строки и мелкие недочеты.
http://savepic.org/6524842.png

HardWareMan
03.08.2015, 13:18
Продолжаем тему Специалиста как SoC. Итак, концепт:
1. Это SoC, поэтому только одна микросхема и внешняя память. Я остановился на вполне паябельной EPM1270T144, куда легко влазит наша модель ВМ80 и еще остается куча места под саму схему компьютера, и SRAM на основе 512Кбх8 IS61LV5128AL-10LT со временем доступа 10нс. Весь остальной обвес чисто адаптационный. Да, только одна микросхема на 8 бит.
2. Полная реализация МХ2, однако возможен вариант с набором аппаратно переключаемых конфигураций стандарт-МХ-МХ2. Так же я планирую в нем реализовать и Орион, т.к. это не сильно сложно.
3. Поддержка как VGA так и ТВ развертки. Т.к. 8МГц не кратны 20МГц, необходимых для VGA, я решил использовать 10МГц + бордюр, в общем по Орионовски. Это, между прочим, немного корректирует аспект. Переключение разверток можно сделать автоматическим по подключаемому разъему монитора. Т.е., если подключается монитор (пин ID на земле) выбирать VGA, при подключении переходника к телевизору (ID висит) включать ТВ развертку. Но можно и принудительно-программно-джампером.
4. Процессорное ядро должно работать на родных частотах реализуемых компьютеров. 2,5МГц является базовой частотой, 2МГц сделаны пропуском тактов (как у уже реализованной МХ2 на дискретах). Сигнал управления частотой применяется в строго отведенный момент времени, чтобы не порождать глюк на сигналах, поэтому им можно управлять программно.
5. ПЗУ отсутствует. Точнее, для процессора его роль выполняет ОЗУ с блокировкой записи. Это позволяет установить SPI FLASH вроде 25х серии и загружать образ ПО по сбросу. Однако, ног хватает и на обычную NOR ПЗУ, так что вопрос пока открыт и выносится на голосование.
6. Обязательный и родной интерфейс SD/MMC с аппаратным ускорителем (а быть может и DMA).
7. Клавиатура внешняя, та что уже представлена в данной теме. Но возможно использование и PS2/USB через соответствующий контроллер.

Итак, арбитраж шины, процессор 2,5МГц:
http://savepic.su/5899858m.png (http://savepic.su/5899858.png)
Арбитраж шины, процессор 2МГц:
http://savepic.su/5902930m.png (http://savepic.su/5902930.png)
Легенда:
40MHz - основная частота с генератора. Несколько ниже рекомендуемых 50МГц, что хорошо.
PixClk - частота пикслей, на ней работают регистры видеовыхода.
PixLd - разрешение считывания информации пикселей из ОЗУ.
AtrLd - разрешение считывания информации атрибутов из ОЗУ.
AtrPage - сигнал разграничения между пикселями и атрибутами, по сути один из битов адреса синхрогенератора. Этот же сигнал используется для счетчиков развертки, т.к. он имеет только 1 период на 8 точек экрана. Специально выровнен по скважности.
SnC - сигнал разграничения доступа к ОЗУ между синхрогенератором и процессором.
VM80F1 - тактовая последовательность F1 для ВМ80.
VM80F2 - тактовая последовательность F2 для ВМ80.
RAMEn - сигнал строба управления ОЗУ. Причем, обращение блокируется во время пропуска такта процессора.
VGA - сигнал переключения между развертками VGA и ТВ.
Slow - сигнал переключения между 2,5МГц и 2МГц.

Теперь времянки. Во время ТВ режима в 8 точках экрана умещается 4 обращения, 2 из которых отдаются процессору, а 2 синхрогенератору. В этом режиме длительность строба памяти 125нс, а минимально требуемое время реагирования памяти адрес-данные 125нс (запись в видеорегистры запись происходит в середине обращения). Во время режима VGA в 8 точках экрана умещается только 2 обращения 125нс, одно из которых отдано процессору. Синхрогенератор считывает 2 раза в оставшееся время, уменьшив время обращения до 50нс. При этом, минимальное время адрес-данные при тех же условиях будут 62,5нс. Именно к этому времени следует подбирать ОЗУ.

Задавайте свои вопросы.

fifan
04.08.2015, 09:51
EPM1270T144
Точно хватит 980 ячеек? Какая модель процессора и с каким количеством требуемых ячеек используется?

512Кбх8 IS61LV5128AL-10LT со временем доступа 10нс
Для STD хватит, а для МХ RAM-диск будет 256 кБайт? Или как ты писал 0-5 страницы будут под диск задействованы, лучше уж 0-3.

По контроллеру клавиатуры. Схемой на АТМега 32А4 не поделишься, а то я тоже нашёл клаву, хочу свой контроллер сделать.

HardWareMan
04.08.2015, 16:47
http://savepic.ru/5635929.png
Думаю, хватит. Схемы клавки не было - сразу платка. Попробую срисовать, но у тебя же другая клавиатура?

fifan
04.08.2015, 16:53
но у тебя же другая клавиатура?
Ну а смысл же один: 16 линий опроса, 8 ответа, выход какой? - эмуляция ВВ55?

Vslav
04.08.2015, 17:11
http://savepic.ru/5635929.png
Думаю, хватит.
Я этот vm80a собираюсь допиливать, "по мотивам" 1801ВМ1. Там очень хорошо регистровый файл переводится на встроенную память, требуемые ресурсы раза в полтора ужмутся еще, но нужен блок памяти. Поэтому посмотрел бы в сторону MAX10, в младший микросхем все влезет, цена ~600 руб за корпус 144LQFP.

HardWareMan
04.08.2015, 20:32
Условие - использовать CPLD. CPLD - это instant on. CPLDшек сейчас 2: MAXII и MAXV. А MAX10 это FPGA+EPCS. И Cyclone4 его тут уделывает, но зачем? Нам хватает и EPM1270.

Vslav
04.08.2015, 23:09
CPLD - это instant on.
CPLDшек сейчас 2: MAXII и MAXV. А MAX10 это FPGA+EPCS.
Нет, для MAX10 именно instant on заявлен - сразу на первой страничке overview. Я ничего против CPLD не имею, довольно часто их применяю, но там довольно ограниченная структура, достаточно медленная и нет блоков памяти. Имхо, для этого проекта CPLD не самый лучший выбор. Но то такое.

HardWareMan
05.08.2015, 06:13
Мы в разных вселенных? Все продукты CPLD: (https://www.altera.com/products/cpld/max-series.html)
http://savepic.su/6012408.png
Общее у них только non-volatile, что означает "энергонезависимая" (что нам и нужно), а вот instant-on и single-chip есть только у MAXII и MAXV.
Далее, MAXII Handbook (https://www.altera.com/content/dam/altera-www/global/en_US/pdfs/literature/hb/max2/max2_mii5v1.pdf) говорит:
http://savepic.su/5999096.png
Нам не хватит 300МГц по лапкам (сноска говорит что корка умеет быстрее)?

Я не осуждаю применение FPGA, т.к. по цене/возможностям оно более оправдано. Просто условия проекта на данный момент таковы. MAXV тоже подходит, но я думаю по цене оно выйдет очень невкусно. Что касается самой FPGA, то т.к. это все же SoC (наподобие NIOS от Альтеры) то время прогрузки корки значения не имеет - человек все равно не заметит.

Vslav
05.08.2015, 06:55
Мы в разных вселенных?
...
Общее у них только non-volatile

Причем здесь вселенные? То что в сравнительной табличке на MAX10 не написано instant on - так это просто упущение, документация на семейство MAX10 говорит что instant on - есть, устройство включается мгновенно, без всяких задержек после POR.

Деление на FPGA и CPLD весьма условное. Строго говоря CPLD - это когда вся логика в единой матрице ПЛМ, 22V10 - это классический PLD. MAX7000 и MAX3000 - тоже, там вся логика в единой матрице, а триггеры вынесены в отдельные элементы. А вот MAXII - уже не классический CPLD, там логика оформлена в виде LUT, находится близко к триггеру, все это объединяется в LAB-ы + общие интерконнекты, нет единой общей матрицы ПЛМ. MAXV примерно такой же. Поэтому MAXII/MAXV - не совсем CPLD, они достаточно близки структурно к FPGA. Добавили в MAX10 блоки памяти и назвали уже FPGA - это более соответствует получившейся архитектуре.



Нам не хватит 300МГц по лапкам (сноска говорит что корка умеет быстрее)?

Хватит :) Но это достаточно новый MAXII и это, строго говоря, не CPLD, хотя Альтера его так называет. Классические CPLD (MAX7) они старые, и у них есть именно архитектурные проблемы с времянками из-за того что там длинные каналы к общей матрице, а вся логика проходит только через нее. В конце 90-х у меня было очень много геморроя с PCI всего на 33МГц с MAX7 именно из-за времянок прохождения через матрицу. FPGA тех же времен (FLEX) таких проблем не имел.

HardWareMan
05.08.2015, 12:08
Ну что ж, давай разберемся, что же такое POR для MAX10 (https://www.altera.com/en_US/pdfs/literature/hb/max-10/ug_m10_config.pdf):

Instant-on
The MAX 10 devices support instant-on feature. The instant-on mode is the fastest power-up mode for MAX 10 devices.
If you enable instant-on, the device will directly enter the configuration stage. The POR delay value will be used to delay the POR signal if the instant-on feature is not enabled.
http://savepic.su/5985782.png
И то же самое для CycloneII:
http://savepic.su/5965302.png
А все потому, что внутренний осциллятор MAXII раза в 4 быстрее (у циклона он 10МГц а у Макса от 40 до 50, если я правильно понял), и память находится на кристалле, что позволяет загружать более одного бита за раз. А если выбрать инициализацию этой внутренней памяти, то и вовсе:
http://savepic.su/6027529.png

Если быть честным, то MAXII тоже имеет время загрузки (https://www.altera.com/content/dam/altera-www/global/en_US/pdfs/literature/hb/max2/max2_mii5v1.pdf). И оно строго нормировано:

When power is applied to a MAX II device, the POR circuit monitors VCCINT and begins SRAM download at an approximate voltage of 1.7 V or 1.55 V for MAX IIG and MAX IIZ devices. From this voltage reference, SRAM download and entry into user mode takes 200 to 450 μs maximum, depending on device density. This period of time is specified as tCONFIG in the power-up timing section of the DC and Switching Characteristics chapter in the MAX II Device Handbook.
И я согласен, что расположение SRAM ячейки конфигурации непосредственно в LE/LUT значительно сокращает временную модель устройства, по сравнению с MAX3000/MAX7000.

Как я уже сказал в предыдущем своем посте: FPGA это не плохо и достаточно быстро для человека. А POR характеристика это нечто более абстрактное и в случае с SoC можно пренебречь, но нельзя не учитывать при использовании CPLD как логику в уже существующей системе.

Vslav
05.08.2015, 15:20
Ну что ж, давай разберемся, что же такое

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



И то же самое для CycloneII:

Существуют и пассивные методы конфигурации, там быстрее можно прогрузить, емнип у меня было и 20мс для 2C8, причем время было критично.

В-общем, спасибо за пост, я про эти 3мс у MAX10 не задумывался, а про сотни мкс у MAXII и не знал, у меня как-то последнее время больше Sockit в работе.

Ну и удивительно немного, обычно новое стараются узнать, тут прекрасный случай MAX10 пощупать, и недорого, и доставабельно, корпус подходящий есть. Но, раз доктор сказал MAXII, значит пусть будет MAXII :)

HardWareMan
05.08.2015, 15:28
Ну и удивительно немного, обычно новое стараются узнать, тут прекрасный случай MAX10 пощупать, и недорого, и доставабельно, корпус подходящий есть. Но, раз доктор сказал MAXII, значит пусть будет MAXII :)
Ну просто исходим из того что есть на руках: EPM570T100 у меня полсотни, EPM1270T144 еще пара-тройка десятков. А вот MAX10 нет ни одной.

fifan
05.08.2015, 17:22
HardWareMan, а схема нового компьютера есть?

HardWareMan
05.08.2015, 20:15
HardWareMan, а схема нового компьютера есть?
В разработке.

Мало LEs. На него разве-что MAH PONK или Tetris получится втиснуть:
Начинал я с таких простых игровых проектов изучать ПЛИС :)
Очень рад за тебя, но:
http://savepic.su/5969185.png
Это просто процессор ВМ80 из этой ветки (http://zx-pk.ru/showthread.php?t=23349&page=24). Остается еще около 600 ячеек. Компьютерам, которые тут обсуждаются хватает 128 - Fifan делал с внешним процессором, не даст соврать. Еще вопросы?

Ewgeny7
07.08.2015, 18:14
Интересный проект, Железный Человек :)
Уже куча интересной информации, даже в обсуждении камня.
Планируется размещение Спеца в спичечном коробке? ;)

HardWareMan
07.08.2015, 21:32
Неа, я планирую в корпусок от Блинков, вроде DIR-300 или DSL-300:
http://savepic.su/6026444.jpg
План таков: запихать туда SoC с памятью, вывести буферизированную (с преобразованием к ТТЛ) порцию сигналов расширения (шина данных, младшие адреса и выборку для навесных портов ввода-вывода) и одну ВВ55 внутри с выводом сигналов на угловую двойную гребенку на подобие как у нас на кружке был использован МРН-32. Питальник - внешний 5В 1А, внутри 3.3в стаб на 1117. Пилотный проект, соберем - увидим.

Ewgeny7
07.08.2015, 22:29
Гы... В такой корпус я упихал Орион-2009 на плисе EP1C3, а потом и Скорпион-2015 на плисине EP2C5.

HardWareMan
08.08.2015, 07:11
Гы... В такой корпус я упихал Орион-2009 на плисе EP1C3, а потом и Скорпион-2015 на плисине EP2C5.
А я планирую гибрид Специалиста и Ориона. Причем в базовом блоке сразу будет второй ППА (первый системный и поэтому не рассматриваем). А к боковой гребенке расширения можно будет подключить еще один подобный (или другой удобный) корпус со всем необходимым расширением. Если конструкция окажется удачной, тогда можно будет плату переразвести в один корпус со всеми аддонами и уже заказать на заводе. А пока это все ЛУТ. Ну и у меня еще туева хуча кассет, которые я так и не загрузил. Надеюсь, у меня хватит на все это времени.