|
FPGA - USB 2.0 |
|
|
|
Feb 28 2009, 15:27
|
Группа: Новичок
Сообщений: 3
Регистрация: 16-02-09
Пользователь №: 44 973

|
Всем добрый вечер! Я - начинающий разработчик аппаратуры и хотел бы спросить у более опытных коллег такой вопрос: Имеется задача, решение которой предполагает довольно интенсивный поток данных между компьютером и ПЛИС фирмы Xilinx (конкретно - XC95216). Соответственно, нужно решение, которое обеспечит быструю связь между компьютером и ПЛИС. Использование USB - естественное решение, как мне кажется. Вызывает трудности дальнейшая реализация. Какой USB-контроллер и какой интерфейс взаимодействия между ним и ПЛИС выбрать? UART? ULPI? Повторюсь, определяющее решение здесь - скорость. Хотя, доступность чипов, на которых эти интерфейсы реализованы и их цена также не мало важны  А может быть имеет смысл реализовать USB на самом ПЛИС? Насколько я знаю, у Xilinx существуют и такие решения (правда, не известно насколько они до сих пор поддерживаются). Если у Вас есть опыт в разработке такого рода устройств или просто идеи по этому поводу, пожалуйста, пишите в этот топик! Подтолкните на правильное решение  Заранее спасибо!
|
|
|
|
|
 |
Ответов
(1 - 13)
|
Mar 1 2009, 07:35
|
Группа: Новичок
Сообщений: 3
Регистрация: 16-02-09
Пользователь №: 44 973

|
Данная задача ставится для "обкатки" новых, разработанных в институте алгоритмов вычисления элементарных функций. Работа только началась, поэтому описание задачи имеет довольно туманный вид. На ПЛИС требуется разработать структуру сопроцессора, реализующего мультипликативные алгоритмы вычисления элементарных функций. Предполагается, что с компьютера будут посылаться данные в виде мультипликативного кода. На ПЛИС будут выполнятся элементарные функции, а результат будет посылаться обратно на компьютер. В конце будет происхотить подсчет производительности. Выбор современной элементной базы здесь - один из первых этапов. Из имеющихся на кафедре ПЛИС, XC95216 - самая большая, но возможно будет приобретена более производительная, если эта окажется негодной. Так что характеристики потока данных пока можно лишь предсказывать. А предсказывать лучше с преувеличением  Вполне возможно, что скорость USB High speed 480 Mbps окажется излишней, но пока разговор идет именно о ней.
|
|
|
|
|
Mar 1 2009, 09:39
|
Группа: Новичок
Сообщений: 3
Регистрация: 16-02-09
Пользователь №: 44 973

|
Цитата(blackfin @ Mar 1 2009, 10:55)  Спасибо, интересный вариант. А не подскажите, в чем приемущества 8-и или 16-ти разрядной шины перед ULPI интрефейсом? Или конкретно CY7C68013A перед SMSC USB3300 ?
|
|
|
|
|
Mar 1 2009, 09:44
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(swayze @ Mar 1 2009, 10:35)  Из имеющихся на кафедре ПЛИС, XC95216 - самая большая, но возможно будет приобретена более производительная, если эта окажется негодной. Кафедре придется раскошелиться - сопроцессор из CPLD получится неважный  В связи с этим вопрос: не лучше ли купить какой-нибудь кит с FPGA и USB на борту? Цитата(swayze @ Mar 1 2009, 12:39)  А не подскажите, в чем приемущества 8-и или 16-ти разрядной шины перед ULPI интрефейсом? Или конкретно CY7C68013A перед SMSC USB3300 ? CY7C68013A - это контроллер функции с PHY, SIE, FIFO и т.д. на борту, USB3300 - это просто PHY без мозгов.
|
|
|
|
|
Mar 2 2009, 06:00
|
Гуру
     
Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369

|
Цитата(swayze @ Feb 28 2009, 18:27)  Всем добрый вечер! Я - начинающий разработчик аппаратуры и хотел бы спросить у более опытных коллег такой вопрос:
Имеется задача, решение которой предполагает довольно интенсивный поток данных между компьютером и ПЛИС фирмы Xilinx (конкретно - XC95216). Соответственно, нужно решение, которое обеспечит быструю связь между компьютером и ПЛИС. Для справки. Если что-то случается в тракте с USB, то процесс зависнет и дальше перезапуск только вручную. А скорости 400Мбит - это не сказка, но чт-то типа этого. В жизни получается, только если кабель короткий и очень качественный. А еще Винда сажает среднюю скорость в десятки раз... А вот Гигабитгый Ethernet - умеет сам перезапуститься. А если идет речь о больших потоках данных, то лучше купить стартовый набор для отладки по PCIe. Вот тут действительно можно гонять большие потоки данных.
--------------------
www.iosifk.narod.ru
|
|
|
|
|
May 2 2009, 11:35
|
Участник

Группа: Участник
Сообщений: 73
Регистрация: 6-02-08
Из: Новосибирск
Пользователь №: 34 789

|
Цитата(=AK= @ May 1 2009, 10:53)  Мы работаем на связке FPGA+CY7C68013A. Даже этот сравнительно простой вариант "поднять" не так уж просто, придется попыхтеть. Зато кайф в том, что все грузится по USB: после подключения фирмварь грузится в CY7C68013A, а потом через CY7C68013A код грузится в FPGA. Не могли бы Вы ответить на такие вопросы: - Какой режим загрузки FPGA у вас используется?
- Вы напрямую прошивку для FPGA качаете (через USB с помощью FX2LP) или используете какой-то промежуточный буфер - например,память какую-нибудь?
Поясню что я имею в виду (второй вопрос): напрямую - это принял пакет от Хоста и записал его в FPGA (конфигурационная инфа), а другой вариант - сначала скачиваете ВСЮ конфиг инфу в какой-то буфер (в FX2LP ведь не влезет, если FPGA не маленькая), а потом уже из буфера спокойно грузите FPGA
|
|
|
|
|
May 3 2009, 00:28
|

pontificator
     
Группа: Свой
Сообщений: 3 055
Регистрация: 8-02-05
Из: страны Оз
Пользователь №: 2 483

|
Цитата(mikeT @ May 2 2009, 21:05)  Какой режим загрузки FPGA у вас используется? Passive serial по терминологии Альтеры. Используем два варианта: - Когда ставим 56-ногий FX2, в котором нет последовательных портов, то делаем простейший бит-банг через порт. Скорость загрузки получается порядка 700 кбит/сек - Когда ставим многоножечный проц, то грузим через последовательный порт с бодовой скоростью 4 Мбит/сек. Реальная скорость получается ниже раза в 3, т.е. всего лишь раза в два больше, чем с бит-бангом. Одна из причин задержек состоит в том, что проц на лету меняет порядок следования битов в каждом байте, ведь UART выводит данные младшим битом вперед. Цитата(mikeT @ May 2 2009, 21:05)  Вы напрямую прошивку для FPGA качаете (через USB с помощью FX2LP) или используете какой-то промежуточный буфер - например,память какую-нибудь? Напрямую, через bulk pipe.
|
|
|
|
|
May 6 2009, 16:01
|
Участник

Группа: Участник
Сообщений: 73
Регистрация: 6-02-08
Из: Новосибирск
Пользователь №: 34 789

|
Цитата(=AK= @ May 3 2009, 07:28)  Passive serial по терминологии Альтеры. ... Напрямую, через bulk pipe. Хочу для полной ясности уточнить: если я правильно понял, то Альтера в любом случае грузится ТОЛЬКО от FX2LP? Никаких загрузочных микрух вы не используете.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|