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

kentuk

Участник
  • Постов

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

  • Посещение

Репутация

0 Обычный
  1. процесс синхронный поэтому все сигналы кроме clk можно убрать из списка чувствительности, но их присутствие не вредит. почитайте доки на любую среду разработки - там примеры есть как память описывать одним процессом. хотя я лично в этом коде ничего неправильного не вижу.. есть предположение что ошибка в тестбенче и заключается она в том что вы шину данных там не драйвите в Z с каких это пор зпрещено трехстабильный буфер ставить на выход тригера.. меня както не оповестили :)) а что значит "заключается она в том что вы шину данных там не драйвите в Z"? как это сделать? код вроде правильный, так как я уже и говорил, при двух отдельных портах in и out все прекрасно работает....
  2. Написал описание однопортового синхронного ОЗУс проверкой синдрома четности. Порт data объявлен как inout, но при моделировании testbench запись в ОЗУ происходит нормально, а вот с чтением проблемы. Когда "дебагил" увидел что при выполнении инструкции "data <= xRAM(conv_integer(addr))(word_size-1 downto 0);" data не меняет своего значения, т.е. в него не записывается значение полученное из xRAM, а сохраняет старое. Тот же код исправил на 2 порта, один in и один out, все прекрасно работает, но надо написать с использованием inout. Помогите, плиз, может кто знает в чем проблема??? library IEEE; use IEEE.STD_LOGIC_1164.all; use IEEE.STD_LOGIC_UNSIGNED.all; use work.mylib.all; entity RAM is generic ( bw : integer := 3; --разрядность шины адреса word_size : integer := 4; --разрядность шины данных ram_size : integer := 8 --ёмкость ОЗУ в словах ); port ( addr : in std_logic_vector(bw-1 downto 0); ce, wr, oe, clk : in std_logic; data : inout std_logic_vector(word_size-1 downto 0) ); end RAM; architecture Beh of RAM is subtype ram_word is std_logic_vector(word_size downto 0); type ram_table is array(0 to ram_size-1) of ram_word; signal xRAM : ram_table; begin write : process(clk, addr, data, ce, wr) variable bch : std_logic :='1'; begin if clk'event and clk='1' then if ce = '1' then if wr = '0' then bch:=bitchet(data); xRAM(conv_integer(addr))(word_size) <= bch; xRAM(conv_integer(addr))(word_size-1 downto 0) <= data; end if; end if; end if; end process; read : process(clk, addr, ce, oe, wr) variable bch : std_logic :='1'; begin if clk'event and clk='1' then if ce = '1' then if wr = '1' then if oe = '1' then data <= xRAM(conv_integer(addr))(word_size-1 downto 0); bch:=bitchet(data); if xRAM(conv_integer(addr))(word_size) /= bch then data<= (others => 'X'); end if; else data <= (others => 'Z'); end if; end if; end if; end if; end process; end Beh;
  3. Помогите пожалуйста разобраться. Как посмотреть количество CLB для проекта? Использованные IOB нашел в Synthesis Report, а вот с CLB проблема.... Подскажите, может кто знает?
  4. Написал поведенческое описание генератора М-последовательности с прямым полиномом 8-й степени. Но на временной диаграмме выдает какую-то ерунду. Помогите пожалуйста найти ошибку, или может у кого есть готовый правильный исходник. Заранее спасибо. library IEEE; use IEEE.STD_LOGIC_1164.all; use IEEE.STD_LOGIC_ARITH.all; use IEEE.STD_LOGIC_UNSIGNED.all; entity Generator is port ( Din:in std_logic_vector(0 to 7); Clk,En: in std_logic; Dout: inout std_logic_vector(0 to 7) ); end Generator; architecture behav of Generator is signal x: std_logic; signal S: std_logic_vector(0 to 7); signal S1: std_logic_vector(0 to 7); begin Process (Clk,En) begin if En='0' then Dout<=Din; else if Clk='1' and Clk'event then x<=(Dout(0) xor Dout(4)) xor (Dout(5) xor Dout(7)); for i in 0 to 6 loop S1(i)<=Dout(i+1); end loop; S1(7)<=x; Dout<=S1; end if; end if; end process; end behav; Временная диаграмма:
  5. Всем огромное спасибо за поощь и потраченное время! Все получилось.
  6. Спасибо большое Вам всем! XOR встроенный не подходит, так как это задание лабораторной работы. Я как понял чтобы написать структурное описание надо использовать generate и XOR2 port map (...)?
  7. Добрые люди, подскажите как сделать структурное описание N-входового элемента XOR на основе 2-хвходового. Компонент описал, Architecture beh of XOR2 is Begin Process(A,B) Variable A_B: std_logic_vector(0 to 1); Begin A_B:=A & B; Case A_B is When “00” | “11” => C <=’0’; When “01” | “10” => C <=’1’; When others => C <=’X’; End case; End process; End beh; а как написать для многовходового структурное описание? Заранее спасибо!
×
×
  • Создать...