Jump to content

    

Recommended Posts

Нужна ваша экспертная помощь новичку в ПЛИС.

Нужно выбрать ПЛИС (или несколько маленьких ПЛИС)

Задача:

1. Обмен с контроллером, который получает данные по Ethernet.

Я пока вижу это через какую то двухстороннюю память, но вопрос открыт.

2. Выдача информации на 17 Uart со скоростями 5-7Мбод

3. Получение информации с 17 uart, скорость не принципиальна.

4. Uart'ы fullduplex, т.е. 17 uart на вход и 17 на выход.

5. FPGA не сложно упаковывет посылки для uart (подсчет простеньких контрольных сумм)

 

Вопросы:

1. Выбор FPGA

2. как принято осуществлять обмен FPGA<->CPU.

Объем данных на выход ~50 байт CPU->FPGA (с высокой скоростью)

на вход ~100-200 байт FPGZ->CPU (скорость не критична)

 

Заранее спасибо всем сочуствующим.

Edited by pil

Share this post


Link to post
Share on other sites

Не вдаваясь в подробности "чем обусловлена скорость обмена 5-7 Мбод"

Скажу следующее. Для реализации честного UARTа на скорость 115200 ушло 177 логических элементов Flex6000

Если экстраполировать на ваши 17, то получаем порядка 3000 ЛЭ на UART'ы.

Плюс добавить всякие буферы и пр.

Таким образом думаю надо ориентироваться к примеру на cyclon от 5000 ЛЭ и более

Share this post


Link to post
Share on other sites
Не вдаваясь в подробности "чем обусловлена скорость обмена 5-7 Мбод"

Скажу следующее. Для реализации честного UARTа на скорость 115200 ушло 177 логических элементов Flex6000

Если экстраполировать на ваши 17, то получаем порядка 3000 ЛЭ на UART'ы.

Плюс добавить всякие буферы и пр.

Таким образом думаю надо ориентироваться к примеру на cyclon от 5000 ЛЭ и более

Скорость обусловлена задачей, как и количество абонентов.

С количеством логических элементов будет понятно при моделировании на компе

 

Интересен вопрос как соединить CPU <-> FPGA. отпадают всякие uart, spi. Вот думаю через общую память как то?

Share this post


Link to post
Share on other sites

Мне кажется, что FPGA скажем Cyclon II или III, не менее EP2C8.

И, может для таких скоростных последовательных интерфейсов, не UART а SPI, если проект позволяет?

Share this post


Link to post
Share on other sites
Мне кажется, что FPGA скажем Cyclon II или III, не менее EP2C8.

И, может для таких скоростных последовательных интерфейсов, не UART а SPI, если проект позволяет?

Спасибо за ответ.

Все таки чем связать с контроллером?

 

Там потом UART -> rs485. Расстояние 0,5-1м + помехи.

Share this post


Link to post
Share on other sites
2. как принято осуществлять обмен FPGA<->CPU.

Объем данных на выход ~50 байт CPU->FPGA (с высокой скоростью)

на вход ~100-200 байт FPGZ->CPU (скорость не критична)

Если SPI по скорости подходит то он удобен. Помотрите макс скорость SPI вашего контроллера.

Если нет то можно попробовать сделать параллельную передачу. Соединяете контроллер с FPGA 11 проводами. Из них 8 проводов данных - двунаправленные. И 3 провода управления - от контроллера в FPGA.

Один провод управления - инициализация обмена. Контроллер даёт импульс, что сигнализирует начало нового обмена.

Ещё один провод - запись. Контроллер выставляет байт данных на 8 проводов данных и даёт импульс записи. Следующий байт передать - ещё раз все проделать.

И ещё один провод - чтение. Контроллер высталяет 1 на этом проводе. Тогда FPGA выставляет байт данных, контроллер его берёт. И после этого контроллер выставляет 0 на проводе чтения. И тоже следующий байт передать - ещё раз все проделать.

В таком случае скорость передчи ограничена скоростью ногодрыга контроллера делить на 3.

На всякий случай поставьте последовательные резисторы во все провода между контроллером и FPGA, чтобы не сгорели при конфликте, например 220 Ом. И заложите несколько запасных проводов между контроллером и FPGA, напрмер прерывания завести или ещё-что нибудь может понадобиться потом.

Share this post


Link to post
Share on other sites
Нужна ваша экспертная помощь новичку в ПЛИС.

Нужно выбрать ПЛИС (или несколько маленьких ПЛИС)

Задача:

....

2. Выдача информации на 17 Uart со скоростями 5-7Мбод

3. Получение информации с 17 uart, скорость не принципиальна.

4. Uart'ы fullduplex, т.е. 17 uart на вход и 17 на выход.

5. FPGA не сложно упаковывет посылки для uart (подсчет простеньких контрольных сумм)

 

Вопросы:

1. Выбор FPGA

...

Можно сделать один многопоточный UART. И он будет работать на 17 кратной частоте. При этом логики надо будет меньше,чем при 17 отдельных...

Теперь вот такой вопрос - насколько быстрый у Вас CPU?

Ведь одновременно вести прием-передачу по 17 каналам он не сможет. Тогда зачем нужно иметь одновременно 17 передатчиков? Может быть нужно иметь 1 передатчик и на выходе мультиплексор.

А по входу можно сделать интерфейс LIN или что-то подобное... Или по входу можно сделать запись на 17 кратной частоте в память, а оттуда по-канально принимать на 1 UART. Ведь буфер по входу все равно нужен... Так что логики нужно совсем немного, а вот с памятью проблема. В ПЛИС она довольно дорогая...

Как делать многопоточные автоматы - см. статьи у меня на сайте.

А если процессор быстрый, то многопоточность можно программно реализовать в нем. И тогда к нему нужен будет только мультиплексор на вход и на выход... Скажем у блэкфина есть параллельный порт, к которому можно подключить ДМА.

 

Ну и еще есть Exar с его UART...

Удачи!

 

Share this post


Link to post
Share on other sites

При заявленной требуемой скорости наоборот лучше предельное распаралеливание, тем более, что, например, стандартный Xilinx-совский UART, занимает предельно мало ресурсов и 17 UART легко разметстятся в самом небольшом Spartan-не, другое дело, что для работы он требует 16-кратной тактовой, а это уже на заявленной скорости определенная проблема.

Share this post


Link to post
Share on other sites
А кто-нибудь пробовал работать на UART со скоростью 5-7Мбод?

20 Мегабит\Сек под RS422 на автомате на 200МГц для реализации мажоритирование 2 из 3х...

Share this post


Link to post
Share on other sites
Если SPI по скорости подходит то он удобен. Помотрите макс скорость SPI вашего контроллера.

Если нет то можно попробовать сделать параллельную передачу. Соединяете контроллер с FPGA 11 проводами.

Про SPI понятно, как вариант. Второе - интерфейс внешний памяти, может некую двухстороннюю память между ними поставить? Или сделать FPGA - внешней памятью для контроллера?

А кто-нибудь пробовал работать на UART со скоростью 5-7Мбод?

Да контроллер stm32f217, 7.5Мбод UART работает.

Можно сделать один многопоточный UART. И он будет работать на 17 кратной частоте. При этом логики надо будет меньше,чем при 17 отдельных...

Теперь вот такой вопрос - насколько быстрый у Вас CPU?

CPU - stm32f217 120МГц - пока так.

Хотелось бы распаралелить максимально, чтобы посылки в UARTы уходили одновременно.

При заявленной требуемой скорости наоборот лучше предельное распаралеливание, тем более, что, например, стандартный Xilinx-совский UART, занимает предельно мало ресурсов и 17 UART легко разметстятся в самом небольшом Spartan-не, другое дело, что для работы он требует 16-кратной тактовой, а это уже на заявленной скорости определенная проблема.

А можно объяснить в чем проблема поподробнее?

Используйте контроллер, встроенный в FPGA: Nios II (Altera) или Microblaze (Xilinx). Чем не устраивает такое решение?

Тоже думал об этом. Но опыта подобного нет. Программирую контроллеры, немного знаком с FPGA простенькими.

Боюсь не потяну.

 

+ Спасибо всем за участие.

Edited by pil

Share this post


Link to post
Share on other sites

Что в Вашем понимании означает "посылки уходили параллельно"?

Вчера перекомпилил проект UART под Cyclon III занял 140 ЛЭ. В принципе есть место для оптимизации - можно ужать ~ на 10..15 ЛЭ.

Т.е. по оптимистичным оценкам циклон 3 с минимальным объемом (5 кЛЭ) справится.

Share this post


Link to post
Share on other sites

Посмотрите на MachXO2 и XP2 семейства Lattice. Тут есть референс для UART и сколько он занимает для разных семейств

http://www.latticesemi.com/products/intell...hronousrece.cfm

Для XO2 и XP2 есть встроенная флэш и предлагается бесплатно процессор 8/32 бит - LaticeMico, получается недорогой SoC

 

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this