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

Стыковка ARM и ПЛИС.

Гость Pruga

Здравствуйте.

Стоит задача: организовать двустронний обмен данными между ПЛИС XC3S500E-PQ208 и процессором ARM EP9312 от Cirrus`a. Свойства интерфейса должны быть следующими:

1) ПЛИС выдает сигнал прерывания для процессора, по которому последний считывает данные из ПЛИСа.

2) Процессор в любой момент может обратиться к ПЛИС и загрузить в нее данные.

3) Шина данных для передачи желательна 32-х разрядная.

Хочу для связи использовать интерфейс процессора к памяти SRAM. Т.е к ПЛИС подводятся шины адреса/данных, сигналы OE, CS, WE и сигнал прерывания. Что скажете?

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


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

Здравствуйте.

Стоит задача: организовать двустронний обмен данными между ПЛИС XC3S500E-PQ208 и процессором ARM EP9312 от Cirrus`a. Свойства интерфейса должны быть следующими:

1) ПЛИС выдает сигнал прерывания для процессора, по которому последний считывает данные из ПЛИСа.

2) Процессор в любой момент может обратиться к ПЛИС и загрузить в нее данные.

3) Шина данных для передачи желательна 32-х разрядная.

Хочу для связи использовать интерфейс процессора к памяти SRAM. Т.е к ПЛИС подводятся шины адреса/данных, сигналы OE, CS, WE и сигнал прерывания. Что скажете?

 

Я реализовывал подобный интерфейс между Блэкфином и Альтерой, 16-битный. В Альтере организовывал двухпортовое ОЗУ, через которое собственно и гонялись данные. С точки зрения CPU это все видилось как часть адресного пространства. Аппаратно положил резисторы 33 Ома в шинах и все.

Абсолютно никаких проблем не было.

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


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

Что скажете?

Прикручивали EP9312 к логике (правда, к XC3S200, и шина 8 бит). Ровным счетом никаких проблем.

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


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

Используем связку Cyclon + sam7s. Шина SPI на 24 Мгц + несколько ножек на формирование прерывания готовности данных от Cyclon. Удобно что задействовано мало ножек и очень кстати PDC (данные сами грузятся в ОЗУ ARMа и по мере готовности обрабатываются). Если устраивает 3 Мб/с то это красивый вариант.

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


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

Делал аналогичное решение, но со 100 мипсовым контроллером от Silabs (C8051F133) и XC3S200, при этом загрузку ПЛИС произвожу провожу контроллером, а загрузочный модуль (в пожатом виде - размер порядка 30 с хвостиком килобайт) для него размещается также во FLASH-памяти контроллера. При этом не требуется загрузочная ПЗУшка и разъем для ее программирования.

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


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

Гость Pruga

Благодарю за ответы.

Я реализовывал подобный интерфейс между Блэкфином и Альтерой, 16-битный. В Альтере организовывал двухпортовое ОЗУ, через которое собственно и гонялись данные. С точки зрения CPU это все видилось как часть адресного пространства. Аппаратно положил резисторы 33 Ома в шинах и все.Абсолютно никаких проблем не было.
А для чего нужны резисторы в шинах??

 

Делал аналогичное решение, но со 100 мипсовым контроллером от Silabs (C8051F133) и XC3S200, при этом загрузку ПЛИС произвожу провожу контроллером, а загрузочный модуль (в пожатом виде - размер порядка 30 с хвостиком килобайт) для него размещается также во FLASH-памяти контроллера. При этом не требуется загрузочная ПЗУшка и разъем для ее программирования.
Интересно. А можете рассказать поподробнее?? Скажите, как организуется процесс загрузки данных в ПЛИС?? И в каком режиме конфигурирования установлена ПЛИС??

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


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

Скажите, как организуется процесс загрузки данных в ПЛИС?? И в каком режиме конфигурирования установлена ПЛИС??

Всё очень просто - ПЛИС ставится в режим SlaveSerial, данные передаются по SPI.

Дополнительно на процессор заводятся сигналы PRG и DONE.

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


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

Благодарю за ответы.

Я реализовывал подобный интерфейс между Блэкфином и Альтерой, 16-битный. В Альтере организовывал двухпортовое ОЗУ, через которое собственно и гонялись данные. С точки зрения CPU это все видилось как часть адресного пространства. Аппаратно положил резисторы 33 Ома в шинах и все.Абсолютно никаких проблем не было.

А для чего нужны резисторы в шинах??

 

 

Я ставил для исключения иголок на шине в момент переключения дюже шустрых микросхем. Да и блэкфиновская плата у меня единственная была- оберегал набортный кристалл, как мог. :)

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


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

Я для загрузки SPI не использовал, а сигналы CCLK, DIN, PROGR выдавал с флагов и DONE принимал на флаг.

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


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

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

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

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

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

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

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

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

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