Speccy - наш выбор!

Speccy - наш выбор! (http://zx-pk.ru/index.php)
-   Unsorted (http://zx-pk.ru/forumdisplay.php?f=13)
-   -   Спектрум на DE1 (из темы про ReVerse) (http://zx-pk.ru/showthread.php?t=15640)

Birden 13th April 2011 11:24

Спектрум на 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:

Ewgeny7 13th April 2011 11:39

Тебе нужно создать свой PLL вместо имеющегося в проекте. Посмотри частоты, которые выдает PLL в этом проекте, и создай аналогичный для ЦЫклон_2 для своей DE1.

---------- Post added at 10:39 ---------- Previous post was at 10:31 ----------

Не забудь учесть реальную частоту кварца на входе ПЛИС. Я не знаю какой кварц у тебя стоит, но вероятно не 50Мгц как на U10.

Birden 13th April 2011 11:41

Quote:

Originally Posted by Ewgeny7 (Post 375523)
Тебе нужно создать свой PLL вместо имеющегося в проекте. Посмотри частоты, которые выдает PLL в этом проекте, и создай аналогичный для ЦЫклон_2 для своей DE1.

Сначала была другая ошибка - открыл по ссылке файл altpll0.vhd и исправил там в конфигурации altpll параметр intended_device_family на "Cyclone II" (было "Cyclone III"). После этого стал ругаться fitter.
Что там еще нужно менять?

Ewgeny7 13th April 2011 11:43

Полностью удали из проекта модуль altpll. И создай свой, новый.

Birden 13th April 2011 11:43

Quote:

Originally Posted by Ewgeny7 (Post 375523)
Тебе нужно создать свой PLL вместо имеющегося в проекте. Посмотри частоты, которые выдает PLL в этом проекте, и создай аналогичный для ЦЫклон_2 для своей DE1.

---------- Post added at 10:39 ---------- Previous post was at 10:31 ----------

Не забудь учесть реальную частоту кварца на входе ПЛИС. Я не знаю какой кварц у тебя стоит, но вероятно не 50Мгц как на U10.

Судя по схеме DE1 стоит генератор 50МГц.

Ewgeny7 13th April 2011 11:45

выходные частоты - 14Мгц и 1,75Мгц

ZEK 13th April 2011 12:09

Quote:

Originally Posted by Ewgeny7 (Post 375531)
выходные частоты - 14Мгц и 1,75Мгц

1.75 PLL не сделает, ручками только делить

---------- Post added at 10:09 ---------- Previous post was at 10:08 ----------

Quote:

Originally Posted by Ewgeny7 (Post 375523)
но вероятно не 50Мгц

24,25,50Mhz

Ewgeny7 13th April 2011 12:22

Quote:

Originally Posted by ZEK (Post 375534)
1.75 PLL не сделает, ручками только делить

Делает, делает... Я же сделал на Ux.

ZEK 13th April 2011 12:24

Quote:

Originally Posted by Ewgeny7 (Post 375537)
Делает, делает... Я же сделал на Ux

не делает, в CycII PLL как бы древнее, меньше размах множителей/делителей, в CycIV вообще дробные множители/делители

Ewgeny7 13th April 2011 12:28

Quote:

Originally Posted by ZEK (Post 375539)
в CycII PLL как бы древнее,

Возможно, со вторыми ссыклонами я дела не имел. На третьем всё поделилось - 50*7/200=1,75

Birden 13th April 2011 14:00

Да, мегавизард ругается, если выбрать не 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)?

ZEK 13th April 2011 14:23

56 и 14 хорошо формируются из 14мнz

Birden 13th April 2011 14:35

Quote:

Originally Posted by ZEK (Post 375602)
56 и 14 хорошо формируются из 14мнz

У DE1 вроде как есть только 50МГц.
Вместо 14МГЦ получается 14.285714.
1.75 сделать вообще проблема - ниже 9.375 МГц сделать не дает.
56 - тоже никак, либо 50, либо 52.7, либо 60

caro 13th April 2011 15:01

Quote:

Originally Posted by Birden
У DE1 вроде как есть только 50МГц.

24, 27 и 50 МГц.
Quote:

Originally Posted by Birden
1.75 сделать вообще проблема - ниже 9.375 МГц сделать не дает.

Не обязательно эту частоту получать с помощью PLL.

Ewgeny7 13th April 2011 15:02

Quote:

Originally Posted by Birden (Post 375588)
Насколько критична частота с2 (который 56МГц)?

Менять не желательно, это частота для сканера ТВ->VGA.

Quote:

Originally Posted by Birden (Post 375604)
1.75 сделать вообще проблема - ниже 9.375 МГц сделать не дает.

А здесь можешь подать и 7, и 3.5. просто тональность несколько изменится :)

---------- Post added at 14:02 ---------- Previous post was at 14:02 ----------

Quote:

Originally Posted by caro (Post 375610)
Не обязательно эту частоту получать с помощью PLL.

Кзтате - да.

Birden 13th April 2011 15:08

Тогда подскажите, как вручную создать эти частоты?

vlad 13th April 2011 15:08

Quote:

Originally Posted by Birden (Post 375604)
У DE1 вроде как есть только 50МГц.

Для CycloneII нужно заменить модуль PLL и подобрать кратную частоту 112.5MHz и 28MHz, потом делителем на VHDL, получить нужные частоты... Или задействовать еще генератор 27МГц, тогда проще оперировать с разными частотами.
Ну это, самое простое, дальше работа с выводом звука на WM8731 тоже сложности большой не представляет...

Birden 13th April 2011 15:24

Quote:

Originally Posted by vlad (Post 375618)
Для 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. Как ему сказать, что он неправ?

vlad 13th April 2011 15:27

Quote:

Originally Posted by Birden (Post 375622)
Еще вопрос по конфигурированию: квартус ругается, что на ноге PIN_W20 висит сигнал SD_DAT. Вроде как он зарезервирован под сигнал LVDS91p/nCEO. Как ему сказать, что он неправ?

Ну это скорее вопрос в другу тему - конфигурации для DE1...

Ewgeny7 13th April 2011 15:30

Вроде так - Assign - Device - Pin option - Dual purpose pins. Там ставишь для пина nCEO значение "as I/O"

Birden 13th April 2011 15:31

Quote:

Originally Posted by caro (Post 375621)
Задай в качестве входной частоты 27 МГц.
с0 = 27*14/27 = 14 МГц
c1 = 27*56/27 = 56 МГц

при этих числах в визарде получается 14.11 МГц и 51.75 МГц

Birden 13th April 2011 15:44

Откомпилил, залил - на экране квадрат с мусором. Бордюр зеленый, а в центре мигающие знакоместа. Значит ли это, что с частотами что-то не то?

Ewgeny7 13th April 2011 16:24

Нет, это как раз замечательно :)
Готовь SD с образом ПЗУ.

Birden 13th April 2011 16:44

Quote:

Originally Posted by Ewgeny7 (Post 375660)
Нет, это как раз замечательно :)
Готовь SD с образом ПЗУ.

SD с образом из архива zxm_bios_fatall_0_23.rar ?
Запуск был со вставленной картой.
Похоже, проблемы в "районе" SD?

lisica 13th April 2011 22:53

Birden, Поиграйся клоками в прошивке...
Типа: if (clk'event and clk = '1') then меняй на значение '0', или '1' по портам 1FFD, 7FFD, DFFD

Birden 14th April 2011 06:23

Все-таки объясните, могут быть проблемы из-за того, что SRAM у DE1 c 18 битной адресацией, вместо 19?

---------- Post added at 08:23 ---------- Previous post was at 07:48 ----------

Quote:

Originally Posted by lisica (Post 375795)
Birden, Поиграйся клоками в прошивке...
Типа: if (clk'event and clk = '1') then меняй на значение '0', или '1' по портам 1FFD, 7FFD, DFFD

А это для чего? В смысле что должно меняться?

Ewgeny7 14th April 2011 09:10

Quote:

Originally Posted by Birden (Post 375896)
Все-таки объясните, могут быть проблемы из-за того, что SRAM у DE1 c 18 битной адресацией, вместо 19?

Не "может", а "будет".
Code:

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М), только там наоборот, шестнадцатибитное представление данных эмулировалось с помощью еще одного адресного разряда восьмибитной памяти.

Birden 14th April 2011 09:50

Quote:

Originally Posted by Ewgeny7 (Post 375901)
Code:

a<="111" & (not(dos) and not(p1ffd)) & (p7ffd(4) and not(p1ffd)) & a_buff(13 downto 0);
Как видно нетрезвым глазом, старший разряд адреса рулит содержимым образа ПЗУ в куске ОЗУ. Без этого куска комп не стартует.


Да, это я уже увидел.
Quote:

Тут два выхода - или заливать ПЗУ прямо во флешь на плате DE1 (там вроде как есть такая), или эмулировать старший разряд адреса ОЗУ используя "вторую половинку" из 16-битного массива шины данных ОЗУ. Подобную вещь делали при обратном переносе проекта из DE1 в u10 (Башкирия 2М), только там наоборот, шестнадцатибитное представление данных эмулировалось с помощью еще одного адресного разряда восьмибитной памяти.
Залить во flash на плате - не проблема, а вот подправить код... VHDL для меня пока что темный лес, я больше по MCU да по ARM-ам специализируюсь.

Ewgeny7 14th April 2011 11:12

Мне нужно схему DE1, тогда смогу код изменить. Или "шаблон" проекта со входами-выходами. Сильно быстро не обещаю, у меня есть еще и текущий проект.
Может еще кто поможет? Камиль (caro) вроде как планировал перенос проекта на DE1.

caro 14th April 2011 11:18

Quote:

Originally Posted by Ewgeny7
Камиль (caro) вроде как планировал перенос проекта на DE1.

Времени пока нет :)

Birden 14th April 2011 11:32

Quote:

Originally Posted by Ewgeny7 (Post 375918)
Мне нужно схему DE1, тогда смогу код изменить. Или "шаблон" проекта со входами-выходами. Сильно быстро не обещаю, у меня есть еще и текущий проект.

Схема DE1.

ZEK 14th April 2011 11:34

Если у компа шустрая турба не забываем учесть что Flash на DE1 томромзная, точно не помню но чуть ли не 120нс

Ewgeny7 14th April 2011 12:27

Quote:

Originally Posted by ZEK (Post 375924)
Если у компа шустрая турба не забываем учесть что Flash на DE1 томромзная, точно не помню но чуть ли не 120нс

на 7 Мгц будет работать. На моей самодельной борде стоит ПЗУ 90нс, проблем небыло.
А большую скорость делать смысла нет.

Quote:

Originally Posted by Birden (Post 375923)
Схема DE1

Ага, спасибо.

Ewgeny7 14th April 2011 14:45

Quote:

Originally Posted by vlad (Post 375978)
вот конфигурация для DE1.

Вау... Ты где раскопал сей экспонат? :)

---------- Post added at 13:45 ---------- Previous post was at 13:44 ----------

Quote:

Originally Posted by ZEK (Post 375981)
такого рода конструкциями вы себе глюкодром создаете,

не мы, а кто-то ОН.

ZEK 14th April 2011 14:46

Тоды ой, бес попутал

Ewgeny7 14th April 2011 15:01

Quote:

Originally Posted by vlad (Post 375986)
Не могу понять, как это связано с этой темой?

Переезжаем...

vlad 14th April 2011 15:07

Quote:

Originally Posted by Ewgeny7 (Post 375987)
Переезжаем...

DOOM блин прям :) одна часть здесь другая в другой галактике... :)

Birden 14th April 2011 15:57

Quote:

Originally Posted by vlad (Post 375978)
Birden, вот конфигурация для DE1. На большее вряд-ли у кого будет мозгов :)

Ага, спасибо, эту я первым делом запустил :smile:
Не, буду ковырять дальше, надо же когда-то начинать (я про VHDL) :biggrin:


All times are GMT +4. The time now is 16:10.

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