Как народ решает ( или обходит ) такую проблему: Циклон 3 на параллельной шине контроллера LPC2378, внутри Циклона блоки ОЗУ ( которым нужна тактовая частота для записи или чтения ). На выходе LPC набор сигналов для работы со статическим ОЗУ, тактов нет. Как использовать блоки ОЗУ Циклона в качестве внешнего ОЗУ LPC2378 ( на максимальной скорости, допускаемой контроллером )? Поиск пробовал запускать, но неудачно, может, формулировал не так. Пока приходит в голову одно - вывести с помощью таймера некую частоту, привязанную к внутренней CCLK. Похоже, можно выдать CCLK/2. Но как она будет связана с диаграммами работы с ОЗУ, задержки, смещения, их повторяемость для нескольких экземпляров, непонятно. Кстати, NXP вообще этих диаграмм с временами не приводит, очень мне это непривычно. В конце недели будет готовая плата, буду запускать, хочется и в качестве внешнего ОЗУ попробовать. Тогда посмотрю диаграммы живьем, может что прояснится.
ИМХО, так как Вам нужно сопрячь асинхронную шину процессора с синхронной памятью FPGA, то остается только тактировать последнюю со значительно большей частотой, при этом привязываться к тактовой процессора смысла нет.
Vitaliy_ARM
Sep 3 2008, 12:20
Цитата(bsp @ Sep 3 2008, 15:47)

Кстати, NXP вообще этих диаграмм с временами не приводит, очень мне это непривычно.
Да потому что они скорее всего кривые и не по спецификации! Посадил как-то Lattice на LPC2468 на асинхронную шину и мучался потом две недели, пока не нашел, что шина работает не корректно, потом подкрутил прошивку и заработало. Где-то на форуме выкладывал осциллограммы. Наверняка и в 78-м может быть что-то подобное.
На счет тактовой посмотрите, в MCI модуле вроде была возможность выдачи на ножку частоты.
Ну, если была-бы возможность вытащить такую частоту, дальше все было-бы просто. Скорость работы с ОЗУ и так определяется диаграммами контроллера, большего не надо. А так действительно возникают две асинхронные системы и для уменьшения запаздывания при обмене в самом деле надо иметь в FPGA частоту намного бОльшую, чем частота обмена контроллера с внешним ОЗУ. Дальше это уже начинает зависить от того, как контроллер дергает управляющие сигналы. Например, OE и CS выбраны постоянно, меняются только адреса ( могу напутать, но вроде при передаче блоков данных такое возможно ). Значит надо четко зафиксировать смену адреса после всех неодновременных изменений битов адреса. И так далее. Ничего смертельного в этом нет, но по сравнению с диаграммой, где все определяется простыми сигналами...
GetSmart
Sep 3 2008, 13:15
Неужели у 2378 нет сигнала XCLK на одном из пинов? В LPC2294 был такой и я его как-то раз использовал. Там же и диаграммы были. Сигнал опционально разрешается.
Цитата(GetSmart @ Sep 3 2008, 16:15)

Неужели у 2378 нет сигнала XCLK на одном из пинов? В LPC2294 был такой и я его как-то раз использовал. Там же и диаграммы были. Сигнал опционально разрешается.
Все проверил, нету. И по перечню контактов прошелся и по описанию узлов контроллера.
Цитата(bsp @ Sep 3 2008, 15:32)

Все проверил, нету. И по перечню контактов прошелся и по описанию узлов контроллера.
Клоки I2S интерфейса формально могут быть равны тактовой ядра. Вопрос в том, что c фронтами будет....
Vitaliy_ARM
Sep 3 2008, 14:58
Цитата(zltigo @ Sep 3 2008, 17:58)

Клоки I2S интерфейса формально могут быть равны тактовой ядра. Вопрос в том, что c фронтами будет....
То же про MCI: страница 404 юзермануала:
Clock Control Register (MCIClock - 0xE008 C004)
Bypass Enable bypass of clock divide logic: 0 0 Disable bypass.
1 Enable bypass. MCLK driven to card bus output (MCICLK).
Так что вроде можно выдать на MCICLK тактовую процессора
Цитата(Vitaliy_ARM @ Sep 3 2008, 16:58)

Так что вроде можно выдать на MCICLK тактовую процессора
Она присутствует только во время обмена с карточкой

и после некоторого таймаута снимается.
Цитата(GetSmart @ Sep 3 2008, 17:15)

Неужели у 2378 нет сигнала XCLK на одном из пинов? В LPC2294 был такой и я его как-то раз использовал. Там же и диаграммы были. Сигнал опционально разрешается.
Я запрограммировал в 2378 ШИМ на выдачу сигнала FCLK/4 - работает! (72МГц - ШИМ=18МГц), по идее должно работать и F/2 (могу проверить). Это удобно для тактовой скоростного сигма-дельта ацп - меняешь частоту - меняется частота дискретизации. А с клоками другой периферии у меня были проблемы!
Цитата(lebiga @ Sep 4 2008, 10:31)

Я запрограммировал в 2378 ШИМ на выдачу сигнала FCLK/4 - работает! (72МГц - ШИМ=18МГц), по идее должно работать и F/2 (могу проверить).
Проверять не надо - естественно работает, не проблема. Вопрос в получении fclk/1
Цитата(zltigo @ Sep 4 2008, 13:32)

Вопрос в получении fclk/1
Стремное это дело - получать fclk подобными способами. А если фаза вдруг изменится в новой партии? Никто же не гарантирует.
Vitaliy_ARM
Sep 4 2008, 09:44
А у вашей FPGA ФАПЧ'а случаем нету?
Цитата(aaarrr @ Sep 4 2008, 11:38)

А если фаза вдруг изменится в новой партии?
Легко

и не только при смене партии, но и при очередном включении. Можно подстраиваться...
Хлопоты, но перетактировать по внутреннему клоку FPGA, пусть даже многосотмегагерцовому, десяткомегагерцовую шину, тоже не сахар

.
Цитата(Vitaliy_ARM @ Sep 4 2008, 11:44)

А у вашей FPGA ФАПЧ'а случаем нету?
Мысль понятна, частота получается, а вот что там опять с фазой....
Vitaliy_ARM
Sep 4 2008, 10:08
Очень неплохо было бы посмотреть сигналы каким-нибудь осциллографом. Причем это надо сделать обязятельно! Хотя бы убедиться в том, что шина работает по спецификации. Скорее всего фаза не важна, если логика фпга тактируется хотя бы частотой процессора.
Для таких вещей наиболее подходит LPC2468 если повесить к нему ФПГА через SDRAM контроллер.
Цитата(Vitaliy_ARM @ Sep 4 2008, 12:44)

А у вашей FPGA ФАПЧ'а случаем нету?
Присоединяюсь, их в третьем циклоне минимум две, а внешний клок рекомендуется пропускать через PLL даже если умножения не нужно.
Цитата(zltigo @ Sep 4 2008, 12:47)

Мысль понятна, частота получается, а вот что там опять с фазой....
Фазу подвигать можно.
Цитата(Vitaliy_ARM @ Sep 4 2008, 12:08)

Очень неплохо было бы посмотреть сигналы каким-нибудь осциллографом
Не обсуждаемо

, но в данном случае Автор, например, еще проектированием занимается
Цитата
Для таких вещей наиболее подходит LPC2468 если повесить к нему ФПГА через SDRAM контроллер.
Отлично, но вопрос по 2378, у которого 8bit и только статика. Причем чипы изрядно корпусами отличаются, для того, что-бы свободы выбора не было-бы.
Добрался до железа. Попробовал вытянуть через I2S - работает, 72,0034 MHz выдает

. Фронты, насколько можно судить по имеющимуся под руками осциллографу без активных щупов, 2,5-3ns. В общем можно использовать.
Vitaliy_ARM
Sep 5 2008, 15:16
Цитата(zltigo @ Sep 5 2008, 19:15)

Добрался до железа. Попробовал вытянуть через I2S - работает, 72,0034 MHz выдает

. Фронты, насколько можно судить по имеющимуся под руками осциллографу без активных щупов, 2,5-3ns. В общем можно использовать.
Класс!
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.