nvpwybxd 0 9 мая, 2018 Опубликовано 9 мая, 2018 (изменено) · Жалоба Помогите изменить регистр сдвига. Нужно сделать в левую сторону Library ieee; Use ieee.std_logic_1164.all; Entity shift is Port(C, SI : in std_logic; SO : out std_logic); End shift; Architecture archi of shift is Signal tmp: std_logic_vector(6 downto 0); Begin Process (C) Begin If (c'event and C='1') then For i in 0 to 5 loop Tmp(i+1) <= tmp(i); End loop; Tmp(0) <= SI; End if; End process; SO <= tmp(6); End archi; Изменено 9 мая, 2018 пользователем nvpwybxd Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Flip-fl0p 4 9 мая, 2018 Опубликовано 9 мая, 2018 · Жалоба Вот как более правильно описывать сдвиговые регистры: library ieee; use ieee.std_logic_1164.all; entity shift_reg is port ( clk : in std_logic; data_in : in std_logic; data_out : out std_logic ); end entity; architecture RTL of shift_reg is signal reg : std_logic_vector(7 downto 0) := (others => '0'); begin shift_reg_proc : process(clk) begin if (rising_edge(clk)) then -- по каждому переднему фронту reg <= data_in & reg(7 downto 1); -- Сдвинем данные вправо на 1 разряд. end if; end process; data_out <= reg(0); end architecture; Ваше описание ужас. Я специально скинул сдвиговый регистр вправо. Разберетесь и поймете как он работает, то написать сдвиговый регистр влево - дело 15 секунд. За вас тут никто лабораторные делать не будет. Для этого есть другая тема : "Предлагаю работу". Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
nvpwybxd 0 9 мая, 2018 Опубликовано 9 мая, 2018 · Жалоба Боже мой как здесь редактировать тему, это просто ужас! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MaratZuev 0 11 мая, 2018 Опубликовано 11 мая, 2018 · Жалоба Боже мой как здесь редактировать тему, это просто ужас! А какие проблемы? Сколько пользуюсь, ни разу вопросов не возникало! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться