Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Большой мультиплексер 2х100х18
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
count_enable
Здравствуйте. Есть 2 больших матрицы (пусть будет 100х100) А и В, записанных в 2 массивах однопортовых BRAM18. Т.е. у каждого массива есть 100 18-битных выходов. Есть массив параллельных DSP48, у которого 100 18-битных входов соответственно. Надо мультиплексер, чтобы подключать или матрицу А ко входам DSP48, или же матрицу В. Целевая платформа Spartan 6. Если взять решение "в лоб" из Xilinx Design Guide и сделать мультиплексер по нему, насколько это будет плохо? Понимаю что правильным ответом будет "возьми и попробуй", но может я изобретаю плохой велосипед?
RobFPGA
Приветствую!

Ни чего страшного - за лесом деревьев не видно!
Допустим что у Вас только один dsp48 и 2 выхода с BRAM18.
Если без извратов то по другому ни как - классический 2-входовой мультиплексор на 18 бит на логике и может доп. регистр на выходе (для улучшения времянки). Естественно если у Вас 100 таких пар то и получится 2-входовый 1800 бит мультиплексор. Тут могут быть проблемы из за большого fanout для сигнала управления таким "лесом" мультиплексоров.

Можно попробовать извраты -
например - в dsp48A1 (кои водятся в Spartan6) есть входной сумматор для входов B и D - если в Вашей структуре обработки эта функция суммирования не используется то можно сразу подключить один выход BRAM18 на B а второй на D и выбирать их используя сигналы RSTB,RSTD.

Лучший же вариант это попытаться объединить эти матрицы в одной BRAM18 - тогда переключение будет всего лиш адресным битом - но это опять-же если такое позволяет структура системы.

Успехов! Rob.
count_enable
Спасибо Rob! С fanout у меня 100% будут проблемы - очень много параллельных сигналов: WE, EN, ROW_SELECT (этот вообще 10-битный, еще и синхронно надо защелкивать). Грубо, навскидку как сильно это может испортить времянку? Чтобы не ждать по часу компиляции, я пока экспериментирую с 10-15 BRAMами, вроде всё нормально.
RobFPGA
Приветствую!
Цитата(count_enable @ Dec 19 2014, 09:52) *
Спасибо Rob! С fanout у меня 100% будут проблемы - очень много параллельных сигналов: WE, EN, ROW_SELECT (этот вообще 10-битный, еще и синхронно надо защелкивать). Грубо, навскидку как сильно это может испортить времянку? Чтобы не ждать по часу компиляции, я пока экспериментирую с 10-15 BRAMами, вроде всё нормально.

Увы - диапазон ответа на это вопрос - от "Все будет зашибись!" до "Шеф! усё пропало"
поскольку сильно зависит от требуемой частоты, структуры системы и алгоритма переключения.
В любом случае управление всей этой оравой сигналов у Вас скорее всего будет каким то автоматом- соответственно проектировать его надо с учетом того что для сигналов с большим fanout либо придется параллель выходы управления (ручками в коде или через констрэйны при синтезе) либо придется делать дерево с промежуточными регистрами и соответствующем выравниванием задержек в цепях данных и управления.

Ну и естественно лучший способ оптимизации - периодически смотреть на лес вашего дизайна под другим углом - выпиливая усохшие коряги и разросшиеся буреломы зависимостей.

Успехов! Rob.


Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.