Azatot 0 25 ноября, 2008 Опубликовано 25 ноября, 2008 · Жалоба Здравствуйте,есть задача:получить на вход ПЛИС Xilinx какие-то сигналы,провести их обработку, а затем сотворить быстрое преобразование Фурье на 1024 точки. Как быть с преобразованием?Пытыался использовать Core Generator,но ничего толкового не получилось.Может кто-нибудь подскажет как правильно пользоваться Core Generator'ом или другой вариант?Заранее благодарен! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andrew_b 16 26 ноября, 2008 Опубликовано 26 ноября, 2008 · Жалоба Представьте себе, что такой вопрос (имеется в виду формулировка) задают вам. Как бы вы на него ответили? Пытыался использовать Core Generator,но ничего толкового не получилось.Телепаты в отпуске. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Maverick_ 15 26 ноября, 2008 Опубликовано 26 ноября, 2008 · Жалоба Здравствуйте,есть задача:получить на вход ПЛИС Xilinx какие-то сигналы,провести их обработку, а затем сотворить быстрое преобразование Фурье на 1024 точки. Как быть с преобразованием?Пытыался использовать Core Generator,но ничего толкового не получилось.Может кто-нибудь подскажет как правильно пользоваться Core Generator'ом или другой вариант?Заранее благодарен! Читай datasheet на IP Core там все написано. Или как правильно заметили, поставьте коректно вопрос(ы). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Azatot 0 26 ноября, 2008 Опубликовано 26 ноября, 2008 (изменено) · Жалоба Прошу прощения за неточный вопрос. Как запихнуть получившийся проект в ПЛИС?Core Generator кучу файлов создает, я их и так и сяк крутил в ISE 9.1,но сконфигурировать файл для ПЛИС так и не получилось. Изменено 26 ноября, 2008 пользователем Azatot Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
tolik1 0 27 ноября, 2008 Опубликовано 27 ноября, 2008 · Жалоба Прошу прощения за неточный вопрос. Как запихнуть получившийся проект в ПЛИС?Core Generator кучу файлов создает, я их и так и сяк крутил в ISE 9.1,но сконфигурировать файл для ПЛИС так и не получилось. Вообще , как правило, Core Generator генерит тестовый проект в котором показано как вашей корой пользоваться в добавок там ещё скрипты для моделсима. А в папке DOC лежат PDFы почитайте их. Там расписано всё что нагенерили. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
KostyanPro 0 27 ноября, 2008 Опубликовано 27 ноября, 2008 · Жалоба Прошу прощения за неточный вопрос. Как запихнуть получившийся проект в ПЛИС?Core Generator кучу файлов создает, я их и так и сяк крутил в ISE 9.1,но сконфигурировать файл для ПЛИС так и не получилось. Запускайте core генератор непосредственно из своего проекта(new sourse -> ip core). Это облегчит в начале для вас понимание. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Maverick_ 15 27 ноября, 2008 Опубликовано 27 ноября, 2008 · Жалоба Прошу прощения за неточный вопрос. Как запихнуть получившийся проект в ПЛИС?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; Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Azatot 0 27 ноября, 2008 Опубликовано 27 ноября, 2008 (изменено) · Жалоба Всем огромное спасибо. Разобрался что к чему,оказалось,как всегда,все очень просто! А теперь,уважаемые знатоки,еще один вопрос.Как пользоваться циклами в языке VHDL? Организовал UART,гоню какие то байты на компьютер,и хочу,чтобы биты перебирались по циклу.Пишу,как в книжке показано или в хелпе ISE,но ничего не получается.С циклом вообще перестает что_либо работать!Как правильно сформировать цикл? Изменено 27 ноября, 2008 пользователем Azatot Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SFx 0 27 ноября, 2008 Опубликовано 27 ноября, 2008 · Жалоба С циклом вообще перестает что_либо работать!Как правильно сформировать цикл? Цикл имеет в VHDL строго описательное значение. Его допустимо использовать только для моделирования и для размножения сигналов в исходнике. Забудьте про программирование, если пишете на HDL! :1111493779: Чтобы реализовать прием пакетов UART - создается сдвиговый регистр, в него загружается принятый байт, и по последнему биту складывается в FIFO. на другой стороне FIFO этот байт дешифрируется и выполняется та или иная команда автомата (FSM). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kuzis 0 28 ноября, 2008 Опубликовано 28 ноября, 2008 · Жалоба Цикл имеет в VHDL строго описательное значение. Его допустимо использовать только для моделирования и для размножения сигналов в исходнике. Это кто это вам такое сказал? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Azatot 0 4 декабря, 2008 Опубликовано 4 декабря, 2008 · Жалоба Это кто это вам такое сказал? А, в таком случае, как же правильно пользоваться циклами? Вот, я, например пишу: 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; А вместо ожидаемого результата херится вся схема и ничего не работает! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 5 декабря, 2008 Опубликовано 5 декабря, 2008 · Жалоба А вместо ожидаемого результата херится вся схема и ничего не работает! дали девочке 2 яблока, потом дали еще одно. Вопрос : сколько у девочки яблок ? ЗЫ. Ответ а сколько у нее было изначально ? Вывод : всегда инициализируйте свои переменные!! (с) Библия программиста ЗЗЫ. А count то у вас чему равен ? ЗЗЗЫ И что вы вообще хотели сделать своей логикой ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Azatot 0 7 декабря, 2008 Опубликовано 7 декабря, 2008 · Жалоба дали девочке 2 яблока, потом дали еще одно. Вопрос : сколько у девочки яблок ? ЗЫ. Ответ а сколько у нее было изначально ? Вывод : всегда инициализируйте свои переменные!! (с) Библия программиста ЗЗЫ. А count то у вас чему равен ? ЗЗЗЫ И что вы вообще хотели сделать своей логикой ? Это просто пример, как я пытался использовать цикл. Он,пример,ничего не значит,просто от балды составлен. Хотелось бы примерно такой же пример,но с работающим циклом. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 8 декабря, 2008 Опубликовано 8 декабря, 2008 · Жалоба Это просто пример, как я пытался использовать цикл. Он,пример,ничего не значит,просто от балды составлен. Хотелось бы примерно такой же пример,но с работающим циклом. Ищите на форуме, тема обсуждалась неоднократно, с примерами кода Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
nicks80 0 11 декабря, 2008 Опубликовано 11 декабря, 2008 · Жалоба Здравствуйте,есть задача:получить на вход ПЛИС Xilinx какие-то сигналы,провести их обработку, а затем сотворить быстрое преобразование Фурье на 1024 точки. Как быть с преобразованием?Пытыался использовать Core Generator,но ничего толкового не получилось.Может кто-нибудь подскажет как правильно пользоваться Core Generator'ом или другой вариант?Заранее благодарен! Есть очень хороший код для FFT бери книгу Секунов. и там есть исходник FFT без комплексной области. очень мало кол-во умножений. Везде использую. даже синус генерю тейлором. и таблица перестановок с пред вычислением. я его когда-то портировал под целочисленное. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться