Просмотр полной версии : Спектрум на DE1 (из темы про ReVerse)
Всем привет!
Помогите, пожалуйста, адаптировать под DE1 прошивку, предназначенную для u10. Интересует реализация Spectrum-а.
Начал было сам, подправил в квартусе тип кристалла, переконфигурировал ноги в pin plannere, но ругается fitter:
Error: Can't implement PLL "altpll0: pll|altpll:altpll_component|pll" as Cyclone II PLL type
Error: Can't implement clock multiplication and clock division parameter values for PLL "altpll0: pll|altpll:altpll_component|pll"
Error: Can't implement PLL because Division and Multiplication cannot be achieved
Дальше моих познаний не хватает :confused:
Тебе нужно создать свой PLL вместо имеющегося в проекте. Посмотри частоты, которые выдает PLL в этом проекте, и создай аналогичный для ЦЫклон_2 для своей DE1.
---------- Post added at 10:39 ---------- Previous post was at 10:31 ----------
Не забудь учесть реальную частоту кварца на входе ПЛИС. Я не знаю какой кварц у тебя стоит, но вероятно не 50Мгц как на U10.
Тебе нужно создать свой PLL вместо имеющегося в проекте. Посмотри частоты, которые выдает PLL в этом проекте, и создай аналогичный для ЦЫклон_2 для своей DE1.
Сначала была другая ошибка - открыл по ссылке файл altpll0.vhd и исправил там в конфигурации altpll параметр intended_device_family на "Cyclone II" (было "Cyclone III"). После этого стал ругаться fitter.
Что там еще нужно менять?
Полностью удали из проекта модуль altpll. И создай свой, новый.
Тебе нужно создать свой PLL вместо имеющегося в проекте. Посмотри частоты, которые выдает PLL в этом проекте, и создай аналогичный для ЦЫклон_2 для своей DE1.
---------- Post added at 10:39 ---------- Previous post was at 10:31 ----------
Не забудь учесть реальную частоту кварца на входе ПЛИС. Я не знаю какой кварц у тебя стоит, но вероятно не 50Мгц как на U10.
Судя по схеме DE1 стоит генератор 50МГц.
выходные частоты - 14Мгц и 1,75Мгц
выходные частоты - 14Мгц и 1,75Мгц
1.75 PLL не сделает, ручками только делить
---------- Post added at 10:09 ---------- Previous post was at 10:08 ----------
но вероятно не 50Мгц
24,25,50Mhz
1.75 PLL не сделает, ручками только делить
Делает, делает... Я же сделал на Ux.
Делает, делает... Я же сделал на Ux
не делает, в CycII PLL как бы древнее, меньше размах множителей/делителей, в CycIV вообще дробные множители/делители
в CycII PLL как бы древнее,
Возможно, со вторыми ссыклонами я дела не имел. На третьем всё поделилось - 50*7/200=1,75
Да, мегавизард ругается, если выбрать не Cyclone III, a II. Ругается именно на mult/div factor's.
Появились такие вопросы:
1. Как отключить AY в исходниках? Потом разберусь, как сделать 1.75МГц вручную.
2. Насколько критична частота с2 (который 56МГц)? Он, насколько я понимаю, для RAM?
3. В плате DE1 установлена SRAM 256k x 16 (т.е. нет линии A18) - достаточно ли будет переобъявить вектор адреса (вместо 18 downto 0 указать 17 downto 0)?
56 и 14 хорошо формируются из 14мнz
56 и 14 хорошо формируются из 14мнz
У DE1 вроде как есть только 50МГц.
Вместо 14МГЦ получается 14.285714.
1.75 сделать вообще проблема - ниже 9.375 МГц сделать не дает.
56 - тоже никак, либо 50, либо 52.7, либо 60
У DE1 вроде как есть только 50МГц.24, 27 и 50 МГц.
1.75 сделать вообще проблема - ниже 9.375 МГц сделать не дает.Не обязательно эту частоту получать с помощью PLL.
Насколько критична частота с2 (который 56МГц)?
Менять не желательно, это частота для сканера ТВ->VGA.
1.75 сделать вообще проблема - ниже 9.375 МГц сделать не дает.
А здесь можешь подать и 7, и 3.5. просто тональность несколько изменится :)
---------- Post added at 14:02 ---------- Previous post was at 14:02 ----------
Не обязательно эту частоту получать с помощью PLL.
Кзтате - да.
Тогда подскажите, как вручную создать эти частоты?
У DE1 вроде как есть только 50МГц.
Для CycloneII нужно заменить модуль PLL и подобрать кратную частоту 112.5MHz и 28MHz, потом делителем на VHDL, получить нужные частоты... Или задействовать еще генератор 27МГц, тогда проще оперировать с разными частотами.
Ну это, самое простое, дальше работа с выводом звука на WM8731 тоже сложности большой не представляет...
Для CycloneII нужно заменить модуль PLL и подобрать кратную частоту 112.5MHz и 28MHz, потом делителем на VHDL, получить нужные частоты... Или задействовать еще генератор 27МГц, тогда проще оперировать с разными частотами.
Ну это, самое простое, дальше работа с выводом звука на WM8731 тоже сложности большой не представляет...
Для меня пока что это совсем не просто :smile:
---------- Post added at 17:24 ---------- Previous post was at 17:17 ----------
Еще вопрос по конфигурированию: квартус ругается, что на ноге PIN_W20 висит сигнал SD_DAT. Вроде как он зарезервирован под сигнал LVDS91p/nCEO. Как ему сказать, что он неправ?
Еще вопрос по конфигурированию: квартус ругается, что на ноге PIN_W20 висит сигнал SD_DAT. Вроде как он зарезервирован под сигнал LVDS91p/nCEO. Как ему сказать, что он неправ?
Ну это скорее вопрос в другу тему - конфигурации для DE1...
Вроде так - Assign - Device - Pin option - Dual purpose pins. Там ставишь для пина nCEO значение "as I/O"
Задай в качестве входной частоты 27 МГц.
с0 = 27*14/27 = 14 МГц
c1 = 27*56/27 = 56 МГц
при этих числах в визарде получается 14.11 МГц и 51.75 МГц
Откомпилил, залил - на экране квадрат с мусором. Бордюр зеленый, а в центре мигающие знакоместа. Значит ли это, что с частотами что-то не то?
Нет, это как раз замечательно :)
Готовь SD с образом ПЗУ.
Нет, это как раз замечательно :)
Готовь SD с образом ПЗУ.
SD с образом из архива zxm_bios_fatall_0_23.rar ?
Запуск был со вставленной картой.
Похоже, проблемы в "районе" SD?
Birden, Поиграйся клоками в прошивке...
Типа: if (clk'event and clk = '1') then меняй на значение '0', или '1' по портам 1FFD, 7FFD, DFFD
Все-таки объясните, могут быть проблемы из-за того, что SRAM у DE1 c 18 битной адресацией, вместо 19?
---------- Post added at 08:23 ---------- Previous post was at 07:48 ----------
Birden, Поиграйся клоками в прошивке...
Типа: if (clk'event and clk = '1') then меняй на значение '0', или '1' по портам 1FFD, 7FFD, DFFD
А это для чего? В смысле что должно меняться?
Все-таки объясните, могут быть проблемы из-за того, что SRAM у DE1 c 18 битной адресацией, вместо 19?
Не "может", а "будет".
a<="111" & (not(dos) and not(p1ffd)) & (p7ffd(4) and not(p1ffd)) & a_buff(13 downto 0);
Как видно нетрезвым глазом, старший разряд адреса рулит содержимым образа ПЗУ в куске ОЗУ. Без этого куска комп не стартует.
---------- Post added at 08:10 ---------- Previous post was at 08:05 ----------
Тут два выхода - или заливать ПЗУ прямо во флешь на плате DE1 (там вроде как есть такая), или эмулировать старший разряд адреса ОЗУ используя "вторую половинку" из 16-битного массива шины данных ОЗУ. Подобную вещь делали при обратном переносе проекта из DE1 в u10 (Башкирия 2М), только там наоборот, шестнадцатибитное представление данных эмулировалось с помощью еще одного адресного разряда восьмибитной памяти.
a<="111" & (not(dos) and not(p1ffd)) & (p7ffd(4) and not(p1ffd)) & a_buff(13 downto 0);
Как видно нетрезвым глазом, старший разряд адреса рулит содержимым образа ПЗУ в куске ОЗУ. Без этого куска комп не стартует.
Да, это я уже увидел.
Тут два выхода - или заливать ПЗУ прямо во флешь на плате DE1 (там вроде как есть такая), или эмулировать старший разряд адреса ОЗУ используя "вторую половинку" из 16-битного массива шины данных ОЗУ. Подобную вещь делали при обратном переносе проекта из DE1 в u10 (Башкирия 2М), только там наоборот, шестнадцатибитное представление данных эмулировалось с помощью еще одного адресного разряда восьмибитной памяти.
Залить во flash на плате - не проблема, а вот подправить код... VHDL для меня пока что темный лес, я больше по MCU да по ARM-ам специализируюсь.
Мне нужно схему DE1, тогда смогу код изменить. Или "шаблон" проекта со входами-выходами. Сильно быстро не обещаю, у меня есть еще и текущий проект.
Может еще кто поможет? Камиль (caro) вроде как планировал перенос проекта на DE1.
Камиль (caro) вроде как планировал перенос проекта на DE1.Времени пока нет :)
Мне нужно схему DE1, тогда смогу код изменить. Или "шаблон" проекта со входами-выходами. Сильно быстро не обещаю, у меня есть еще и текущий проект.
Схема DE1.
Если у компа шустрая турба не забываем учесть что Flash на DE1 томромзная, точно не помню но чуть ли не 120нс
Если у компа шустрая турба не забываем учесть что Flash на DE1 томромзная, точно не помню но чуть ли не 120нс
на 7 Мгц будет работать. На моей самодельной борде стоит ПЗУ 90нс, проблем небыло.
А большую скорость делать смысла нет.
Схема DE1
Ага, спасибо.
вот конфигурация для DE1.
Вау... Ты где раскопал сей экспонат? :)
---------- Post added at 13:45 ---------- Previous post was at 13:44 ----------
такого рода конструкциями вы себе глюкодром создаете,
не мы, а кто-то ОН.
Не могу понять, как это связано с этой темой?
Переезжаем...
Переезжаем...
DOOM блин прям :) одна часть здесь другая в другой галактике... :)
Birden, вот конфигурация для DE1. На большее вряд-ли у кого будет мозгов :)
Ага, спасибо, эту я первым делом запустил :smile:
Не, буду ковырять дальше, надо же когда-то начинать (я про VHDL) :biggrin:
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot