|
Мультиплексирование шины данных между BRAM и DSP48, Virtex 5. |
|
|
|
Feb 11 2015, 16:16
|
Местный
  
Группа: Свой
Сообщений: 310
Регистрация: 28-01-13
Из: Лондон
Пользователь №: 75 384

|
Имеются две однопортовые BRAM 18к каждая, и МАС-блок из DSP48 (синтезирован генератором корок). Задача: по сигналу переключать вход данных DSP48 из одной памяти на вторую. Т.е. если вход 0, то читаем данные из памяти А, а результат операции записываем в память В. Если вход 1, то наоборот. Задача кажется несложной, но тайминги очень портит. Если нету мультиплексера и постоянно читаем А: 410 МГц на virtex5. Если асинхронное мультиплексирование: i_ALU_DIN<=i_DOUT_A when SRCDST='0' else i_DOUT_B; 332 МГц! Если синхронное мультиплексирование process(clk)...if (SRCDST='0') then...else... 297 МГц!
Можно ли как-то переключаться между банками не утрачивая скорости?
Второй вопрос по насыщенной арифметике. Результат операции 48 бит, память же 18-битная. Абсолютно приемлемо для моей математики насыщение (т.е. если число больше 2^18 -1 то вместо него записываем 2^18 -1, то же для отрицательных чисел). Возможно ли это сделать при помощи DSP48 ? (насколько мне известно, нет). Потому что если я вставляю "насыщатель" перед входом данных памяти, это опять-же довольно сильно портит скорость.
|
|
|
|
|
 |
Ответов
(1 - 8)
|
Feb 13 2015, 16:37
|
Местный
  
Группа: Свой
Сообщений: 310
Регистрация: 28-01-13
Из: Лондон
Пользователь №: 75 384

|
Проясняя ситуацию из кольцом DSP48 - на форуме Хилинха мне ответили что DSP48 физически размещены "стопкой", и в самого нижнего PCIN висит в воздухе, т.е. кольцо чисто из PCIN невозможно. Я синтезировал отдельно для первого блока DSP48 с входом С вместо PCIN, в таком виде оно проходит Map. Что касается скорости мультиплексирования то теперь уже мне кажется падение скорости закономерно: мультиплексер должен синхронно переключать 18 бит, и когда делать это на CLB, то для синхронизации утрата производительности неизбежна... Пока что 332 МГц приемлемы для меня.
Но если у кого есть умные соображения на эту тему, буду весьма признателен. Так же рассматриваю переход на 7 семейство - у них счёт DSP и BRAM идёт на тысячи. Посмотрел бегло, конструктивно нужные мне элементы весьма сходны, но в DSP48 есть дополнительный вход D, что снимает вопрос с мультиплексированием входа, оставляя только мультиплексирование выхода для записи результата вычисления в BRAM.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|