Перейти к содержанию
    

Обращение к flash epcs16

Всем доброго дня)

Разрабатывается проект на cyclone III. Он достаточно объемный и внутренней памяти fpga для обработки данных не хватает, поэтому было решено задействовать оставшуюся память флешки (сейчас стоит epcs16). Возник такой вопрос: возможно ли обратиться к загрузочным ногам (DCLK, DATA, nCE, ASDI) напрямую со своего spi блока, не задействовав корки в Qsys. Пока при создании IO пинов и подключении их в pin planner при компиляции выдается ошибка "multiple pins assigned". В доках альтеры нашел только подключение через sopc/qsys.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Всем доброго дня)

Разрабатывается проект на cyclone III. Он достаточно объемный и внутренней памяти fpga для обработки данных не хватает, поэтому было решено задействовать оставшуюся память флешки (сейчас стоит epcs16). Возник такой вопрос: возможно ли обратиться к загрузочным ногам (DCLK, DATA, nCE, ASDI) напрямую со своего spi блока, не задействовав корки в Qsys. Пока при создании IO пинов и подключении их в pin planner при компиляции выдается ошибка "multiple pins assigned". В доках альтеры нашел только подключение через sopc/qsys.

Используйте мегафункцию ALTASMI_PARALLEL.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Используйте мегафункцию ALTASMI_PARALLEL.

Спасибо большое) и как я упустил это ядро)) Достаточно удобное кстати)

Но все таки возможно ли вообще обращение к этим ногам как к юзеровским?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо большое) и как я упустил это ядро)) Достаточно удобное кстати)

Но все таки возможно ли вообще обращение к этим ногам как к юзеровским?

Посмотрите, возможно ли через Device and Pin Options задать их использование как user i/o.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

внутренней памяти fpga для обработки данных не хватает, поэтому было решено задействовать оставшуюся память флешки (сейчас стоит epcs16)
А Вы её для хранения и считывания констант хотите использовать? А то из текста можно подумать, что в качестве ОЗУ.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Используйте мегафункцию ALTASMI_PARALLEL.

А я бы не рекомендовал.

 

Спасибо большое) и как я упустил это ядро)) Достаточно удобное кстати)

Но все таки возможно ли вообще обращение к этим ногам как к юзеровским?

Да, сделав на основе ASMI, потом переделал на основе доступа к этими пинам (их использование, как уже указали, нужно разрешить в опциях дивайса).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Посмотрите, возможно ли через Device and Pin Options задать их использование как user i/o.

 

Да спасибо, во вкладке Dual Purpose Pins указал их как пользовательские. Компиляция проходит. Благодарю :biggrin:

 

 

А Вы её для хранения и считывания констант хотите использовать? А то из текста можно подумать, что в качестве ОЗУ.

 

Там будут хранится массивы данных и команды.

 

 

А я бы не рекомендовал.

 

Да, сделав на основе ASMI, потом переделал на основе доступа к этими пинам (их использование, как уже указали, нужно разрешить в опциях дивайса).

 

А что с ним такое? Криво сделан?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А что с ним такое? Криво сделан?

Нормально сделан, всё работает и багов не замечено. Возможно, имелось ввиду то, что если получить доступ к ногам, то можно их вытащить на внешний master. Если использовать master в FPGA, то удобнее использовать ASMI (нет необходимости в построении протокола, хотя и простого, общения с SPI-flash).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А что с ним такое? Криво сделан?

Не то, чтобы уж криво, но неровно, факт. Мутная хрень с невнятной реализацией и корявой докой (как и большинство док альтеры :(, моё мнение (с)). В процессе освоения не обошлось без обращения в саппорт. Работоспособности добиться, в общем, удалось, но неприятно анноили такие вещи, как пачка предупреждений типа Optimized away the following RAM nodes... и далее перечислены элементы удалённой внутренней памяти, которую эта корка родила. Т.е. корка описывает память, потом синтезатор это удаляет. Избавиться от этого не представляется возможным - это их внутренние дела, юзер к этому отношения не имеет. Это явная кривизна.

 

Далее, клок. Клок надо констрейнить, и сделать это не так просто, как это делается со своими клоками. Скорость клока тоже ограничена, 10 МГц, если склероз не врёт. А флешки нынче есть очень быстрые. И более функциональные, нежели EPCS/M25P.

 

Далее, остаётся ругань на всякие Missign drive strength как раз на эти ноги, которые идут на внешнюю флешку. Любые попытки прописать на них соответствующие констрейны завершаются ошибкой. Т.е. неустранимая хрень.

 

Такое впечатление, что либо они там не тестируют это, либо им пофиг (склоняюсь к этому варианту).

 

Ну, и в итоге переписал на свой вариант, где использую только ноги ПЛИС. Получается не сложнее, всё в твоих руках, реализация на основе SPI master. Никаких "побочных эффектов", всё работает отлично, реализация прозрачная. Предсказуемость и управляемость. Этот вариант у меня получился по времени короче и по трудозатратам меньше (правда, модуль SPI master у меня уже был).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...