Перейти к содержанию
    

Maverick_

Модератор
  • Постов

    3 864
  • Зарегистрирован

Весь контент Maverick_


  1. смотри скриншот :) Есть отдельная программа для программирования на http://www.xilinx.com/support/download/i101winpt.htm и всего на 49Mb Смотри скриншот
  2. Примено так (вставка корки фифо) для языка 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;
  3. Читай datasheet на IP Core там все написано. Или как правильно заметили, поставьте коректно вопрос(ы).
  4. Прибавлением не "1", а "2" и установкой соответствующего начального значения (четного или нечетного, например "0" или "1").
  5. А если попробовать использовать PLL или DCM. Вначале увеличить частоту например вдвое, а потом выполнять, то что предлагает _Anatoliy. По моему таким образом погрешность уменьшиться в соответствующее число раз. :)
  6. На мой взгляд :( (я так думаю) , архитектурное тело синтезируемо или не синтезируемо зависит от описания, т.е. какие операторы/функции/библиотеки используются при описании цифрового устройства на языке VHDL и поддерживаются ли они синтезатором :) В графическом редакторе (схематике) библиотека элементов, которая доступна для использования, является пригодной для синтеза, и схемы нарисованные в схематике, с помощью библиотечных элементов будут синтезироваться и моделироваться :) В данном случае может быть требуется какая-то лицензия на корку фифо (хотя мало вероятно) либо Вы не правильно подсоединяете к проекту либо синтезатор упростил Вашу схему.
  7. По поводу www.opencores.org кто-то может рассказать как там зарегаться. Обычный способ у них сбоит :1111493779: :( Или уменя чето не выходит ЗЫ Может кто-то поделиться своим акаунтом на www.opencores.org. Писать в личку. ---------- ------------ ------------ Только, что попробовал еще раз и все получилось - получил аккаунт!!! Вопрос исчерпан. С уважением Maverick
  8. Выкладываю рабочий пример на основе подсказки Victor® (может кому-то пригодиться): library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity dalay is Port ( clk : in STD_LOGIC; com_in : in STD_LOGIC; count : out std_logic_vector (7 downto 0); com_out : out STD_LOGIC); end dalay; architecture Behavioral of dalay is signal cnt : std_logic_vector (7 downto 0):= "00000000"; signal en : std_logic; signal rst : std_logic; signal reg : std_logic; begin process (clk, com_in) begin if (clk'event and clk = '1') then rst <= com_in; end if; end process; process (clk, en, cnt, rst) begin if (rst = '1') then cnt <= (others => '0'); elsif (clk'event and clk = '1') then if (en = '1') then cnt <= cnt + "00000001"; end if; end if; count <= cnt; end process; process (clk, cnt, en, reg) begin if (clk'event and clk = '1') then if cnt < "10010011" then en <= '1'; reg <= '0'; else en <= '0'; reg <= '1'; end if; end if; com_out <= reg; end process; end Behavioral; Идея красивая. Тоже обязательно реализую и сравню их! Всем спасибо, кто откликнулся!!!
  9. Приветствую! Не могу сообразить как на основе счетчика сделать задержку на VHDL. Собственно задача: Приходит из вне команда, но это команда на схему поступает через определенную задержку(изначально известную) во времени. Другими словами счетчик по приходу команды должен отсчитать определенное число импульсов (выдав флаг о выполнении) и остановиться и сброситься в исходное состояние до прихода новой команды. ЗЫ Схемка на первый взгляд элементарная, но чего-то у меня не получается. Пожайлуста помогите или подскажите
  10. Скорее всего для симулятора нужно начальное условие SIGNAL tmp : STD_LOGIC_VECTOR(20 DOWNTO 0) := (others => '0');
  11. Рассинхронизации не будет, если описывать все синхронно. Рекомендую почитать по этому поводу книжку (с нее начинал осваение, мне понравилась). Страницы 172 и далее. Скачать можно здесь
  12. Попробуйте разбить большой процесс на более простые (пусть их будет больше - ничего страшного) и убрать оператор Loop - в файле state_indnew.vhd. Далее рассмотрим например такой код (из perecl.vhd) PROCESS begin if (CLK'event and CLK = '1') then if (WRITE = '1') then MC0 <= '1'; elsif (WRITE = '0') then MC0 <= '0'; end if; if (ADR = '1') then MC <= '1'; elsif (ADR = '0') then MC <= '0'; end if; if (NACHIND = '1') then MC <= '1'; elsif (NACHIND = '0') then MC <= '0'; end if; if (IND = '1') then MC <= '1'; elsif (IND = '0') then MC <= '0'; end if; if (STIR = '1') then MC <= '1'; elsif (STIR = '0') then MC <= '0'; end if; end if; end process; может стоит разнести каждый if в разные процессы и использовать конструкцию if - else, т.е. распаралелить, а потом одельно сделать обработку этих выхдных сигналов. Например вот так: PROCESS begin if (CLK'event and CLK = '1') then if (WRITE = '1') then MC1 <= '1'; else MC1 <= '0'; end if; end if; end process; ЗЫ. Посмотрите отчет синтезатора как он Ваше описание схемы понимает: делает ли например цифровой автомат там где нужно. На слова NiOS не обижайтесь, надеюсь он плохого ничего не хотел сказать или чем-то Вас обидеть.
  13. Спасибо des00! :a14: Интересно, а в Украине, в частности в Киеве их можно найти?
  14. На мой взгляд, прежде чем идти на курсы надо иметь уже представление о том что там будут рассказывать и показывать, и на курсах просто уточнять, выяснять какие-то нюансы по работе, по программированию, другими словами повысить свою квалификацию. Иначе толка не будет, т.е. нужно самому посидеть поразбираться, почитать литературу. ЗЫ. Это мое мнение. Кстати никто не подскажет, где есть (если конечно они существуют) курсы по встраиваемым микропроцессорам фирмы Xilinx?
  15. Посмотрите это может поможет
  16. Работа (териториально находиться в центре Киева) связана у нас с космической тематикой. Это цифровая обработка сигнала на ПЛИС(фирма Xilinx, программирование на языке описания аппаратурры VHDL), на DSP TMS320C67хх (фирма Texas Instruments) и на микроконтроллерах фирмы Cygnal, а также написание различных программ под Windows/Linux. На какую зарплату претендуете? И как с Вами связаться, напишите пожайлуста, в личку, если можно мобильный телефон или ICQ. Написал тебе письмо в личку. ЗЫ Я тоже этот университет и факультет закончил :)
  17. Некоторые на мой взгляд хорошие книги: http://www.infanata.org/2006/11/23/konstru...nojj_magii.html http://www.infanata.org/2006/11/30/vysokos...nojj_magii.html
×
×
  • Создать...