Кто в Питере соберется делать, черкните в личку пожалуйста, хочу "на хвост сесть". Если не сможете помочь с монтажом, свой монтажник у меня имеется. Правда пустяки пока для меня собирал, но претензий по качеству монтажа у меня к нему нет.
Вид для печати
Кто в Питере соберется делать, черкните в личку пожалуйста, хочу "на хвост сесть". Если не сможете помочь с монтажом, свой монтажник у меня имеется. Правда пустяки пока для меня собирал, но претензий по качеству монтажа у меня к нему нет.
Попробую задать вопросы "начинающего" плисавода тут - применительно и исключительно к данному девайсу!
Времена сейчас трудные по теме покупки чипов: наличие на складах и цены удручают((
Вот хочу сделать из того что реально есть в руках: XC95288XL в 144ногом корпусе. Навскидку должен заменить Альтеру но надо весь проект перекомпилировать в ISE XILINX. Установил и сразу уперся в войну несовместимостей конкурентов - в проекте используется алетровская встроенная библиотека LPM и изза нее , естественно, проект вываливает ошибку
Установил Алтеровский кватрус 13ый чтобы попробовать как-то решить эту проблемму.
Естественно попытался собрать проект из исходников и тоже получил ошибку: ругается на отсутствие библиотеки work ( в файлах video.vhd и divmmc.vhd ). Нарпимер в такой строке "U_SHIFTIN: entity work.shift_in" - это элемент из той самой проприаритарной либы "LPM" от Altera. Понимаю , что вопросы детские но все-таки не могу через них переступить и пойти дальше. Может автор подскажет ответы (видимо где-то не прописана настройка в IDE ALTERA или я ошибаюсь)?
С XILINX придется брать старые ревизии проекта - там эта либа не используется - это конечно расстраивает: лишаться всех плюшек не хотелось-бы....
work.shift_in - это да, модуль, построенный на базе какой-то мегафункции квартуса. но фактически - это обычный сдвиговый регистр, его переписать на чистом vhdl или verilog - очень просто :)
нужен регистр нужной длины и проталкивать в него новые значения (слева или справа, нужно посмотреть, что там настроено), снимать значение, соответствено, с другой стороны.
Вот готовые примеры, как это можно сделать: https://vhdlwhiz.com/shift-register/
спасибо за оперативный ответ!
Быстро пробежавшись по интернету - по советам "бывалых" все сводится, что надо руками переписать эту "уникальную мегафункцию"
Я в самом начале этого пути к вершине "плисоводства" и надо немного почитать по теме.
Про функцию я понял, что надо переписывать , если хочу это все запихнуть в XILINX.
Вот второй вопрос , почему квартус ругается на либу "work"? Кстати ISE XILINX все сам растусовал по файлам когда проект создавал из Ваших файлов и "work" прописался в параметрах файлов как название либы...
Вот чего Квартусу не хватает - не понимаю от незнания - сегодня только первый день его "прощупывал" на предмет с наскока создать существующий проект и скомпилировать его. У меня есть в большом количестве EPM7128SQI100-10 но они не потянут по обьему , к сожалению.
А воообще конечно глядя на все это "безобразие" (я имею ввиду Verilog VHDL) после многих лет общения с Си под микроконтролеры - мягко скажем очень непривычно , несмотря на то, что все пишут, Verilog близок к Си программистам...
Но Spectrum -это "второй" комп после РК-шки и он на всю жизнь )))
Глупости пишут. Несмотря на набор синтаксических символов, похожий на С, на самом деле Verilog -- это бейсикообразный язык. Именно это и сбивает с толку сишников, пытающихся писать на Верилоге. Просто надо понять и принять, что это закамуфлированный Бейсик, и писать соответственно. Тогда всё будет просто.
А VHDL -- это, разумеется, Ада с доработками для параллельного исполнения (process). В принципе, если симулятор корректно поддерживает ввод-вывод, на нём можно писать консольные программы, и они даже будут работать. Правда неясно, зачем :D
- - - Добавлено - - -
Забыл добавить. WORK -- это такая псевдобиблиотека, куда компилятор скидывает всё, что не привязано к какой-либо библиотеке (то есть, обычно весь пользовательский проект). Не надо туда ничего руками добавлять, это неправильно.
За пару дней вникания как "это" все устроено и структуировано , чисто на глаз больше Verilog ложится , если можно так сказать - как-то более лаконичен и структуирован (аналогия с Си в том , что дробится все на 100500 отдельных функциональнозаконченных функций . Кстати если брать многопоточные программы на Си то сходство еще больше усиливается ). Все это лишь предпочтения и особенности синтаксиса ))) Оба языка делают свое дело с равным результатом а иначе один из языков ушел бы с рынка...
Я уже почти "догадался" про это ( Вы подтвердили мои предположения) ) но вот почему квартус взбрыкнул на этот "work" - не понимаю((
Версия квартуса та же, что и у автора, после установки ничего не менял в настройках. Пробовал начисто проект создать с помощью добавления файлов VHDL-исходников а также путем создания директория со всеми файлами проекта , которые автор выложил в папке "syn". Реакция одинаковая... ругань на несуществующий "work"
Вопрос к автору этого замечательного компа: а турба не планируется? Хотя бы 7мгц....
Потихоньку собираю плату rev.I с турбосаундом, прошивка сконфигурирована под кварц 28мгц и цифровые выходы под скандаблер на правой части разъема клавиатуры.
Запаяна и прошита ПЛИС, запаяна память, генератор и практически вся значимая мелочевка.
Память CY62167EV30LL-45ZXI.
На композитном выходе через AD724 ничего не увидел ((
Подключил скандаблер на RGBISync, монитор вроде какую-то синхру ловит, но картинка полностью черная. Пока надеюсь, что это из-за черного бордюра и запрета доступа к памяти у видеоконтроллера.
Вопрос: на нем без процессора как-то увидеть видеопамять можно ? С мусором в виде мерцающих квадратиков, разумеется.
/IORQ, /MREQ, /M1 - что еще деактивировать надо, чтоб заработало видео ?
Добился картинки на скандаблере, сам не пойму, в чем было дело - когда стал подавать раздельно кси и сси, все заработало, потом снова вернул смесь и подал на оба входа синхра скандаблера - а оно не перестает работать...
Никакие из вышеупомянутых сигналов не блокируют доступ видео к памяти, поэтому картинка есть даже при одной плиске и генераторе. Запаял память, цп, пзу - все поехало.
Вопрос только в том, что ничего не вижу на композитном выходе. Или все ad724 с алика мертвые (одна перепилена и стерлась ацетоном полностью), или всем моим мониторам сигнал на AV не нравится.
Если кто успешно их покупал в китае последнее время, поделитесь ссылкой на продавца, пжл.
В прошлом году вот эти покупал, все настоящие.
https://aliexpress.ru/item/100500166...48824b53Trt79e
Композитный выход пока оставил в стороне, дособирал турбосаунд... сейчас уже понял, что зря запаял обе атмеги.
Собственно, собирал на том, что есть - ATmega48-20AU, у автора где-то видел заметки о том, что гнались аж даже до 40 мгц.
Исходник собрался для обоих чипов (TURBOSOUND=1 для первого и TURBOSOUND=2 для второго), для первого опцию SPEAKER=1 включал.
Конфигурация в EEPROM залита Conf_parallel_28MHz_1_75Mhz.hex. Фьюзы low: 0xE0, high: 0xDD, ext: 0xFF.
Не детектится и не играет ни один "AY".
Где ошибаюсь или как проверить, работают ли атмеги на 28 мгц ?
по композиту на нано (ревизия G): композит "в меру кривой" - на том что пробовал:
1. мелкий телек ЖК (8", матрица 640х480) - синхро ок, цвета нормальные, но насыщенность слабая.
2. простейший юсб2 "свисток" с композитом - синра есть, цвета нет.
3. внешний тв тюнер avertv box7 - по входу внешнему - синий экран. выкинув из тюнера вч-часть, подцепился внутри вместо композита от тв-приемной части, поставил подстроечник по сопротивлению входа (можно сделать регулировку сопротивления более 75ом) - синхронизация после переключения входа у тюнера появляется (после включения по питанию кадры дрожат), цвета нет.
4. автомобильные мониторы 16:10 (или 16:9, хз точно, несколько проверял) 8-10" - синий экран.
То есть может быть все еще и работало... Попробую на аналоговом телеке глянуть, хотя он тоже не классика.
Но на тфт-мониторе 5", который я пытался подключить, не было ничего ( Хотя на нем даже ленин1 без корректировки длины сси отображается неплохо, правда все несколько сдвинуто за край )
valerium, а распиновка кабеля правильная? в rev I как у raspberry, в rev J выбираемая.
Спасибо за контакт, от этого продавца получил пятерку AD724. Запаял и с первой же на композите получил картинку. Есть особенности, конечно, например при фиолетовом бордюре картинка через пару секунд искажает цвета и "факелит", но это еще могут быть баги монитора (5" а-ля автомобильный).
С турбосаундом интереснее. С атмегами48 ничего не добился, оставил их в покое.
Приехали китайские атмеги88, запаял по одной - шьются нормально, но в любых комбинациях работает только первый TS-чип (проверял в WildPlayer), каналы второго отсутствуют. То есть если прошивать наоборот (U4 - второй, U10 - первый) - история та же, работает первый, который теперь в U10, в разницей только на бипер, ибо он с U10 просто не выведен. Пересобирал прошивки обоих чипов - не повлияло. Собирал single-версию, зашивал отдельно в каждую атмегу (при этом вторую стирал) - по отдельности single работает в обоих чипах нормально. Кстати, в этом случае даже "тест v0.2" его нормально определяет и тестирует.
То есть вроде как контроллеры оба исправные и на 28мгц заводятся без вопросов. Что же я тогда делаю неправильно, есть идеи ?
Собрал карабас нано ревизия J с turbosound на atmega 88 , turbosounda с чипа u10 нет , с 13и 14 вывода есть какие-то короткие импульсы высокой частоты , которые не меняются со звуком , который идет с u4. У valeriuma похожая проблема. Что делать , может кто знает. Есть ли в этой ревизии турборежим , матрица epm3256, прошивка divmmc rev g? При подаче сигнала на вход турбо все зависает.
Никто кроме @Uzix турбосаунд-версию вроде как и не запустил полноценно.
Посему вопрос к автору ревизии rev.I, может там чо-то в сырцах и/или бинарях не то?
Или может нужно что-то пофиксить в дешифрации порта AY на стороне корки?
Цитата:
Есть ли в этой ревизии турборежим
нету... места нет в CPLD под все это.
в крайних прошивках там вообще эти доп сигналы на хедере клавиатурном - выходы RGBS, поэтому нужно аккуратненько с этим.Цитата:
При подаче сигнала на вход турбо все зависает
Надо смотреть в исходник прежде чем экспериментировать.
Я даже засомневался. Взял свою плату, хексы с гита, прошил заново флеш, еепром, фьюзы на обоих атмегах, и... всё играет.
https://cloud.err200.net/s/HZJKRTb5cJMxa6W
Вложение 77973
А есть ли треки, где все 6 каналов слышно ? Что-нибудь знакомое, например, из демо-треков дистрибутива wild player.
У меня оно тоже вроде бы играло, но каналов было слышно примерно половину...
Регистр, выбирающий один из двух "как-бы AY" турбосаунда реализуется самостоятельно каждой атмегой, правильно ? Со стороны ПЛИС все сигналы выборки совершенно параллельны ? Или в прошивке ПЛИС тоже могут быть нюансы ?
В этом треке используются оба чипа, на втором ударные (начиная с 0:35). Можно в Vortex Tracker послушать как звучала бы половинка.
Вложение 77974
А скиньте трек, думаю, так проще будет.
Вся логика выбора чипа для турбосаунда в атмегах, прошивка ПЛИС работает с ними как с одним чипом.
Чот я призадумался, выскребая из образа файл, который виден в плеере с расширение .p_S, как бы его не исказить, поэтому предложу такой вариант:
Авторский дистр WP
http://budder.narod.ru/MugenGroup/do...p0_333full.zip
в нем предлагаю послушать TS-треки
FACTOR6 (в нем есть соло, гуляющее вверх-вниз, на карабасовском TS у меня этот канал напрочь отсутствует)
FunkyEnv (на карабасе-нано тож каналов сильно не хватает)
valerium, можно через плагин inTRD к Total Commander вытаскивать.
Записал оба трека: https://cloud.err200.net/s/ZXyexTpf8kAoaSY - правда, как оказалось, карта захвата умеет только в моно (хотя на входе два тюльпана для звука...).
Звук явно несколько отличается от zxtune, но, на первый взгляд, каналы все на месте.
Ачто, тест для этого уже не подходит ?
Да, тут все правильно звучит. По крайней мере каналы все на месте.
Значит не все атмеги88 одинаково полезны (
Ладно, это повод дальше искать причину ))
Сейчас попробовал затереть обе атмеги, попрошивал в обоих комбинациях (U4 и U10 поменял местами), зашивал и свои сборки, и с гита - ничего не меняется.
Если один стираю, а в любой второй зашиваю single-сборку, то звучит как надо (насколько это должен делать эмулятор), но соот-но 3 канала.
Тест02 в этих случаях показывает один чип и CRC OK по всем регистрам.
А вайлдплеер может криво детектить TS и не использовать его режим ? А то я другим ничем и не тестировал - может в этом дело ?
В видеоролике какая версия WP ?
valerium, версия последняя, 0.333.
Точно всё правильно прошиваете?
u4_j11_emul_260_turbosound_chip0_speaker.hex (md5 4cf8845c01a5e714def656da99c5f6b4) в один чип и u10_j8_emul_260_turbosound_chip1.hex (md5 dd11fb757594bdb3d076e90e8e0cd5ab) в другой
Conf_parallel_28MHz_1_75Mhz.hex (md5 7cc92e3acf9c332a816423a1ff6a2a84) в оба чипа (после заливки хекса с прошивкой)
Фьюзы low 0xE0, high 0xDD, ext 0xFF в оба чипа
И всё это верифицируется потом корректно
Я тоже очень надеялся, что где-то косячу. Но вчера за полтора часа несколько раз прошив и перепроверив убедился, что все правильно (
Avrdude в пакетном режиме ругается на верификацию ext-фьюза, мол, читается 0x07, а должно быть 0xff, но это глюк чтения, потому что после этого отдельным заходом фьюзы читаются правильно (0xff в ext).
Попробую поиграть с более старыми версиями avr-ay, надо будет только переточить их на 28 мгц
подскажите по ПЗУ.
В архиве лежит 2 версии для 29ee040:
zc-29ee040.rom и divmmc-29ee040.rom
Что записывать в ПЗУ чтобы работали ОБЕ версии - ZC и DIVMMC?
Хочу один раз залить версию и больше не доставать из панельки ПЗУ.
и по докам _ karabas-nano-revJ.pdf - это последняя на данный момент версия(со всеми доработками и исправлениями)?
на мой прошлый вопрос (см выше) никто не ответил и я решил идти методом "тыка".
Я "скомпилировал" исходники из папки "universal": в качестве топ файла брал karabas_nano_14mhz.vhd(из соображений , что он меньше ресурсов берет от моей CPLD). Я распаял на макетке для для тестов и отладок мои вариантов печаток (не люблю резанные дорожки и паек проводов в готовом устройстве). CPLD - XC95216 XILINX. Я сделал ошибку и надо было СНАЧАЛА убедиться что 216 макроячеек хватит для данного проекта а потом уже распаивать ее на макетке. Теперь пытаюсь впихнуть в кристалл путем "вырезания" ненужного - а его в данном клоне нет вааще ((( вопрос стоит о паре процентов нехватки места на крисстале - настройки не помогают (((
Вопрос в другом - у меня "интересно" показывает картинку - зеркалит КАЖДЫЙ символ - приложу картинку для понимания.... не могу понять где я накосячил - вроде все перепроверил много раз в распайке видеовыхода.... (кстати у меня телек в NTSC и кварц и перемычки соответвующие для AD724).
И второе - он после сброса и после кнопки "BTN_NMI" выкидывает или 128К режим или в 48К. Как бы я не пытался играть с перемычками ROM_A16 "ROMBANK0" и ROM_A17 "ROMBANK1" - результат все тот-же : или 128К или 48К .... SD-Cadr - я записал файлы из папки SD.
Карта старая на 240М - должна работать по-идее.
Кстати цвета тоже нет , но тут я больше на распайку проводами грешу и и на кварц - осциллографом я так и не смог увидеть синус 3.57МГц (с делителем естественно ) - внешний генератор (генератор работает и выдает как положено и написано на кварце)при подключении к 3 ноге схлопывает картику вааще .... но это уже не сильно важно - я уже опробовал для VGA и результат меня устраивает )) Дальше - HDMI выход через Raspberry Pi Zero - но это когда запущу полностью функционал
Буду РАД если автор уделит немного времени и ответи на вопросы - я новичок (все еще) в плисоводстве и учусь на этом компе на практике )))
В ПЗУ я зашил divmmc-29ee040.rom. В настройках файла "karabas_nano_14mhz.vhd" ничего не менял в шапке .
Кстати CPLD ОЧЕНЬ сильно греется с залитой прошивкой а стертая - холодная ....Вложение 78969
Что-то столько вопросов за один раз - сложно осилить:)
1) Что записывать в ПЗУ чтобы работали ОБЕ версии - ZC и DIVMMC? - соберите сами прошивку (Makefile там есть), чтобы в одной половине было то что нужно для divmmc, а во второй половине - то что нужно для ZC, чтобы переклбчать перемычной банки.
2) обвязка для AD724 под NTSC - это, конечно, хорошо, но тогда и код надо править так, чтобы развертка тоже была NTSC :) Иначе кина не будет. Был ли в природе пентагон под ntsc я даже не знаю. И это значит, что с бордер-эффектами можно будет попрощаться.
3) NMI должна перехватываться модулем divmmc и показывать NMI browser. Если этого не происходит, значит ESXDOS не проинициализировался. При включении есть стартовое меню ESXDOS, там где отображается список найденных устройств и загруженных модулей с SD карты ?
4) То что CPLD греется - значит где-то есть конфликт, ну либо по скорости не выгребает. Без предоставления исходников сложно понять, что вы там наделали :)
Как я и писал, я ипользовал готовую из вашего github-а : divmmc-29ee040.rom. Меня больше устроил бы divmmc - он развиваеться и надеюсь, имеет больше возможностей чем ZC. Меня больше интересует сам процесс создания железки , чем ее использование))) Makefile видел но не собирал сам потому, что не понятен алгоритм работы двух устройств в одной железяке: ZC и DIVMMC. После Вашего ответа стало понятно для чего нужны перемычки ROM_A16 "ROMBANK0" и ROM_A17 "ROMBANK1". Их можно завести на Raspberry Pi pico и удаленно дергать на uPython-e))))
про это я уже подумал сам. Попробовав подключить для теста вот такую штуку на Raspberry Pi pico. Там тоже под PAL "кино" очень условное и черно-белое)))
3) NMI должна перехватываться модулем divmmc и показывать NMI browser. Если этого не происходит, значит ESXDOS не проинициализировался. При включении есть стартовое меню ESXDOS, там где отображается список найденных устройств и загруженных модулей с SD карты ?
Карта стоит в приемнике - файлы переписаны в корень из вашего раздела: karabas-nano-master\sd\divmmc\. Старта "divmmc" я так и не увидел - ни прикаких комбинациях.
4) То что CPLD греется - значит где-то есть конфликт, ну либо по скорости не выгребает. Без предоставления исходников сложно понять, что вы там наделали
Про конфликт не скажу, потому что нет осциллографа под рукой. Могу предположить , раз комп заводиться и работает то все что к нему подключено - все работает как положено. На данном этапе подключено только МИНИМУМ - ПЗУ, ПРОЦ и ОЗУ! Скорость та же что и Вас - 28МГц заводиться во-внутрь. Чип шустрый но старый))) Исходники - НИЧЕГО не менял , кроме замены сдвиговых регистров которые использовали встроенные библиотеки от ALTERA.
вот мой "код" в файле divmmc.vhd (в конце файла)
а это заменитеКод:signal clock_shift_in : std_logic;
process ( I_CLK, cnt(3) )
begin
clock_shift_in <= not I_CLK and not cnt(3);
end process;
U_SHIFTIN: entity work.shift_in
port map(
--clock_in => not I_CLK and not cnt(3),
--clock_in => '1',
clock_in => clock_shift_in,
shiftin => I_MISO,
q => O_DATA
);
O_SCLK <= I_CLK and not cnt(3);
O_MOSI <= shift_out(7);
Код:entity shift_in is
port(
clock_in : in std_logic;
shiftin : in std_logic;
q : out std_logic_vector(7 downto 0)
);
end shift_in;
architecture syn of shift_in is
signal tmp: std_logic_vector(7 downto 0);
-- signal clock : std_logic;
COMPONENT lpm_shiftreg
PORT (
clock_in : IN STD_LOGIC ;
q : OUT STD_LOGIC_VECTOR (7 DOWNTO 0);
shiftin : IN STD_LOGIC
);
END COMPONENT;
begin
process (clock_in)
begin
if rising_edge(clock_in) then
tmp <= tmp(6 downto 0)& shiftin;
end if;
end process;
q <= tmp;
end syn;
Код:entity shift_out is
port (
clock : in std_logic ;
data : in std_logic_vector (7 downto 0);
enable : in std_logic ;
load : in std_logic ;
shiftout : out std_logic
);
end shift_out;
architecture syn of shift_out is
signal sub_wire0 : std_logic ;
signal register_tmp : std_logic_vector (7 downto 0);
begin
process ( clock, load, enable )
begin
if( clock'event and clock = '1' ) then
if ( enable ='1') then
if( load = '1') then
register_tmp <= data; -- параллельная загрузка
else
register_tmp <= register_tmp(0)®ister_tmp(7 downto 1) ; -- сдвиг вправо по циклу
end if;
shiftout <= register_tmp(0) ; -- последовательный выход
end if;
end if;
end process;
а попробуйте сдвиг в другую сторону сделать чтоль, я думаю в этом проблема с отзеркаленными символами :)
вопрос в том , что двигать))) и где.... Он зеркалит каждый символ но выводит их в нужные мес а на экране.....
проверил осциллографом - все сигналы на проце похожи на правду - нет конфликтов уровней. Сигналов на SD-CARD нет вааще : ни при старте ни после манипуляций кнопками и джамперами.
я думаю, как-то так надо попробовать:
Код:entity shift_out is
port (
clock : in std_logic ;
data : in std_logic_vector (7 downto 0);
enable : in std_logic ;
load : in std_logic ;
shiftout : out std_logic
);
end shift_out;
architecture syn of shift_out is
signal sub_wire0 : std_logic ;
signal register_tmp : std_logic_vector (7 downto 0);
begin
process ( clock, load, enable )
begin
if( clock'event and clock = '1' ) then
if ( enable ='1') then
if( load = '1') then
register_tmp <= data; -- параллельная загрузка
else
register_tmp <= register_tmp(6 downto 0) & '0' ; -- сдвиг влево
end if;
shiftout <= register_tmp(7) ; -- последовательный выход
end if;
end if;
end process;
Спасибо за помощь! (не первый , и надеюсь не последний, раз консультируете по своим разработкам)
Сейчас попробую внести изменения и в моем случае получить jed файл.
Изза того что ресурсов впритык - я ограничен в любых манипуляциях в коде((( Сразу выдает ошибку , что тот или иной сигнал не может провести внутри кристалла. Изза этого вынужден был использовать файл в ввиде топа: karabas_nano_14mhz.vhd.
Если использую karabas_nano.vhd то ни одной удачной компиляции не было - нехватка ресурсов(((
Хочу еще задать вопрос.
В начале топ файла есть установки :
Я ничего не менял - но как только я меняю разрешения для divmmc и zcontroller - "компилятор" снова начинаеться жаловаться на нехватку.Код:ram_ext_std : integer range 0 to 9 := 0; -- 0 - pentagon-128
-- 1 - pentagon-512 via 6,7 bits of the #7FFD port (bit 5 is for 48k lock)
-- 2 - profi-512 via 0,1 bits of the #DFFD port
-- 3 - KAY-1024 via 7 bit #7FFD, 4,7 bits #1FFD
-- 4 - Scorpion-1024 via 6,7 bits #7FFD, 4 bit #1FFD
-- 5 - Profi-256+Kay-512 - 0 bit #DFFD, 4,7 bits #1FFD
-- 6 - Pentagon-512+Profi-256 - 6,7 bits #7FFD, 0 bit #DFD
-- 7 - Pentagon-256+Profi-512 - 7 bit #7FFD, 0,1 bits #DFFD
-- 8 - profi-1024 via 0,1,2 bits of the #DFFD port
-- 9 - Pentagon-1024 via 7,6,5 bits of the 7FFD port
enable_port_ff : boolean := true; -- enable video attribute read on port #FF
enable_port_7ffd_read : boolean := false; -- enable port 7ffd read by CPU (only it trdos mode)
enable_divmmc : boolean := false; -- enable DivMMC
enable_zcontroller : boolean := true; -- enable Z-Controller
enable_trdos : boolean := true; -- enable TR-DOS
enable_service_boot : boolean := true; -- boot into the service rom (when z-controller and tr-dos are enabled)
enable_ay_uart : boolean := true; -- enable AY port A UART
enable_bus_n_romcs : boolean := false; -- enable external BUS_N_ROMCS signal handling
enable_bus_n_iorqge : boolean := false; -- enable external BUS_N_IORQGE signal handling
enable_14mhz_freq : boolean := false -- use 14 MHz crystal instead of 28 MHz
Вопрос в следующем - будет для работать divmmc по умолчанию если все оставить как есть (см выше)? Не понятно почему divmmc запрещен. Я готов пожертвовать ZC ради места в крисстале ))) Это все равно макетка. На PCB я разведу под 288 макроячеек потом....
Попробовал:
Стало хуже - больше "букаф" нет ((( и меню 128 стало пустым - оххх
Знакоместа стали "пустыми"(( Возвращаюсь к зеркальноотображенным - с ними хоть DIVMMC можно пытаться запустить)))
0) файл karabas_nano_14mhz.vhd появился в репе случайно, когда @Kalantaj попросил под его перемаркированные генераторы сделать сборку :)
1) соответственно, за основу лучше брать актуальную версию top-level модуля
2) все эти флаги появились, собственно, также из-за нехватки ресурсов :)
3) одновременно ZC и DivMMC не будет жить. нужно включить что-то одно.
4) в любом случае, флаги нужно под себя настроить. каждый флаг влияет на условную компиляцию того или иного блока в коде
Если у вас прошивка собрана с текущими флагами,как указаны выше - то:
1) она под ZC, соотв в ПЗУ должен быть прошит образ ПЗУ под ZC
2) комп будет стартовать в GLUK reset service
3) флаг enable_14mhz_freq выключен, соотв. ожидается тактовая 28МГц, а не 14.
ну теперь понятна вся идея проекта)) Теперь можно осмысленно подойти к делу)
У меня соотвественно компиляция идет под ZC ( только с ним хватает места да и то не всякий раз ) а ПЗУ подDivMMC - как раз коллизия ((( Я внутрисхемно ПЗУ шил 2 часа - наверно поищу программатор))) на работе. Тактовую я уже понял что подобрал верно - изначально подал 14МГц и получил пустой экран и частоты в 2 раза ниже везде. А с 28МГц - все заиграло
Я сравнил тоталом, что есть в файле divmmc-29ee040.rom с файлами из папки \karabas-nano-master\roms\src\ и нашел наличие только файла "esxdos.rom"
А что там тогда расположено)) ?? Придется снова перешивать ПЗУ ....