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

 
 
> как на RTL заставить синтезатор использовать выделенные межкаскадные связи BCOUT-> BCIN в DSP48 Xilinx?, если вставить макрос DSP48, то связь есть, а если * на RTL - то нет
Krys
сообщение Oct 1 2014, 08:41
Сообщение #1


Гуру
******

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



Здравствуйте. Не могу на RTL заставить синтезатор использовать выделенные межкаскадные связи BCOUT-> BCIN в DSP48 Xilinx. Если вставляю макрос DSP48, то такая связь работает, а если описывают просто на RTL через символы * и +, то не хочет подсоединять через выделенные, подсоединяет через обычные порты. В прикреплении реализовал умножитель 35 на 35 битов из примера Spartan-6 FPGA DSP48A1 Slice, стр. 29, там сигнал B использует выделенные межкаскадные связи BCOUT -> BCIN. В исходнике с помощью параметра можно переключаться между 2мя различными вариантами: через макрос и просто через конструкции языка. Никак не получается заставить синтезатор использовать эти выделенные связи по второму варианту. Как уже только не исхитрялся, и атрибут KEEP_HIERARCHY ставил, и USE_DSP48, фантазия кончилась... Пробовал в ISE и в Vivado. Вообще мне надо под SPARTAN6, а Vivado его не поддерживает, пришлось в Vivado выбрать Virtex7, а там архитектура DSP48 немножко другая... хотя суть та же. Исходник под Vivado не менял. А в таком виде Vivado тоже не справилась, не захотела увидеть и провести межкаскадные связи. Хотя вот в старом документе (в свежем этого абзаца уже нет) XST User Guide for Virtex-4, Virtex-5, Spartan-3, and Newer CPLD Devices на стр. 222 говорится:
Цитата
If your design contains several interconnected macros, where each macro can be implemented on DSP48, XST attempts to interconnect DSP48 blocks using fast BCIN/BCOUT and PCIN/PCOUT connections. Such situations are typical in filter and complex multiplier descriptions. XST can build complex DSP macros and DSP48 chains across the hierarchy when Keep Hierarchy (KEEP_HIERARCHY) is set to no. This is the default in ISE® Design Suite.
Я пробовал и включать, и отключать KEEP_HIERARCHY (см. исходники) - не помогло.

Может кому удавалось заставить синтезатор?

Проблема чисто теоретическая конечно, т.к. ну не использовал он эти связи, да и фиг с ним, через обычные связи частота нисколько не ниже. Только рассыпухи чуть больше съело на внешнее дублирование задержек. Проблема скорее из разряда холивара, что написание на RTL в виде конструкций языка ничем не уступает применению громоздких макросов, имеющему кучу своих минусов. Пока что применение макросов выигрывает. Пусть и пренебрежимо незначительно.
Прикрепленные файлы
Прикрепленный файл  mult35x35.rar ( 5.97 килобайт ) Кол-во скачиваний: 52
 


--------------------
Зная себе цену, нужно ещё и пользоваться спросом...
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Krys
сообщение Jun 8 2015, 09:25
Сообщение #2


Гуру
******

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



Хочу похвастаться своими успехами.
Вот такую схему:
Прикрепленное изображение

реализовал вот таким кодом:
CODE
(* use_dsp48 = "yes" *) reg addsub_pp, muxzero_pp;
(* use_dsp48 = "yes" *) reg [DIN_BW-1 : 0] din_pp, cin_pp, din_pp2, cin_pp2;
(* use_dsp48 = "yes" *) reg [DIN_BW*2 - 1 : 0] mult;
(* use_dsp48 = "yes" *) reg [ACC_BW - 1 : 0] acc;
(* use_dsp48 = "yes" *) wire [ACC_BW - 1 : 0] dsp48_z; // z input of post-adder

// dsp48 slice logic
always @(posedge clk) begin
addsub_pp <= addsub;
muxzero_pp <= muxzero;
din_pp <= din;
cin_pp <= cin;
din_pp2 <= din_pp;
cin_pp2 <= cin_pp;

mult <= din_pp2 * cin_pp2;
if(addsub_pp == 0) begin
acc <= dsp48_z + mult;
end else begin
acc <= dsp48_z - mult;
end
end
assign dsp48_z = muxzero_pp ? acc : 0;

Т.е. это простой перемножитель комплексных чисел с накоплением суммы нескольких произведений (взятие линейной комбинации входных сигналов с применением некоторых весовых коэффициентов), реализованный в последовательной форме, когда одна операция делается за несколько тактов. Здесь необходимо переключать сложение-вычитание, а также в некоторые моменты времени начинать накопление с начала, для чего подавать 0 вместо обратной связи.
Радуюсь, что удалось обойтись вот такой малой кровью, а то поначалу светила перспектива описывать DSP48 как макроблок (неприятная рутина).

ЗЫ: это всё скушал XST под Spartan-6.


--------------------
Зная себе цену, нужно ещё и пользоваться спросом...
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Krys   как на RTL заставить синтезатор использовать выделенные межкаскадные связи BCOUT-> BCIN в DSP48 Xilinx?   Oct 1 2014, 08:41
- - Bad0512   Цитата(Krys @ Oct 1 2014, 15:41) Здравств...   Oct 1 2014, 09:33
- - Krys   Спасибо за опыт. К стати, в том же примере, которы...   Oct 1 2014, 09:48
|- - Bad0512   Цитата(Krys @ Oct 1 2014, 16:48) Спасибо ...   Oct 1 2014, 10:10
|- - Krys   Цитата(Bad0512 @ Oct 1 2014, 17:10) Что з...   Oct 2 2014, 02:20
|- - Bad0512   Цитата(Krys @ Oct 2 2014, 09:20) Вместо и...   Oct 2 2014, 04:00
||- - Krys   Цитата(Bad0512 @ Oct 2 2014, 11:00) Будет...   Oct 2 2014, 07:40
|- - Amurak   Цитата(Krys @ Oct 2 2014, 06:20) А описыв...   Oct 2 2014, 05:56
|- - Bad0512   Цитата(Amurak @ Oct 2 2014, 12:56) Как ва...   Oct 2 2014, 06:07
- - TRILLER   Добрый день. Раз уж заговорили про симплифай. Одна...   Oct 1 2014, 11:22
- - sallador   Цитата(Krys @ Oct 1 2014, 12:41) Может ко...   Oct 2 2014, 06:25
|- - Timmy   Цитата(Krys @ Jun 8 2015, 12:25) Хочу пох...   Jun 8 2015, 09:46
- - Krys   да он ничего не значит, просто его надо ставить, е...   Jun 8 2015, 10:05
- - Krys   Теперь вот самый обычный сумматор не хочет на DSP-...   Jun 29 2015, 04:43
|- - Bad0512   Цитата(Krys @ Jun 29 2015, 10:43) Теперь ...   Jun 29 2015, 05:37
|- - sallador   Цитата(Krys @ Jun 29 2015, 08:43) Теперь ...   Aug 21 2015, 11:14
- - Krys   Странно, что аккумулятор со входом сброса синтезир...   Jun 29 2015, 06:36
|- - Bad0512   Цитата(Krys @ Jun 29 2015, 12:36) Странно...   Jun 29 2015, 08:57
- - Krys   вопрос чисто принципиальный. Синтезатор ослушался ...   Jun 29 2015, 10:02
|- - TRILLER   Цитата(Krys @ Jun 29 2015, 13:02) ...прям...   Jun 29 2015, 10:31
- - Krys   ну понятно, что оно везде "рекомендация...   Jul 6 2015, 02:09
- - Krys   Мне "как отдельный компонент" не хочется...   Aug 24 2015, 04:19
- - Krys   Ещё некоторая дополнительная информация от моего к...   Mar 13 2017, 02:30


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

 


RSS Текстовая версия Сейчас: 18th August 2025 - 04:35
Рейтинг@Mail.ru


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