Просмотр полной версии : ZX +3e для Altera DE2-115
Чтобы вспомнить молодость, а заодно изучить VHDL -
cделал адаптацию проекта ZX для Altera DE1 от Mike Stirling-а (http://www.mikestirling.co.uk/zx-spectrum-on-an-fpga/)
для платы Altera DE2-115 (Terasic (http://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&CategoryNo=139&No=502&PartNo=2))
Заодно в проекте обновил код CPU отсюда - http://www.fpgaarcade.com/library.htm
Исправил неточность в генерации звука в коде YM2149.. - теперь не "звенит" в киберноид1-128к:
1) неправильная опорная частота для шума (не нужно делить на 2),
2) неправильная обработка делителя частоты 0
3) неправильный уровень для частоты 0 (отчего и шел "звон")
Правильно/неправильно - основывался на исходниках эмулятора YM2149.
Так же должно лучше работать в демо на сэмплированных эффектах.
Для resiDos доступно 512кБ (на самом деле - 1MB, но он не хочет его использовать - думаю пропатчить)
Работает обмен с SD-картами.
Процессор работает на 1x, 2x, 4x скоростях...(нужно больше?)
Всё в месте занимает сейчас около 3300 LE из 114000 - место ещё есть :-D
Кому-нибудь интересно? Исходники - не жалко могу выложить.
Потыкайте меня носом - где не прав, pls =)
В планах - сделать эмуляцию порта 0ffh.
В "фантастических" планах - прилепить "вспомогательное" ядро NIOSII, на котором собрать USB/Bluetooth - и подключать джойстики от PlayStation3 %-)
=======
Прикрепил исходник.
Rom загружать с 000000h.
Если SW16 включен - работает ROM с 10000h (я туда тест ОЗУ закидывал).
Кому-нибудь интересно? Исходники - не жалко могу выложить.
Потыкайте меня носом - где не прав, pls =)
Интересно конечно, выкладывай. Темы без исходников быстро вымирают.
Интересно конечно, выкладывай. Темы без исходников быстро вымирают.
прикрепил исходник к первому сообщению.
сильно не пинайте, pls.
"не стреляйте в пианиста - играет как умеет" (с) анекдот =)
shurik-ua
20.12.2012, 12:44
больше интересует во сколько эта платка обошлась, включая доставку и растаможку ? (если не секрет конечно)
больше интересует во сколько эта платка обошлась, включая доставку и растаможку ? (если не секрет конечно)
Брал у них на сайте -
1. DE2-115 FPGA Development Kit (Academic) - $299
2. GPIO-HSTC Card - $55 (там у них свой разъем - и я решил взять эту платку, вдруг мне 40 пинов не хватит.
3. Доставка - $84.46 (из тайваня до новосибирска) - дошло за неделю.
------
Итого: $438.46
Должен добавить - что платой ОЧЕНЬ доволен - хотя мне, конечно, не с чем сравнивать - это моя первая девборда для FPGA.
Поэтому и брал такую - чтобы закрыть все возможные мои безумные идеи.
этот намного проще и понятнее для спектрумиста.
только вот компилера нет, что бы нормально писать на С и юзать библиотеки
Для такой платы как минимум нужно начинать с адаптации таких проектов:
Zet processor (http://zet.aluzina.org/index.php/Zet_processor)
MiniMig (https://github.com/rkrajnc/minimig-de1)
Спасибо за наводку!
Первый проект - не столь интересен - эта платформа до сих пор жива.
А вот второй - Commandor Amiga 500 - интересно.
Одно из основных оснований для покупки этого девайса была именно возможность построения "мертвых систем".
В своё время у меня были Радио86РК и спектрум48к. В 90/91 собрал профи. Рядом были кучи компьютеров Atari/Commandor/etc (в игровых салонах), которые я не мог себе позволить (да, наверное, особо и не стремился).
В общем, для меня это - ностальгия (что дорогого стоит) :-)
Процессор работает на 1x, 2x, 4x скоростях...(нужно больше?)Больше уже c помощью WAIT# или SRAM.
Наверное VRAM?
Думаю сделать зеркальную VRAM в memorybits CycloneIV - там порядка 452кБ. Пока с таймингами SRAM на DE2 не разобрался - использовал её для основной памяти и для памяти zxmmc интерфейса - было 128+128 - работало превосходно.
Советую для данной конфигурации "прилепить" совместимый по коду NextZ80, этот намного проще и понятнее для спектрумиста.
Что мне не нравится в разработке для FPGA - это большое время компиляции. На моем i7-2.8 этот проект собирается за 2.5 минуты. Вроде как не много, но при отладке, когда поменял кусочек посмотрел результат, и тд - напрягает. Хотя, как представлю, что вместо этого я достаю паяльник, и делаю перекоммутацию мгтф проводками - сразу "отпускает" :-)
Так вот, сдается мне, что ядро NIOS2 уже предкомпилировано и отладка с ним займет меньше времени. Ну и конечно же плюс (как это отметил господин Zen), в стандартных либах для ARM.
А какой плюс из единой системы команд ZX и периферии можно вытянуть?
А так - среди "фантастических" идей было еще сделать двухпроцессорный спектрум :-) включать/выключать второе (третье, четвертое,...) ядро по портам. Например, сделать, что первые 128-1024 байт адресного пространства у второго ядра - свое, но первое ядро его может адресовать и править. Получается все просто - поставил вектор - сформировал Reset/Int/Nmi для второго ядра командой в порт - второе ядро запустилось, выполнило задачу и встало по Halt (этот состояние от второго ядра тоже можно сделать доступным для первого). Так же второе ядро может работать на другой частоте(логичнее - более быстрой) и может иметь собственную раскладку банков памяти....
finevlad
28.11.2013, 22:37
Привет anton95
Попробовал собрать твой проект в квартусе 11 - тестовая ромка не проходит - пишет об ошибках RAM.
У майкла на сайте оставил сообщения.
картинки моих результатов вот тут
https://plus.google.com/photos/116399991036696022450/albums/5950965309466838561?authkey=CL6J1eblg6uXQQ
Работает только режим 48. Но непонятно как в него что-то из программ подгрузить. :(
Мое подозрение что надо выставить ограничения по задержкам сигналов при разводке, но я не знаю как это делается в квартусе.
Видел у Майкла же некоего Ash - у того были подобные проблемы и он выключил инизиализацию неопределенных регистров - пробовал не помогла.
finevlad
29.11.2013, 00:41
Надеюсь собиралось для Altera DE2-115. Попробуйте уже собранный проект sof, или jic. Если это и другие проекты работают с ошибками, проверяйте работу платы и памяти спец утилитами тестирования или демо к ней, возможно неисправна плата.
плата исправна
на всякий случай я проверял на >1
а собранного проекта (sof |pof) под DE2-115 я не видел
у Майка под DE1
ILoveSpeccy
29.11.2013, 08:18
Больше уже c помощью WAIT# или SRAM.
На DE2-115 4мбит m9k. Можно полноценный спек 128 хоть на x100 (350MHz) без вайтов запустить. Лишь бы софтядро потянуло :)
finevlad
29.11.2013, 13:49
Компелится нормально, проверить нет возможности, проект с sof файлом приатачил:
этот соф работает
и дело вот в этих различиях с оригиналом из начала топика:
Spectrum_de2_115.qsf:
-set_global_assignment -name CYCLONEII_OPTIMIZATION_TECHNIQUE BALANCED
+set_global_assignment -name CYCLONEII_OPTIMIZATION_TECHNIQUE SPEED
-set_global_assignment -name TIMEQUEST_REPORT_SCRIPT_INCLUDE_DEFAULT_ANALYSIS OFF
-set_global_assignment -name CDF_FILE output_files/Spectrum_de2_115.cdf
что собственно еще раз подтверждает что в проекте не хватает временных ограничений - судя по всему адресные дешифраторы получились сложными и вносят большую задержку.
finevlad
29.11.2013, 16:45
Не пишите ерунду. Внутренние частоты проекта малы и констреймами в таком случае можно пренебречь, проверено не на словах а на деле [1 (http://zx.pk.ru/showpost.php?p=316317&postcount=3)]. Проверяйте проект частями, возможно нужна логическая оптимизация, не всегда все логично делать в лоб. Помочь тут ничем больше не могу, т.к. данный проект мне не интересен.
вполне возможно
вы правда все делали под другой кристал поэтому ваша практика не совсем корректна потому не надо быть столь категоричным
я поглядел вы 1chipmsx собирали
что можете сказать на предмет PSG - в котором проекте он сделан корректнее?
ILoveSpeccy
29.11.2013, 17:24
Не пишите ерунду. Внутренние частоты проекта малы и констреймами в таком случае можно пренебречь....
Я бы так не сказал, да и вопрос этот очень спорный. С альтерами я пока проблем не имел, так как вошло в привычку сразу прописывать по крайней мере тактовую частоту. А обжегся в свое время на третьих спартанах. У меня были проблемы со спеком на XC3S700AN при частоте дизайна 21 или 28 МГц, точно не помню. Спасибо камраду IceBear который меня в нужном направлении тогда направил.
---------- Post added at 14:24 ---------- Previous post was at 14:17 ----------
Что мне не нравится в разработке для FPGA - это большое время компиляции. На моем i7-2.8 этот проект собирается за 2.5 минуты. Вроде как не много, но при отладке, когда поменял кусочек посмотрел результат, и тд - напрягает.
Ну во первых специально для этих целей люди изобрели HDL-симуляторы. Я свой код на 99% в ActiveHDL пишу и проверяю. Потом только в железе и обычно после симуляции гемороя никакого нет.
Во вторых 2.5 минуты это очень даже быстро. Вон у людей по несколько часов сервера проекты под виртексы и стратиксы собирают :)
Я думаю, сложный проект, который займёт почти весь камень на DE2-115 тоже будет часик-другой на i7 собираться.
У меня ноут с i7 собирает minimig около 10 минут. Так там логики чуть более 16 кило-LE
что можете сказать на предмет PSG - в котором проекте он сделан корректнее?
Я полез модифицировать исходный код PSG из-за "звона" в киберноиде (включите на старом ядре - думаю поймете о чем речь). Возможно это слышно ещё где-то.
---------- Post added at 12:35 ---------- Previous post was at 12:31 ----------
что собственно еще раз подтверждает что в проекте не хватает временных ограничений - судя по всему адресные дешифраторы получились сложными и вносят большую задержку.
По факту руки надо оторвать автору - кривости там много. :v2_dizzy_facepalm:
Взялся за новую версию (дошли руки), думаю zxmmc поменять на divMMC.
Сделал shadow видео память в memorybit-s - попробую прокачать - посмотреть какую частоту можно будет вытянуть из софт-ядра + SRAM
/A
Взялся за новую версию (дошли руки), думаю zxmmc поменять на divMMC.
DivMMC можешь взять у меня в репозитарии для ReVerSE-U8 (https://code.google.com/p/reverse-u8/).
delta_brest
10.06.2018, 21:56
жаль заглохла тема, потратил почти день на то чтобы все это заработало в каком-то виде, но все равно глюков полным полно, может у меня руки кривые хз....
очень помогли правки
-set_global_assignment -name CYCLONEII_OPTIMIZATION_TECHNIQUE BALANCED
+set_global_assignment -name CYCLONEII_OPTIMIZATION_TECHNIQUE SPEED
-set_global_assignment -name TIMEQUEST_REPORT_SCRIPT_INCLUDE_DEFAULT_ANALYSIS OFF
-set_global_assignment -name CDF_FILE output_files/Spectrum_de2_115.cdf
но все равно баги есть
пока разобрался с ZXMMC+ чуть не разбил плату ) в итоге как-то работает, грузит 5% tap'ов
В 2014 пробовал этот вариант. Вернее не совсем этот, т.к. не хотел прошивать флеш и перенес ромы во внутреннее озу. Вот sof (https://yadi.sk/d/Vz4hHnbH3XitJc), который тогда получился. Несколько попробованных игрушек работали.
delta_brest
11.06.2018, 13:45
В 2014 пробовал этот вариант. Вернее не совсем этот, т.к. не хотел прошивать флеш и перенес ромы во внутреннее озу. Вот sof, который тогда получился. Несколько попробованных игрушек работали.
Я прошил flash, пришлось конечно поковыряться, для тех кто будет делать в будущем, могу дать наводку - у DE2-115 есть controll panel под винду, через которую можно очистить flash и прошить. Только для того чтобы control panel подключилась к плате надо сперва прошить туда sof, через quartus. Sof лежит в папке с control panel.
У меня процентов 80 игрушек работает, но есть глюки. Например в brucee lee не было моста, там где он был нужен ) minic miner сам умирал периодически, а если ставить макс. скорость перемычками, то наблюдалось самопроизвольное нажатие кнопок. Да и у меня что-то вообще не работает AY. Попробую прошить твой sof и посмотреть что выйдет.
Если говорить не конкретно про этот спек, то мне известны как минимум 4:
Крутые
1. speccy MVV
2. tsconf MVV
Простой
3. zx (без 128) Ewgeny7
и
4. данный вариант
Все портировал и на 115, все работали
- - - Добавлено - - -
Но я мало программ пробовал
delta_brest
29.02.2020, 14:53
Я прошил flash, пришлось конечно поковыряться, для тех кто будет делать в будущем, могу дать наводку - у DE2-115 есть controll panel под винду, через которую можно очистить flash и прошить. Только для того чтобы control panel подключилась к плате надо сперва прошить туда sof, через quartus. Sof лежит в папке с control panel.
У меня процентов 80 игрушек работает, но есть глюки. Например в brucee lee не было моста, там где он был нужен ) minic miner сам умирал периодически, а если ставить макс. скорость перемычками, то наблюдалось самопроизвольное нажатие кнопок. Да и у меня что-то вообще не работает AY. Попробую прошить твой sof и посмотреть что выйдет.
прошло полтора года, а кажется не я писал (
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot