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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> IP Core Generator Xilinx
Azatot
сообщение Nov 25 2008, 18:08
Сообщение #1


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

Группа: Участник
Сообщений: 108
Регистрация: 31-01-08
Из: Москва
Пользователь №: 34 633



Здравствуйте,есть задача:получить на вход ПЛИС Xilinx какие-то сигналы,провести их обработку, а затем сотворить быстрое преобразование Фурье на 1024 точки. Как быть с преобразованием?Пытыался использовать Core Generator,но ничего толкового не получилось.Может кто-нибудь подскажет как правильно пользоваться Core Generator'ом или другой вариант?Заранее благодарен!
Go to the top of the page
 
+Quote Post
andrew_b
сообщение Nov 26 2008, 06:06
Сообщение #2


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

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



Представьте себе, что такой вопрос (имеется в виду формулировка) задают вам. Как бы вы на него ответили?
Цитата
Пытыался использовать Core Generator,но ничего толкового не получилось.
Телепаты в отпуске.
Go to the top of the page
 
+Quote Post
Maverick
сообщение Nov 26 2008, 08:05
Сообщение #3


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

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



Цитата(Azatot @ Nov 25 2008, 22:08) *
Здравствуйте,есть задача:получить на вход ПЛИС Xilinx какие-то сигналы,провести их обработку, а затем сотворить быстрое преобразование Фурье на 1024 точки. Как быть с преобразованием?Пытыался использовать Core Generator,но ничего толкового не получилось.Может кто-нибудь подскажет как правильно пользоваться Core Generator'ом или другой вариант?Заранее благодарен!


Читай datasheet на IP Core там все написано. Или как правильно заметили, поставьте коректно вопрос(ы).


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

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


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

Группа: Участник
Сообщений: 108
Регистрация: 31-01-08
Из: Москва
Пользователь №: 34 633



Прошу прощения за неточный вопрос. Как запихнуть получившийся проект в ПЛИС?Core Generator кучу файлов создает, я их и так и сяк крутил в ISE 9.1,но сконфигурировать файл для ПЛИС так и не получилось.

Сообщение отредактировал Azatot - Nov 26 2008, 17:27
Go to the top of the page
 
+Quote Post
tolik1
сообщение Nov 27 2008, 07:32
Сообщение #5


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

Группа: Свой
Сообщений: 199
Регистрация: 2-03-05
Из: МОСКВА
Пользователь №: 3 016



Цитата(Azatot @ Nov 26 2008, 20:26) *
Прошу прощения за неточный вопрос. Как запихнуть получившийся проект в ПЛИС?Core Generator кучу файлов создает, я их и так и сяк крутил в ISE 9.1,но сконфигурировать файл для ПЛИС так и не получилось.

Вообще , как правило, Core Generator генерит тестовый проект в котором показано как вашей корой пользоваться в добавок там ещё скрипты для моделсима. А в папке DOC лежат PDFы почитайте их. Там расписано всё что нагенерили.
Go to the top of the page
 
+Quote Post
KostyanPro
сообщение Nov 27 2008, 08:14
Сообщение #6


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

Группа: Свой
Сообщений: 160
Регистрация: 30-01-07
Из: Minsk
Пользователь №: 24 870



Цитата(Azatot @ Nov 26 2008, 19:26) *
Прошу прощения за неточный вопрос. Как запихнуть получившийся проект в ПЛИС?Core Generator кучу файлов создает, я их и так и сяк крутил в ISE 9.1,но сконфигурировать файл для ПЛИС так и не получилось.

Запускайте core генератор непосредственно из своего проекта(new sourse -> ip core). Это облегчит в начале для вас понимание.
Go to the top of the page
 
+Quote Post
Maverick
сообщение Nov 27 2008, 08:34
Сообщение #7


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

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



Цитата(Azatot @ Nov 26 2008, 21:26) *
Прошу прощения за неточный вопрос. Как запихнуть получившийся проект в ПЛИС?Core Generator кучу файлов создает, я их и так и сяк крутил в ISE 9.1,но сконфигурировать файл для ПЛИС так и не получилось.

Примено так (вставка корки фифо) для языка VHDL:
Код

library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.std_logic_arith.all;
entity window_2x2 is
generic ( vwidth: integer:=12 );
port (
Clk : in std_logic;
RSTn : in std_logic;
D : in std_logic_vector(vwidth-1 downto 0);
w1 : out std_logic_vector(vwidth -1 downto 0);
w2 : out std_logic_vector(vwidth -1 downto 0);
w3 : out std_logic_vector(vwidth -1 downto 0)  );
end window_2x2;
architecture window of window_2x2 is
component fifo1024x12
    port (
    din: IN std_logic_VECTOR(11 downto 0);
    wr_en: IN std_logic;
    wr_clk: IN std_logic;
    rd_en: IN std_logic;
    rd_clk: IN std_logic;
    ainit: IN std_logic;
    dout: OUT std_logic_VECTOR(11 downto 0);
    full: OUT std_logic;
    empty: OUT std_logic;
    wr_count: OUT std_logic_VECTOR(9 downto 0));
end component;

component fifo4096x12
    port (
    din: IN std_logic_VECTOR(11 downto 0);
    wr_en: IN std_logic;
    wr_clk: IN std_logic;
    rd_en: IN std_logic;
    rd_clk: IN std_logic;
    ainit: IN std_logic;
    dout: OUT std_logic_VECTOR(11 downto 0);
    full: OUT std_logic;
    empty: OUT std_logic;
    wr_count: OUT std_logic_VECTOR(11 downto 0));
end component;

-- FPGA Express Black Box declaration
--attribute fpga_dont_touch: string;
--attribute fpga_dont_touch of fifo1024x14: component is "true";

-- Synplicity black box declaration
--attribute syn_black_box : boolean;
--attribute syn_black_box of fifo1024x14: component is true;
signal a1 : std_logic_vector(vwidth-1 downto 0);
signal a2 : std_logic_vector(vwidth-1 downto 0);
signal a3 : std_logic_vector(vwidth-1 downto 0);

--fifo1 signals
signal clear1 : std_logic;
signal wrreq1 : std_logic:='1';
signal rdreq1 : std_logic:='0';
signal ofull1 : std_logic;
signal oempty1 : std_logic;
signal ofifo1 : std_logic_vector(vwidth-1 downto 0);
signal ousedw1 : std_logic_vector(9 downto 0);

--fifo2 signals
signal rdreq2 : std_logic:='0';
signal ofull2 : std_logic;
signal oempty2 : std_logic;
signal ofifo2 : std_logic_vector(vwidth-1 downto 0);
signal ousedw2 : std_logic_vector(11 downto 0);


--signal ousedwa_temp: integer:=0;
--signal ousedwb_temp: integer:=0;
begin
fifo1: fifo1024x12
port map (
din => a1,
wr_en => wrreq1,
wr_clk => Clk,
rd_en => rdreq1,
rd_clk => Clk,
ainit => clear1,
dout => ofifo1,
full => ofull1,
empty => oempty1,
wr_count => ousedw1 );

fifo2: fifo4096x12
port map (
din => a2,
wr_en => wrreq1,
wr_clk => Clk,
rd_en => rdreq2,
rd_clk => Clk,
ainit => clear1,
dout => ofifo2,
full => ofull2,
empty => oempty2,
wr_count => ousedw2 );

clear1 <= not(RSTn);


clock: process(Clk,RSTn)
begin
if RSTn = '0' then
a1 <= (others=>'0');
a2 <= (others=>'0');
a3 <= (others=>'0');

w1 <= (others=>'0');
w2 <= (others=>'0');
w3 <= (others=>'0');


wrreq1 <= '0';

elsif rising_edge(Clk) then
a1 <= D;
a2 <= ofifo1;
a3 <= ofifo2;

w1 <= a1;
w2 <= a2;
w3 <= a3;

wrreq1 <= '1';

end if;
end process;

req: process(Clk)
begin
if rising_edge(Clk) then
if ousedw1 = "1111101000" then
rdreq1 <= '1';
end if;
if ousedw2 = "111110110110" then
rdreq2 <= '1';
end if;

end if;

end process;

end window;


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

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


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

Группа: Участник
Сообщений: 108
Регистрация: 31-01-08
Из: Москва
Пользователь №: 34 633



Всем огромное спасибо. Разобрался что к чему,оказалось,как всегда,все очень просто!
А теперь,уважаемые знатоки,еще один вопрос.Как пользоваться циклами в языке VHDL?
Организовал UART,гоню какие то байты на компьютер,и хочу,чтобы биты перебирались по циклу.Пишу,как в книжке показано или в хелпе ISE,но ничего не получается.С циклом вообще перестает что_либо работать!Как правильно сформировать цикл?

Сообщение отредактировал Azatot - Nov 27 2008, 17:42
Go to the top of the page
 
+Quote Post
SFx
сообщение Nov 27 2008, 18:36
Сообщение #9


Знающий
****

Группа: Свой
Сообщений: 758
Регистрация: 11-07-05
Из: Понаехал (Мск)
Пользователь №: 6 688



Цитата(Azatot @ Nov 27 2008, 20:41) *
С циклом вообще перестает что_либо работать!Как правильно сформировать цикл?

Цикл имеет в VHDL строго описательное значение.
Его допустимо использовать только для моделирования и для размножения сигналов в исходнике.

Забудьте про программирование, если пишете на HDL! 1111493779.gif

Чтобы реализовать прием пакетов UART - создается сдвиговый регистр, в него загружается принятый байт, и по последнему биту складывается в FIFO. на другой стороне FIFO этот байт дешифрируется и выполняется та или иная команда автомата (FSM).
Go to the top of the page
 
+Quote Post
Михаил_K
сообщение Nov 28 2008, 05:20
Сообщение #10


Знающий
****

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



Цитата(SFx @ Nov 27 2008, 21:36) *
Цикл имеет в VHDL строго описательное значение.
Его допустимо использовать только для моделирования и для размножения сигналов в исходнике.


Это кто это вам такое сказал?
Go to the top of the page
 
+Quote Post
Azatot
сообщение Dec 4 2008, 18:13
Сообщение #11


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

Группа: Участник
Сообщений: 108
Регистрация: 31-01-08
Из: Москва
Пользователь №: 34 633



Цитата(Михаил_K @ Nov 28 2008, 09:20) *
Это кто это вам такое сказал?

А, в таком случае, как же правильно пользоваться циклами?
Вот, я, например пишу:
process(clk)
variable i:integer range 0 to 10;
variable count:integer;
if(clk'event and clk='1')then
while( i<10 )loop
fft_out<=conv_std_logic_vector(count(i),8);
i:=i+1;
end loop;
end if;
end process;
А вместо ожидаемого результата херится вся схема и ничего не работает!
Go to the top of the page
 
+Quote Post
des00
сообщение Dec 5 2008, 04:02
Сообщение #12


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(Azatot @ Dec 4 2008, 13:13) *
А вместо ожидаемого результата херится вся схема и ничего не работает!


дали девочке 2 яблока, потом дали еще одно. Вопрос : сколько у девочки яблок ?



ЗЫ. Ответ а сколько у нее было изначально ? Вывод : всегда инициализируйте свои переменные!! (с) Библия программиста

ЗЗЫ. А count то у вас чему равен ?

ЗЗЗЫ И что вы вообще хотели сделать своей логикой ?


--------------------
Go to the top of the page
 
+Quote Post
Azatot
сообщение Dec 7 2008, 19:51
Сообщение #13


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

Группа: Участник
Сообщений: 108
Регистрация: 31-01-08
Из: Москва
Пользователь №: 34 633



Цитата(des00 @ Dec 5 2008, 08:02) *
дали девочке 2 яблока, потом дали еще одно. Вопрос : сколько у девочки яблок ?
ЗЫ. Ответ а сколько у нее было изначально ? Вывод : всегда инициализируйте свои переменные!! (с) Библия программиста

ЗЗЫ. А count то у вас чему равен ?

ЗЗЗЫ И что вы вообще хотели сделать своей логикой ?

Это просто пример, как я пытался использовать цикл. Он,пример,ничего не значит,просто от балды составлен. Хотелось бы примерно такой же пример,но с работающим циклом.
Go to the top of the page
 
+Quote Post
des00
сообщение Dec 8 2008, 04:18
Сообщение #14


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(Azatot @ Dec 7 2008, 14:51) *
Это просто пример, как я пытался использовать цикл. Он,пример,ничего не значит,просто от балды составлен. Хотелось бы примерно такой же пример,но с работающим циклом.


Ищите на форуме, тема обсуждалась неоднократно, с примерами кода


--------------------
Go to the top of the page
 
+Quote Post
nicks80
сообщение Dec 11 2008, 15:19
Сообщение #15


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

Группа: Участник
Сообщений: 97
Регистрация: 18-10-07
Пользователь №: 31 485



Цитата(Azatot @ Nov 25 2008, 21:08) *
Здравствуйте,есть задача:получить на вход ПЛИС Xilinx какие-то сигналы,провести их обработку, а затем сотворить быстрое преобразование Фурье на 1024 точки. Как быть с преобразованием?Пытыался использовать Core Generator,но ничего толкового не получилось.Может кто-нибудь подскажет как правильно пользоваться Core Generator'ом или другой вариант?Заранее благодарен!

Есть очень хороший код для FFT бери книгу Секунов. и там есть исходник FFT без комплексной области.
очень мало кол-во умножений. Везде использую. даже синус генерю тейлором. и таблица перестановок с пред вычислением. я его когда-то портировал под целочисленное.
Go to the top of the page
 
+Quote Post

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

 


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


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