library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.numeric_std.all;
entity shift_reg is
port(
d : in std_logic;
clk : in std_logic;
rst_bar : in std_logic;
q : out std_logic_vector(7 downto 0)
);
end shift_reg;
architecture post_vhdl_08 of shift_reg is
begin
process(clk, rst_bar)
variable q_int : std_logic_vector(7 downto 0);
begin
if rst_bar = '0' then
q_int := (others => '0');
elsif rising_edge(clk) then
q_int := q_int(6 downto 0) & d;
end if;
q <= q_int;
end process;
end post_vhdl_08;
Я реализовал сдвиговый левый регистр с последовательным входом и параллельным выходом, используя «срез» для реализации сдвига; но я не могу понять, как реализовать ту же логику с помощью перегруженного оператора сдвига: оператор 'sll' (shift left logical). Спасибо всем за любую помощь, которую вы можете предложить.Сдвиг влево с помощью оператора сдвига VHDL: проблема sll
Возможный дубликат [shift a std \ _logic \ _vector из n бит вправо или влево] (http://stackoverflow.com/questions/9018087/shift-a-std-logic-vector-of-n-bit -to-right-or-left) –
Я специально спрашиваю, как реализовать этот код с помощью оператора сдвига sll. Я не знаю, как использовать оператора, поэтому мне нужен пример ... другой пост не очень помогает мне понять, как его использовать –