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

 
 
> умножение с накоплением за один такт (MAC), как работает?
kamil_yaminov
сообщение Oct 1 2008, 03:57
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 395
Регистрация: 15-02-08
Из: Новосибирск
Пользователь №: 35 064



Поделитесь пожалуйста ссылкой на нормальное описание алгоритма быстрого умножения с накоплением, которое применяется в DSP-процессорах (MAC блоки). Из того, что я нарыл в тырнете, понял только что используются какие-то хитрые комбинационные схемы вкупе с таблицами. Зараннее спасибо.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
kamil_yaminov
сообщение Oct 1 2008, 08:57
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 395
Регистрация: 15-02-08
Из: Новосибирск
Пользователь №: 35 064



Про конвейер слышал и даже пользовался им, но мне не кажется, что внутри МАСа стоит конвейер, если не прав, то поправте.
Go to the top of the page
 
+Quote Post
tocha
сообщение Oct 1 2008, 09:45
Сообщение #3


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

Группа: Свой
Сообщений: 92
Регистрация: 16-05-05
Из: Kiev
Пользователь №: 5 080



Цитата(kamil yaminov @ Oct 1 2008, 11:57) *
Про конвейер слышал и даже пользовался им, но мне не кажется, что внутри МАСа стоит конвейер, если не прав, то поправте.

А как по-другому? За один такт МАК никак не сделать, значит - последовательная схема. Походу ваш товарищ прав. Вся сила в конвеере.
Go to the top of the page
 
+Quote Post
yes
сообщение Oct 1 2008, 12:24
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 198
Регистрация: 23-12-04
Пользователь №: 1 640



Цитата(tocha @ Oct 1 2008, 13:45) *
А как по-другому? За один такт МАК никак не сделать, значит - последовательная схема. Походу ваш товарищ прав. Вся сила в конвеере.


интересно, что в МАС-е нужен результат предыдущей операции - ну то есть для прибавления i-го слагаемого нужно иметь i-1 результат - то есть сконвееризировать большой сумматор аккумулятора не получится (допустима задержка только 1 такт)

вобщем решения есть (и наверно, не одно) - интересно, найдете ли их гуглем (мне было бы интересно посмотреть)
Go to the top of the page
 
+Quote Post
tocha
сообщение Oct 1 2008, 13:03
Сообщение #5


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

Группа: Свой
Сообщений: 92
Регистрация: 16-05-05
Из: Kiev
Пользователь №: 5 080



Цитата(yes @ Oct 1 2008, 15:24) *
интересно, что в МАС-е нужен результат предыдущей операции - ну то есть для прибавления i-го слагаемого нужно иметь i-1 результат - то есть сконвееризировать большой сумматор аккумулятора не получится (допустима задержка только 1 такт)

вобщем решения есть (и наверно, не одно) - интересно, найдете ли их гуглем (мне было бы интересно посмотреть)

Не понял, решение чего? Если того, как сделать мак за один такт, то приведите здесь, если не сложно.
ЗЫ. По поводу гугла, если вам интересно, то и ищите сами.


Цитата(Михаил_K @ Oct 1 2008, 15:33) *
За один такт все делается. Вопрос лишь в быстродействии (или в максимальной тактовой частоте).
Вам правильно сказали, умножение, как и сложение - это лишь комбинационная логика.
Кстати, для накопления действительно нужно иметь результат предыдущего сложения, но это значит что суммирование должно быть за один такт, и совсем не значит что умножение должно быть за один такт.

Я не говорю, что умножение и сложение - некомбинацинная логика, и не говорю, что умножение должно быть за один такт. Я говорю, что один МАК за один такт не делается.
Если можете, покажите, если не сложно, как за один такт сделать следующую операцию a = a + b*c.
Go to the top of the page
 
+Quote Post
Михаил_K
сообщение Oct 1 2008, 13:07
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 552
Регистрация: 29-02-08
Пользователь №: 35 481



Цитата(tocha @ Oct 1 2008, 17:03) *
Не понял, решение чего? Если того, как сделать мак за один такт, то приведите здесь, если не сложно.
ЗЫ. По поводу гугла, если вам интересно, то и ищите сами.
Я не говорю, что умножение и сложение - некомбинацинная логика, и не говорю, что умножение должно быть за один такт. Я говорю, что один МАК за один такт не делается.
Если можете, покажите, если не сложно, как за один такт сделать следующую операцию a = a + b*c.


Элементарно. Вам в каком виде показать, на VHDL подойдет?
Go to the top of the page
 
+Quote Post
tocha
сообщение Oct 1 2008, 13:11
Сообщение #7


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

Группа: Свой
Сообщений: 92
Регистрация: 16-05-05
Из: Kiev
Пользователь №: 5 080



Цитата(Михаил_K @ Oct 1 2008, 16:07) *
Элементарно. Вам в каком виде показать, на VHDL подойдет?

в любом, vhdl подойдёт
Go to the top of the page
 
+Quote Post
Михаил_K
сообщение Oct 1 2008, 14:34
Сообщение #8


Знающий
****

Группа: Свой
Сообщений: 552
Регистрация: 29-02-08
Пользователь №: 35 481



Цитата(tocha @ Oct 1 2008, 17:11) *
в любом, vhdl подойдёт


library IEEE;
use IEEE.STD_LOGIC_1164.all;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;

entity primer is
port(
CLK : in STD_LOGIC;
Reset : in STD_LOGIC;
B : in STD_LOGIC_VECTOR(11 downto 0);
C : in STD_LOGIC_VECTOR(11 downto 0);
Q : out STD_LOGIC_VECTOR(47 downto 0)
);
end primer;


architecture primer of primer is

signal A : std_logic_vector (47 downto 0);
signal p : std_logic_vector (23 downto 0);




begin

p<=signed( B ) * signed( C );

process (CLK)

begin
if (CLK'Event and CLK = '1') then
if (Reset = '1') then
A<=(others =>'0');
else
A<= A+SXT(p,48);
end if;
end if;
end process;

Q<=A;



end primer;
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- kamil yaminov   умножение с накоплением за один такт (MAC)   Oct 1 2008, 03:57
- - DRUID3   ну алгоритмы быстрого умножения, видимо, на одной ...   Oct 1 2008, 07:34
- - kamil yaminov   да просто интересно стало, ведь пользуюсь-пользуюс...   Oct 1 2008, 08:10
|- - MrYuran   Цитата(kamil yaminov @ Oct 1 2008, 12:10)...   Oct 1 2008, 08:14
- - tocha   А слово "pipeline" слышали?   Oct 1 2008, 08:38
||- - tocha   Цитата(Михаил_K @ Oct 1 2008, 17:34) [fon...   Oct 1 2008, 16:48
||- - Михаил_K   Цитата(tocha @ Oct 1 2008, 20:48) Вы обещ...   Oct 2 2008, 05:44
|- - Михаил_K   Цитата(tocha @ Oct 1 2008, 13:45) А как п...   Oct 1 2008, 12:33
- - MrYuran   Вот, например, бегло порывшись в яндексе...   Oct 1 2008, 09:25
- - kamil yaminov   Да, действительно, перемножение с накоплением за о...   Oct 1 2008, 10:11
- - kamil yaminov   Дейстаительно получается один такт! Тое есть в...   Oct 2 2008, 06:23
|- - yes   мой вопрос был про то, что если нет в архитектуре ...   Oct 3 2008, 09:48
- - Singer   Нет никакой проблемы сделать за такт - только толк...   Oct 10 2008, 13:26
- - Builder   Цитата(Singer @ Oct 10 2008, 16:26) Нет н...   Oct 13 2008, 07:13


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

 


RSS Текстовая версия Сейчас: 30th July 2025 - 05:25
Рейтинг@Mail.ru


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