----------------------------------------------------------------------------------
--SIMPLE GENERATE AND COMPONENT
----------------------------------------------------------------------------------
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity SIPO is
Generic(N:integer :=8);
port(sin,clk :in STD_LOGIC;
sout : out STD_LOGIC );
end SIPO;
architecture SHIFT of SIPO is
component d_flip_flop is
port(D,clk :in STD_LOGIC;
Q,nQ : out STD_LOGIC);
end component d_flip_flop;
signal Z: std_logic_vector (N downto 0);
begin
z(0)<=sin;
Q1:for I in 0 to N-1 generate
d_flip_flopx:d_flip_flop port map(clk,z(i),z(i+1),open);
end generate;
sout<=z(8);
end SHIFT;