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;
Ich habe eine Verschiebung Register links mit seriellen Eingang und parallelen Ausgang mit einem "Slice" implementiert, um die Verschiebung zu implementieren; aber ich kann nicht herausfinden, wie man dieselbe Logik mit einem überladenen Schichtoperator implementiert: 'sll' (shift left logic) -Operator. Vielen Dank für alle Hilfe, die Sie anbieten können.Shift Links Register mit VHDL Shift-Operator: Sll Problem
Mögliches Duplikat von [verschiebe einen std \ _logic \ _vector von n Bit nach rechts oder links] (http://stackoverflow.com/questions/9018087/shift-a-std-logic-vector-of-n-bit (nach rechts oder nach links) –
Ich frage speziell, wie ich den obigen Code mithilfe des SLL-Shift-Operators implementieren würde. Ich weiß nicht wirklich, wie man den Operator benutzt, also brauche ich ein Beispiel ... der andere Beitrag hilft mir nicht wirklich zu verstehen, wie man ihn benutzt –