swayze 0 28 февраля, 2009 Опубликовано 28 февраля, 2009 · Жалоба Всем добрый вечер! Я - начинающий разработчик аппаратуры и хотел бы спросить у более опытных коллег такой вопрос: Имеется задача, решение которой предполагает довольно интенсивный поток данных между компьютером и ПЛИС фирмы Xilinx (конкретно - XC95216). Соответственно, нужно решение, которое обеспечит быструю связь между компьютером и ПЛИС. Использование USB - естественное решение, как мне кажется. Вызывает трудности дальнейшая реализация. Какой USB-контроллер и какой интерфейс взаимодействия между ним и ПЛИС выбрать? UART? ULPI? Повторюсь, определяющее решение здесь - скорость. Хотя, доступность чипов, на которых эти интерфейсы реализованы и их цена также не мало важны :) А может быть имеет смысл реализовать USB на самом ПЛИС? Насколько я знаю, у Xilinx существуют и такие решения (правда, не известно насколько они до сих пор поддерживаются). Если у Вас есть опыт в разработке такого рода устройств или просто идеи по этому поводу, пожалуйста, пишите в этот топик! Подтолкните на правильное решение ;) Заранее спасибо! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rezident 0 28 февраля, 2009 Опубликовано 28 февраля, 2009 · Жалоба Для начала неплохо бы указать величину интенсивности потока данных, его характер и желаемую латентность. А еще лучше полное описание задачи. А то необходимость сопряжения CPLD и USB выглядит как-то замысловато-надуманно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 28 февраля, 2009 Опубликовано 28 февраля, 2009 · Жалоба Контроллеры USB, хорошо подходящие для подключения к ПЛИС, есть у Cypress. Но только XC95216 - это относительно маленькая CPLD, что Вы на ней делать собираетесь? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
swayze 0 1 марта, 2009 Опубликовано 1 марта, 2009 · Жалоба Данная задача ставится для "обкатки" новых, разработанных в институте алгоритмов вычисления элементарных функций. Работа только началась, поэтому описание задачи имеет довольно туманный вид. На ПЛИС требуется разработать структуру сопроцессора, реализующего мультипликативные алгоритмы вычисления элементарных функций. Предполагается, что с компьютера будут посылаться данные в виде мультипликативного кода. На ПЛИС будут выполнятся элементарные функции, а результат будет посылаться обратно на компьютер. В конце будет происхотить подсчет производительности. Выбор современной элементной базы здесь - один из первых этапов. Из имеющихся на кафедре ПЛИС, XC95216 - самая большая, но возможно будет приобретена более производительная, если эта окажется негодной. Так что характеристики потока данных пока можно лишь предсказывать. А предсказывать лучше с преувеличением ;) Вполне возможно, что скорость USB High speed 480 Mbps окажется излишней, но пока разговор идет именно о ней. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
blackfin 23 1 марта, 2009 Опубликовано 1 марта, 2009 · Жалоба CY7C68013A CY68013 CY7C68013A Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
swayze 0 1 марта, 2009 Опубликовано 1 марта, 2009 · Жалоба CY7C68013A CY68013 CY7C68013A Спасибо, интересный вариант. А не подскажите, в чем приемущества 8-и или 16-ти разрядной шины перед ULPI интрефейсом? Или конкретно CY7C68013A перед SMSC USB3300 ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 1 марта, 2009 Опубликовано 1 марта, 2009 · Жалоба Из имеющихся на кафедре ПЛИС, XC95216 - самая большая, но возможно будет приобретена более производительная, если эта окажется негодной. Кафедре придется раскошелиться - сопроцессор из CPLD получится неважный :) В связи с этим вопрос: не лучше ли купить какой-нибудь кит с FPGA и USB на борту? А не подскажите, в чем приемущества 8-и или 16-ти разрядной шины перед ULPI интрефейсом? Или конкретно CY7C68013A перед SMSC USB3300 ? CY7C68013A - это контроллер функции с PHY, SIE, FIFO и т.д. на борту, USB3300 - это просто PHY без мозгов. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
iosifk 3 2 марта, 2009 Опубликовано 2 марта, 2009 · Жалоба Всем добрый вечер! Я - начинающий разработчик аппаратуры и хотел бы спросить у более опытных коллег такой вопрос: Имеется задача, решение которой предполагает довольно интенсивный поток данных между компьютером и ПЛИС фирмы Xilinx (конкретно - XC95216). Соответственно, нужно решение, которое обеспечит быструю связь между компьютером и ПЛИС. Для справки. Если что-то случается в тракте с USB, то процесс зависнет и дальше перезапуск только вручную. А скорости 400Мбит - это не сказка, но чт-то типа этого. В жизни получается, только если кабель короткий и очень качественный. А еще Винда сажает среднюю скорость в десятки раз... А вот Гигабитгый Ethernet - умеет сам перезапуститься. А если идет речь о больших потоках данных, то лучше купить стартовый набор для отладки по PCIe. Вот тут действительно можно гонять большие потоки данных. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Panukov_ag 0 11 марта, 2009 Опубликовано 11 марта, 2009 · Жалоба Имелся опыт разработки подобного устройства. Также пользовалась FPGA от Xilinx. Используя IP-ядра реализовали интерфейс FPGA <-> PCI. Пропускной способности для наших задач хватило с лихвой. Наверняка есть подобные ядра для реализации интерфейса FPGA <-> USB без дополнительных тараканов :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
=AK= 12 1 мая, 2009 Опубликовано 1 мая, 2009 · Жалоба Мы работаем на связке FPGA+CY7C68013A. Даже этот сравнительно простой вариант "поднять" не так уж просто, придется попыхтеть. Зато кайф в том, что все грузится по USB: после подключения фирмварь грузится в CY7C68013A, а потом через CY7C68013A код грузится в FPGA. А на варианты с реализацией USB в самом FPGA (USB PHY ессно внешний) мы забили, поскольку сочли их нереалистичными - там работы в разы больше. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mikeT 0 2 мая, 2009 Опубликовано 2 мая, 2009 · Жалоба Мы работаем на связке FPGA+CY7C68013A. Даже этот сравнительно простой вариант "поднять" не так уж просто, придется попыхтеть. Зато кайф в том, что все грузится по USB: после подключения фирмварь грузится в CY7C68013A, а потом через CY7C68013A код грузится в FPGA. Не могли бы Вы ответить на такие вопросы: Какой режим загрузки FPGA у вас используется? Вы напрямую прошивку для FPGA качаете (через USB с помощью FX2LP) или используете какой-то промежуточный буфер - например,память какую-нибудь? Поясню что я имею в виду (второй вопрос): напрямую - это принял пакет от Хоста и записал его в FPGA (конфигурационная инфа), а другой вариант - сначала скачиваете ВСЮ конфиг инфу в какой-то буфер (в FX2LP ведь не влезет, если FPGA не маленькая), а потом уже из буфера спокойно грузите FPGA Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
=AK= 12 3 мая, 2009 Опубликовано 3 мая, 2009 · Жалоба Какой режим загрузки FPGA у вас используется? Passive serial по терминологии Альтеры. Используем два варианта: - Когда ставим 56-ногий FX2, в котором нет последовательных портов, то делаем простейший бит-банг через порт. Скорость загрузки получается порядка 700 кбит/сек - Когда ставим многоножечный проц, то грузим через последовательный порт с бодовой скоростью 4 Мбит/сек. Реальная скорость получается ниже раза в 3, т.е. всего лишь раза в два больше, чем с бит-бангом. Одна из причин задержек состоит в том, что проц на лету меняет порядок следования битов в каждом байте, ведь UART выводит данные младшим битом вперед. Вы напрямую прошивку для FPGA качаете (через USB с помощью FX2LP) или используете какой-то промежуточный буфер - например,память какую-нибудь? Напрямую, через bulk pipe. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mikeT 0 6 мая, 2009 Опубликовано 6 мая, 2009 · Жалоба Passive serial по терминологии Альтеры. ... Напрямую, через bulk pipe. Хочу для полной ясности уточнить: если я правильно понял, то Альтера в любом случае грузится ТОЛЬКО от FX2LP? Никаких загрузочных микрух вы не используете. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
=AK= 12 6 мая, 2009 Опубликовано 6 мая, 2009 · Жалоба Альтера в любом случае грузится ТОЛЬКО от FX2LP? Никаких загрузочных микрух вы не используете. Совершенно верно. И для загрузки фирмваря в саму FX2LP тоже никаких загрузочных микрух не используем. Все грузится из РС по USB. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться