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

    

MAXHAX

Участник
  • Публикаций

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

  • Посещение

Репутация

0 Обычный
  1. Цитата(iosifk @ Apr 12 2018, 17:01) А что такое "список чувствительности" у процесса? Что означает вот эта строка: process (clk,load,D,) ? Когда и по какому сигналу запускается процесс? Что такое "синхронное проектирование"? Много вопросов, да? от всех вопросов голова сейчас взорвется))
  2. Цитата(Burenkov Sergey @ Apr 12 2018, 16:33) У вас данные при загрузке 0x81, младший бит в 1. Сделайте его в 0 и тогда будет пол такта в 0 ок, а как сделать синхронный load
  3. Цитата(Tausinov @ Apr 12 2018, 16:24) Почему неверно? Сейчас все четко. мне надо, чтобы перед 3-им time bar было пол такта в нуле Цитата(Burenkov Sergey @ Apr 12 2018, 16:24) load у вас асинхронный, так и будет. Хотите чтоб он был синхронный, перенесите его внутрь if (clk'event and clk = '1') что-то я вообще не могу придумать как это сделать, вообще под конец дня голова не варит
  4. Цитата(Burenkov Sergey @ Apr 12 2018, 16:03) functional значит выбирайте теперь здесь идет не по clk, а по load идет, на скрине видно что по первому и 3-ему time bar они идут неверно Цитата(iosifk @ Apr 12 2018, 16:11) Ответ не принимается! Так все таки, когда два эти сигнала действуют одновременно, что происходит? Сдвиг или загрузка? Насколько я понимаю, чтобы ачать разрешать сдвигать, сперва должна произойти загрузка, значит load в большем приоритете?
  5. Цитата(iosifk @ Apr 12 2018, 15:48) У Вас на картинке load и shift присутствуют одновременно. Так должно быть? И что при этом происходит? Кто имеет более высокий приоритет? Shift - это тот же enable, просто разрешающий сигнал Load - использую как сигнал загрузки Цитата(Burenkov Sergey @ Apr 12 2018, 15:47) У вас timing simulation, сделайте behavioral С кодом все ок, должно работать В квартусовском симуляторе могу выбрать только timing и functional
  6. Всем день добрый. Необходима некоторая помощь с регистром, т.к. я уже не могу найти где моя ошибка. CODElibrary IEEE; use IEEE.STD_LOGIC_1164.ALL; entity shift is Port ( clk : in STD_LOGIC; reset: in STD_LOGIC; load : in STD_LOGIC; shift: in STD_LOGIC; D : in STD_LOGIC_VECTOR (7 downto 0); Q : out STD_LOGIC); end shift; architecture Behavioral of shift is signal sr: std_logic_vector(7 downto 0) := (others=>'0'); begin process (clk,load,D,) begin if (load = '1') then sr <= D; elsif (clk'event and clk = '1') then if (shift = '1') then sr <= sr(0) & sr(7 downto 1); end if; end if; end process; Q <= sr(0); end Behavioral; В общем проблема состоит в том, что на выходе выводит неверный сигнал. На скрине я выделил лишнее, т.е. он заканчивает этот сигнал по спаду, хотя должен по фронту по сути идти Да и второй сигнал тоже смещен на 1 такт по clk
  7. Цитата(Maverick @ Jan 19 2018, 00:01) Вот так помогай студентам Ни спасибо ни пожалуйста... Безусловно спасибо, код отличный, немного с избытком, но вы и предупреждали об этом. Только у меня возникла небольшая проблема с моделированием данного кода, а именно с редактированием test bench-а Просто если его не редактировать, то не создаются никакие сигналы, что на входе, что на выходе.
  8. Всем привет. Прошу помощи с заданием по VHDL в Quartus 1. Есть clk и задается сигнал, по сигналу надо выделить момент фронта и спада сигнала, а затем на основе этих 2-х тактов построить сигнал 2. Опять же есть clk и нужно сделать счетчик тактов, а по окончанию работы счетчика выдать 1 такт прикрепляю картинку с заданием, ибо из меня тот еще рассказчик [attachment=110663:nGL_SS8WpdM.jpg]