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

 
 
> Мультиплексирование шины данных между BRAM и DSP48, Virtex 5.
count_enable
сообщение Feb 11 2015, 16:16
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 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 ? (насколько мне известно, нет). Потому что если я вставляю "насыщатель" перед входом данных памяти, это опять-же довольно сильно портит скорость.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 8)
Kuzmi4
сообщение Feb 11 2015, 16:21
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 3 304
Регистрация: 13-02-07
Из: 55°55′5″ 37°52′16″
Пользователь №: 25 329



2 count_enable
касательно скорости - гляньте в P&R и что говорит STA в этих 3х случаях, там всё сразу станет видно.
А так из общих - попробуйте включить регистры на выходе памяти и на входе МАС...
Go to the top of the page
 
+Quote Post
olegras
сообщение Feb 11 2015, 16:34
Сообщение #3


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

Группа: Участник
Сообщений: 113
Регистрация: 12-03-07
Пользователь №: 26 075



А еще попробуйте (ради эксперимента чтобы сравнить тайминги) на выходе каждой BRAM подключить свой МАС-блок, а мультиплексором переключать только входы разрешения записи BRAM.
Go to the top of the page
 
+Quote Post
count_enable
сообщение Feb 11 2015, 16:41
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 310
Регистрация: 28-01-13
Из: Лондон
Пользователь №: 75 384



Ситуация 1 память-1 мас даёт такой же тайминг как без роутинга (410 МГц). Подскажите пожалуйста ЧТО именно смотреть в P&R, а то я не очень силён в этом и ничего подозрительного не вижу.
Go to the top of the page
 
+Quote Post
olegras
сообщение Feb 11 2015, 16:50
Сообщение #5


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

Группа: Участник
Сообщений: 113
Регистрация: 12-03-07
Пользователь №: 26 075



Попробуйте так: даете клоковому сигналу жесткий констрейн. P&R выдаст отрицательный slack, вот там и посмотрите что именно не вписывается в нужный тайминг...
Go to the top of the page
 
+Quote Post
count_enable
сообщение Feb 11 2015, 17:04
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 310
Регистрация: 28-01-13
Из: Лондон
Пользователь №: 75 384



Извините, немного ошибся: все данные для синтеза, без P&R. Пока еще о размещении речь не идёт.

Спасибо за совет, сейчас допиливаю код чтобы проходил P&R. И в связи с этим следующий вопрос: мне надо сделать кольцо из МАС. Т.е первый МАС в цепочке получает как один из аргументов выход последнего. Для этого использую вход PCIN, который должен специально предусмотрен в DSP48 для подобных случаев. Но вот кажется кольцо не получится сделать: ругается что ERROR:LIT:398 - PCIN bus of DSP48E symbol "firstALU/blk0000000b" can be sourced only by a PCOUT bus of a different DSP48E block.
Go to the top of the page
 
+Quote Post
Krys
сообщение Feb 13 2015, 02:56
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 2 002
Регистрация: 17-01-06
Из: Томск, Россия
Пользователь №: 13 271



дак судя по ошибке у Вас на PCIN попал сигнал PCOUT с того же DSP-блока. У Вас как я понял цепочка (кольцо) должно быть из нескольких ДСП, а получилось из одного. Ищите ошибку в подключении сигнала PCOUT.


--------------------
Зная себе цену, нужно ещё и пользоваться спросом...
Go to the top of the page
 
+Quote Post
count_enable
сообщение Feb 13 2015, 16:37
Сообщение #8


Местный
***

Группа: Свой
Сообщений: 310
Регистрация: 28-01-13
Из: Лондон
Пользователь №: 75 384



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

Но если у кого есть умные соображения на эту тему, буду весьма признателен. Так же рассматриваю переход на 7 семейство - у них счёт DSP и BRAM идёт на тысячи. Посмотрел бегло, конструктивно нужные мне элементы весьма сходны, но в DSP48 есть дополнительный вход D, что снимает вопрос с мультиплексированием входа, оставляя только мультиплексирование выхода для записи результата вычисления в BRAM.
Go to the top of the page
 
+Quote Post
Kuzmi4
сообщение Feb 13 2015, 18:03
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 3 304
Регистрация: 13-02-07
Из: 55°55′5″ 37°52′16″
Пользователь №: 25 329



2 count_enable
Там нужно смотреть на те пути по которым выдаёт эти самые 410 / 332 / 297 МГц.
Так же посмотрите пути от выхода брама до входа в дсп.. Там обычно, если в браме не включать регистры на выход, когда после комбинаторный мукс стоит - тайминги реально падают.
..
Вы бы какую то заготовку-болванку выложили, чтобы можно было оперировать одинаковыми понятиями.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 10:20
Рейтинг@Mail.ru


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