15
4-bit Shift Register

4-bit Shift Register. 2-bit Register Serial-in-serial-out Shift Register

Embed Size (px)

Citation preview

Page 1: 4-bit Shift Register. 2-bit Register Serial-in-serial-out Shift Register

4-bit Shift Register

Page 2: 4-bit Shift Register. 2-bit Register Serial-in-serial-out Shift Register

2-bit Register

Page 3: 4-bit Shift Register. 2-bit Register Serial-in-serial-out Shift Register

Serial-in-serial-out Shift Register

Page 4: 4-bit Shift Register. 2-bit Register Serial-in-serial-out Shift Register

Serial-in-parallel-out Shift Register

Page 5: 4-bit Shift Register. 2-bit Register Serial-in-serial-out Shift Register

Synchronous Counter

Page 6: 4-bit Shift Register. 2-bit Register Serial-in-serial-out Shift Register

Ring Counter

Page 7: 4-bit Shift Register. 2-bit Register Serial-in-serial-out Shift Register

Up/down counterlibrary ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;-- up/down counterentity counterupdown is

port (load,reset, clk : in std_logic; -- control signaldir : in std_logic; --

directiond : in std_logic_vector (3 downto 0);q : out std_logic_vector (3 downto 0)

);end counterupdown;

Page 8: 4-bit Shift Register. 2-bit Register Serial-in-serial-out Shift Register

architecture behave of counterupdown isbegina: process (clk,reset,d)

variable temp: std_logic_vector (3 downto 0);begin

if (clk'event and clk = '1') thenif (reset = '1') then

temp := "0000";elsif (load = '0') then

temp := d;else

if (dir = '1') thentemp := temp + "0001";

else temp := temp - "0001";end if; end if;

end if; q <= temp;end process a; end behave;

Page 9: 4-bit Shift Register. 2-bit Register Serial-in-serial-out Shift Register

Waveform (up/down counter)

Page 10: 4-bit Shift Register. 2-bit Register Serial-in-serial-out Shift Register

Binary counter

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

use ieee.std_logic_arith.all;

entity binarycounter is

port (clk : in std_logic;

q : out std_logic_vector (3 downto 0)

);

end binarycounter;

Page 11: 4-bit Shift Register. 2-bit Register Serial-in-serial-out Shift Register

architecture behave of binarycounter issignal temp : std_logic_vector (3 downto 0);begina: process (clk)

beginif (clk'event and clk = '0') then

temp <= temp + "0001";end if;q <= temp;

end process a;end behave;

Page 12: 4-bit Shift Register. 2-bit Register Serial-in-serial-out Shift Register

Waveform (binary counter)

Page 13: 4-bit Shift Register. 2-bit Register Serial-in-serial-out Shift Register

Mod 2 counter

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

use ieee.std_logic_arith.all;

entity mod2 is

port (clk : in std_logic;

q : out std_logic_vector (3 downto 0)

);

end mod2;

Page 14: 4-bit Shift Register. 2-bit Register Serial-in-serial-out Shift Register

architecture behave of mod2 issignal temp : std_logic_vector (3 downto 0);begina: process (clk)

beginif (clk'event and clk = '0') then

if (temp = "0010" ) thentemp <= "0000";

elsetemp <= temp + "0001";end if;

end if;q <= temp;

end process a;end behave;

Page 15: 4-bit Shift Register. 2-bit Register Serial-in-serial-out Shift Register

Waveform (mod 2 counter)