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;
Vardiyayı uygulamak için bir "dilim" kullanarak seri giriş ve paralel çıkışlı bir kaydırma sol kaydı gerçekleştirdim; ama aynı mantığı aşırı yüklenen bir vardiya operatörü kullanarak nasıl uygulayacağımı anlayamıyorum: 'sll' (shift left logical) operatörü. Sunduğunuz her türlü yardım için hepinize teşekkür ederim.VHDL kaydırma operatörü kullanarak sola kayma: sll trouble
Olası çoğalt [shift a std \ _logic \ _vector n bit sağa veya sola] (http://stackoverflow.com/questions/9018087/shift-a-std-logic-vector-of-n-bit -to-right-or-left) –
Özellikle sll shift operatörünü kullanarak yukarıdaki kodu nasıl uygulayacağımı soruyorum. Operatörü nasıl kullanacağımı gerçekten bilmiyorum bu yüzden bir örneğe ihtiyacım var ... diğer mesajın nasıl kullanıldığını anlamamda bana yardımcı olmuyor –