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

 
 
> Каскадирование умножителей в ПЛИС (Spartan-3)
omen
сообщение Dec 9 2008, 23:09
Сообщение #1





Группа: Участник
Сообщений: 12
Регистрация: 6-10-08
Пользователь №: 40 731



Подскажите пожалуйсто, может кто уже сталкивался. Как можно выполнить каскадирование умножителей в ПЛИС семейства Spartan-3. Там есть блоки умножителей MULT18X18, MULT18X18SIO, последний собственно и предназаначен для выполнеия каскадирования. но что куда заводить не понятно. Нужно выполнять перемножение чисел большей разрядности чем 18 бит.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Apast
сообщение Dec 10 2008, 02:00
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 224
Регистрация: 22-06-04
Из: Новосибирск
Пользователь №: 87



Цитата(omen @ Dec 10 2008, 03:09) *
Подскажите пожалуйсто, может кто уже сталкивался. Как можно выполнить каскадирование умножителей в ПЛИС семейства Spartan-3. Там есть блоки умножителей MULT18X18, MULT18X18SIO, последний собственно и предназаначен для выполнеия каскадирования. но что куда заводить не понятно. Нужно выполнять перемножение чисел большей разрядности чем 18 бит.

А воспользоваться Xilinx CORE GEN не хотите? Он сам все правильно сгенерит для заданной разряднояти.
Go to the top of the page
 
+Quote Post
andrew_b
сообщение Dec 10 2008, 10:09
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 975
Регистрация: 30-12-04
Из: Воронеж
Пользователь №: 1 757



Цитата(Apast @ Dec 10 2008, 06:00) *
А воспользоваться Xilinx CORE GEN не хотите? Он сам все правильно сгенерит для заданной разряднояти.
Я щетаю, что Кореген тут лишнее звено. Синтезатор сам способен собрать большой умножитель из более мелких.
Go to the top of the page
 
+Quote Post
0xFF
сообщение Dec 10 2008, 10:29
Сообщение #4


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

Группа: Свой
Сообщений: 131
Регистрация: 9-01-06
Пользователь №: 12 984



Цитата(andrew_b @ Dec 10 2008, 14:09) *
Я щетаю, что Кореген тут лишнее звено. Синтезатор сам способен собрать большой умножитель из более мелких.

Вот только при умножении со знаком могут возникнуть проблемы

В приложении умножение на Spartan 3 со знаком, запаздывание если не ошибаюсь 4 такта,
закоментированные блоки умножения для 3е серии. для них запаздывание на 5 тактов, из-за регистровых выходов

Удачи
Прикрепленные файлы
Прикрепленный файл  mult.txt ( 5.71 килобайт ) Кол-во скачиваний: 99
 
Go to the top of the page
 
+Quote Post
sazh
сообщение Dec 10 2008, 14:33
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 2 435
Регистрация: 6-10-04
Из: Петербург
Пользователь №: 804



Цитата(0xFF @ Dec 10 2008, 13:29) *
Вот только при умножении со знаком могут возникнуть проблемы

В приложении умножение на Spartan 3 со знаком, запаздывание если не ошибаюсь 4 такта,
закоментированные блоки умножения для 3е серии. для них запаздывание на 5 тактов, из-за регистровых выходов

Удачи


Если Вы утверждаете, что он со знаком, разве можно ему 1'b0 подставлять?
MULT18X18S mult_4 (
.P(mult_resullt_4[35:0]), // 36-bit multiplier output
.A({1'b0,a[16:0]}), // 18-bit multiplier input
.B(b[34:17]), // 18-bit multiplier input
.CE(1), // Clock enable input for the P port
.C(clk), // Clock input
.R(0)

А тут знак mult_resullt_2 взяли и отбросили
teil_op1[69:0] <= {mult_resullt_1[35:0], mult_resullt_2[33:0]};

и где тогда reg signed, wire signed
Go to the top of the page
 
+Quote Post
0xFF
сообщение Dec 10 2008, 15:21
Сообщение #6


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

Группа: Свой
Сообщений: 131
Регистрация: 9-01-06
Пользователь №: 12 984



Цитата(sazh @ Dec 10 2008, 18:33) *
Если Вы утверждаете, что он со знаком, разве можно ему 1'b0 подставлять?
MULT18X18S mult_4 (
.P(mult_resullt_4[35:0]), // 36-bit multiplier output
.A({1'b0,a[16:0]}), // 18-bit multiplier input
.B(b[34:17]), // 18-bit multiplier input
.CE(1), // Clock enable input for the P port
.C(clk), // Clock input
.R(0)

А тут знак mult_resullt_2 взяли и отбросили
teil_op1[69:0] <= {mult_resullt_1[35:0], mult_resullt_2[33:0]};

и где тогда reg signed, wire signed


в приложенном файле реализована схема Xapp467 на стр.6

В примитивах XILINX в случае при умножении со знаком и при использовании операндов с меньшим кол-вом бит чем вход умножителя недостоющие старшие биты необходимо дополнить знаковым битом.

Использование signed не протеворечит выше изложенному, в случае, конечно, если вы не используете Verilog 1995.

C уважением
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- omen   Каскадирование умножителей в ПЛИС (Spartan-3)   Dec 9 2008, 23:09
|- - ClockworkOrange   Цитата(Apast @ Dec 10 2008, 05:00) А восп...   Dec 10 2008, 08:25
||- - Костян   Цитата(ClockworkOrange @ Dec 10 2008, 06...   Dec 10 2008, 08:31
|- - andrew_b   Цитата(0xFF @ Dec 10 2008, 14:29) Вот тол...   Dec 10 2008, 11:08
||- - Kedin   Цитата(andrew_b @ Dec 10 2008, 16:08) Умн...   Dec 10 2008, 12:14
|- - sazh   Цитата(0xFF @ Dec 10 2008, 18:21) в прило...   Dec 10 2008, 15:54
|- - 0xFF   Цитата(sazh @ Dec 10 2008, 19:54) .A({1...   Dec 11 2008, 11:18
- - Boris_TS   Цитата(omen @ Dec 10 2008, 03:09) Подскаж...   Dec 10 2008, 08:24
- - omen   Спасибо за ответы. ЦитатаЕсть такой документ: XAP...   Dec 10 2008, 10:56
|- - Boris_TS   Цитата(omen @ Dec 10 2008, 14:56) Спасибо...   Dec 10 2008, 14:03
- - 0xFF   Цитата(andrew_b @ Dec 10 2008, 15:08) Умн...   Dec 10 2008, 12:41
- - Singer   Цитата(0xFF @ Dec 10 2008, 15:41) неправи...   Dec 10 2008, 14:00


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

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 04:16
Рейтинг@Mail.ru


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