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

 
 
> Умножение на максимальной частоте
enzaime
сообщение Nov 15 2015, 17:38
Сообщение #1


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

Группа: Участник
Сообщений: 83
Регистрация: 22-08-14
Пользователь №: 82 609



Приобрёл себе такую платку DE0 nano с ПЛИС на ней EP4CE22F17C6
В документации прочитал, что 1 18х18 умножитель может работать на частоте 287 МГц, а 9х9 умножитель на частоте 340 МГц
https://www.altera.com/content/dam/altera-w.../cyiv-53001.pdf стр 26.

А мне хочется использовать 32 битное умножение, но на частоте >10 МГц оно правильно не работает. Можно ли как-то ускорить это дело? А то 10 МГц как-то мало, я ожидал что-то вроде 150 МГц.
Использовал я это дело так (результат смотрел на компе. По сигналу ready считывается значение регистра mult, причём на умножение тратится 1 такт, так можно понять успевает оно выполниться на задаваемой частоте или нет) :
Код
library IEEE;
use IEEE.STD_LOGIC_1164.all;
use ieee.numeric_std.all;

entity arith is
     port(
         clk : in STD_LOGIC;
         start : in STD_LOGIC;
         a : in std_logic_vector(31 downto 0);
         b : in std_logic_vector(31 downto 0);
         ready : out STD_LOGIC;
         mult : out std_logic_vector(63 downto 0)
         );
end arith;

--}} End of automatically maintained section

architecture arch of arith is
signal state:natural:=0;
begin
    process(clk)
    begin        
        if(rising_edge(clk)) then  
            if(start='1') then
                if(state=0) then  
                    state<=1;
                    ready<='0';
                end if;
            else
                if(state=1) then
                    mult<=std_logic_vector(unsigned(a)*unsigned(b));    
                    state<=2;
                end if;
                
                if(state=2) then
                    ready<='1';
                    state<=0;
                end if;
            end if;
        end if;
    end process;
     -- enter your statements here --

end arch;



Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
bogaev_roman
сообщение Nov 16 2015, 09:04
Сообщение #2


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

Группа: Свой
Сообщений: 1 088
Регистрация: 20-10-09
Из: Химки
Пользователь №: 53 082



Цитата(enzaime @ Nov 15 2015, 20:38) *
В документации прочитал, что 1 18х18 умножитель может работать на частоте 287 МГц, а 9х9 умножитель на частоте 340 МГц
А мне хочется использовать 32 битное умножение, но на частоте >10 МГц оно правильно не работает. Можно ли как-то ускорить это дело? А то 10 МГц как-то мало, я ожидал что-то вроде 150 МГц.

Все что написано в документации от альтеры достоверно. Вы приводите цифры для чистого умножителя (задержка только на умножителе), а в самом коде используете несколько слоев логики, при этом судя по максимальной частоте в 10МГц, задержка (очень большая, даже интересно сколько там логики) набегает по какому-то из входов. Приведите отчет из таймквеста для максимально длинного пути - там либо последовательных слоев логики несколько десятков, либо элементы находятся на разных частях кристалла.
Go to the top of the page
 
+Quote Post
Maverick
сообщение Nov 16 2015, 09:35
Сообщение #3


я только учусь...
******

Группа: Модераторы
Сообщений: 3 447
Регистрация: 29-01-07
Из: Украина
Пользователь №: 24 839



даю на всякий случай sm.gif

Multiplication of Large Integers (Karatsuba Algorithm)

"The example design is a fully pipelined 64 x 64 bit multiply with a latency of 6. It uses
three 36 x 36 bit pipelined DSP block multipliers implemented in the sample file
mult_3tick.v. The adder/compressor logic occupies 431 combinational cells. The
pipeline registers are implemented in 520 cell registers and a small inferred
RAM-based shifter. You can disable the RAM inference with synthesis assignments or
a ”synthesis preserve” attribute. Operating frequency on a 2S15C3 (Stratix II) device is
approximately 265 MHz."

The example files are available on the Altera website at the following URL:
www.altera.com/literature/manual/cookbook.zip.

примеры на verilog


--------------------
If it doesn't work in simulation, it won't work on the board.

"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
Go to the top of the page
 
+Quote Post



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

 


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


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