Bij een serial in, serial out shift register komt de data erin en iedere clock cyclus wordt het 1 plaats verder geshift. Dus in onderstaand voorbeeld komt de data er na 4 clock cycli terug uit.
Er zijn verschillende manier op dit te beschrijven in VHDL. Onderstaande beschrijving is een voorbeeld. Merk hierbij op dat de volgorde dat de buffer beschreven wordt en de toekenning aan de output irrelevant zijn. Alles wordt immers tegelijk uitgevoerd in hardware.
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity SISO_shift_register is
Port (clock: in std_logic;
D: in std_logic;
Y: out std_logic);
end SISO_shift_register;
architecture Behavioral of SISO_shift_register is
signal clock_i : STD_LOGIC;
signal buf: std_logic_vector(3 downto 0);
begin
clock_i <= clock;
Y <= buf(3);
SEQ: process(clock_i) begin
if rising_edge(clock_i) then
buf(0) <= D;
buf(3 downto 1) <= buf(2 downto 0);
end if;
end process;
end Behavioral;