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

Maverick_

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

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

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


  1. Вам нужны ПЛИС AeroSpace варианта посмотрите здесь для Xilinx вот тут можете скачать информацию например для Virtex 4 здесь можете посмотреть перечень фирмы xilinx ПЛИС AeroSpace варианта
  2. ДА. Вот ссылки на них Virtual com port drivers Direct drivers примеры написания программ под Windows
  3. пример взят из книги: Оговариваюсь сразу он простой как "пять копеек", без всяких наворотов и какой-либо оптимизации. описание во вложении library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity fir is Port( din: in std_logic_vector(7 downto 0); sout: out std_logic_vector(15 downto 0); r: in std_logic; c: in std_logic); end fir; architecture Behavioral of fir is constant h00 : std_logic_vector(7 downto 0) := "00000000"; constant h01 : std_logic_vector(7 downto 0) := "00000001"; constant h02 : std_logic_vector(7 downto 0) := "00000100"; constant h03 : std_logic_vector(7 downto 0) := "00001111"; constant h04 : std_logic_vector(7 downto 0) := "00100100"; constant h05 : std_logic_vector(7 downto 0) := "01000010"; constant h06 : std_logic_vector(7 downto 0) := "01100100"; constant h07 : std_logic_vector(7 downto 0) := "01111100"; constant h08 : std_logic_vector(7 downto 0) := "01111111"; constant h09 : std_logic_vector(7 downto 0) := "01101010"; constant h10 : std_logic_vector(7 downto 0) := "01000010"; constant h11 : std_logic_vector(7 downto 0) := "00100011"; constant h12 : std_logic_vector(7 downto 0) := "11101100"; constant h13 : std_logic_vector(7 downto 0) := "11010110"; constant h14 : std_logic_vector(7 downto 0) := "11010101"; constant h15 : std_logic_vector(7 downto 0) := "11100011"; constant h16 : std_logic_vector(7 downto 0) := "11110111"; constant h17 : std_logic_vector(7 downto 0) := "00001010"; constant h18 : std_logic_vector(7 downto 0) := "00010100"; constant h19 : std_logic_vector(7 downto 0) := "00010011"; constant h20 : std_logic_vector(7 downto 0) := "00001100"; constant h21 : std_logic_vector(7 downto 0) := "00000010"; constant h22 : std_logic_vector(7 downto 0) := "11111000"; constant h23 : std_logic_vector(7 downto 0) := "11110101"; signal x00, x01, x02, x03,x04, x05, x06, x07, x08, x09, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23 : std_logic_vector(7 downto 0); signal m00, m01, m02, m03, m04, m05, m06, m07, m08, m09, m10, m11, m12, m13, m14, m15, m16, m17, m18, m19, m20, m21, m22, m23 : std_logic_vector(15 downto 0); begin m00 <= (signed(x00)*signed(h00)); m01 <= (signed(x01)*signed(h01)); m02 <= (signed(x02)*signed(h02)); m03 <= (signed(x03)*signed(h03)); m04 <= (signed(x04)*signed(h04)); m05 <= (signed(x05)*signed(h05)); m06 <= (signed(x06)*signed(h06)); m07 <= (signed(x07)*signed(h07)); m08 <= (signed(x08)*signed(h08)); m09 <= (signed(x09)*signed(h09)); m10 <= (signed(x10)*signed(h10)); m11 <= (signed(x11)*signed(h11)); m12 <= (signed(x12)*signed(h12)); m13 <= (signed(x13)*signed(h13)); m14 <= (signed(x14)*signed(h14)); m15 <= (signed(x15)*signed(h15)); m16 <= (signed(x16)*signed(h16)); m17 <= (signed(x17)*signed(h17)); m18 <= (signed(x18)*signed(h18)); m19 <= (signed(x19)*signed(h19)); m20 <= (signed(x20)*signed(h20)); m21 <= (signed(x21)*signed(h21)); m22 <= (signed(x22)*signed(h22)); m23 <= (signed(x23)*signed(h23)); sout <= (signed(m00)+signed(m01)+signed(m02)+signed(m03) +signed(m04)+signed(m05)+signed(m06)+signed(m07) +signed(m08)+signed(m09)+signed(m10)+signed(m11) +signed(m12)+signed(m13)+signed(m14)+signed(m15) +signed(m16)+signed(m17)+signed(m18)+signed(m19) +signed(m20)+signed(m21)+signed(m22)+signed(m23)); process(c,r) begin if r = '1' then x00 <= (others => '0'); x01 <= (others => '0'); x02 <= (others => '0'); x03 <= (others => '0'); x04 <= (others => '0'); x05 <= (others => '0'); x06 <= (others => '0'); x07 <= (others => '0'); x08 <= (others => '0'); x09 <= (others => '0'); x10 <= (others => '0'); x11 <= (others => '0'); x12 <= (others => '0'); x13 <= (others => '0'); x14 <= (others => '0'); x15 <= (others => '0'); x16 <= (others => '0'); x17 <= (others => '0'); x18 <= (others => '0'); x19 <= (others => '0'); x20 <= (others => '0'); x21 <= (others => '0'); x22 <= (others => '0'); x23 <= (others => '0'); elsif (c'event and c ='1') then x00(7 downto 0) <= din(7 downto 0); x01(7 downto 0) <= x00(7 downto 0); x02(7 downto 0) <= x01(7 downto 0); x03(7 downto 0) <= x02(7 downto 0); x04(7 downto 0) <= x03(7 downto 0); x05(7 downto 0) <= x04(7 downto 0); x06(7 downto 0) <= x05(7 downto 0); x07(7 downto 0) <= x06(7 downto 0); x08(7 downto 0) <= x07(7 downto 0); x09(7 downto 0) <= x08(7 downto 0); x10(7 downto 0) <= x09(7 downto 0); x11(7 downto 0) <= x10(7 downto 0); x12(7 downto 0) <= x11(7 downto 0); x13(7 downto 0) <= x12(7 downto 0); x14(7 downto 0) <= x13(7 downto 0); x15(7 downto 0) <= x14(7 downto 0); x16(7 downto 0) <= x15(7 downto 0); x17(7 downto 0) <= x16(7 downto 0); x18(7 downto 0) <= x17(7 downto 0); x19(7 downto 0) <= x18(7 downto 0); x20(7 downto 0) <= x19(7 downto 0); x21(7 downto 0) <= x20(7 downto 0); x22(7 downto 0) <= x21(7 downto 0); x23(7 downto 0) <= x22(7 downto 0); end if; end process; end Behavioral; ---TESTBENCH ДЛЯ ТЕСТИРОВАНИЯ ФИЛЬТРА ------------------------ LIBRARY ieee; USE ieee.std_logic_1164.ALL; USE ieee.numeric_std.ALL; ENTITY fir_test_vhd_tb IS END fir_test_vhd_tb; ARCHITECTURE behavior OF fir_test_vhd_tb IS COMPONENT fir PORT( din : IN std_logic_vector(7 downto 0); r : IN std_logic; c : IN std_logic; sout : OUT std_logic_vector(15 downto 0) ); END COMPONENT; SIGNAL din : std_logic_vector(7 downto 0); SIGNAL sout : std_logic_vector(15 downto 0); SIGNAL r : std_logic; SIGNAL c : std_logic; BEGIN uut: fir PORT MAP( din => din, sout => sout, r => r, c => c ); process begin for i in 0 to 500 loop c <= '0'; wait for 50 ns; c <= '1'; wait for 50 ns; end loop; end process; process begin r <= '1'; wait for 10 ns; r <= '0'; din <= "00000001";wait for 100 ns; din <= "00000000";wait for 5000 ns; end process; END; KIX.doc
  4. Почему Вы не хотите использовать стандартное описание которое рекомендует разработчик (см ссылку) или описание которое я Вам дал для примера, кстати с начальной инициализацией ??? ЗЫ Вам же советуют тоже самое. И у Xilinx есть Synthesis Construct (Меню Edit -> Language Templates -> Synthesis Construct) где даются рекомендованные описания стандартных цифровых устройств - пользуйтесь.
  5. посмотрите вот это описание микросхемы
  6. попробуйте так, у меня работает: Инициализация блочной памяти library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; use std.textio.all; entity init_mem is Port ( clk : in STD_LOGIC; addr : std_logic_vector (4 downto 0); we : in STD_LOGIC; data_in : in STD_LOGIC_VECTOR (3 downto 0); data : out STD_LOGIC_VECTOR (3 downto 0)); end init_mem; architecture Behavioral of init_mem is type initmem is array(0 to 31) of bit_vector(3 downto 0); impure function InitRamFromFile (InitRamFile : in string) return initmem is FILE ram_file : text is in InitRamFile; variable line_ram : line; variable ram : initmem; begin for I in initmem'range loop readline (ram_file, line_ram); read (line_ram, ram(I)); end loop; return ram; end function; signal ram : initmem := InitRamFromFile("ram_file.txt"); signal mem_data : std_logic_vector (3 downto 0); attribute RAM_STYLE : string; attribute RAM_STYLE of ram : signal is "BLOCK"; begin process (clk, ram, mem_data) begin if clk'event and clk = '1' then if we = '1' then ram(conv_integer(addr)) <= to_bitvector(data_in); end if; mem_data <=to_stdlogicvector(ram(conv_integer(addr))); end if; data <= mem_data; end process; end Behavioral; Содержание файла «ram_file.txt», который должен находиться в каталоге проекта. 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 1011 1100 1101 1110 1111 1111 1111 дополнительно можете посмотреть здесь
  7. мда, читаю форум и вижу, что все больше народу переходят на verilog/SystemVerilog и к чему бы это? :)
  8. Конечно можно :) ссылка Прошу прощения, но он для VHDL, запамятововал... :(
  9. Вы наверное меня не правильно поняли: Вопрос был по поводу написания статьи по написанию программ на V/SV. Подобный документ Вы писали только на английском языке(хотелось бы увидеть на русском языке ссылки я давал раньше в этой ветке) То что Вы предлагаете по поводу КА было бы супер, но вот кто за это возьмется?
  10. есть на мой взгляд неплохая статейка по поводу автоматов и их реализаций. По поводу добавления на wiki странички с формализованными описаниями автоматов - я за. А по поводу подобное написать для Verilog и/или SystemVerilog как? FSM_design.pdf
  11. если N кратно степени двойки, тогда деление это обычный сдвиг на N, результата накопившееся суммы на сумматоре-накопителе, а если нет тогда нужно реализовать деление на логике.
  12. На мой взгляд это некоректное описание, хотя бы потому что в одном процессе описаны триггеры, работающие по фронту и спаду тактовой частоты. Наверное слова "Вот вам мегаизвращенское решение. " - это и подразумевают :)
  13. Можно вопрос: а зачем Вам нужен язык программирования PERL для генерации стимулов?
  14. Попробуй почитать это 1 это 2 это 3 это 4 (там на процессор Nios пока можете не обращать внимание, а реализацию VGA контролера посмотрите)
  15. Я так и думал просто слова и ничего более... Подумайте может для других людей данная статья, что-то и несет нового и полезного и им(особенно начинающим) стоит помочь. Тем более люди на форуме переодически поднимают данную тематику PS Без обид.
  16. Не нравится не читай и не пользуйся! Хочешь помочь, то делай это нормально - без надсмешки и унижения. Насчет "программа" или "описание" на VHDL/Verilog была отдельная ветка и кстати однозначного там ответа не найдено. Конечно можно использовать, например для подсчета импульсов сумматор вместо счетчика, но нужно ли это? ПОКАЖИТЕ ПРИМЕР КАК НАДО ПИСАТЬ - НАПИШИТЕ ЛУЧШЕ!!! но я уверен, что кроме громких слов ничего не будет(мое мнение) PS "Не делай людям добра, не получишь зла". В очередной раз убеждаюсь в правильности этого высказывания. PS PS des00 мне помог в написании одного из первых вариантов документа. Так он помогал конструктивными замечаниями и давал предложения по исправлению ошибок/некоректностей. Ему за это отдельная БЛАГОДАРНОСТЬ!!! Вот этим человек показал свой профессионализм.
  17. Я не спорю, у меня большого опыта в написании статей нет. Если Вы говорите, что текст ужасен, то предложите более коректное/лучшее написание того или иного предложения или абзаца, параграфа или всего документа. PS На мой взгляд(и некоторых других людей) статья написана хорошо, но я знаю что я человек и могу ошибаться, поэтому я его и выложил на форум, чтобы общими усилиями добиться идеала. PS PS Оценить результат работы всегда проще, чем ее сделать. Сколько людей - столько и мнений.
  18. Статья на wiki выложена. Единственная просьба не убирайте и не редактируйте раздел: Источники Исходный материал статьи предоставлен Денисовым Алексеем Олеговичем (электронная почта: [email protected]) [1] PS благодарности nikolascha PS PS Хотелось бы что-то подобное увидеть для Verilog и/или SystemVerilog от профи
×
×
  • Создать...