реклама на сайте
подробности

 
 
> Выбор шины для DSP-системы на Cyclone III 25K, AMBA AXI4 vs Wishbone vs Avalon
~Elrond~
сообщение Mar 3 2015, 10:36
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 100
Регистрация: 20-04-12
Из: Нижний Новгород
Пользователь №: 71 488



Добрый день!

Передо мной стоит задача написать систему для обнаружения модемного сигнала. Поскольку частота дискретизации низкая (9600 Гц), а ресурсов в ПЛИС немного (ПЛИС Cyclone III 25K ячеек, из которых треть занята DDC'ом), необходимо активно применять расшаривание ресурсов. Это приводит к необходимости соединения управляющих автоматов, нескольких массивов памяти и аппаратных вычислителей в единую систему. Опишу примерный состав этой системы:
1) Основной управляющий КА (возможно впоследствие будет заменён на простенький самописный софт-процессор).
2) Мост на шину EBIU процессора Blackfin. Должен иметь абсолютный приоритет на моей шине.
3) Специализированные процессоры (FIR, FFT), которые должны управляться главным КА (то есть иметь SLAVE-интерфейс), но при этом иметь доступ к памяти в качестве MASTER'а. Причём доступ к памяти должен быть в виде burst-транзакций.
4) Аппаратные вычислители (CORDIC-процессор, NCO, DIV, SQRT), являющиеся SLAVE'ами на шине (обмен данными через регистры, вписанные в общее адресное пространство шины).
5) Несколько секций памяти, каждая со своим AAU (address ariphmetic unit) для обеспечения кольцевой адресации (circle pointer) с выбранным шагом инкремента. AAU также должен управляться по шине.

Все компоненты системы самописные (на SystemVerilog), поэтому интерфейс к ним можно прикрутить любой. Саму шину планирую описать в виде SystemVerilog-интерфейса с параметризованным количеством Master'ов и Slave'ов.
Вопрос состоит в том, какой стандарт шины больше всего подходит для моей системы.
Ещё вопрос - можно ли где-нибудь достать в качестве примера открытые исходники AMBA AXI. Wishbone на opencores представлен очень широко, а адекватных примеров AMBA я не нашёл...
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
~Elrond~
сообщение Mar 11 2015, 07:54
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 100
Регистрация: 20-04-12
Из: Нижний Новгород
Пользователь №: 71 488



Serhiy_UA
Цитата
Как-то занимался аппаратным за один такт CORDIC (алгоритм Волдера) для arctg(X/Y) и sqrt(X*X +Y*Y). Для Cyclone III получилось 70 нс для 16-разрядных данных.
Это получается довольно длинная комбинационная цепь, для которой в таймквесте нужно задавать multipath. К тому же, много ресурсов съест. Поэтому я написал итеративные варианты кордика, деления и корня. Не так уж часто они нужны. А если нужны часто, или частота высокая - то развернуть в конвейер всегда можно (для кордика я это делал, для остальных не было необходимости). Свой вариант реализации я недавно выкладывал на форум.
Цитата
По поводу простого софт-процессора, есть 8-разрядный miniByte с системой из 32 команд, для Cyclone III с тактом 100МГц.
Спасибо, гляну.
Цитата
Может есть смысл оптимизировать как-то эту часть проекта? Не понятно откуда такой расход ресурсов, если только у вас не целая куча каналов. Для узкой полосы на Cyclone III FIR для двух квадратур ~500-600 LE, 8 DSP x9 и немного памяти... Всё остальное явно меньше.
1) DDS на основе LUT с коррекцией через разложение в ряд Тейлора первого порядка - 180 ячеек, 1M9K и 6 DSP.
2) CIC дециматор на 250 для двух квадратур (5 секций) - 1300 ячеек.
3) FIR resampler 320 -> 48 kHz 510 порядка для двух квадратур (32-битная арифметика) 600 ячеек, 8 DSP, 4 M9K.
4) 4-х канальная НЧ-часть для двух квадратур, 32-битная арифметика (частотный сдвиг -> дециматор на 5 90 порядка -> фильтр-селектор до 128 порядка -> частотный сдвиг, всё это для 4 каналов, плюс пятый канал-частотомер для измерения допплеровского сдвига) - 3000 ячеек, 8 DSP, 13 M9K. По ячейкам оптимизировать здесь можно, я знаю. Займусь как время будет.
5) есть ещё всякие интерфейсные модули, помимо DDC. Ещё 2000 ячеек.
Цитата
А концепция, предлагаемая альтерой, имеется ввиду Avalon неприемлима в принципе? И размещать и интерконектить всю систему в Qsys? Кроме того свои модули можно делать с поддержкой AXI Lite/AXI Stream, которые просты в реализации (полноценная AXI вам я думаю не нужна), а QSys делает автоматическое согласование шины AXI и Avalon. При этом вы можете сделать как собственный хардверный мастер, так и поставить софтовый проц. Для вашей полосы можно на обычном ниосе делать обработку верхнего уровня, векторные вычисления (Фурье, фильтрация) поддержать в железе, а-ля сопроцессоры.
Мне не нравится использовать GUI и скриптовые генераторы. Я придерживаюсть такого подхода, что нужно досконально знать, что и как в системе работает, ну и люблю красивый код, в котором нет ничего лишнего. Альтеровские генераторы по этому критерию не катят, единственное что я из них на данный момент использую - генератор для floating point functions. Насчёт ниоса я вообще сомневаюсь, слишком уж он огромен и не подходит для DSP. Вообще для систем без внешней памяти 32-bit general purpose CPU - явное расточительство в плане ценной памяти ПЛИС. Если у вас есть опровергающие доводы - готов их выслушать. sm.gif
Цитата
А можно доку про это какую нибудь, или пример реализации? rolleyes.gif
Вот в этой теме, в конце, выкладывали CORDIC for dummies, ну и мой вариант кордика на SV, сделанный по этой статье. http://electronix.ru/forum/index.php?showtopic=126481
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- ~Elrond~   Выбор шины для DSP-системы на Cyclone III 25K   Mar 3 2015, 10:36
- - ~Elrond~   Решил пока начать с wishbone. Для любителей краси...   Mar 10 2015, 14:37
|- - des00   Цитата(~Elrond~ @ Mar 10 2015, 22:37) Кон...   Mar 10 2015, 15:39
- - ~Elrond~   des00 Цитата1. Есть задержка на арбитраж.Да, это н...   Mar 10 2015, 15:55
|- - des00   Цитата(~Elrond~ @ Mar 10 2015, 23:55) Да,...   Mar 10 2015, 16:25
- - ~Elrond~   des00 Да, приоритетный мастер всегда захватывает ш...   Mar 10 2015, 16:30
|- - des00   Цитата(~Elrond~ @ Mar 11 2015, 00:30) Да,...   Mar 10 2015, 16:39
- - ~Elrond~   des00 Благодарю за ссылку на ваш вариант интерконн...   Mar 10 2015, 17:24
|- - des00   Цитата(~Elrond~ @ Mar 11 2015, 01:24) Уж ...   Mar 10 2015, 17:36
- - Serhiy_UA   По поводу шины - сказать нечего, а по следующим по...   Mar 11 2015, 06:30
|- - des00   Цитата(Serhiy_UA @ Mar 11 2015, 13:30) Ка...   Mar 11 2015, 07:48
|- - Serhiy_UA   Цитата(des00 @ Mar 11 2015, 10:48) а чем ...   Mar 11 2015, 08:09
- - serjj   2 ~Elrond~ Цитатаа ресурсов в ПЛИС немного (ПЛИС C...   Mar 11 2015, 07:21
|- - Serhiy_UA   Цитата(serjj @ Mar 11 2015, 11:21) А можн...   Mar 11 2015, 07:43
- - serjj   ЦитатаCIC дециматор на 250 для двух квадратур (5 с...   Mar 11 2015, 08:22
- - ~Elrond~   serjj ЦитатаМного. 600 LE + 10 памяти. Можно еще д...   Mar 11 2015, 08:40
- - serjj   ЦитатаCIC-дециматорна блочной памяти? Например,   Mar 11 2015, 09:10
- - ~Elrond~   Гуру системного дизайна, к вам есть ещё несколько ...   Mar 16 2015, 19:23
- - serjj   А советы от не-гуру принимаются? Цитатачто вы мо...   Mar 17 2015, 07:55
- - ~Elrond~   Попробовал сгенерить систему из 2 мастеров и 3 сле...   Mar 18 2015, 09:47
- - serjj   Qsys интерконнект это готовый продукт, если что-то...   Mar 18 2015, 11:15
- - ~Elrond~   des00 Возник вопрос по работе wishbone: при работе...   Mar 20 2015, 11:08
|- - Timmy   Цитата(~Elrond~ @ Mar 20 2015, 14:08) des...   Mar 20 2015, 11:30
- - ~Elrond~   Timmy У меня в первой версии были stall и lock, но...   Mar 20 2015, 11:41
|- - Timmy   Цитата(~Elrond~ @ Mar 20 2015, 14:41) Tim...   Mar 20 2015, 12:01
- - des00   Цитата(~Elrond~ @ Mar 20 2015, 18:08) при...   Mar 20 2015, 12:07
- - ~Elrond~   des00 Я только B4 читал. И там в пункте 3.3.1 bloc...   Mar 20 2015, 12:44
|- - des00   Цитата(~Elrond~ @ Mar 20 2015, 20:44) Я т...   Mar 20 2015, 13:05
- - ~Elrond~   Выкладываю новую версию своего интерконнекта. Учёл...   Mar 23 2015, 11:52
- - serjj   Есть вопрос по modport expressions. В документе г...   Mar 23 2015, 12:30
- - ~Elrond~   serjj Да, говорят что не поддерживаются, но на сам...   Mar 23 2015, 12:44


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 25th July 2025 - 09:44
Рейтинг@Mail.ru


Страница сгенерированна за 0.01329 секунд с 7
ELECTRONIX ©2004-2016